One of the first and most important evaluations you have to make when creating a game is what your technology situation looks like. This is driven by many factors including what platforms you see the game releasing on and of course what the game actually is. In our case there is an additional factor, we simply don’t have the time to build an engine from scratch. This is a huge departure for me personally as I’ve never worked on a game where I didn’t have a hand in writing large chunks of the engine. Typically we would go through a large technical design process to figure out what tech we need to build for the game. In our case the technical design process still exists but it’s more along the lines of making sure that the technology we license will work for the game we want to make. In addition game design decisions have to be measured against the technology we are using.
Games have gotten bigger and more complex to the point where it’s not impossible to build your own engine but there are so many fingers and toes that the amount of time to write it all becomes a huge issue. Luckily there are several competent engines around that can do the job for the type of game we are creating. We have primarily settled on one engine but we can’t announce which one it is until the final decision is made and all of the contracts are in place.
Of course once you’ve made an engine decision you still have a lot of work ahead of you. Assuming that you’ve done the technical due diligence on your engine you now actually have to setup your development environment to deal with that technology. In our case this consists of having a Perforce repository with all of the engine code and setting up the appropriate directories for all of our source code and assets. This is usually called “the pipeline”. Generally speaking dealing with the code aspect of the pipeline is easy, it’s the many gigs of art assets that need to be carefully tracked and controlled.
You also need to have a system in place to deal with updates from the engine company so that you are able to get bug fixes and additions to the engine. This sounds like it shouldn’t be a problem but if you make any modifications to the engine they may conflict with updates and make it difficult to integrate new features. In general we are trying to avoid modifying any licensed technology as much as possible.
Now once you have a skeleton game up and running on a new piece of technology the really hard stuff begins. You have to begin to figure out how to realize your vision with the technology that you have. At this point we are really just concentrating on prototyping the style of game play that we want to create. This learning process can happen in parallel with us defining the key feature set of the game during this prototype phase. This allows us to ease into development and gradually learn the in's and out's of the technology that we'll need to know to finish the game.