Turtle Turmoil




A game programming contest dedicated to Macs? Never! Yet, reliable sources indicated otherwise, and I found myself in a bit of a pinch. As I said, my current project had been Furae, so I briefly considered sprucing it up and submitting it. After reading further through the rules, I noticed the part about a two month time limit on entries. While Furae was still a legal entry, I had already put seven months into it, and I felt such a length of time would be an unfair advantage over other games that might enter. Without apprehension and already two weeks into the contest, I made the decision to start a game from scratch. I resurrected my idea of a mixed puzzle/arcade game, spent a few days filling in the holes that I expected would arise from gameplay, and began forging the preliminary graphics to the game engine.

Turtle Turmoil August 2nd

The initial design of Turtle Turmoil was a puzzle game that involved some sort of a grounded foul, a chicken for instance, that would hop around on top of movable blocks. The goal would be to move the blocks so that the creatures in danger could hop to the safety of their nest, all the while dodging enemies that lurked on the ground below. There were also only to be two types of blocks, those that could move and those that could not. The best part about creating a game is that one never ends up with the same thing one starts with.

Development Tools

I used a few different tools in the development of Turtle. My trusty compiler was Metrowerks’ CodeWarrior 5. All the graphics that I created were made in Infini-D 4.5, and all tweaking was done in Photoshop 5.5. Resources were compiled with Resorcerer and Ambrosia’s Bubble Trouble lent some inspiration.

Mike “Mojo” Apolis, my talented graphics artist, sound expert and musician, also used Infini-D and Photoshop for his graphics, along with MixMan Studio for the music.

Turtle Turmoil also includes a few libraries that deserve to be noted. The first of these libraries, and one of the most important to the game, is Ian Ollman’s SoundTerrain Library. SoundTerrain is an amazing sound system for Macintosh games. Unfortunately, Turtle Turmoil doesn’t implement all of its great features. Aside from ease of implementation (excellent in my opinion), it features playback in complete 3D space, pitch shifting and bending, Doppler effects, and complete control over the technical details of the sound engine itself — simply fantastic. The second of the external libraries I used for Turtle Turmoil is Fredrik Andersson’s SliMPEG MP3 player. The library itself includes about seven different calls. Four of these are the heart of the library: initialize, play, stop, and set_volume. When time is the defining factor in the development of a game, a library such as this is crucial for meeting deadlines.

Finally, though not technically a library, was my graphics engine ‘SchweetWorld.’ It was started about three years ago as a means of displaying the sprite based graphics in a game in a clarified, unified way. The very first version was laden with bugs and lacked many features. However, it laid out the world to layer to sprite architecture, and provided a solid foundation that, since its birth, has been modified and changed in so many different ways that it’s doubtful if a single line of code has remained the same in the 2,600 lines that comprise it. I’m proud to say that as of this writing it’s completely Mac OS X compatible, supports lighting, tiles, transparency, easy but powerful text drawing routines and a built-in support for drawing basic QuickDraw objects.

What Went Right

Fortunately, just about everything slipped into place without major problems. The development of the game followed a well-defined path at the very beginning, which is invaluable for staying on track later on. The project started initially as a one-man show. During the first two weeks I spent more time creating graphics than I did actually programming. It was a highly aggravating experience to spend five hours in Infini-D and then two more in CodeWarrior implementing the graphics that had been rendered.

After I completed most of the filler graphics (I thought they would be final when I first created them, but very few of them actually were) I presented it to a few of my friends on IRC. One of them, Mike Apolis the graphics artist, informed me that he would like to help me out in my quest for glory. I breathed an immense sigh of relief and agreed. Three days later he sent me the same app back, completely and totally changed with beautiful graphics. From then on he became the lead graphics artist for Turtle, as well as providing other various resources as needed.

Mike truly was a life saver in regards to the completion of the game. We had excellent communication, and often times I would find myself just saying to him, “I need this graphic, in this size,” and within a few hours, I would have a package waiting for me in my mailbox. Regardless of what I thought it should look like, I found that he often had better ideas.

I also had strong support from friends on IRC, who would constantly give me feedback on gameplay and ideas. Creating a game by yourself is usually a very bad thing to do. The programmer is always biased towards his own preconceptions, and many of these are simply detrimental to the fun of the game. As cool as having pheasants that hop around on rocks is, it really doesn’t do much for the happy factor of the game.

One fellow who gave me all the programming support I could have asked for was Ian Rickard, an amazingly smart and talented programmer. He is the third member of the Turtle development team, and was responsible for telling me what to do when I just didn’t know. For example, Ian influenced most of the changes to SchweetWorld. The only function in SchweetWorld that does not begin with SW is InioBlit(), which was created completely by Ian. He is the blitter-master.

Turtle4.jpg

alt=“Turtle Turmoil”

What Went Wrong

Music was a particularly troubling matter. At first, neither Mike nor I knew exactly what kind of music Turtle should include. We debated using MOD files taken from various archives, but we knew that it was against the rules of the contest. In any case, finding music to match the gameplay on those databases was incredibly hard, and pretty much a lost cause as it was. We looked into some royalty-free MP3s, but we couldn’t find enough to match the style. Finally, Mike just told me one day that he had “thrown a little something together.” Voila! — we had Turtle Theme.mp3. From there on out, he just “threw together” three more songs in Mix Man, and we were set.

The porting of the app to Mac OS X presented much more of a difficulty than I had initially expected. When I first reviewed the rules for uDevGames, I noted to myself that the judges would be highly interested in looking for games that would run on Mac OS X. “Wowzers,” I thought, “I have no Mac OS X compatible code whatsoever.” I decided that this contest would be a great catalyst to get me off my lazy programmer arse and clean up my code for Mac OS X. After I had the graphics engine running entirely under CarbonLib, I proceeded with development as normal. I somehow thought that when the time would come to test it under Mac OS X, simply adding a “carb” resource of ID 1 would do the trick. Ha, not quite! Once the gameplay had been completed, I would spend about two hours at a time trying to get SchweetWorld and Turtle to work in Mac OS X. Around that time, I had completely lost any patience I had for the OS. This went on for about two weeks. The real problem was that I was developing Turtle on a non-Mac OS X compatible compiler, so I had no use of any kind of a debugger. I tried a couple of times to convert it to a Project Builder project, but failed repeatedly. Eventually, through many log files and dialog alerts, I tracked all the errors that kept Turtle from running in Mac OS X, vanquished them, and made it officially Mac OS X compatible (although version b6, the version submitted to the uDevGames Contest, is not).

Turtle5.jpg

alt=“Turtle Turmoil”

Looking ahead

I will go on to finish Turtle Turmoil to a well polished luster, and release a final version outside of uDevGames. After that, who knows. I will probably go back to working on Furae, and begin learning OpenGL for use in an upcoming adventure game featuring a heroic squirrel! Someday I might bring Brainfreeze Entertainment out of a hobby state, but until I can make more than zero dollars per game, I’ll just stick with pizza delivery.

Thoughts on uDevGames 2001

Mike Apolis summed it up best when he said, “It was pretty cool to be a part of a contest that produced a good handful of games for the Mac in two months.” I share the same thoughts as Mike. As a Macintosh developer, the chance to create a project and have it put on display against one’s peers is a tremendous driving force. This force fuels the drive for quality, at least it did for me. It was this “push from behind” that made creating this game in such a short time so much fun.

I think that the two month time limit was a bit tight, but very healthy as well. For me, it presented a worthy challenge and created a very strong desire to make as polished and enjoyable a game as possible in a minuscule amount of time. Somehow, amazingly, I managed to fulfill my expectations of myself and had a great time in the process.

Having to submit my source code was comparable to being a magician and not wanting to give away the secret of the trick. However, I realize that iDevGames is working towards building a community where all Macintosh developers can benefit, regardless of level. Anyways, how can other magicians come to be if they don’t also learn the secrets of Macintosh game programming? Merci beaucoup, iDevGames!

Details

  • Developer: Brainfreeze Entertainment
  • Genre: Arcade/Puzzle
  • Site: www.brainfreezesw.com
  • Team size: 3
  • Released date: September 19, 2001
  • Project length: 2 months
  • Development hardware: iMac DV 400MHz (320MB RAM)
  • Critical applications: CodeWarrior 5, Infini-D, Resorcerer, MixMan Studio
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • email
  • Slashdot
  • StumbleUpon
  • Technorati
  • TwitThis
  • Diigo
  • NewsVine
  • Reddit
  • Tumblr

Further Resources:

About the Author

Formerly based in Japan, the game mecca of the world, our Editor-in-Chief Carlos Camacho has been a driving force in the Apple Mac game industry since 1998. His editorials, provide depth and breadth of analysis, as well as a global perspective on the Mac and iPhone game development market. Combining original thinking with exceptional knowledge and experience of the gaming industry, Carlos writes about a diverse range of topics such as the future of gaming on the Mac, the state of iPhone game development, as well as market strategies to assist Mac and iPhone developers and publishers make sound commercial decisions.


iDevGames Forum

iDevApps Forum