I’m working on a new zombie survival themed game, inspired by roguelikes and my work on Liberal Crime Squad. It’s a flash game playable in the browser, and I’m doing weekly updates. I’ve been remiss about sharing these weekly updates on my own blog, so I’ll go ahead post the last three weeks’ updates. Each Friday, I’ll post another update.
January 20th, 2012 – This week I fixed a couple of bugs, then got started on the next core gameplay element — melee attacks and zombies hitting you. This went pretty quickly because I’d already implemented it in the earlier build, seen in the latest preview video, so it finished up fairly early, including a completely new weapon (the knife). Once player death was in the game, I added a reset button and tweaked some numbers to play with balance and feel for the game, such as making zombies handle difficult terrain much more slowly than humans, making zombies sturdier, and slowing down your move speed.
I then enabled door opening, and added door closing by holding shift when bumping into the door. I’m not sure if that’s the best way to handle it; maybe clicking the door, or having shift be a global interaction-on-bump key, complete with icons over things you can interact with while holding it (push/pull icon over a piece of furniture, open/close icons over doors, etc). I have to think about that some more. I moved on to flashing the player and zombies when they take damage, which I think is a small thing that really helps the feel of the game. The videos showed zombies flickering briefly when hit, but I prefer this. I then added a minimap in the bottom of the screen, which shows a scrolling view of the local area of the city you’re in, and remembers what tiles you have explored, so you can start filling out your map of the area. The underlying map used by the minimap can later be used in a larger map too.
After serious consideration, I think that point-and-shoot isn’t very compatible with the way I’m physically presenting the world, and the very tile-based gameplay I’m going for, so I started to think about other ways to target enemies of your choice. The last thing I did for the game was put the ability to click a zombie and force all attacks to go for that target. The lock-on is only lost if the zombie dies or drops out of range or view; you can shoot past other zombies to target one in the back.
January 13th, 2012 – I started the week by working to optimize the lighting and field of view calculations, substituting a faster but more restrictive algorithm. Performance gains seem to be good, but I’m still testing on a relatively fast machine, and will need to hear how the game is running on other computers as well. I added zombies, zombie movement and hunting, window breaking, and shooting. I needed a break from just re-implementing old features, so I also added a crosshair that shows on the currently targeted zombie if the attack button is being held.
The previous overlay for bullet trails actually used a map-sized bitmap in memory that was written to and erased from on a frame-by-frame basis, which was forgivably clunky on a small map, but proved completely unfeasible on the huge map I’m currently using. The new tracer fire looks almost the same, but should run much faster — the only major difference is that the layering has the gunshots drawing on top of the player and the zombies, rather than the characters drawing over the gunshots. I liked the other way more, but I’ll need to change how the characters are drawn to support moving them off the map layer.
Of the things in the preview video that aren’t yet re-implemented, the major remaining features are melee attacks, blood, door opening, and items. Weapons are only half-made — they can shoot, and track ammo, but aren’t in the world and don’t interact with the HUD properly.
January 6th, 2012 – I’m in the middle of extending the new engine to support the large open world of the previous engine and integrate the city-generator for the first time. The game is partially disassembled and I’m going through it slowly putting features back in — I’ve done this twice now, because my inexperience with engine architecture keeps catching up with me. Many things, such as enemy AI, combat, and opening doors, are currently inoperable, but can be re-added fairly easily. The city generator is now integrated for the first time, and one sample building is being loaded in. I’m not satisfied with the way the buildings are interacting with the street layout, and have been thinking of different ways to arrange buildings around streets.
Friday Alpha Build – January 20th, 2012
- Click the screen to give it keyboard focus. Click enemies to mark them as a preferred target.
- Use WASD, number pad, or arrow keys to move.
- F to toggle flashlight. No flashlight makes you super stealthy.
- Hold shift when moving into an open doorway to close the door instead.
- Hold space to attack, or bump into enemies to melee them. 1-3 to switch your primary weapon.
- Press escape to reset the game if you die.