Kreep Alive by AViTT
Simple top-down Zombie Horde Shooter.

Stay alive as long as possible against 20,000 zombies.
Controls:
Game Pad(Recommended)
- Left Stick - Move
- Right Stick - look
- A/X - fire
- bumpers/triggers - rotate view
Keyboard & Mouse
- WASD - Move
- Mouse - look
- Mouse Click 1 - fire
- Q/E - rotate view
Mac Install
Unzip and run sudo chmod 777 ./KreepAlive-Mac.app/Contents in the terminal from the folder with the game in. Then in system preferences->Security & Privacy there should be an option to allow you to run it even though its not from the app store.
| Youtube | https://kreep-alive.s3-eu-west-1.amazonaws.com/KreepAlive-Win.zip |
| Original URL | https://ldjam.com/events/ludum-dare/46/kreep-alive |
Ratings
| Overall | 2386th | 2.792⭐ | 26🧑⚖️ |
| Fun | 2369th | 2.563⭐ | 26🧑⚖️ |
| Innovation | 2225th | 2.688⭐ | 26🧑⚖️ |
| Theme | 2342th | 2.833⭐ | 26🧑⚖️ |
| Graphics | 1964th | 2.958⭐ | 26🧑⚖️ |
| Humor | 1938th | 2.048⭐ | 23🧑⚖️ |
| Mood | 2088th | 2.804⭐ | 25🧑⚖️ |
| Given | 15🗳️ | 10🗨️ |

https://www.youtube.com/watch?v=Fy0aCDmgnxg
Othwise this would this is a solid subbmition
I had trouble with the keyboard and mouse controls, sorry I do not hae any controller available.

@jk5000 @notredamstra @doot @gameovermexico Thanks, I agree with your feedback too. To clarify, this project was deliberately over scoped and is intended mainly as a prototype and proof of concept to see if I can use Unity DOTS to achieve massive performance and render thousands of enemies (20,000 - 144hz for my pc). In that sense I'm very happy with the result. I had problems with the vertex skinning shader which sucked up most of the jam time. Now that's all working I can add plenty of juice, sound effects blood splatter, zombie variation etc and pickups so you are actually able to survive. Although it won't count for the jam, I do now have a solid prototype I can develop into a full game in the future.
@geri @lazzydev72 Thanks for playing and rating, glad you enjoyed the game.
But it definitely needs polish to make for an enjoyable gameplay:
- Some background music and sfx would do wonders for creating the atmosphere
- As it is an infinite shooter, you need to display some stats to the player on the game over screen. Like: you stayed alive for this many minutes and killed this many zombies. I know there is a tiny number of zombies killed at the button, but when you're shooting, you're not really paying attention to that. And without the stat screen at the end, I have no real incentive to try again and do better.
- Something to refill your energy bar would be nice. Because otherwise it also feels sort of tacked on. It just keeps depleting till it's gone and that's it. It provides no further interactivity and stops serving any purpose.
- Ability to control the camera would be nice (zoom in and out).
Good job on finishing a jam game!
Nice game overall. I agree that variety would help. Nice job!
I found with my demon hunt LD40 jam game that unity slows down after about 100 skinned meshes due to the cpu bottleneck and overhead of processing the animation. So there is a technique to pass animation data to the GPU using a texture that has the bone matrix transforms encoded within it. This means those characters are not skinned meshes at all and are, in fact, just standard mesh renderers which have the advantage of being instanced too(draw thousands in a single draw call).
That's just rendering though, how to calculate AI for that many agents too? That's where Unity's new DOTS api come in to play, Demon Hunt could, at a push, simulate 2000 agents around 30fps with optimised steering behaviour and a quad tree to optimise the neighbours lookup. That's good and almost up to Left 4 Dead numbers but I wanted more. So I ported the steering behaviours over to DOTS for this jam and just a basic implementation, without spatial hashing to find each agent's neighbours, enabled 20k zombies. After adding spatial hashing using a NativeMultiHashMap container, I can now push it beyond 100000 and still keep above 30fps. However for this release 20K running at full fps is a strong proof of concept.
The offset is intentional, it shouldn't increase as you get further away though, it's set 3m in front of the player. Perhaps it is more noticeable as the energy runs down and the camera gets closer. So I should reduce the offset the same as the camera distance so it isn't so jarring.
Its a twinstick top down shooter like geometry wars but with zombies that could potentially run on mobile devices so tried to keep controls minimal, even rotating the view is a bit much but will be needed when there's more scenery. I considered adding aiming which would have a zoom but didn't feel it would add much.
Good point about adding the stats to the Game Over screen, I will add that in the next release, thanks.
Had to pull out my windows laptop for this. Oh boy my laptop didn't like it one bit! :fire: :computer: :fire:
Buttery smooth 10 fps. ne me gusta.
Art style is relay nice and the shadows give it a creepy atmosphere! Game play needs some work tho.
So as other have said, sounds and some hit feedback would be kind of critical to make it feel just better enough to be fun just slaughtering through the thousands of zombies. That and the crash fix as well. After that, pickups to get different weapons to enhance the zombie massacre and you've got the start of a fun time waster experience.
On a post-compo version, you could add a high score screen at the end of the game.
@archimagus Yeah DOTS is really powerful but there's a lot of head scratching involved so was tough working with it under the time pressure of ludum dare. Not sure what's causing the crashes, I had them too occasionally but they went away so I published it. Sorry they are still happening, its pretty disappointing tbh. Yeah fully agree those things are all planned just didn't have time to put them in for the Jam. If you follow me you'll get notified when I post updates after LD.
Thanks for the feedback both of you.
https://forum.unity.com/threads/when-animated-gpu-skinned-instancing-goes-wrong.512279/
Checkout my forum post ^^ about Skinned Instancing which has source code for for my first failed attempt and some alternate solutions. It's actually very close to working and formed the basis of this project. My maths was correct but the texture format I passed to the shader messed up the values. The Unity Blog has a working example of skinned instancing which is what I referenced and used for a previous version but it will not work out of the box with DOTS, also linked in the forum. I hope to update the forum with my results from this project too.
The Ai code has already been published as the source code for Demon Hunt and includes quad tree generation and optimised steering behaviour. The only difference is it uses standard mono behaviours. It's the same logic here just ported to DOTS to run in parallel. Also there are other open source projects available that do similar things with zombie hordes in DOTS, lookup DOTS of the Dead and converting you game to DOTS with Mark Geige. As learning material I would recommend Daniel Schiffman's nature of code series on the coding train on YouTube. He breaks down the concepts and explains Ai steering behaviours and is what I've have based my work on.
Also happy to answer any questions you may have as you get into it.
Oh, and never stop with the puns :wink: