Howdy!
Howdy everyone, for the last several weeks I've been working on heaps of things, so I'll just break them up below into their broad categories and touch on each below:
Zombies
The game now has zombies that can be interacted with, and they animate!
https://youtu.be/ivWoyy9e4bE
https://youtu.be/a3AyFdJW1vY
I've done heaps of work to setup a lot of their basic systems and get them integrated into the gameworld overall - but this isn't nearly finished yet. Lots more to do.
Zombies - Gameplay
Right now the zombies respond to gameplay in a few ways:
- They can be shot! They recoil when hit based upon where they are shot (thanks to physical animation), and are incredibly resilient unless you shoot them in the head - in which case they drop dead almost immediately (depending on weapon calibre).
- They can be shoved! Zombies can be pushed away from the player, and they responding by falling in one of the 4 cardinal directions with a unique animation depending on which side they are shoved from - they then ragdoll on the floor for a bit, then they get back up.
- They can follow the player! Right now if they spot or hear you, they will slowly shamble in your direction.
- They can die! Sounds like sort of an obvious one - but there's heaps of strings attached that you don't ordinarily notice during gameplay. Dying isn't as simple as deleting the zombie, you also need to transition into a death state, then handle loot/corpse dropping, and eventually telling the zombie manager to free this zombies resources.
Future work:
Currently, they can't attack the player or influence them in any sort of way, but it wouldn't be much of a zombie game without that - so eventually they will not only fight back, but actively pursue you around the environment by vaulting, jumping, and falling around/out of buildings etc. I havn't started on this feature yet, but it's something i'm really excited to work on.
Weapons!
I've started properly integrating actual weapons into the game. These above are some video examples of store bought animations which I've been bringing into the weapon controllers.
The animations themselves look great - but properly setting up all the state for a multiplayer game isn't as easy as you would imagine, and is still mountains of work in its own right.
The guns can be fired, reloaded (with stages), dropped, etc - but it's mostly half done atm. I'm looking to complete your basic stock standard suite of FPS features you've come to know and love from other games.
Some screenshots:
The above are just a collection of some of the games high powered weapons, but here's a more complete list:
Rifles:
AK47, M16, M14, HK416, DTMDR, FAMAS,
High power rifles:
SVD, Kar98k, M24
Pistols:
1911, p320, Desert eagle
Shotguns:
Beneli M4, Ithica mag10, mossberg, spas12
SMGs
AK74u, mp5, honeybadger, mac10, Uzi.
All the work atm is going into setting up the individual classes of firearm, tweaking their stats, their spread, ADS FOV, etc - and then later on I will give them a fresh coat of paint and sort their models out - but for now, it's all prototypey polygony type content.
Weapon handling
I've tried a few different ways of handling weapon spread. Some methods were much more realistic then others (buckshot can brain people like a laser at 100 yards), and some were more stock standard for a vide game, and you can see the results of some of those methods below:
Early spread test.
Early spread test.
Early spread test.
Early spread test.
Early spread test.
Early spread test.
Final spread sight picture:
Final spread sunflower pattern close up:
I decided to settle on a standard spread pattern, rather then a random one. I just couldn't stomach the "realistic" gameplay of lining up a shot on a zombies head with a shotgun - and having every pellet just totally miss. It doesn't feel rewarding as a player because what we've been taught through the years is that if I aim at the enemy, and click, they take some damage - not 0 damage.
Ultimately I think what I've concluded after tweaking and playtesting, is that I want a few things:
- Weapon spread is a flat percentage at all times - guns just have some innate inaccuracy
- The weapons animation dynamically adjusts where the bullet is going out (if the player is panicked then their shaky hands will twist the sight picture sending the round off target)
- No spreading crosshair.
I think if I can do these three things well, then the game will have responsive and rewarding gunplay - but there's a long way to go before than.
Zombie spawn manager
This may not look like much, but what's happening in this video is the game is accurately determining (from a list of 100 million points) which point is the closest, and which points are within a given distance (the sphere).
What is this for? The zombie spawn manager! My approach that I'm thinking for the game is to have thousands of potential spawn points littered all throughout the map, and as the player drifts close to them they will be fully instantiated into existing zombies. If the player kills that zombie - that spawn point is fully removed.
The reason I'm going with this approach is to prevent awkward zombie respawning inside of buildings that are either 1. Closed off, or 2. Cleared/secured by the player. I can't stomach the idea that the player can build a fully enclosed sanctuary - and then have the game spawn a stray zombie in a wardrobe.
In a multiplayer game, functionality like a zombie trying to find the closest player to them in order to attack suddenly scale very poorly - and tank the games framerate. Which also means that everyone connected to the game suddenly starts lagging out and having an awful time.
Refactoring the spawn manager to only spawn zombies around connected players - with a hyper efficient lookup, is something crazy needed for making a game like this.
Summary
If you want to follow along with the development more closely, feel free pop into the discord:
https://discord.gg/F3pZhnzeTP
