Flight
kent_turbo's PyWeek 9 entry, Flight
Follow our progress (or ask to join the group) on our Google project page.
Awards
Scores
Ratings (show detail)
Overall: 3.2
Fun: 2.8
Production: 3.2
Innovation: 3.7
Files
| File | Uploader | Date |
|---|---|---|
|
flightgame.tgz
— final
Final submission I guess. :( |
Cosmologicon | 2009/11/29 00:58 |
|
flight-1.0.0.jpg
PyWeek screenshot |
Cosmologicon | 2009/09/24 01:36 |
Diary Entries
Half-baked submission.
- Sorry about the huge file size. I was literally zipping it at the last second and I think I accidentally put the whole repository in there.
- Command-line options include -r1024x768 (or similar) to set the resolution, -f for fullscreen, -w for windowed, -u to disable fps limit (which defaults to 25).
- Don't choose the Realistic flight mechanics on the title screen, only Arcade works.
- I get an ODE bug every now and then and collisions fail. The game doesn't crash, but none of the objects interact. If you get an ODE error message, or you go through a portal but just come out the back side instead of traveling to a different world, try restarting.
- There is no way to save. Just do your best, there's not much progress you can make, so starting over isn't that bad. Having said that, press F3 to give yourself a boost whenever you feel like it. There was supposed to be a spell that does the same thing, but it didn't get implemented. So it's not really cheating.
- There are several quests in the nexus world (Aeron) that say they give you spells when they don't. It might still be fun to complete them.
- If you complete the quest of the estranged brothers, it will give you a Radar spell. If you equip it by pressing 6 and then cast it, the game will crash.
- There's a bug with the enemy crosshairs, in that two sets of crosshairs appear in your field of vision, opposite each other. Just keep in mind that if you don't see an enemy in the crosshairs, you're probably firing at one in the opposite direction.
- There's instructions for the crystal that imprisons the elder at the end of the dimension of pestilence, but I think they got cut off. You have to run into it repeatedly to knock it down through the layers. Just hold Ctrl the whole time and stay locked on it.
- After you've beaten the dimensions of fire, thunder, and pestilence, there's a final level, the dimension of darkness. The portal is supposed to open automatically when you beat the first three, but it doesn't. Press F6 whenever you're ready for it, and it'll appear in the middle of town.
- There's no game over screen after you beat the final boss. Whatcha gonna do?
- I'll probably think of some more soon. I'll be happy to post bugfixes or cheats if it crashes for you, provided I can figure it out.
- I never got anyone to playtest any of the quests. If you're having trouble figuring any out, I'll be happy to give hints.
- Esc = pause/quit
- W/A/S/D (or ,/A/O/E on Dvorak) moves you.
- Holding shift makes you move faster.
- Caps Lock swaps the behavior of shift.
- Tab switches between first and third-person view
- Mouse or arrow keys moves the camera in third-person view.
- Backspace swaps the behavior of W/A/S/D and the arrows.
- Scroll wheel: move the camera in and out
- Holding Ctrl turns you toward an NPC (shown with green crosshairs). You have to be close enough for this to work.
- Number 1 equips the shooting spell when you get it. Number 5 equips the compass spell.
- Left-click or space: fire
- Right-click or Enter: compass
- F3: boost
- F5: stop
- F6: spawn portal to the dimension of darkness
- F2: Toggle bounding boxes for collision detection. That's just kind of fun sometimes.
- F4: Draw worldmap. Warning: this will freeze the game for a few seconds at least.
Cosmologicon's postmortem
I technically worked on a team for Pyweek #7, but only for one day, and then only on the intro cutscene. This was my first "real" team experience. It was great in that I never would have been able to put together an engine like this - based on ODE and OpenGL - by myself. It was definitely the most ambitious game I've worked on to date. It was also motivating to see someone else working on it. Given how frequently I flake out of projects, I think that's probably the biggest plus. I'm also proud of the fact that we collaborated despite not knowing each other. It seems like almost all successful PyWeek teams are people who already know each other, though I could be wrong.
It was hard with only two people on the team. Both Kent and I had periods when we couldn't work on it as much as we would have liked, so the other was solo for a few days. For me, being less familiar with the engine, trying to implement a save feature by myself was frustrating, and wound up just being a waste of time. I also think next time I'll try to communicate more via IRC or something real-time. Email is generally fine except that it's slow.
In conclusion, I would work on a team again. Maybe even for PyWeek #10. But I hope to have at least 3 people next time.
As for non-team-related stuff that was new to me, I like Google Code, except that it took like a week before we could email each other through the group, so it probably wouldn't work for PyWeek. I like version control okay. I like PyOpenGL. I haven't warmed up to PyODE yet, although once we got collision detection going it became clear how useful it was.
And I really like Blender! You can see I got much better at it between when I did the main character's model (which was one of the first things) and the townspeople (which was one of the last). I still wish we could have gotten an actual artist on the team, though!
64bit woes
When I first tried to play, numpy kept refusing to make arrays because they were "too large". Eventually I tracked this down to an integer size issue in the MD2 loader code.
You should specify standard sizes and alignments in your struct format specifiers (use '=4s16l' instead of just '4s16l', for example) or 64bit machines try to use rather longer longs.
Thanks for the feedback!
There's a bit of encouragement to keep working on the game. I'd really like that, but honestly, I don't know if it's going to happen. It's a pretty big project, and I'd like to move on. If someone else joined the team, definitely, but otherwise, let's say maybe. :)
Congrats to zahmeKatzen! See you all next time!