I thought it might be interesting to do a post on games I’ve made, but for one reason or another, never released. And also to ask why?
These aren’t prototypes. These are things that are nearly complete, but had some core flaw.
This was the first XNA game I made, shortly after I purchased an Xbox (well, not really the first – I made the requisite Tetris clone to get familiar with the framework). It gradually grew from a buggy clone of the ancient Atari 2600 game combat into something much more polished.
The game really had no “design” behind it, and it grew organically. I was going for something that would be simple but fun to play with other people – something with a varied set of weapons where you get to blow up your friends. I think good memories from playing Bomberman were the inspiration here.
The code was sort of hacked together because I really knew nothing about 3d graphics programming prior to this. My “engine” design was awful. But it gradually grew into a solid code base.
I managed to make it support multiplayer over Xbox live. That required significant re-factoring of the code in order to more deliberately manage game state and figure out which machine participating in the match had authority over which occurrences in the game.
It was subject to the “just one more feature” ideology, so there was definitely an explosion of weapon types. There were four different super powers you could choose, based off of the four elements. In addition each player had 6 skills, and there were 6 different types of power ups.
All-in-all, it was pretty fun as a game to play with friends. And I polished it enough such that I decided it was time to submit it for play-testing for the Xbox Indie Games (then called Community Games, I think).
I got very strong feedback that no one would want to buy it if there were no single player option. The few testers who tried it out said “I’m by myself now, I can’t really try the multi-player stuff out”. Well, that means you can’t really play the game at all.
I knew that was true of course. If presented with an unknown game that you can’t really play by yourself, the chances you’ll purchase it are low. There are certainly games that are intended to be multiplayer, and have rather boring single player experiences (Bomberman comes to mind). However, they tend to be well-known franchises.
Given that lack of a single-player mode was basically a “non-starter” (I don’t think I have used that term since I quit Microsoft), and given that I wanted the game to be as much of a financial success as possible, I decided to try to implement computer AI. And that’s where the project fell apart.
I delved deeply into AI programming for a month or two, using cutting edges techniques like behavior trees. And I got some stuff working. AI is hard though. At least for a game like this. I found it very difficult to model the decisions that AI should make.
The problems, as I see it, were two-fold:
- The game was not designed to be fun playing against the computer. It relies greatly on the fun of the “kill your friends” mechanic. I don’t really care about “kill the computer”. You could argue that this means the game mechanics are just fatally flawed, and that may be true.
- The game was not designed from the start to have a computer AI. The game mechanics sort of relied on have a human at the controls. Thus, it was very difficult to model the AI.
In the end, I lost interest for these two reasons. It’s a bit of a shame though, I think the game has some value. Occasionally I’m tempted to resurrect it and “toss it out there”, lack of single-player be damned!
Regardless, creating the game taught me a lot about 3d graphics, and impressed upon me the importance of designing game play up front, and having a clear vision of your end product.
Around 2006, roughly, I became involved in a very tiny community of people using “SCI Studio” to create old King’s Quest-style games. SCI Studio allowed you to create a game that would run on the actual old Sierra interpreter (which means you need to use DosBOX to run it on modern computers).
I started making a game with it – again, very haphazardly with no overall design in mind. First, it was just a series of puzzles over six screens, most of which were inside jokes between friends.
Eventually I decided I wanted to expand it to a full game with broader appeal. I had also grew frustrated with SCI Studio, which was fairly buggy and unreliable, and had terrible UI (the creator of SCI Studio was still a “green” programmer at that point I guess. He has since gone onto a very successful career path, getting a contract with XBLA as a one person indie “development studio”).
I ended up writing my own IDE to replace SCI Studio. First just the features I perceived as lacking, and then eventually the ability to create a complete game. I even replaced the script compiler with a c-style language instead of the lisp-style language that SCI Studio used. In the end I don’t think I shared any code with SCI Studio.
With better tools, I was able to create a fairly large game. However, I eventually lost interest for the following reasons:
- The community was very small, without really any kind of venue for selling a product. I would never make any money off of this, and no one would ever know about it. This was strictly hobby-only, and eventually I think I need some kind of possibility of fame-or-fortune to keep motivation high (especially if I’m interested in pursuing game development as a career path).
- This was running on ancient technology. Retro is fine and all, but limiting yourself to old technology is, well, limiting.
- It was a story-driven game with an awful non-compelling story. Basically a series of puzzles weakly linked together. I found myself not knowing how to “wrap up” the game. Without a clear end and an interesting story, motivation just falls apart.
- The content was time-consuming to produce. It takes artistic skill to make 8 bit pixel art. I got better at it, but it took lots of work. Each new screen requires a significant amount of artwork. (I’m hoping the game I’m creating now will have a better return-on-investment).
A few years later, I came back to the project on a whim. I wondered if I could make an XNA port of the Sierra SCI interpreter. That would let me run these games on modern PCs and the Xbox.
After a month’s work or so, and learning more about SCI byte code than I ever wanted to, I got it up and running. (The byte code has been fully reverse-engineered as part of the FreeSCI project) It wasn’t a perfect implementation, but I did get the first 10 or so screens from Space Quest 3 running on the Xbox. Pretty cool! See for yourself:
When the Windows Phone came out, I wondered if it might be a good platform for Cascade Quest. So I set out to implementing a touch UI for the “SCI engine” I had created in XNA. In addition, since I was no longer limited by any constraints of the old Sierra interpreter, I could add any feature I wanted. I could make the colors look better, add better sound support, better-looking UI, etc… And I would have a venue on which to sell it.
I did do more work on it in early 2011, including adding more content and trying to caress the story into something reasonable. In total there are probably about 60 unique screens in the game now. Eventually, real life and real job got in the way and I had to abandon work on the project.
The screenshots you see in this post are from the phone version of the game (well, actually they were taken from the Windows version which simulates the touch UI with the mouse). I’m pretty sure the FPS counter is wrong.
This is one project that might be interesting to port to more popular platforms such as iPhone/Android. The graphics requirements are fairly modest compared to Tank Negotiator or my current project.
At times I’ve been motivated to resurrect these projects and get something out there. I feel I have some gold nuggets here – nothing great, but I put a lot of effort into these and would like to show something for it. Now that I am doing game development full time, I could do this. However, I don’t want it to side-track my main project too much. I’m on a schedule that is determined by financial requirements, so I don’t have infinite time :-).
It would probably require a month to prepare Tank Negotiator for shipping (converting to XNA 4.0, removing any AI, and undergoing play-testing and finding final bugs). It would require longer for Cascade Quest. At least a couple of months to complete the game content and tie the story up, and then who knows what kind of polish after that.