It's a bit more complicated than I initially planned on, but I decided to go ahead and challenge myself. I've written a lot of 2D games in my life, but never a 3D one. So, my goal was simple. I set about with the concept of making an arcade-style action game that is done entirely in 3D.
Here's what I wrote in my design doc:
- Code: Select all
You pilot a giant mech using a hybrid FPS/third-person camera. Your mech guns aim where the mouse is located, torso-twisting to be able to reach that spot, and the mech's arms will tilt to aim up/down. Mouse-buttons fire. (Left=primary, right=secondary.) ASDW controls move the mech. (A/D rotates, W/S forward and backward.) Movement is not instaneous, so the mech requires time to aim.
Game takes place on terrain, with sparing 3d mesh buildings and such as backdrop. The mech is mostly attacked by vehicles (tanks) and aircraft (helicopters, jets). Game levels work as a series of triggers in the map; You move into an object trigger, and enemies and such are spawned.
Levels are driven from a single Egg, which loads references to other models and terrain. Lighting, environmental data, etc are stored in tags in the Egg file. A Python file is loaded with each level that might define additional in-game logic.
Game play is simple. The intent is to be a 3d free-form arcade shooter without too much complexity. Waves of enemies attack and you survive, simple as that. Levels will consist of a set of sub-missions within a single level which you can complete in any order. Visiting locations will trigger events and start a sub-mission. (This gives the player a chance to explore the map and find additional weapon icons, or possibly to be ambushed.)
Your mech will take hits and has an armor rating. When your armor is gone, you are destroyed. As you fire your weapons, you generate heat. It will dissipate slowly, but you can "dump coolant" to speed this up. Coolant is in limited supply.
Enemies will drop weapon and coolant refill icons when destroyed. There will be additional supplies air-lifted inbetween sub-missions.
I don't have much to show yet, but here is a video of a critical failure in my ground-finding code... Resulting in flying tanks!
Flying debug tanks!
Also, here is my initial concept for the mech that you pilot. I modeled this in Lightwave and converted it to Egg using Blender and Chicken. It weighs in around 8.5k triangles and is fully normal/spec mapped.
I hope to have more here soon, as I'm starting to drop in something that's more than just boxes and cylinders for enemy/object stand-ins.