Archive for September, 2009
Monday, September 7th, 2009 | Uncategorized | No Comments
This past week Confluence, Jerith, Nitwit, David and I took part in PyWeek 9 — an online challenge to write a computer game in one week. The result is Operation Fox Assault. It’s a bit like what Warcraft would have been if the protagonists were chickens and the game had been written in a week. Mac, Windows and Linux downloads are available on our team page.
Now for some general musings on the PyWeek that was.
Each PyWeek begins with the entrants voting on a theme. The result is announced at midnight (GMT) on a Saturday and this is the starting gun for the one week of development. Final submissions must be uploaded before midnight the following Saturday, although there is a twenty-four hour grace period after that to allow developers to fix critical bugs or sort out problems with packaging and uploading their entries.
This PyWeek’s theme was ‘Feather’. The Sunday morning after the announcement the core Rinkhals team gathered at the Yola offices to brainstorm game ideas and strategise. I think it was Jerith that came up with the spark that resulted in the Operation Fox Assault concept but even before the idea was fully formed the entire team was running with it. A few whiteboard sketches later and we were stuck in to game development. Initially Confluence was doing artwork, Jerith was creating the tile map and Nitwit and I were running around putting general architecture such as the game engine in place.
Based on discussions overheard on th #pyweek channel it seems we were one of the few teams to get off to a rapid start. Many of those represented on the channel were still hunting around for basic game concepts on the second day of the competition.
Looking back at that first session there were two things that were to aid us greatly in the week ahead:
- We had a good concept that the entire team was enthusiastic about.
- We were realistic about what was achievable. Nitwit pointed out that we each had about twenty hours of development time available and although we did extend that a bit by working long evenings during the week, I think it was a solid estimate of the subjective time available.
At the end of the first day we had something that ran and displayed the game board.
The rest of the week was a frenzy of development (except for Tuesday evening which was spent playing V:tES). On Wednesday Jerith came round to our place to code. Sometime in the middle of the week David joined the team and added sound. Stubbed code written by one developer was suddenly leapt on by other developers and turned into fully fledged features.
From a programming perspective the tight deadline was surprisingly liberating. Gone was agonizing over how best to structure code or long-term maintainability. Grabbing low-hanging fruit and rapid development were the order of the day.
Team Rinkhals is almost certainly the most talented development team I’ve had the privilege to be part of and I have a newfound appreciation for what a difference a talented team makes. Not once did I have to explain basic Python or programming concepts, or show someone how to use svn merge or dive into the internals of a library to debug something for someone else. I felt I could trust the code committed by my fellow team members — which given that there was very little time to read it was helpful.
By the time the final Saturday arrived we were in pretty good spirits. Operation Fox Assault was in good shape and although there were a reasonable number of items left on the to-do list most of them were minor enhancements and polishing. The big outstanding items were packaging the game for Windows (using py2exe) and Mac (using py2app). I got stuck into the py2exe work in the early evening. There were some scary moments when the py2exe build was segfaulting but eventually at around ten o’clock the Windows packaging was sorted out and we headed out to Roxy’s for a leisurely dinner. We returned shortly before midnight. Jerith put the finishing touches on the py2app packaging and the rest of us cleaned up minor bugs before submitting our entry a few minutes after 2:00am.
Now all that’s left is to take part in the judging which runs until the end of this week. I’m anxious to see Fox Assault do well, but I’m already satisfied that we ended up with a pretty cool little game — the three hours I spent playing it in unlimited mode last night are testament to this.
If you’re wondering about the rinkhals’ tastes, see the Wikipedia entry.
P.S. Also see Nitwit’s post about our team’s PyWeek experiences.