This isn't normally the type of app HN sees, but I figured I'd show off what I've been working on.
It's written in python using web.py with a mysql backend. Lighty is the HTTPd running on FreeBSD 8.2.
It hosts games of Humans Vs. Zombies and Assassins.
I actually finished it about 5 am Monday morning, but I've been waiting for a license to host HvZ games before posting it to HN.
Humans Vs. Zombies is basically a giant game of tag (600 players is not unheard of, though my uni has yet to break 150) played with nerf blasters. It's insanely fun, and played on a lot of college campuses. http://humansvszombies.org/ has more info.
Why I wrote it: Gnarwhal Studios Inc. (the guys who own the trademarks to HvZ) already have their own (free) HvZ hosting software that my school used for a game of Humans Vs. Zombies. From the perspective of the average player's experience using the software, it's fine. However, for various reasons, their software didn't really like our admins.
One of the major deal breakers was that, midway through our game, four students/former students died in a plane crash (my uni has a pretty good flight program), and in honor of those who died, the admins decided to put the game on hold for a day. Gnarwhal's software offers no way to pause the game, and prevent the "zombies" from starving and actually dying. So we had to manually add time to the zombies. It was not fun.
Pretty much immediately after our game ended, I decided to write my own engine for hosting games of HvZ.
I spent the better part of my winter break (read: all but 3 or 4 days) researching what all frameworks existed for doing this. I had prior experience with django, and I didn't like it. It wasn't until mid-january (and making the dumb decision to just write my own stuff from scratch - no framework, just straight C code) that I finally discovered web.py. At this point, I had about 3 weeks to re-write everything to work with web.py. Fortunately, webpy is an absolute joy to work with, and this was (and still is) some of the most fun I've ever had programming.
By the time our game happened, I had a basic app that didn't much other than log kills and figure out when people were deceased. I then spent the next month and a half just going through my required-for-a-release features (one of which was kill/check-by-sms, which was dropped in favor of releasing soon).
At the urging of a friend of mine, I expanded to allow games of Assassins. Assassins is almost feature-complete with HvZ, however HvZ has automated graphical analysis of game data. (see http://hvz.humansvsservers.com/fit/analysis/ for an example using data from my uni's last game) This is something I plan on adding sometime during the summer.
Shameless plug: I'm a freshman in Computer Science at Florida Tech, and currently looking for an internship preferably in a Silicon Valley based startup (my parents live in lovely San Jose, CA). It's a bit late to apply for one, but better than never.
1 comment
[ 3.2 ms ] story [ 15.0 ms ] threadIt's written in python using web.py with a mysql backend. Lighty is the HTTPd running on FreeBSD 8.2.
It hosts games of Humans Vs. Zombies and Assassins.
I actually finished it about 5 am Monday morning, but I've been waiting for a license to host HvZ games before posting it to HN.
Humans Vs. Zombies is basically a giant game of tag (600 players is not unheard of, though my uni has yet to break 150) played with nerf blasters. It's insanely fun, and played on a lot of college campuses. http://humansvszombies.org/ has more info.
Assassins is a rather smaller game of tag (usually no more than 50 players), and wikipedia has a great article on it. http://en.wikipedia.org/wiki/Assassin_(game)
Why I wrote it: Gnarwhal Studios Inc. (the guys who own the trademarks to HvZ) already have their own (free) HvZ hosting software that my school used for a game of Humans Vs. Zombies. From the perspective of the average player's experience using the software, it's fine. However, for various reasons, their software didn't really like our admins.
One of the major deal breakers was that, midway through our game, four students/former students died in a plane crash (my uni has a pretty good flight program), and in honor of those who died, the admins decided to put the game on hold for a day. Gnarwhal's software offers no way to pause the game, and prevent the "zombies" from starving and actually dying. So we had to manually add time to the zombies. It was not fun.
Pretty much immediately after our game ended, I decided to write my own engine for hosting games of HvZ. I spent the better part of my winter break (read: all but 3 or 4 days) researching what all frameworks existed for doing this. I had prior experience with django, and I didn't like it. It wasn't until mid-january (and making the dumb decision to just write my own stuff from scratch - no framework, just straight C code) that I finally discovered web.py. At this point, I had about 3 weeks to re-write everything to work with web.py. Fortunately, webpy is an absolute joy to work with, and this was (and still is) some of the most fun I've ever had programming.
By the time our game happened, I had a basic app that didn't much other than log kills and figure out when people were deceased. I then spent the next month and a half just going through my required-for-a-release features (one of which was kill/check-by-sms, which was dropped in favor of releasing soon).
At the urging of a friend of mine, I expanded to allow games of Assassins. Assassins is almost feature-complete with HvZ, however HvZ has automated graphical analysis of game data. (see http://hvz.humansvsservers.com/fit/analysis/ for an example using data from my uni's last game) This is something I plan on adding sometime during the summer.
Shameless plug: I'm a freshman in Computer Science at Florida Tech, and currently looking for an internship preferably in a Silicon Valley based startup (my parents live in lovely San Jose, CA). It's a bit late to apply for one, but better than never.