Development
SnowballZ needs developers, map creator, artits and any other skill you can provide to make this already popular game complete. I have put effort into making the code clean and understandable; easy to get started working on.
Getting the code
The SnowballZ 1.0 is in a revision control system called Mercurial. You can get the latest stuff over at bit bucket
Instructions are provided there if you are not familiar with Mercurial.
You will also need, in addition to python 2.5, pyglet, rabbyt and iniparse installed.
Where to start
You can start anywhere you like really, but here is a small list I've put together to get you started. If one of them interests you and you want to work on it please let me know so I can announce it so others won't redundantly work on it too.
Small easy stuff
- Tower throw position - When you play the game you will notice that towers throw snowballs from their base. The starting position needs to be moved up to the start at the top of the tower and have the correct throw curve. [see lib/building.py]
- Hold position behavior - When you tell a group of penguins to go somewhere they will have an area they need to keep within so they don't stray too far. Well, when they first go there they need to spread out so they don't block each other up. [see lib/brain.py; the class HoldPosition]
Content stuff
- Maps - You will need to see current maps to figure out how to make your own. But there is a nice map editor for you once you get all your files setup correctly.
- Objects - Maps can define their own objects by just putting the images in a special folder in your map. Well, each map can have about 250 unique types of objects (with up to 255 variations on each object). It will automatically show up in the map editor for all your placing fun. [This feature isn't fully implemented. You can still create the objects but you just have to place them in the data directory]
Hard, challenging, FUN stuff.
- Path finding - If you like this stuff good luck. [lib/pathfinding.py]
- Player AI - This is an essential part of a complete game. There needs to be an AI to control enemy players. It's a hard task but it doesn't have to be overly complex to be fun to play against. [lib/playerai.py]
But of course, you are free to implement anything. Although I would recommend consulting me (joey at thisdomain) before implementing features. I will still control the main repository, this site and the direction of this project. I'd hate for you to implement something that I don't think would follow the style of SnowballZ.
Further development
Of course, there are a whole lot of other things to do such as plugins, more scripting features, map distribution system etc. I'll probably end up doing the aforementioned things but if you are wanting to get deeper into the development of snowballz let me know and I'll help you get going.
If you have any questions what so ever do not hesitate to ask!