A few years ago, my brother and I came up with an idea for a joke project: Grains: Vegetarian Zombie Rising
The idea is simple, you are a farmer, you have one of many square farms in an endless world. Your farm (like all others) shares an edge with a graveyard, and every night your farm is invaded by vegetarian zombies moaning “Grains… Grains…”. As a farmer, having your crops eaten is clearly a bad economic choice, so you must protect your crops (probably just corn, its nice for obstructing view).
Basically its an MMO farming FPS. No PVP (if you shoot a player, you get arrested), just PVE.
Why: Panda needs a serious MMO sample, and a nice multiplayer shooter sample, and some graphics samples. I say cram them in one game in ridiculous fashion. Horribly mismatched graphics can be part of the gag, which means we can use in fancy overkill gfx demo assets, and placeholders alike. Cube zombie eating your normal mapped, instanced animated corn, what ever.
Out of principal, I’d go for a scalable load balancing, distributed server design, written in Go and optimized for multi core operation. I’d do this because I don’t think its very hard to do for a trivial grid based game if you start the server design from that perspective, and it would be a nice example server to have around. I’d use Go because its fast, and makes concurrent designs easy. Its also really nice for servers in my opinion for some other reasons too. The server would not be panda specific in any way, and would be as generalized as practical. I’d like to make it incrementally updatable so most updates could be done without server wide downtime. Thats not work much extra effort as far as I’m concerned (I think it can be done to some extent without much work as long as the client is rather good at reconnecting seamlessly). Making the server hardware failure resistant (realtime duplication of data, combined with load-balancing to deal with a server failure) would be interesting, but defiantly not a priority.
A panda 3D application in python, with some shaders. As high end graphics will be used, but not needed, I’d like to have a good fall back system for running on really low spec (This would make a good iphone game for example). As much as I like cramming Cython into things, I think sticking to pure python would be the best choice in this case. I don’t see anything in particular that would need significant processing time which would be an issue for python. It could also run in the web player.
Process and Implementation:
I’d do this as a slow paced hobby project, hosted on GitHub and BSD licensed. I don’t have much free time, so it would be a rather long term thing unless other people wanted to do major portions of it (I’m mostly interested in the server design).
Here is an older server/client with a temp top down 2D view of the world showing the farms and graveyard layout.
You get income from your farm to buy supplies. Shotguns are fun, so you probably start with one and get unlimited free ammo for it. Later versions will allow buying upgrades. Dead zombies are good fertilizer. When offline, time on your farm begins to slow down (the slower the longer you are off line). This prevents your farm from being totally destroyed while you are gone. I think a negative interest rate would be good (your money slowly goes away if you don’t spend it, so with fixed income and no (or fixed) spending, wealth follows a logistic curve. Thus World rank can be based on either income or wealth, either of which is indicative of how much crops you get vs how much you spend. You can sell your farm and move to a new one thats uninhabited as long as its not too isolated (you have to be near, or maybe even next to someone). This lets you be with your friends while not letting people spread endlessly far apart. I’d like zombies and players alike to have lame billboarded speech bubbles over their heads. It would be fun to also have though bubbles (zombie thoughts would be a nice touch).
From a design perspective, this game is unique, can have novel stylistic charm, has action, strategy and social aspects (MMO with world ranking, ranking among friends, whatever). It can potentially run on mobil devices too. While it may be a joke design, I think it could actually be fun, and maybe even popular, while demonstrating panda’s abilities.
The game can start as trivial and be playable before purchasable items/upgrades are made available which shortens the dev time to initial launch. Even effects like weather (that would be a great gfx example), multiple crop choices, and regional crop prices based on supply could be added. Its a very expandable design.
Anyway, thats my random Panda project idea for now. I hope you enjoyed reading this. Please respond with your thoughts on the idea.