So, as some of you here know, I took part in the Ludum Dare #31 Compo.
That means I had to make a game with a given theme in 48 hours, all art by myself.
I made a top-down survival game where you move with right-click and fire with left-click.
The challenge comes from moving your mouse quickly in order to run away from enemies while still firing at them.
can be found on the LD page above. Including the QC source code for curious people.
Tools I used:
(-OBS for streaming this thing, thanks for everyone who was watching.)
Before the compo I already knew I wanted to use FTEQW for this just because. I also feel like using a Quake based engine would be easiest for myself.
Theme was: Entire game on one screen
, so I started with a stationary top-down camera and point and click movement.
Originally I thought of making the game start zoomed in and move the camera backwards whenever player progresses in order to reveal more of the area.
Of course there were some minor trickery around a lot of things but I managed to get basic code working with my placeholder assets
Later on I decided to make the game a survival game, enemies come in from doorways that you can't go out of, and they hunt you.
After some screwing around I started worrying about art and made this player model, it's a dude wearing green camo trousers and a sleeveless Telnyashka
Interesting thing about the player model is that he is constantly aiming where the cursor is pointing, but the legs/lower body is always facing the direction where he is moving.
I did this by splitting the player model into upper and lower body, lower body only worries about pointing at move target and blending between run and still animations.
Upper body has an animation where he aims as much to the left as possible in the start and as much to the right in the end, so I could have him smoothly aim wherever I wanted him to by changing .frame1time.
Screenshot of the player character first time in the game: (ignore the prints)
At this point I was adding more things into the code while at the same time creating more assets; the map, 3d-models, sounds, textures, everything.
I also cut some corners by making enemies one type only and using the same model as the player, different textures and a bit different animations though.
The enemy model isn't split up into upper/lower body either, there was no real need for that.
Enemies also don't have real pathfinding at all, they just go to a random path node they can see when they're not chasing a player.
Eventually in a tiny map they'll spot player and start the chase. The enemies keep track of a "last seen" for the player, in case they go behind a corner.
They'll run to the last seen point and they have a better chance of spotting the player again without too much risks of getting stuck in geometry.
In the cases where player manages to get away from an enemy so that they can't see him, they'll go wandering around again.
Early screenshot of the map that became the final one:
Time was flying and I needed to make the game prettier and playable. I finished the map and made the textures for it.
Then I also needed to add more weapons, just having a pistol is crappy, so that meant more modeling and more coding.
Both of these were surprisingly fast to do, as well as making the new sounds for them.
I also needed the code in the actual round system, after these things the gameplay itself was pretty much finished. Having Quake/UT-style announcer voices also improve the cool-factor.
Fun fact: Dying was the last thing I implemented gameplay-wise.
Final game screenshot:
Of course, I also needed to revamp the menus. I used my own empty FTEQW project with very minimal menu code in CSQC already.
Just had to modify it to suit my needs a bit better.