Day before the compo

I decided that I will talk about my basic gameplan before the competition begins. I plan to create a 3D game that, I hope, will be rather diverse with the interactions, goals, and world designs. This will be quite a challenge, but I am confident that I can do it.

I will be creating a simple 3D game engine from scratch, which is something I had quite reasonably been able to accomplish during the last Ludum Dare -- though I didn't have much time after those two days to complete the actual game.

Some may be wondering why I am not using something like Panda or Soya. This basic reason is because I want people to be able to play the game from source with a minimal number of dependencies -- just PyGame, PyOpenGL, PyOde, possibly NumPy, and the standard modules. When I tried to test out Panda it actually didn't work on my machine. I didn't bother to spend anytime trying to get it working, but I figure I might not be the only one to run into problems using it.

I expect the PyOde physics and collision detection to be the most complicated aspect of the game's development. I originally did not want to bother with using PyOde, but considering Python's speed I think it might be the only reasonable way to go. Back in the last Ludum Dare I rather successfully implemented ray-triangle intersection tests and were able to test about 60 intersections per frame at 60 frames per second -- which was somewhat reasonable. However there is only so far you can go with simple ray-triangle intersections (for example my character's head and upper body would pass through low ceilings.)

As far as the actual game design goes, I decided that I will not wait for inspiration. I will immediately begin programming the sort engine that I want to use. I would inevitably come up with at least a few good ideas of how to put it to good use. My brother, of course, would no doubt also come up with a few ideas of what I could do with it -- though I will be doing pretty much all the work.

The first day will be used for programming the actual 3D engine part. By the end of the day I expect to have animated 3D meshes and a basic scene graph up and running. The animation will be achieved by simply swapping out meshes (either display lists or vertex arrays) for each frame. I considered using simple vertex interpolation, but my initial tests were not too promising -- the slow down was unacceptable.

The engine will have next to no optimizations. Instead of geometry culling I will simply be using low-resolution meshes and textures with graphical detail roughly on par with the PlayStation 2. Worlds may be divided out into rooms or areas connected by doorways or paths (similar to The Legend of Zelda: Ocarina of Time and many other Nintendo games.) This will provide, I believe, sufficient optimization for what I would want to accomplish. The lower mesh and texture resolutions should also help speed up the graphic design work.

Here is a basic run down of my planned schedule:

  1. 3D graphics up on the screen with basic animation and scene graph. Music selection.
  2. Game states, and beginnings of Ode based game entities. Testing and tweaking Ode.
  3. Character controllers, entity interactions, simple effects, music and sound effects, etc.
  4. Finishing programming. Beginning graphics.
  5. 3D Graphics, textures, animations, world designs, etc. Integration of content into game. Testing.
  6. 3D Graphics, textures, animations, world designs, etc. Integration of content into game. Testing.
  7. Tweaks, adjustments, final bug fixes, final testing, polish, etc. Release.

(log in to comment)

Comments

You're very courageous, I'd say.

Heh, I'm probably just going to use heuristics in 2d :P

Once again, very brave, and I, for one, am very much looking forward to seeing what you come up with!