Cirrus, Part 2: Gameplay Updates, Tank Model, Terrain
Finally, I get a day to work undisturbed, and I’m glad to say that it really brought back some good memories of my previous years of game programming/modeling (in addition to being insanely productive). Three parts to today’s update – gameplay, the tank model, and terrain.
Gameplay
After thinking about it for a bit, it seems a bit weird to have the balls only do damage on a direct hit since the chances of a direct collision are pretty slim in a 3D world. I was brainstorming about different possibilities – magnetic/gravitational force towards the enemy, have the ball explode when the enemy comes close to it – but none of those really felt like nice solutions. In addition, I wanted to keep the bouncing factor, since that’s one of the cooler parts of my program compared to other projects. In the end, I came up with a hybrid solution, which says that a direct hit will result in an explosion, but otherwise it will continue bouncing until it is at a rest position. Hitting the left trigger will remotely detonate any balls of yours that are left on the field and cause damage to any enemies that happen to be in the area.
Secondly, the days of infinite ammo are gone, and you must now pick up ammo from the ground – any white sphere at the moment. This will prevent people from just sitting in one place and firing off balls at their enemy without moving – it makes for a boring game. Lastly, I picked up a health bar that we created from a previous project which we spent quite of bit of time on. Yay for code reuse!
Modeling a Tank
So the fun part of today – I spent about 3 hours modeling and texturing the tank. I’m currently using 3ds max for my work, but I’ve used Maya in the past. First, I had a friend draw out perspective drawings of the left and front sides of the tank (top view is also useful).
left side of bunny tank
front of bunny tank
Then, I placed those images into 3ds max as textured planes as guidelines to help me model. It’s very useful to have something to go off of when you’re trying to visualize a 3D object.
Next, I unwrapped the UV coordinates of the model, a step which takes a hell of a long time, but it is a necessary step. Here’s the completed UVW map and the associated texture file that I created really quickly (I was eager to see my tank in action).
UVW map of my tank
quick ugly texture using the uvw map I just created
So much work for one model, and it’s not even close to done – still have a lot of detail to do with texturing and there are definitely spots I could improve with modeling. No wonder art departments for games consist of tens of people. Lastly, I drop in the model in my game world, and now it’s starting to look a bit closer to a game as opposed to a tech demo. I still need to offset the tank off the terrain so I can see the bottom of it, but that’s a quick fix that I’ll do at a later time.
Terrain
Adit implemented terrain over the past few days, and the balls are correctly using the heights on the heightmap, but the normals still need some work. Here’s a quick terrain full of “grass”. Some things we’re going to work on are mip-mapping and terrain splatting.
Comments from anyone are always greatly appreciated, both from a graphics standpoint and from a gameplay persepctive :] Less than a week to go!








