RuTh's  RuThLEss  HomEpAgE


3D Game DesignEnglish
Programming Links
* INDEX * 3D game to-do list * 3D Engine to-do list ( chapter 1, 2, 3, 4, 5, 6, 7 ) *
* projection formula * transformation matrices * Bresenham algorithm * Scanline Polygonfill algorithm *
* Spieldesign / game design * Troubleshooting 3D * Irrlicht 3D engine * Blender for Beginners *

Polygonesia — To-Do List

This is my old to-do list from the first game prototype from around 2007. In the meantime I started over in a new version of the 3D engine, jme3. I left the old list here as an example of what such a to-do list can look like.

This version of the "game" could open a new procedurally generated level with four different types of landscape, including textured terrain, lakes and plants. You could walk around in it in a first-person view, and I used blue fog under water. The only other structure was an "awesome" (read, newbyish) Serenity-inspired spaceship model. ;-)

Game concept and design: 
- OK Decide on genre, category, setting
- OK Jot down background story
- X Describe characters (protagonists, antagonists, extras)
- * Define missions ("quests")

3D Game engine
- OK Decide on a 3D Game engine -> jMonkeyEngine
- OK Decide on a 3D mesh editor -> Blender
- * Learn how to use them :-)

Hidden Surface Removal
- OK Z-Buffer for spatial depth
- OK Cull back-facing polygons
- OK Clipping

Surfaces and Render States
- OK Materials
- OK Shadows
- OK Fog
- OK Light sources
- * Horizon / Sky Box (implemented, but lacks good graphics)
- X Water
- X Find out how to keep Collada file textures

Camera and player control
- OK Camera attached to first-person player
- OK Controll by keyboard (WSAD): Walk forwards and backwards, strafe left and right
- OK Controll by mouse: Turn left and right, MouseLook (needs constraints)

Complex Entities
- OK 3D scene hierarchy of spatials (nodes, geometries)
- * Find out how to export and load Collada/MD5 files
- X 3D models for static entities (buildings, spaceship *, caves, plants, rocks, crates)
- X Implement animated static entities: Elevator platforms, escalator, doors, trap-doors.
- X Implement dynamic takeable entities: Tools, weapons, food items, clothing
- X 3D models for dynamic mobile entities (player, NPCs, animals, etc)
- X Animations for walking, jumping, fighting, using tools, etc.
- X Characters' looks need to reflect equipment used, armour worn, health.

Game Physics / Collision Detection
- OK Characters must fit through staircases and door openings :-)
- OK Don't fall through floor
- * Don't walk through walls (buggy)
- X Fix bounding boxes for irregularly shaped items (cockpit consoles)
- X More realistic walking
- OK Jumping
- X Running
- OK Gravity (fall off mountain and roofs)
- X Swimming, diving?
- X Climbing? (ladders etc)
- X Flying?

Mouse Picking
- X Pick up and drop items
- X Respond to clicks on door "handles" to open doors
- X Allow in-game buttons and switches to change the game state
- X Target tool or weapon at something or someone

- X Templates for the different kinds of "dungeons" (levels)
- X Randomizer for "dungeon" creation within the limits of the template
- X Implementation of "quests": Missions and challenges, definition of success

- X Create heightmaps for various terrain shapes
- * Implement continuous 3x3-tile terrain
- OK Use procedural textures based on terrain height

Loading game data from and saving it to files
- X Use Java's Serializable API
- X Menu items

- X Head-Up Display (HUD)
- X Inventory (3D selector in HUD)
- X Settings dialog
- X Character generation sheet
- X Splash screen
- X Cut scenes (a.k.a. slide show) :-)

- X Noises accompanying characters (footsteps, *ouch*, *gasp*)
- X Noises accompanying collisions
- X Noises accompanying (de)activation of objects (buttons, switches, doors)
- X Noises accompanying actions (tool, weapons, skills) 
- X Environmental sounds (wind, machines, birds, wood, water)
- X Background "music"

Artificial Intelligence 
- X Antagonist NPC strategies 
- X Waypoint path-finding 
- X Use a ray/picking to test whether NPC sees player?