My friends and I have been participating in 7 day FPS challenge (7dfps.org/). The goal of the challenge was to create a first person shooter game in 7 days. Since we were already working on a project using Panda3D, we took a little break and decided to try and bang something up.
The result can be seen and played here:
Our project on 7dfps is here:
Source code repo is here:
Code is kind of hacky because you just didn’t have time to make everything the way it should be, but it works (hopefully ). I really really think I finally got a hold of Panda’s collision system.
Core mechanics are:
Use standard WASD keys to move, SPACE to run, left mouse button to shoot, right mouse button to toggle flashlight on/off. The goal of the game is to make your way through dimly lit corridors to the exit portal (rainbow colored box).
Doing just that would be pretty easy, even if you are without a map or a compass and have pretty much no clue to your whereabouts. However, corridors are filled with monsters craving your flesh. So you need to do your best to sneak or outrun them, because you start with only 4 bullets in your gun in one hand, and a flashlight in the other.
Zombies react to sounds and your distance: they can sense you if you get really really close to them, they can hear you if you walk really close to them, they can hear you if you run near them, and if you shoot your gun they will hear you over long distance. Also, if you turn your lamp on, they can see you as well.
Shooting zombies in the head deals significantly more damage than shooting them in their bodies. You are able to outrun them, but try not to run into bigger trouble. If a zombie is in front of you, but has his back turned towards you, when you turn your lamp on he will start to chase the shine of your lamp on the wall (this is internally called herding). Something like a cat following laser pointer. Use it to keep him turned away from you.
It was a fun little experiment, and I believe it really shows Panda’s capabilities for rapid prototyping. So, if you can be bothered, feel free to try it and give us your comments, we will appreciate all of them