Your joke about assembly may not be a joke per-se, because 1) you are an experienced assembly programmer, and 2) PyGame told us assembly is up to 100x faster. I wouldn’t be totally surprised if we had you running through PyGame code and aseembly-fying a bottleneck that we find in our game
TLDR: we iterate constantly and pull in features + polish as much as we have time for. We try to push all the prep work (IDE setup, etc.) to before we actually start.
Long version:
I believe the belief of my teachers (MITx edX courses on game design and educational game development), and the industry as a whole, seems to be “design documents don’t work,” because it’s hard to really understand the experience you’re building until you play it. Instead of that, we substitute in iterations of design and testing.
I haven’t pulled out my shiny project manager badge, but here’s what I’m sort of pushing for (sorry if it’s too pushy – Abrar already told me as much):
- Preparation (up to Eid): foundation and validation. Pick the language (seems like Python is the current people’s choice), build a tiny “hello world” app (eg. show an image on screen, that’s it) and validate that it works for all of us. That is:
- Try to get all coders to set up their build environments
- Make sure we can generate executables for all platforms (eg. Flash/JS, or Windows+Linux)
- In this case, create a single EXE and give it to a non-coder to make sure they can run it without issues or installing anything
- Ideation (up to Eid + 2 weeks): pick the core idea. Discuss it, explore it, and see what seems like a fun concept or two. Agree on it. We know what we’re building roughly.
- Week 1: build it really really really fast and cheap (eg. grey/red boxes for everything, no images or audio) and validate that it’s fun.
- Week 1-2: Prove it’s fun even without graphics/audio. Keep iterating. If something doesn’t work, tweak it or dump it, and try something else. It has to be fun.
- Week 2-3: Brainstorm/iterate extended feature set. Prioritize, and start implementing and iterating best-first until we run out of time.
- Week 3-4: Polish what we have. If there’s time, pick another feature, implement it, polish it. Rinse and repeat.
At the end of week 4, we grind to a halt and say “we’re done.” We share it (post it on MG? Give it to friends/family?) and see what people think. We celebrate actually finishing something.
Does that sound okay to you guys?
BTW, I assume my role will be (sadly) mostly managing workload, keeping a backlog of well-defined tasks, balancing everyone’s opinions, focusing everyone on the goal, etc. and not as much coding That’s how collaboration projects worked out for me in the past.
Hopefully, we have enough people to split among different roles, eg. one person per feature, or one person polishing, or one person bug-fixing, or something (and not stepping on each others virtual toes).
TLDR #2: Please install PyGame if you’re a coder. sudo apt-get install python-pygame
works on Ubuntu, albeit just for Python 2.