PyWeek screenshot

Flight

kent_turbo's PyWeek 9 entry, Flight

Follow our progress (or ask to join the group) on our Google project page.

Awards

Give this entry an award

Scores

Ratings (show detail)

Overall: 3.2
Fun: 2.8
Production: 3.2
Innovation: 3.7

Respondents: 6

Files

File Uploader Date
flightgame.tgzfinal
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.

I probably should not have submitted this game, but it's so hard to let go, you know? It's wildly unfinished, full of horrendous bugs, and probably close to unplayable. Even so, I still think it's neat. I tried to make it clear in-game when a feature was missing, so you don't get confused, but a lot of things still need an explanation. These will probably make more sense after you've played for a few minutes:
  • 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.
Here are the controls that were supposed to go in the README but I didn't get around to. I suggest reading it after you've tried the tutorial once:
  • 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
And now the important cheats:
  • 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.
Okay, I'll stop there. I've got a lot to say about the process, but I'll make that a separate postmortem post!

3 comments

Cosmologicon's postmortem

This was a team entry with kent_turbo, but I haven't heard from him much lately, so I don't know what he thinks about how it all turned out.

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!

1 comment

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.

Add a comment

Thanks for the feedback!

I just wanted to thank the people who took the time to judge Flight, especially if you had trouble getting it to work. It's gratifying when people are patient enough to give a game a shot, even if it's incomplete and buggy. I think the ratings we got were very fair, and the comments largely echoed how I feel about the game myself.

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!

Add a comment