Whoo! Talk about madness and mayhem. In case you don’t want to read up on what I worked on/accomplished today and would rather just shoot some stuff and do a bit of rocket jumping, hit up 7dfps.hellocld.com and play my current prototype, complete with a weapon pickup that turns a rocket launcher into a shotgun, a mini health pack, and some very dumb enemies. Here’s the controls:
- W/A/S/D – Move forward/left/backward/right
- SPACE – Jump (hold for a higher jump)
- MOUSE – Look around
- LEFT CLICK – fire weapon
MOVING THE ENEMIES
So I spent a good part of yesterday afternoon and this morning trying very hard to craft a sort of controller for all the enemy and player movement. The main reason behind this was I needed a way to apply a force from an exploding rocket to all enemies within the vicinity. As far as I could see, the CharacterController object couldn’t take forces like a rigidbody, so I started trying to figure out how to simulate simple forces on them. I’d venture to say I tried a good twenty or so variants on the code, but nothing seemed to work. Finally, after getting sick and tired of it, and almost eliminating rockets and explosives from the game, I decided to take one last look at the CharacterMotor provided by Unity for the character controller templates. GUESS WHAT IT CAN DO. So yeah, hours spent trying to find a solution to something that already worked, and worked better than I could craft.
The code for the weapons was designed to be as flexible as possible. Tweak a couple variables, and suddenly a pistol becomes a shotgun becomes an uzi becomes a rocket launcher. This worked very much in my favor, as I wanted to be able to modify the weapons via items, or powerups, similar to “Contra”. And just as I had hoped, it worked like a charm. A simple script modifies the weapon’s specs when the player collides with the item box, and presto! A new weapon. After that, I did a much simpler implementation on health items, and can have medkits of any size in the game as well.
One thing that’s going to need a rework is the enemy AI. Fortunately the setup I landed on today seems to be pretty straightforward, so implementing a few different AI scripts should be pretty simple. Outside of coding, tomorrow I’m going to start working on some sketches for enemy and level designs, and create a few new level kits. If all goes well (hint: it probably won’t) there should be a much prettier build to play with tomorrow night. Who knows, I might even get lucky and come up with some decent sound effects too!