A short while ago I became a REAL game developer with the release of an XBLIG I helped create called “Kissy Poo”. Overall this game has been a huge success. It has far exceeded my original expectations of sales and was just a really fun project to work on. (In case you were wondering I was expecting to sell around 500 copies and we’re right now hanging around 1200 copies sold!). Now though, I want to take some time to reflect a bit and share what went well and what I would have done differently. I think it’s good for any project to take that time and who knows, maybe it will be useful for someone else besides me!
Let’s start with the good. There were a lot of things that went really well on this project. Here’s a short little list I made of the ones I thought of when looking back.
* We spent an appropriate amount of development time on an Xbox LIVE Indie game title. This may seem like a strange one to have but it makes sense when you understand the current state of XBLIGs. XBLIG is a new untested system. There are developers who are making a lot of money but most developers are only making a couple thousand dollars off their game. That information should definitely be factored into how much time you’re going to spend making your game. If you’re making a labor of love, that’s great. But just realize you’re most likely NEVER going to make the money back from all the time you poured in. We had a short development cycle. It went just the right amount of time for the game we were trying to make and we did a great job maintaining feature creep and staying true to our original vision. I was very happy with how long it took to make Kissy Poo. The original coding of the basic gameplay took about a weekend and then we spent the next several months adding polish. Put a decent amount of time into the development, but we didn’t go overboard. I was really happy with that.
* We used a real artist. I was really happy with the way the artwork for Kissy Poo turned out. I consider myself something of an artist. I can draw and I’m slowly learning how to create art in the digital world. But I’m not a REAL artist. People that spend time every day working with Photoshop know how to do things I’ll never have the time to learn. Much like artists will probably never code like I can (well except for Noogy, but he’s a freak of nature!). I did the original artwork for Kissy Poo and it was decent, but then I swallowed my pride and turned to my wife and begged her to make it pretty. She rocked it. The artwork for Kissy Poo has a great style and flavor and I think it helped make the game stand out. Art isn’t something XBLIGs should be paying a lot for (remember, you’re probably only making a $1,000 tops!), but if you CAN find an artist who is willing to help out treat them well.
* We understood our target audience well and made a game perfect for them. I’m a father of four boys. I’ve played games with them from the time they were an infant. And every time I did play a game, I kept a little running checklist of things I’d wish that game would have done differently so my kid could have played it. Kissy Poo implemented every single one of those little thoughts and ideas. I made a game that kids 4 years and younger can play all by themselves. And I made a game that wouldn’t frustrate the parents WHILE the kid was playing (well, maybe my singing might start to make their ears bleed but that’s all!). There’s a lot of little things it takes to make a game for younger kids, but we figured those things out. Since the release of Kissy Poo we’ve gotten nothing but positive feedback from parents. Kids love it. We made a game that was perfectly designed for our target audience and I’m pretty proud of that.
* Working with Andy “The ZMan” Dunn. I worked really well with Andy and I would definitely work with him again. We weren’t complete unknowns to each other. We been friends for quite a while now (met him at a Portland Code Camp many moons ago where he was giving a talk on shaders that was so over my head I felt stupid mentioning that I didn’t understand a thing he was saying). He’s got a laid back style much like myself. We kept on each other to get things done but neither of us are too terribly particular about things. We had a fast style and a fast pace, but we both had times where we took long breaks from working. I liked how we worked on the project and I liked collaborating with him. There aren’t many people I choose to work with but Andy is definitely one of them. Without him Kissy Poo would have been a flop in all honesty.
* I learned how to write shaders. This was a good on a couple of levels. One because I firmly believe that anytime you’re working on a project there should never be more than one or two things that you don’t know how to do. With more than that you honestly have no way of guesstimating just how long the project might take. You need to seriously limit just how many “unknowns” there are in a project. Unless of course the whole purpose of the project is just for learning. Then toss in as many unknowns as you feel like. If it’s a project you want to complete however, you need to keep trimming back on your features and ideas until there’s only a few things that you’re not quite exactly sure how to do. Shaders were the one I didn’t know how to do in this project. I was able to limit how much this unknown hurt me by working with someone who DID know how to do shaders. It was fun learning how to do them and gaining some confidence in that area. I’m still not an expert on them, but they’re starting to drift into a category where I could give you an estimate on how long it might take me to do a project that involves shaders.
* We proved a point. I can’t elaborate on this one too terribly much. But those involved know what I’m talking about. There’s a bit of a history to how the idea of Kissy Poo came about and how Andy and I decided to tackle it. We met the deadline and would have met the deadline. We proved our point. I was extremely happy about that.
* We had fun. At no point was I dreading working on Kissy Poo. It was fun from start to finish. Was it my kind of game? No. Was it the most exciting project to work on in the world? No. Did I think it was going to allow me to quit my day job and form a game company? No and I actually don’t even WANT to do that :) But man, did I have fun making that game. We did something small, but we did it well and I was proud of the job we did in the end. Had a blast doing it too. If you’re not having fun, you might as well can your project now and move onto another one. Life is short, there’s no point in making yourself miserable trying to make an XBLIG.
* Fantastic support from the community. Andy and I are actively involved in the community. Sometimes as moderators on the XNA forums, our involvement isn’t always well received. We have responsibilities and we both take those responsibilities fairly seriously. In doing so we can sometimes piss some people off. There’s been times when it’s felt like the entire community was against us. Not a fun feeling. Especially since we often agree with the community, but as moderators and MVPs we have certain guidelines we’re required to follow. When we first released our game into playtest, we both held our breath. We weren’t sure just how exactly the community was going to respond. We were both blown away and pleasantly surprised as just how positive and helpful the feedback we got was. Kissy Poo would have been a flop without the communities involvement. Playtester made Kissy Poo a MUCH better game and we couldn’t have done it without this great community that has been built around XNA and XBLIG.
* We have a decent code base. Kissy Poo is a smaller game and my guess is if we had started to make it much larger it would have started spiraling more out of control but overall it’s not too bad. We got a little sloppier towards the end as we were adding the last features, but I believe with some minor clean up the code base overall isn’t too far off from something I’d release to the community as a sample. Who knows, maybe we’ll do that someday….
* We used good collaboration tools. If you’re an XBLIG developer and you’re not using some kind of source control. Stop whatever you’re doing and get that hooked up. Don’t code another line without one. In our case, it was the first thing we went looking for and at Nick Gravelyn’s recommendation we chose XP-Dev.com. I honestly can’t recommend it highly enough. The support there is fantastic and they have met and exceeded all my expectations for what I expect from a good source control service. The other tools we used worked well too. We used Google docs for most of bug tracking, tasks lists. Kind of used an agile mentality there as we formed tasks and then signed up for them one at a time. Marking them complete as we finished them. With the document being online and shared it made working together remotely quite easy. (You did know Andy and I live in two different cities right? This was a complete remote collaboration form start to finish!). Google talk was our primary means of communication although we did send each other the occasional email as well. And although we do have each others phone numbers, we never found it necessary to talk to each other. Like I said, earlier. We worked really well together.
* Met and exceeded sales goal. We weren’t planning on making it big, but we did have some sales expectations. Realistic expectations based on the game we were making, the typical audience on the Xbox 360 and how well games were selling on the XBLIG service. We knew what we were releasing and who we were releasing it to. I was expecting around 500 sales and Andy was predicting around 1,000. We’ve exceeded both of those expectations. And I’m pretty dang happy with that!
Now that we’ve covered what went well. Let’s talk about what I would change if I had a chance to go back in time all Marty McFly style with the knowledge I have now.
* I didn’t take the time to animate the animals. It was on our list of things we might do. The thing was that I KNEW that the target audience didn’t care. In fact, too much animation can be over stimulating for that younger crowd. So I crossed it off the list of something not really investing the time in. It was something older kids expect and want, but kids 4 years and younger could care less about. I firmly believe now that we could have had more sales (and a better rating) if I just would have animated the dang animals. The problem is that although we hit our target audience, not everyone understands kids and they assumed that lack of animation just indicated a bad game. When making a kids game, you still need to sell it to the people who have the money. If I had it to do over, those animals would have animations.
* I should have never made the cover art. I had Wifey do all of the images for Kissy Poo. She’s good at digital design. It’s what she does every day and makes a decent amount of money off of it. But for the cover art I didn’t want to bother her so I slapped a bunch of the in-game artwork into a rectangular area and called it a cover. The first thing every single potential buy ever saw was a piece of art that someone who was NOT an artist slapped together. Big mistake on my part. I will never ever make another cover art for my game. I will either spend ALL of my game development budget on paying someone to make one or I’ll try and see if Wifey has the time to help a poor indie game developer out. Do NOT, I repeat do NOT make your own cover art. This is the one area where you can’t afford to fail in. Pay for it, get it done by a REAL artist.
* We shouldn’t have named it Kissy Poo. It was a cute idea, but it just doesn’t translate well. Heck, even in America tons of people didn’t understand it. For me it’s a cute pet name, all lovey dovey. My Kissy Poo. For others it seems like a game about kissing poop. I was actually told by quite a few parents that their kids wouldn’t say the name because they felt like they were saying something naughty. We probably should have changed the name early on. But we stuck with it and I thin it hurt our sales not just here, but definitely internationally where they didn’t even know that “Kissy Poo” might have another meaning. Big mistake on that one. I will definitely think about my name a bit more for my next XBLIG.
* We should have had a better trial experience. The few review sites that do review XBLIG review trials. Most of them got REALLY annoyed by Kissy Poo. Our nag screens made them feel like there wasn’t much to the game. And there’s not, it’s a kids game. But had they reviewed the purchased version they would have seen more of it’s cuteness. I would definitely change the way we chose to implement the trial mode for a future version. We made it an ugly experience (my fault!). Next time I will make sure that the trial experience showcases the game better while still encouraging people to purchase the game.
* I should have bought an actual microphone. I sang all the songs for Kissy Poo and my kids helped make most of the sound effects in the game. I don’t have a real microphone for my PC however. I just used my gaming headset. It worked, but I know the quality of the songs and the sound effects would be much improved if I would have just but a moderately priced microphone. Next time I’ll make sure I’m using decent equipment when making things for my game.
* The Exit Screen is ugly! We threw the Exit Screen in towards the end. We wanted to direct people to our website and point out a little secret in the game. We should have taken the time to make the screen look better visually. It’s one of the ugliest parts of the whole game. Really jumps out at me every time my son plays and I really should have fixed it. Next time I’ll make sure all screens in my game have a similar style and are a visually pleasing.
* We should have added an actual attract mode. Little kids like to just hold the controller and watch the game. Having an attract mode would have made even the youngest gamers feel like they were playing the game. Kissy Poo has such simple gameplay there’s really no reason we shouldn’t have added an actual attract screen. The game could have looped between that and our title screen. It would have improved the experience and made it much better for trade show demos! The next game I make will definitely have a proper attract mode.
* We should have added local multiplayer. With four kids I’m not sure how I overlooked this one. We did make it so that all the controllers can participate in the game (pressing button on any controller will actually make sounds in the game), but there’s only one character and only one controller that can control that character. Kissy Poo really would have benefitted from local multiplayer. Four different Kissy Poo characters floating around the screen would have made it a game that families could have enjoyed together. Every game I make will have local multiplayer. I LOVE games that let me play with my kids. There’s no reason I should ever make a game where I can’t play with my kids and friends locally.
* We should have made the discovery zones more discoverable. Every single scene in Kissy Poo has little hidden “discover zone” spots. If you hover over them with Kissy Poo and press any of the button, it activates that discovery zone and various things will happen on the screen. The whale blows hearts, the cabin chimney has smoke, the mountain makes it snow and so on. Most people that own the game have never discovered those AND I de-activated them all in trial mode. I definitely should have made those more discoverable. Our attract mode would have helped with that and we even could have mentioned them on our Exit screen!
* We were unable to make the general 360 audience understand that the game wasn’t for them. We probably could have done a better job in the description and probably while the game was loading explaining just who the game was for. I think if we could have gotten that message out, our rating would have been higher and our sales would have increased. Instead quite a few people thought we made a really crappy game for them. We didn’t make it for 16-30 year olds. We made it for their younger siblings and their kids! We could have done a better job explaining this. Next time I will.
* We should have changed the way we tracked game and screen state. When thinking back to the code the one major thing that jumps out at me is all the complications we had with the way we were tracking game and screen state in the game. We made life difficult for ourselves by never changing it. Most of the code that I’m not proud of in Kissy Poo stems from us never addressing this. Next time I make an XBLIG I’ll implement a better way of tracking game and screen state. One that’s more global and easier to modify.
There you have it. Those are my thoughts on making my first Xbox LIVE Indie game. It was a fun process and overall was a success but with any project there’s always room for improvement. It was fun thinking through the things I’d change and I’m looking forward to taking those thoughts and doing even better with my next Xbox LIVE Indie game…if I ever finish it!