Finally...
After a week of hammering out this beast, it's time to find out its value. So many sacrifices were made along the way, but they were necessary to meet the deadline. I hope that which was left was worth the effort.
Panda3D is certainly one of the least used engines in PyWeek. And with a large SDK that entrants had to download before, it is understandable that it's been seen to be a suboptimal choice for this challenge. However, thanks to the 1.7.0 release last January, all that has changed. Now others can install a very small runtime distribution of Panda3D and games can be packed in a highly optimised executable. I do hope this entry will demonstrate to other PyWeek competitors that Panda3D really isn't as bad a choice as it may have appeared to be in the past.
As for the prototype itself, I must say I was surprised when "Wibbly-Wobbly" won the vote. And yet initially I knew it would score highly due to sounding like a nice little challenge. I actually expected Eleventh to win due to its broad nature, but that didn't happen.
As with PyWeek 9, I wanted to build a puzzle-filled adventure prototype with a child as the main character (as children are unfortunately rarely the main characters of games outside the genre of "children's games"), but I knew (from experience of failure to go solo last time) that I would need help. Sure, my experience with Panda3D and software engineering in general had grown quite a great deal since last August, but still I felt a teammate would be the best approach. I asked my good friend, rdb, if he wanted to partner up with me, and he eagerly agreed. And after a week of design discussion and preparation, the challenge began.
Starting the minute of 00:00:00 UTC, I began building the framework for our prototype; lower level stuff like engine configuration, camera control, class flow... the little necessary things. After that, it was all about building game logic. It was a good thing I sought out partnership with a skilled and knowledgeable guy like rdb as there were points during development that simply lost me. And rdb being a good friend of mine made the partnership more enjoyable as well.
Being the mad symbolist I am, I revelled in weaving symbolism throughout this prototype. Everything from the relative direction of the entryway to the number of statues and the relative direction of the control panel is symbolic to me. Even the title is embedded with symbolism.
Well, seven days later, we came up with a single room and a single theme-related puzzle. We realised too late that it was too easy a puzzle, but we hadn't time to improve it. I built the underlying mechanics of a tile sliding puzzle as well, but we didn't have time to finish that either. Ah well. I hope this will be enough to impress the other competitors.
All in all, a rather satisfying experience. And I finished a prototype. I feel accomplished. And I couldn't have done it so well (if at all) without my friend and partner rdb. I have many thanks for him.
~ Xidram
(log in to comment)
Comments
We're talking with the OpenALSoft guys to see if this can be resolved in future versions.
bjorn on 2010/04/04 18:54:
Very nice - I too am glad panda3d seems to be a viable choice these days. You are right, the puzzle is rather easy. A few sound effects would go a long way to increase the 'wow' factor of the game.A few minor annoyances I encountered:
1. I grabbed the source zip and when I unzipped into my pyweek10 folder everything was just dumped there - it's generally preferable to package as the skellington script would and put everything inside a folder in your archive. Also having a 'run_game' script to start the game (rather than 'main') would make it launch like most other pyweek games.
2. WASD controls are lousy on a dvorak keyboard (arrow keys would be better)
3. being able to change perspective (rotate around) the puzzle platform would be cool
4. For some reason the game totally hung when I exited (command line printed :TaskManager: TaskManager.destroy() ) and I had to switch to a terminal session to kill the process in order to get my mouse back.
Nice work.