Trent Polack's site for cats, games, game development, and undeniably powerful sociological insight all with a healthy dose of narcissism.
mittens's Articles In Game Developers
January 28, 2009 by mittens

As I indicated in my brief update last week, I did indeed get a Unity Indie license after some time with the free downloadable trial. I've never been good at constraining myself to the feature set found in a given game engine or game development toolset before but just a few hours with Unity made me a very strong believer in the power the engine had. On the Saturday of this past weekend I sat down on a couch while I was away at my parents' house with my MacBook, opened up the Unity trial, and spent some time while I was watching movies with my parents just playing around with the engine. I was so impressed with what I came up with purely through trial-and-error and experimentation (as I had no internet connection for research/help) that I got the Indie license within an hour of getting back to my apartment on Sunday afternoon.

My goal over the next few months is to come up with and develop one game every four-six weeks that I will upload to this site (Unity has a 3D web applet). The first of these projects is Magnetic Butterfly which is, essentially, a game of King of the Hill where the player controls a tiny butterfly who was born with a giant wrecking ball attached to his body. As a result of this, the butterfly will be a bit unwieldy for the player to control, but the player will need to find a way to knock any nearby enemies off a platform before they do the same to him/her. The "catch" is that the player will have the ability to activate his magnetic charge which will lock the butterfly to the ground and allow players to drastically modify the momentum of the wrecking ball and then aim it in the direction of a nearby enemy for increased force. I got a very, very basic prototype of the gameplay up and running on Sunday night and was actually pleasantly surprised with the results.

Since then I have been spending some additional time setting up the PC in my apartment to serve as my content/asset creation machine -- installing Paint Shop Pro, XSI Mod Tools, and Silo for the texture/modeling needs that I figured would arise over the course of the next couple months. I have also been redoing some of the basic aspects the butterfly/wrecking ball; for instance, I am currently in the process of redoing the chain/rope that binds the ball and the butterfly together to not only look better but to be a much more elastic solution. Here are some screenshots of my development environment over the last few hours while I was screwing around with joints to bind various chain links together (I have since decided to create the chain procedurally, which is where I left off for the night):

I can't even properly convey just how much fun I've been having with Unity since I downloaded the trial. Not having to worry about the finer details of programming for a platform and, instead, solely focusing on the game design, gameplay logic, and the player's interactions with the game world has just been a fantastic change of pace for me. The most annoying thing at the moment is the lack of postprocessing shader support in the Unity Indie license (it's a feature reserved for Unity Pro) but that's only a minor aesthetic design annoyance.

I'll try to write some more detailed development entries in the future; though, preferably, I'll write those at some time that is not an hour or so after I meant to go to sleep.

January 21, 2009 by mittens

It's been a while since I've just written a generic sort of site entry, but this seemed like a fantastic time to do just that. First, I want to thank everyone for all the awesome responses I got on the site, IRC, Twitter, and other mediums to my last entry. That was actually intended to be a useful piece to serve as advice to people looking to get into the game industry but I got carried away with my personal history as I started writing it and just rode that inspiration. I'll write up a proper piece on general advice on how to get into the game industry at some point in the future.

I'm still plugging away on my iPhone project on a daily (or near-daily) basis. I'm having a bit of trouble actually getting to work on the game as a result of deficiencies of the engine I'm using. If the engine I'm using doesn't provide an abundance of tools and scripts for game development then I feel compelled to add in some of the features that I'm certain I will need at some point in my game's development so, at this point, that endeavor is occupying the entirety of my development time. One of the things which interested me the most about the Oolong Engine was how it appeared to offer an abundance of features while still allowing a lot of room for a developer to customize his/her use of the engine. At this point I'm convinced that while the engine does have a solid feature set, there is nothing that really ties one aspect of the engine together with the rest; for instance, being that it's an engine for a touch screen-based platform I would have expected somewhat rigorous support for touch-screen input and picking within a 2D/3D scene. But alas, no such thing seems to exist. It does appear to be under heavy development but given the amount of development I do in a given day at work I like the time I spend with my side-projects to be as focused on core game design and game programming as possible.

That said, I do absolutely love not only my MacBook but also OS X and the development environment that the iPhone SDK and xcode provide. While the IDE is nowhere near the level of polish present in Microsoft Visual Studio, it's still a tremendously useful and functional programming environment. I'm also continually impressed by the capabilities and ease of development for the iPhone/iPod Touch as a platform. It's been a fascinating change from PC development and my XNA projects (which, C# aside, is a very PC-like platform).

I'm so impressed by the iPhone/iPod Touch as a gaming platform that I'm seriously considering putting some (or all, depending on the success or lack thereof) of the money from my first game towards an Unity 3D and iPhone license. Granted, I have absolutely no idea when my first game will hit the App Store (or even what that game will be), but I can dream. Everything I've seen from Unity has me endlessly impressed and I'd absolutely love to get a license for it at some point but it is, right now, a bit out of my price range. Especially given the impulse purchase of the MacBook. If anyone has used Unity for either Mac or the iPhone I'd love to hear some impressions. I also noticed that GarageGames has released a SKU of their Torque Game Engine for the iPhone; the license seems to be more expensive than their past engine releases though, which is kind of confusing. I always thought of GarageGames as offering low-priced alternatives to indies and the price point of iTGE is only $100 less than the indie license of Unity 3D along with its iPhone publishing license. And, from what I've seen, Unity seems to be a far more capable and thorough toolset.

Speaking of such things, is anyone doing the Global Game Jam at the end of the month? I'm still figuring out whether I'm going to head to the Detroit chapter of the thing.

Finally, since I don't believe I've thrown out a plug for these guys yet, Idle Thumbs is the best gaming podcast around. It's surprisingly hard to find gaming podcasts whose speakers have the abilities to move beyond the kind of tired, trite rhetoric you'd get from a typical IGN or Gamespot article without coming off as pretentious or, quite simply, boring. Idle Thumbs manages to do that in a way that I've only seen the Games for Windows podcast successfully do back before it ended months ago. Give it a listen.

January 20, 2009 by mittens

Every now and then it's nice to talk about game development; how to get into it, and what it's like to actually be a professional game developer after years of being a part of game development communities on the Internet. This post was inspired by a blog entry by the ever-fantastic Steve Gaynor. The entry is titled "Informative" and he discusses his approach to getting into level and game design from the perspective of someone who had no idea how to get into game development. It's a fantastic read and is a completely different approach to the way I got into game development.

One way to get into the industry is have the general knowledge of what game development consists of and keep this in mind as one progresses with his/her education. Maybe someone looked up a game school like Digipen or a trade school like Full Sail. I know a number of people that have gone this route and gotten good jobs in the game industry (one of whom is a close friend and colleague at Stardock). There are also a number of people who got into the industry in a sort of traditional training/educational manner. These are the people that maybe knew an widely-accepted path of learning a given artistic or programmatic trade through classes in high school and then continued the advancement of these schools through college. Both of these are very viable methods of learning the necessary skills to get a job in a very unique and competitive industry.

But that's not how it worked for me. And I have some of my personal history and some very unfortunate evidence of my past projects to share along the way.

I grew up with video games. Sure, I also had a fondness for basketball and, eventually, cross-country, but video games were always a consistent force throughout my life. I got a copy of Super Mario Bros. 3 from my grandparents for Christmas when I was around five or six. The problem that I remember back then is that I got this game and I didn't even have an NES. I wasn't sure what their angle was. I thought it was either a mean trick or my grandparents had no idea that a game cartridge wasn't a self-contained video game-playing entity. But I clutched that copy of SMB 3 in my hands for a week or two. At some point I accidentally dropped my copy of Super Mario Bros. 3 in a toilet. After that unfortunate event -- still not having an NES of my own to play -- I had an urgent need to visit my friend's house. He had an NES, see, and I had to ensure my holy grail hadn't been corrupted. Thankfully, it wasn't, and shortly thereafter I had an NES of my very own to play it with. It wasn't until I was eleven or twelve that I really ever started wondering how video games were made. But, that did happen, and it was, as is tradition for the small town of Kalkaska, Michigan, during an incredible blizzard that I started screwing around on a computer. Before I go further, I want to ensure we have the same picture of a winter as I do; these are recent pictures but you can't really tell the difference between back-then and now in this context:

January 4, 2009 by mittens

I've been plugging away on my iPhone project over my vacation and it's been pretty rad. which I'm actually developing using an iPod Touch but shortening it from iPhone/iPod Touch to just iPhone is so much easier. I do want to record just how absurd application deployment to an iPhone/iPod Touch is, though. Once an individual pays the $99 fee for a development license he/she is given access to the iPhone Development Portal. And in order to get a working xcode project from the iPhone Simulator to an actual device is as follows:

  1. Setup the team. For an individual license the only allowed team member is the person who bought the license. The first thing this person will need to do is generate a Certificate Signing Request; this is done through a system application. Once a request for a certificate from a "Certificate Authority" has been made, then a CSR file will be made on the desktop. This CSR file needs to submitted to the Development Portal to allow a team leader to approve it. Once that is done, then the portal will allow team members/admins to download their certificates and install them to their machine. Each certificate is composed of a public key (which is available to the team leader) and a private key (which is available only for the team member).
  2. The next step is to add a list of up to one hundred possible devices that will be used for testing. This is the most straightforward part of the process. Just add in the device name and its unique device ID.
  3. Now an application identifier needs to be created that will serve as a unique identifier for that application and is composed of ten letters/numbers. This key is then followed by a bundle identifier that the developer can create; for instance, mine is
  4. Then it is necessary to create a provisioning profile which ties all of the aforementioned steps together. Mine is "Trent kaboom," and allows to be deployed to either mittens or Stardock's iPod Touch (which I was using before I bought my own) under the use of my developer license, Trent Polack. Once the form is filled out then a file has to be downloaded to the desktop and added as a provisioning profile to xcode's device organizer.
  5. Moving to xcode, a property list file (Info.plist, typically) needs to be filled out since xcode seems to have issues automating its project name/product name/product bundle through the project settings alone. So various information from the previous steps needs to be manually entered here. The main information that needs to be given is the bundle identifier: com.trentpolack.{$PRODUCT_NAME:identifier}. It seems without that ':identifier' modifier deployment to a device will only work once until that installed application has been deleted; adding it, presumably, gives each deployed executable a unique ID that will allow it to overwrite a previous one.
  6. And, finally, a provisioning profile is linked with a given target (executable) through the xcode project settings and serves as a means of signing that executable for use by an attached device. Deployment is impossible without a code-signing profile in place.
December 23, 2008 by mittens

The iPhone/iPod Touch is a pretty rad little platform. It has vastly more powerful hardware and a far greater ease of development than I would have ever expected going into it. The biggest problem for me at the moment is that I don't actually have a Mac to call my very own. Someone deemed me responsible enough to borrow a Mac for the course of the Christmas break so I could finally make good on my long-desired and very loud-mouthed wish to see what kind of independent development environment Apple provided to the public for the platforms. Turns out that if someone can stomach a bit of Objective-C and a lack of Microsoft Visual Studio (the latter being the biggest dilemma), Apple seems to have done quite well for themselves. Even if one doesn't own an iPhone or an iPod Touch, the iPhone SDK ships with an iPhone Simulator which seems to pretty accurately represent the environment (sans the real-world tactile focus). I haven't had more than two days to really experiment with the setup yet, but thus far I'm impressed and I'd like to hear some thoughts from people who have spent more time with the platform.

Hell, from what I discovered shortly before I left for my brief vacation -- where I am so clearly vacationing at this very moment -- it seems that even the Objective C requirement may be negligible. It seems to allow for simplistic integration of traditional C/C++ code into the whole mix. I don't know what kind of exposure any of you readers have with Objective-C but, my god, as far as I'm concerned the less I see of its demonic syntax the better the world will be for it.

The biggest issue I'm facing with the whole iPhone/iPod Touch development experience thus far is that, for obvious reasons, an Intel-based Mac is required for development. I'd love to pick-up a Mac Book Pro or something at some point but, at least right now, that's way above my feasible price point for such a thing. If my short time with the Mini proves productive (and it has so far) I might try and pick up one of those on the cheap. Much like the sentimentality I have for Microsoft's XNA development environment, I think it's another quality step for independent game developers to have such easy access to a prominent and up-and-coming platforms like the iPhone/Touch (and mobile gaming as a whole).

The iPhone and iPod Touch seem to be an especially viable platform for independent game developers due in large part to the superb App Store accessible through the aforementioned devices and iTunes. In the mere two days I've had my iPod Touch I've already racked up about sixteen games ranging from free downloads to $0.99 titles all the way up to $9.99 (the maximum value I've seen). I'm not sure what kind of success the developers of Fieldrunners, Galcon, Enigmo, and Trism (to name a few) have seen but their titles seem to be very popular on the App Store. Galcon, especially, seems to have had surprising success given the very uniquely-nerd sort of gameplay it represents while being crossed with a more approachable and palatable mobile presentation.

If anything, it would seem that Apple made the accessibility of the App Store to independent developers almost too easy. For every great gem I've found hidden in the gaming sections I have seen three or four more titles which seem to present some meager offerings of something that can only barely resemble careful game development or a sound game design choice.

I am looking forward to getting back to my iPod Touch game experiment in a few days. I haven't had nearly enough time to provide much more than these barest of first impressions so, as I said earlier, I'd love to hear from others. I'll surely write some more on this topic as I get a bit more reacquainted with OpenGL (the ES persuation). I hope my first small game test, lovingly given its ridiculous working name of Asplodestroids!, will at least see a glean of the light of day before I find myself Mac-less again. It's also Christmas so feel free to toss a Macbook Pro into my stocking if you're feeling so inclined.

Because I'm sure that was someone's first instinct after reading this.

November 16, 2008 by mittens

Short story made shorter: I'm putting my XNA Action/RTS Cubegasm on hold. My framework isn't nearly robust enough to make the kind of game I want to make and, since this is strictly a hobby project, I'd rather not have to put all of the gameplay on hold while I flesh out the necessary backbone in order to get to the "fun stuff." I didn't see this as a reason not to release the current code for the project, though. So I'm doing that. You can get the source package: here.

It's not a very big release. Nor a very done one. It basically doesn't do anything. It'll load up a game map with one fortress firing bullets (that never get destroyed) at the player's five cube-spawning points. That's about it. How exciting!

Replacing Cubegasm is a game that I can actually play alongside development (also using XNA); it's called Brain Snack. I'll post some more information/screenshots when they're not embarrassingly bad.

September 29, 2008 by mittens

There are, as of my last counting, approximately a gazillion journalistic locales which offer game reviews on the internet or in print. There are not, to my knowledge, any columns which analyze a game mechanic within the context in which it appears along with detailing what is actually fun about the mechanic, and how it could be improved or exploited in the future. This particular edition of Mechanics will do none of that.

Majoring in English in college meant two things: I read a lot and I talked about what I read a lot. There is nothing more self-indulgent and pompous than a bunch of people sitting around a classroom talking about books in the setting of higher education. College students and, more to the point, English majors come up with some of the most absurd talking points based on their interpretations of a given text that it all becomes laughable at some points. I'm talking discussion matter along the lines of absurdity if I was to say that Clifford the Big Red Dog's existence merely served as a metaphor for the presence of communist Russia in the global sociopolitical scene and all of the people he comes in contact with in Norman Bridwell's line of children books are all analogous to various world political figures throughout the 1950s and 1960s. Of course such a theory is absolutely ridiculous, but when intellectuals are asked to find a deeper meaning in a classical text there are instances of such crackpot theories.

June 24, 2008 by mittens

In lieu of actually doing any development tonight I, instead, chose to write a gaming article (still no Metal Gear Story; I'm still thinking about that) and then a particularly-lengthy Daily. Now, since I've given up hope of getting work done tonight and have accepted the idea that Battlefield: Bad Company will dominate my nights for the next few days, I'll write about what I'm actually working on for the moment.

I've never worked on a project that had any sort of physics simulation occurring within it before; when I found out that Havok released their SDK that could be used by hobbyists and by any commercial product that retailed for less than $10, though, I retreated from my previous stay at Hotel XNA and back into C/C++ Direct3D9 Land. I didn't want to spend months writing a framework and a rendering engine, though, since I'm currently in the kind of mood where I want to put out a game every two-three months -- a timespan which is variable based on game release dates, occasional social interests and obligations, and work schedules. It is a direct result of this mindset which led me to using OGRE. I spent a few days configuring my project, the engine (and all of the modules for it which I planned on using), and Havok in Visual Studio and then got about implementing a basic Havok simulation and rendering aesthetic worked out.


April 27, 2008 by mittens
For this update, my role in Asplode! was absolutely minimal. While I'm in the middle of a mild crunch for The Political Machine 2008 and then away at Rochester, New York for a Paramore concert, Josh was working asininely hard on version 1.2 of Asplode!. As started, my role in this update was purely peripheral as, in my spare time, I've been working on the start for Bipolar and taking some of Josh's code for his game and turning it into a more generic library that both of us can use in our curren...
April 20, 2008 by mittens
Yeah, so, I'm releasing Asplode! now and such. And, along with the game, comes all of the source to the game. I originally wasn't planning on releasing the source but as development winded down and I started to play the game for longer sessions I soon realized that the game became virtually unplayable on my machine after about seven-eight minutes. I thought this may have been a result of poorly-managed graphical assets so I took a couple days to optimize them (and, as a result, the VectorMod...
April 17, 2008 by mittens

I've been playing a very time-intensive game of musical chairs with various three-dee engines over the course of the last two-and-a-half weeks in an attempt to find the one that would be best suited to my particular development style and the kind of game I want to create. And I can safely say that, tonight, I have reached the ultimate solution. That's right, after toying around with things like TorqueX, Torque Game Engine Advanced, OGRE, Irrlicht, Nebula3, and, finally, PowerRender. The latter two of the list appeared to have the most potential, with PowerRender being the closest thing to what I was looking for, but the most recent iteration of the engine is still under heavy development and, what was the most troublesome, seems to be getting very infrequent updates. So, after all of the wasted time, I decided that I was going to dig out my old C++/D3D9/D3D10 framework and just rip out the D3D9 parts for use in a new framework which I could use in the future.

I got exactly an hour-and-a-half of work done on that last night before I realized that it felt way too much like the kind of engine work I do at my job every weekday. So now, and for realsies, I'm back with XNA. I'll be releasing Asplode! this weekend in its terribly-performing state (and open source) and, hopefully, everything I learned in the development of that will help me create a far more useful toolset this time around as far as memory management is concerned. The most important lesson I have with me that I learned from Asplode! is that the most important thing about memory within a managed environment isn't necessarily the allocation of memory so much as it is the deleting of it. Apparently the garbage collector is a wicked beast that must be appeased in order to maintain stable gameplay performance. I don't know. I'm still getting the hang of the intricacies of C#. When I was working on Asplode! -- and this will be readily apparent in the source if people peruse it -- I didn't know anything about C#. I simply coded as if I would code a game using C++ and, when code didn't compile, I read up on why the error occurred and what I needed to do/learn in order to fix it. Hopefully, this time around, I'm a bit more well-prepared. It also helps that Drilian and I are teaming up for some of the more game-independent stuff.

April 5, 2008 by mittens
Last weekend as a result of being hungover after my first time drinking in over a year and waking up on a couch in the apartment of a gay nineteen-year-old friend of my friend's and the first thing I saw being a Hannah Montana poster on the ceiling above the couch where I was sleeping I bought a license to TorqueX Pro. I've used other GarageGames products in the past for various experiments and random fun, but I've never used one to make a full game. I thought I'd use TorqueX for my new game ide...
March 25, 2008 by mittens
March 17, 2008 by mittens
At this point, I think that it's fairly safe to say that the meat of Asplode! is finished. All of the primary gameplay is in place, the enemies are all implemented and handled in a state that I'm fond of, and the player controls, responses, and such are all implemented. At this point any more features that I add to the gameplay portion of the game are either polish points or experimental ideas that I may or may not keep as part of the game (a few automatic weapon upgrades, various ideas as to ho...
March 13, 2008 by mittens
Not that I spent recent nights playing stuff like Army of Two, Mystery Dungeon: Shiren the Wanderer, Company of Heroes, Master of Magic, Supreme Commander: Forged Alliance, Bully, Ratchet & Clank, Geometry Wars, Everyday Shooter, Advance Wars: Days of Ruin, or God of War: Chains of Olympus instead of actually updating my dev journal or anything... But, yeah. Pretty much did exactly that. I've still gotten a bit done on Asplode! every night but, by this point, I'm mostly making various optimi...