Category Archives: Life

Things related to our personal life.

Dev Journal: Tank combat meets Mario Kart?

New game project!

So I’m sort of working on a new cross-platform game. The basic idea is “local splitscreen/networked multiplayer tank combat with easy touch control that’s fun for me and my kid”.

Basic movement. Ugly as hell but hey, four players!

I spent a lot of time getting really flexible split-screen support in. I can add as many local players as I want. In addition to specifying the window size, I can specify their rotation. Touch controls smartly adjust.

A real physics engine?

The irrBullet hello example running on an iPad. Man, what is with that floor texture!

Hey, how about real physics for the tank movement? Let’s integrate Bullet (with some wrapper help from irrBullet)

I had a feeling I wasn’t going to end up using it because of speed and networking issues, so this was mostly a for fun side diversion and practice.

Ran IrrBullet’s Hello World example on the iPad and the Nexus One (Android). Decent speeds, especially on iPad.

Plugged it in for the tank physics. The only way I could get reasonable tank-like movement was to use eight “raycast wheels” per tank.

It turned out quite computationally expensive and I could see it was going to take approximately four hundred years of tweaking to get player controls to feel “right”. Screw this.

So I dumped Bullet and decided to just do my usual homegrown cheapo physics. Not as good, but easier to tweak and runs fast. Looking forward to using Bullet in the future for something though.

Making a test level with lightmaps

A crappy test level is created in Max. I use “Point helpers” to mark the position and rotation of spawn points. Easier to see in max than dummies.

I use max’s “render lightmaps to a texture in an intelligent way and apply the texturing to the second map channel automatically” feature.

Real tank models and basic combat

Tanks can now smoke and blow eachother up.

More progress:

  • Tank models licensed from from Mighty Vertex
  • Functional health bar
  • Tank shadows
  • Reaction physics when shooting/being shot
  • Crash sound effect when hitting another tank.

Next up: Turret movement…