Project Prometheus - Kick off!

| No Comments | No TrackBacks

So, I am just a small indie guy, who for the time being are coding everything in my sparetime. The question, I have to pose to myself, is how can I become productive and make anything in a reasonable amount of time? 

I have worked in several different compaines; from small indie outfits, to casual games to AAA productions. Which means, I  know the resources required to do even the smallest polished productions.

 

As usual, the answer can be defined as broadly as toolchain. The answer here could then be something like invest in a game engine or similar.  However, I am not going to do that, and here is why:

  1. At least in the beginning, I am not really interested in making something as big that I need a full fledged game engine.
  2. After working closely with middleware for many years, I have gotten the insight that middleware is often used where it should not; yes it has its place, but most often the decision to use it is made by managers who feel they get less risk by using middleware. My experience is often to the contrary; a quick takeoff often leads into maintaining a big API and code bridge as new versions of that particular API come and go. Often the Middleware does many more things that you really need and you quickly start working around quirks and inflexibilities in the middleware. Why buy a big physics API if all you need are a few line checks and collision detection? It is my belief that in many cases you are much better off just building a small software library that does exactly what you need yourself; this way your coders will also know the code much more intimitately and won't spend hours and days debugging other peoples executables. Of course, this assumes that you keep the coders away from the usual temptation of overdesigning their own code; it must be kept tight, fast and agile.
  3. Most game engines end being big monolithics pieces of c..p, which become contaminated with thousands upon thousands lines of "don't touch it code". Instead, what you really want is an architecture where it is very easy to plug in new components, as well as replace or remove components you don't want. If the realtime GI system is too slow and doesn't give the results you want? Well just take it out and put in a new one. Why doesn't anyone offer the perfect lego - piece it together in the way that makes sense to you engine?
  4. It seems to me, that new indie names are proving over and over again that you cannot separate technology and game play. Games like Braid, Subversion, Prince of Persia, Spore, Ragdoll KungfuLove, and many more prove this. You can often easily spot the games, where you can see a team that understands that with the right of creative programming mind on your team, you can look beyond the technology and you know that anything is possible. Of course, like there are a lot of artist and designers who seem to only think in the world that their tool provides, so are there many programmers who are extremely constrained in their world view. Thus my conclusion is that to make something really interesting, you have to allow your programmers to go beyond the usual factory work (and of course have the programmers who have the skills and mindset to be able to do that).

 

So I am working on a new toolchain, which I am taking much care not to overengineer; I love programming and technical problems but I also want to spend time on actually making games as well. I will tell you more on my next posting on Project Prometheus; untill then I will heartily recommend that you read Hackers and Painters by Paul Graham.

No TrackBacks

TrackBack URL: http://www.lai.as/cgi-bin/mt/mt-tb.cgi/8

Leave a comment

About this Entry

This page contains a single entry by gorm published on June 28, 2009 11:12 PM.

Gotland Game Awards 2009 was the previous entry in this blog.

Project Prometheus - Definitions & Requirements is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Pages

  • Games
OpenID accepted here Learn more about OpenID
Powered by Movable Type 5.01