Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Programming

Journal TrixX's Journal: PyWeek 3

Last September I entered the 3rd PyWeek contest. I should actually say "we", because I entered in a team of 15 people. We ended up in the 3rd place, which we consider darn good for our first time.

It all started in August, in the Python Day organized by GrULiC. We invited people from the rest of Argentina, specially members of PyAr (Python Argentina user group). A group of guys there had participated at the 2nd PyWeek and gave a talk (IMO the best one of the event) titled How to make a computer game in 7 days . I expected a run of the mill talk explaining about facilities provided by some library like pygame, some useful algorithms, etc. Instead, alecu told about their experience in pyweek2, the fun they have had, the contest and its rules, the games that other participants made, the teamwork involved, and a lot of new and fascinating things. Oh, he also showed some pygame code and examples but that was not the core of the talk. At the end, there was a big group of people including me highly motivated and saying "Hey, we want to do this".

Although one of our options was to join the existing PyAr team for pyweek 3 and work together remotely (We live in Córdoba, and the PyAr team members were all from Buenos Aires, 700Km away), we were so many people that we decided to form a (large) local team. We ended up being about 15 people including python programmers, graphic artists, writers, designers, musicians, sound effect guys, etc. (with a lot of people with more than one role).

After the initial pre-week thinking about possible ideas for the different themes, the theme for the contest resulted to be The Disappearing Act, which was our favorite. We started hard work during the first weekend and had a bare prototype that got polished slowly during the week (slowly because most of us have a life, too :) ). The last weekend was a marathon which resulted in out final Saturday Night Ninja release.

We had a lot of fun. I was in the design brainstorm that came with the game idea (a ninja that must go through a maze without being seen by other guards, by using different camouflage clothes); I programmed most of the game logic, and worked in the sound FX team. I also learned (or confirmed) a lot of things about software (and game!) development:

  • Game quality has a lot more to do with "production" (artwork, design, playtesting) than the quality of the code. By the way the code was only a small part of the work involved (done by 3 out of 15 people in our case). I already knew this, but knowing something and experiencing it vividly are really different things.
  • In short projects people tend to ignore a lot of "good" software engineering practices. This is not a bad idea if it saves time and helps meeting the "one week" deadline; most of these practices intend to promote mantainability of code and scalability of design, which are not goals in a contest like pyweek. I have worked like this in places like the ACM ICPC contest (where every minute counts). However, even when mantainability is not important, and the whole code is in your head and there is not enough timespan to forget everything you have done and why, code quality matters in a team project. I put some effort in getting clean code and interfaces; it is not a beautiful design (given the time constraints), but it is not a dirty hack either. Other programmer was more relaxed about this (more being that this was his first medium sized python program) and the third one decided not to care about it. Mostly every investment in code quality payed off, allowing faster fixes during testing, and not depending on the writer of a specific piece of code to change something.
  • Even in a very short project like this, testing takes a lot of time. Specially in a game, where properties like "playability" and "reasonable difficulty" can be achieved only through testing. Our game would have been much better with some more testing; we didn't assign enough time for that. I feel it partly my fault (I knew about it and didn't push hard enough to get it done), and partly because the rest of the team was still thinking about fancier graphics and new ideas instead of test, test, test (when we were closer to the deadline and I asked "have we done some testing yet?"). I don't blame them, however: testing is boring, thinking and buliding new stuff is fun, and a big goal of all this was to have fun (and it was a great success).
  • Python is great for blending code written by three people in a rush and without fully agreeing first on interfaces.

I hope we can make some time to improve the game a bit. We wanted to go on but abandoned it after the contest... Hopefully one of the things where I will put my free time after getting my degree is in SNN (at least clean it up and publish it).

By the way, our mentors from PyAr got the first place this time with Typus Pocus . Congratulations! We plan to be a more serious contender for pyweek 4, so watch out :).

This discussion has been archived. No new comments can be posted.

PyWeek 3

Comments Filter:

He has not acquired a fortune; the fortune has acquired him. -- Bion

Working...