Uberteam home


This is a team entry. The members are: rj, toby, davidjones and Lard.

This team is made up of Richard (your host, programmer and semi-artist), Toby (programmer / artist), David (art) and Dave (art).

FileThumbnailDescriptionUpload time (UTC)Size
4ufos.jpg url Some UFO works-in-progres 2005-08-28.11:56Z 61 KB
screenshot2.png url The player's ship over test landscape 2005-08-29.11:56Z 21 KB
screenshot3.png url Textured heightmapped landscape! 2005-08-29.15:22Z 293 KB
lotsa_ufos.png url Lots of UFOs :) 2005-08-30.13:29Z 268 KB
screenshot.png url screenshot.png 2005-08-31.14:40Z 75 KB
railgun_screenshot.png url Railgun! 2005-09-01.13:48Z 207 KB
final-screenshot.png url 2005-09-03.10:17Z 970 KB
powercore-r6.tgz FINAL SUBMISSION Power Core release 6, requires pygame and PyOpenGL 2005-09-03.22:06Z 5.01 MB



We'd be very interested if the people who can't run our game could please give us information about the system they're running on, and any error details they get. We're still trying to track down why it barfs out on some Windows machines. Please include O/S (including version and patching status), system graphics card, system memory, python, pygame and PyOpenGL versions, ... uh anything else you think might be pertinent :)

For what it's worth, I know POWER CORE works on my machine: AMD 2800+, 1.5GB RAM, GeForce 6800GT, Python2.4, PyOpenGL, PyGame 1.7.1 running either fully-patched-up Ubuntu Linux or fully-patched-up Windows XP. It also works on every Mac we've tried it on.

-- Richard


I didn't bother putting up the disqualification voting system for this challenge because I seriously don't believe anyone has broken any rules. If you believe otherwise, please go to the newly-added disqualification page.

Please do not use the ratings system as it stands (especially the "Overall" rating) to penalise people you think cheated. Rate the game as it stands, and we will deal with cheating through other means. Remember, if a game is disqualified, it still gets its full ratings but it doesn't appear in the final standings list (the "d'oh, if only I'd followed the rule" rule :)

-- Richard

(originally this post said to email me, but I realised how dumb that was, so I put up the dq page)


I'd like to encourage all participants to give me their feedback on the challenge. What worked, what didn't work. I'll happily accept emailed ideas at , or in the wiki (you need to log in to the PyWeek site to edit) I've set up. Please don't post them in diary entries though.


Our entry does have a music track - it's just not played on some systems because SDL_mixer on those systems doesn't have mp3 support. We auto-detect this and avoid playing music.

Also, I stuffed up the power level of the beam weapons somehow between the 3rd and 6th release. In the current release, they're about 1/4 as powerful as they were intended to be. They're still kinda fun, but ultimately more trouble than they're worth. You can usually just "get rid" of them by forcefully lowering your ship's power (either by BOOSTing or using the shields to absorb some UFO bullets). The railgun, on the other hand, is as deadly as it was intended to be.

p.s. if you want to try various weapons out, you can put the game into "dev" mode... see the README :)

-- Richard


Judging comments should now be displayed to all members of a team, not just the team leader (and in some cases, no-one at all). Sorry about that.


You must upload a final version of your game's source to be included in judging!

If you're having trouble uploading the whole game, then you may host it elsewhere and add a diary entry with a link to the game and an MD5 hash of the game download.


We're all done (bar some shouting at Windows and/or OpenGL). Our final release is up for download.

See the README file in the source for a description of the game and how to play it. The basic description is:

POWER CORE is an arcade game that's about you fighting off invading hordes of UFOs intent on blowing up your POWER COREs.
Your ship is a SUPERAMAZINGSPECIAL ship that has two stores of power. The red SHIP POWER which you accumulate over levels based on the number of POWER COREs you save, and lose by being shot. If your SHIP POWER is empty, you're dead.
The yellow BOOST POWER temporarily adds to your ship's total power, possibly charging up new weapons. BOOST POWER is gained from shooting UFOs, or the destruction of POWER COREs. It fades over time, and is used up when you use BOOST THRUST.
The weapons in your ship only come online when the ship has enough total power for them. This is represented by the bar and icons at the top of the screen.
The game progresses through levels, each level having a number of waves of UFOs. You are awarded SHIP POWER when you complete a level, based on the number of POWER COREs you save. Each new level has its own set of POWER COREs to save.

Things that went right:

  • Working in a team meant that we had more people nutting over the game concept, more people to work on the nasty code and some nice 3d models. We ended up with a much better game because of it.
  • The game's quite playable and fun.
  • Music by someone else (in our case Cargo Cult) is cooler than anything I could do.
  • Had some fun conversations in IRC :)
  • Had a lot of fun during the challenge.
  • Python worked beautifully, as did pygame (except mixer caused me pain, but that's SDL) and PyOpenGL (except see below ;).

Things that went wrong - lessons to be learnt from for next time:

  • During planning, I decided that the game world should wrap. This complicated a lot of code, and was ultimately unnecessary and was removed to the benefit of the game. Ho hum
  • We needed someone to take control of art direction. When you're a solo programmer, that's not really an issue. We changed the look of the game a couple of times, which is really not a good idea in a week-long challenge.
  • We've tickled some sort of bug in pygame: setting the Clock.ticks() value to >41 results in 100% CPU utilisation on my computer. 41 is fine. 42 is evil. Go figure.
  • Rather more seriously, we've tickled some sort of OpenGL compatibility thing, or maybe a PyOpenGL bug, we don't know. The game flat-out crashes on one test Windows machine, works fine on another. It may, randomly, crash between levels. We really have no idea why, and spent most of today trying to sort it out.
  • David used Lightwave, which doesn't export colours with vertexes, meaning that Dave (using Maya) had to re-colour all the models David created.

So, sorry if you can't run our game. It's fun, believe me :) We will be trying to figure out the issue, but that'll be after the deadline.

-- Richard



Entry uploading is done in your entry's page. You need to log in.

Hit the "Add File (screenshot or submission)" link under the green bar and fill out the form.

You must upload your game's source and all data files. You have a 10MB total limit on file uploads. If you need more space, just ask me before the end of the challenge.

If you have a big game, then you may host it elsewhere. All you need to do in this case is upload the code of the game, and add a Diary entry with a link to the full download, and an MD5 hash (using md5sum or python's md5 module) so people can verify the download. You must upload at least the source of your game as a FINAL submission, or you won't be included in judging!

Uploading an "executable" game file is optional since we all have Python installed. If your game has special requirements, must mention them in a README with the source, and you should consider making an executable to make judges' lives easier.

Make sure you mark your final submission as such. You may upload any number of final submissions. You may delete "final submission" uploads that you no longer want.


In about 20 hours, file uploads will be turned off, and the judging system will turn on. Judging will run for two weeks, though this duration may be extended depending on the number of final submissions.

Judging is done by visiting the Entrants page, which will be filtered to show just those entrants who have put in a final submission. There will be links next to the entrants names (and in their home page) for judging.

[23:46] One day to go

We had another good day yesterday:

  • changed power-scale for weapons
  • reduced CPU load from aliens
  • flash power stations on HUD if they're being attacked
  • aliens now have separate scan and weapon ranges
  • no longer wrapping game area*
  • alien swarms
  • badder-assed aliens
  • dialogs
  • music!
  • UFO models fixed
  • aliens shoot back if they're being shot
  • title screen

Today I've got to try to get some sound in, and playtest the levels some more. It's a fun game, I have to remind myself to stop playing it every now and then :)

* marks the one bad decision I made when we started. No-one else was keen on the idea of a wrapping world, but I thought it'd be cool. As it turns out, the game just didn't need it, and implementing it had complicated various parts of the code. Ho hum.

-- Richard

  • added some more world props
  • matched world ligting to ground lighting
  • weapons change as ship energy changes
  • levels
  • ship health increased proportional to number of stations saved in a level
  • UFO models
  • more and better damage effects
  • add command-line switch to enable developer commands
  • minimap so players don't see UFO directions or mind state, but do see UFO type. Also hide FPS and budget meters. Toggleable for development.
  • railgun!
  • damage states for powerstation
  • text display
- change landscape - less realistic, flat-shaded, grid pattern, minimal features
  which lower the terrain a minimal amount over a large area
- landscape has props
- craft collisions
- FIX Bullet so it setPosition()s
- power stations
- optimize visibility calculation
- change beam weapon effect
- billboard anim for explosions

Fear my HTML laziness.


Today we managed to get some more good bits implemented:

  • Player and UFOs may now shoot, with a number of different weapons
  • Player and UFOs may be shot too, producing smoke and eventually blowing up
  • Fixed up some dodgy view culling
  • More stuff in the HUD, including power levels, speed and minimap.
  • Got some more models into the game, including some UFOs, one of which you see in the image here. Well, 300. And my computer still runs at around 50fps, which is nice because that's about 10x more UFOs than we expect to have in a given level.

Not a bad day's effort. Lots more to do...


Progressing apace now. There are some issues with draw distance to deal with, but 1:30 am isn't the time to start.


Well, we've got the landscape tiling, baddies appearing (none in this shot) and wandering around (and being vis culled), you can shoot (not shown) and hit the baddies and finally there's the beginnings of a HUD (show is an FPS meter). There's still tons to do, of course, but progress is encouraging.

I've been semi-useful to the team so far. Hopefully a good night's sleep will knock this coldflubugthing on the head.

stewed rhubarb and icecream

Our team got together today after I hit the "go" button on the challenge at 10am local time. We spent about 5 hours talking about the theme, our ideas around it and planning how we were going to work. At least the first 2 hours were spent tossing around a number of ideas which included "Protect the coal caravan from the greenies". Some were less serious than that :)

Anyway, we finally settled on an arcade-style game based around protecting power resources from baddies. We're going to introduce a bit of a twist: positive feedback. I felt that most games suffered a bit from negative feedback in that once things started going downhill, the game's difficulty got harder. I wanted to make it so that the player got more powerful as things started getting worse. The power from bases destroyed by the baddies transfers to your ship, and you get bigger weapons and other enhancements.

We spent about an hour nutting out how this would actually work -- so that the player didn't intentionally let things get bad just to power up. Not an easy job.

We've ended up with a few interesting ideas, and it'll be interesting to see how they turn out. We've got several pages of scribbled notes, the beginnings of a code structure, some initial models and landscapes. It's all looking quite positive.

On a personal note, the stress of recent weeks at work and the setting up the challenge has taken its toll and I've come down with some sort of generic cold/flu/illness. Hopefully I'll still be productive.

-- Richard


All individual entrants must still be in a "Team" - a team with one member.

-- Richard


You should have received an email about this, but I figured that I'd post here as well. Go vote! Vote early, vote often!

Of course, if you didn't get the email, I'll be removing you from the challenge system just as soon as I get the bounce message.


In order to make sure that everyone can be sure what capabilities the people judging their entries have, I've knocked together a modification of the pyopengl info.py script which will produce a more parseable result. If you want to take part, please download info.py, run it, and mail the output to pyweek1@mechanicalcat.net with the subect "GL caps".

I'll summarise the results and post them before the start of the competition. This should give everyone a much better idea of what OpenGL capabilitites are available [hint: I think vertex and pixel shaders are probably right out - it apppears that only CVS pyopengl has support for GLSL]