A test run of the pre-alpha library "pyglet" (http://www.pyglet.org). Please feel free to disqualify me for use of this library... I'm not in it for the money :-)


Give this entry an award


Ratings (show detail)

Overall: 2.8
Fun: 2.4
Production: 3.2
Innovation: 2.7

17% respondents marked the game as not working.
10% of respondents wished to disqualify the entry.
Respondents: 34


File Uploader Date
Source code
alex 2007/04/07 19:15
alex 2007/04/06 01:53
A large-handed baddie.
alex 2007/04/04 16:04
They go up...
alex 2007/04/01 02:22

Diary Entries

Warmup: Turret Commander

This was done in a day (around 10 hours) earlier this week in competition with another guy from uni. Shoot the squishy pink guys and get them to explode near the inky black baddies.

Turret Commander is the first game I've written in pyglet, the framework I'll be using for PyWeek. You'll need a decent graphics card, and either Python 2.5, or Python 2.4 with ctypes installed.


They go up...

Lunch time. Also, time to think of what the gameplay will be. I figured anything upwards-like will need stairs -- lots of stairs.


Things that go bump.

After the stairs yesterday, I spent a couple of hours trying to get collision detection working but got tired of all the bugs that were cropping up.

Today I rewrote all the collision and it works perfectly: line-segement/polygon collision for finding the floor and ellipsoid/polygon collision for bumping into things. The dynamics need a bit of tweaking to feel like a "real" FPS, but all the basics are there: ramps, stairs, sliding along walls, jumping, falling, hitting your head on the ceiling, etc.

I also came up with a game design today, which makes me happy. I'm not going to share it yet though, 'cos it's a surprise :-)

[To the commentators: it's a model of the stairs, not procedurally generated.]

Add a comment

Almost on track

I had planned today to implement all the gameplay; before making a start on the graphics and level design. I ended up spending too much time rewriting the OBJ loader so that it exposes the different meshes by name (this is how I'll be designing levels), and to draw things in a sane way.

On the gameplay side of things, a bit of refactor means I now have a really clean split between game code, graphics code and the fps dynamics code... this is something that's always eluded me in the past. (In my previous two pyweek entries the "gameplay" was bolted on only in the final few hours).

Gameplay now lets the player shoot the baddies (not with a gun though... I'm not that predictable), bump into the baddies (ellipsoid/ellipsoid) and lose health.

I initially tried to do the shooting test with a ray/ellipsoid intersection, but couldn't get it working. Then I (slowly, I know) realised that I'd need to test against the walls as well. Then (finally) I realised that I could just use the selection buffer, which is really cool (I've never used it before).

Schedule for the rest of the week:

  • Weds: Draw up the levels, implement the rest of the game logic
  • Thurs: Make it pretty.
  • Fri: Menu screens, more prettiness.
  • Sat: Package/test. Futilely attempt to implement pyglet sound on Mac and Windows (Linux is already implemented, sort of).
  • Sun: Deadline is 10am for me, just enough time to wake up and accomplish nothing.

1 comment

Level design happens

Didn't have much time to work on the game today, so I didn't finish implementing all the gameplay as planned. I have mocked up the level: the collision model and some of the triggers. The triggers now advance the game state, so it's coming together.

The game won't really be playable until the baddie AI is in, which I'm thinking is going to be tricky; don't really know how to go about it.

Used a spare hour in between classes today to draw up the baddie model:

As of tomorrow I'm on holidays so hopefully I'll catch up.

Add a comment


Yesterday morning was spent writing AI for the baddies. This was actually easier than I had predicted: no path finding, but some good anthropomorphic behaviour from some simple rules. Here's a particularly nasty fellow about to make me somewhat deader:

The pink structure is just the collision geometry at the moment; replacing this with the real visual model will be today's focus.

Also managed to add the cutscene, health display, a crosshair (ok, that was all of 4 seconds work), the skyboxes and particle emitters.



The end, and the game even has a name now (from the term used to describe a change in orbit).

Some after-deadline fixes were made to pyglet. These fix the core dump on Windows during the credit sequence, and the mouse inversion and miscellaneous warnings on Mac. You can get the patched game to resolve these issues.

Some screenshots from the completed game:

The definitive PyWeek/delta-v/pyglet post-mortem to come, following sleep recovery. Looking forward to playing all the other games!