Project Overview
Kill Dr. Cote was originally a game that a few friends and I made with Hypercard in 1995. It was a simple, black-and-white top-down shooter, but was quite popular on AOL and got a lot of e-mails.
In the remake, you’re thrown once again into the oddly octagonal laboratory of the diabolical Dr. Cote. The object is simple: “Shoot Everything.” Use the keyboard to run around like a maniac while using the mouse for your firepower. Aim, click to fire, and right-click to chuck a grenade. Wave after wave of zombie test subjects will hound you, with the occasional visit by the Doc in person. It is simple, intuitive, and very, very addicting.
Team and tools
The dev team this time around was just myself. As a result, I knew right from the start I’d have to eventually wear every hat, and get everything done much faster than usual. There were some big lifesavers along the way (Garageband and Photoshop) but next time around I definitely want to team up with a talented artist.
Xcode was the IDE of choice for this project, as it’s free and easy (enough). For graphics, Photoshop rules. Period. You pay for what you get, but it’s so worth it. For sound editing, Audacity ended up being the tool of choice, and turned out to be a lifesaver for its ability to export to Ogg Vorbis. For music, I used Apple Garageband along with a Juno-106 MIDI synthesizer.
For additional libraries, I used OpenGL, SDL, SDL_mixer, and SDL_image. SDL was a great decision—it made a lot of mundane things very easy, and it meant that the bulk of the project was cross platform. There’s a Windows port of Kill Dr. Cote being worked on as I write this.
What Went Right
Sticking to the original vision and designing everything first.
During these three months, I’ve kept a notebook for the design of Kill Dr. Cote. It’s a 100-page notebook filled to the brim, and everything is written down in there somewhere. Whenever I envisioned something, it went in the notebook to make sure I lost none of the details. The game follows this notebook 99.9 percent of the time. The list of guns I came up with in the first week of the contest became the exact selection of guns in the final game, except for the mines, and they all behave exactly the way they were designed.
I wouldn’t say it’s as much of a design document as it is a design journal.
Having awesome gameplay and controls from day one.
As soon as I had my first prototype finished, I knew that winner or not, this game was going to kick some serious rear. I can modestly say that the gameplay rules—even better than many commercial games. This gameplay really motivated me and gave me tons of momentum.
I’ve always firmly believed that controls make or break a game. I believe it even more now. Kill Dr. Cote’s controls are simple and intuitive. One hand moves, the other shoots. They’ve been that way since the original prototype, and they haven’t changed, aside from adding more key quads for movement (keypad, and IJKL). Having them customizable would make them perfect. The result is that the game, despite its difficulty, is incredibly easy to pick up and play.
Amazing support from friends, family and peers.
Seriously, I couldn’t have done it without you guys. My friends and family were very understanding and supportive of me during these three months. Things were bumpy at some points, but eventually everyone realized how much this meant to me in terms of both my future career and personal fulfillment. I have friends who let me bring my laptop with me when I would come to hang out, tell nearly everyone they met that they knew a game designer, and even sneak me into their yoga classes to keep me in halfway decent shape.
The enthusiasm from my peers has been overwhelming as well. The first feedback on Kill Dr. Cote I ever received was “Holy CRAP this game is fun! I could hardly tear myself away from it to write a reply…” (Thanks Alex!) The response to the game has been overwhelmingly good. Upon releasing the game to the public (uDevGames, MacUpdate and MacGameFiles… holding off on Apple and VersionTracker for now for bandwidth reasons) I got a lot of emails from new Cote addicts—enough to start a mailing list. It’s really awesome to get another email or two a day saying how much butt the game kicks. It’s been constant fuel for me throughout the contest.
Burnout recovery.
About halfway through the contest I burned out—hard. It was a result of running into a huge roadblock with the graphics (see “What Went Wrong”), overworking myself with everything else, and realizing that I had neglected my classes so much that I had to drop some of them. I was working myself to the point where I’d literally fall asleep out of my chair and sleep all night on the floor. All I could do was open up Xcode, stare at the code for a bit, then I’d need to take a nap.
So I started taking days off. I felt I did a good job of taking weekends and sometimes entire weeks off from coding. I set aside “asset weekends” where I would only work on drawing or music. (From my blog: “If I catch myself with Xcode open at all this weekend I’m going to kick my own a**.”) I took several trips out to California: a week-long trip to Venice Beach, and a weekend to my sister’s apartment in Fullerton which I barely remember except for the excessive drinking.
Because of these extended breaks I was able to come back to the project completely rejuvenated and ready to kick butt. Hope you’re taking notes, EA.
What Went Wrong
Focusing too long on gameplay.
Way too long. I didn’t even have graphics or music until the third month. The player and Dr. Cote didn’t have graphics until the final few days. The graphics that I did put in ended up being rushed and sloppy. The main in-game music track, “Brain Eating *****,” was meant to have another verse complete with synth solo. Never got it. I copied the first verse, changed the few chords at the end, and looped it. The slashing sounds you hear are corners being cut.
So what was I doing the whole time? Gameplay—more guns, more explosions, more enemies, more carnage, and it all had to be awesome. While I personally don’t consider it a mistake, I can see how it could have hurt my contest scores in graphics and sound. My personal priority was to have a game that was fun as heck, and addictive in that good, one-more-game way, and not have a game that skimped on the fun just to maximize my votes in as many categories as possible. Think I’m just saying that? Check out the story.
It was a personal decision. I suppose whether it was wise or not depends on your attitude toward games and toward the uDevGames Contest.
Not having graphics style pinned down.
This drove me absolutely nuts, and was a major reason behind my burnout halfway through the contest. The original design had everything in 3D. Player, zombies, Dr. Cote and the robots were all supposed to have 3D models. The player would have skeletal animation with keyframing, as would the zombies. You could also blow off arms and legs and they would separate from the skeleton and move independently.
The problem? I had absolutely no freaking idea how to do any of this. I’d never done 3D before, never mind skeletal animation, and my 3D modeling skills were… well, I have no 3D modeling skills.
The alternative was to make everything 2D sprites, and just put them on billboarded quads. But it looked weird, and didn’t seem as cool. I went back and forth on this literally a dozen times during the second month. It caused me all kinds of stress. I kept trying to learn skeletal animation, but I had no idea how to create the required assets. None.
What eventually tipped the decision in favor of 2D sprites was Excessive mode. I loved tweaking the guns to make them ridiculously powerful, and I finally decided to put them all together in a difficulty level with about 500-1000 zombies at once. There is no way in the world I’m putting 1000 3D models on the screen. I loved Excessive mode so much that the only way to make it remotely playable would be to make all the zombies 1 quad.
Very rushed and fatally buggy November 6 release.
The weekend before November 6 was extremely rushed and stressful. The player graphic still wasn’t in, Dr. Cote didn’t even exist yet, and many key pieces of the game were missing. The only sleep I got that weekend was by accident, when I’d roll out of my chair and just not want to move for a few hours. To top things off, this was the weekend after I had miserably failed a midterm, and had made the decision to drop two classes.
As a result, a lot of bugs snuck through when I put that build up—really big freaking bugs with sharp teeth and acid spit. The next morning I had emails saying basically that the game was awesome but it keeps crashing, or has stopped running altogether. I wanted to scream. I watched the download count shoot up in horror. It was my first finished game and it fatally crashed on launch.
So what did I do? I took the day off, (see “What Went Right”), actually went to my one remaining class, had lunch with a friend, ate sushi, had fun. It was rejuvenating, and that night I fixed every last bug, and answered every last email. In my replies I offered to continually keep people updated whenever I made more bug fixes and updates. Everyone was very receptive, and that first round of bug reports became my mailing list.
What I learned from uDevGames 2004
A better understanding of the development cycle.
While I was developing, I was able to schedule very effectively. I had monthly, weekly and daily goals, and achieved the vast majority of them. That is, up until I released the first close-to-finished build on Halloween night (build 4). It added a ton of new stuff, and it got lots of feedback and suggestions. As a Mac app there were still a lot of holes, and there were a lot of bugs. These all needed to be addressed. The problem is, addressing all of them pushed everything back about a week and a half. With about a month left in the contest, that was about a 33 percent increase in the time I would have required.
Everyone’s always told me that debugging something takes just as much time as coding it in the first place. I believed it and braced myself but still wasn’t ready for the vast increase in time.
Finally, it’s hard not to suffer from feature creep when you get tons of emails all with the same few suggestions, many of them really cool and feasible. Upgradeable weapons and Internet high scores? Too awesome not to have in the game, but everything adds to the time budget.
Being a lone wolf sucks!!
The advantage of being a lone wolf is that the resulting game is purely my vision, and that makes my ego happy. There are no arguments, no group discussions/votes over some inane nonsense like the initial upward velocity of the zombie giblets. What I say goes, because there’s no one to argue with me. This makes things go way faster. Plus, there’s no one to check my sick sense of humor. “Shoot Everything” probably never would have made it into the game if it were put to a group vote. Honestly, how many serious developers would be willing to throw away any chance at winning the story category for a few tongue-in-cheek laughs?
However, the disadvantages turned out to be many. The most obvious is that I had to wear all the hats: Programmer, Artist, Musician, Marketer, and Producer. The result is that I had way more mutually exclusive work on my plate than I really wanted, and the quality of the game suffered because less of each got done. The other obvious disadvantage is that I’m not particularly good at a few of the hats. I’m horrible at art, and it’s obvious from the sprites. I hate doing it, and it hates being done by me. I have a newfound respect for artists, and I definitely want to bring a talented artist along for the ride next time. As for music, I love working on it, but I’m still an amateur musician, and it takes time. Finally, working alone means there was really no one there for constant motivation. Having a teammate means having someone to potentially let down, and that always fires me up. Having another person working on the game with me may very well have prevented my burnout halfway through the contest.
Future plans for Kill Dr. Cote
There are a lot of ideas I had for Kill Dr. Cote that never made it into the game. There are also a lot of ideas I had that I knew I’d never be able to do with my current skills and time budget, things like multiple playable characters each with a different weapon set, boss monsters, different laboratories with traps; the list goes on. The only way to truly realize all these ideas would be a future sequel.
As for the game as it is now, I want to implement all the minor features that haven’t been put in that I had planned to finish before the contest deadline. Things like the robotic hunter-killers, a cooler SNES-style cinematic intro, upgradeable weapons, and Internet high-scores, along with a round of bug and gameplay fixes. I’m definitely not done with the game just because the contest is over.
After that, I’ll probably create a website to host the Kill Dr. Cote Internet high score list, and any future projects. My personal site just doesn’t do the game justice. It needs a proper vehicle!
There will be a point however, where the planned changes will have to be put off until a sequel. I love Kill Dr. Cote but I’m eager to move on to my next project. I have a lot of cool ideas that I’m sure fans of Kill Dr. Cote will love. Someday, though, you can count on me returning to the laboratory: “Kill Dr. Cote… Again.”
Conclusion
Truthfully, these have been three of the most exciting months of my life. A look at the original Kill Dr. Cote from 1995 makes it obvious that I’ve been working towards being a game developer since I was a kid. uDevGames gave me the motivation to follow through and finish a game, and getting to know and prove myself to my peers at iDevGames has been a really wicked experience. Regardless of how the votes turn out, no gamer nor developer can deny the blissfully addictive butt kicking they get from Kill Dr. Cote, Gib on!
Xcode,OpenGL,SDL,gameplay,3d,SNES