Robot Underground

Robot Underground: Action RPG with pleasing graphics and engaging plot!


Give this entry an award


Ratings (show detail)

Overall: 3.9
Fun: 4.1
Production: 4.3
Innovation: 3.4

6% respondents marked the game as not working.
Respondents: 29


File Uploader Date
Robot Underground 1.0.4
Martin 2008/04/27 17:39
First post pyweek release (fixed)
Chard 2008/04/23 13:11
final entry
Chard 2008/04/06 22:46
Martin 2008/04/04 12:52
6-hit combo
adam 2008/04/04 02:27
adam 2008/04/02 22:16
Martin 2008/03/31 18:42

Diary Entries


Announcing the release of our PyWeek library: ToGEPy 0.1!


There's even a mildly fun asteroids clone in there as an example. We spoil you.

(Edited for a working download location)


Our game doesn't have a name yet

Progress so far: eight pizzas eaten, nine litres of cola drunk. Also, see the above screenshot.


start of day 3

Well, it's the start of Day 3 and time to get back to work. Unfortunately, one of my fellow team members is asleep on the sofa and the other three are nowhere to be found.


memory leak

Our development efforts are being stymied by an apparent resource leak in pyglet.text. Run the following, and watch your memory consumption soar:
import random
import gc
from pyglet import window, clock, text
from pyglet.gl import *

w = window.Window()
l = text.Label("", font_size=w.height, x=w.width/2, y=w.height/2, halign="center", valign="center")
f = clock.ClockDisplay()

while not w.has_exit:
    l.text = "".join(map(lambda x: random.choice("abcdef"), xrange(3)))


Why, Python, why?

According to one of my team-mates, 'bismuth' is now a reserved word in Python. I am led to suspect that he was just trying to cover up his own syntax error.



Our team has been encountering an extremely severe problem: we keep getting distracted by playing our game and neglecting the huge amount of stuff we still have to add.


Testing difficulties

From one of our team members: "How am I supposed to fight spiders that fire lasers when they don't fire lasers, they fire more spiders?!?"


Latest screenshot

Well, it's 3:30am and we're still coding, but here's where we're at:



We had lasers on day one, but it's taken until now for our first explosion.

I think there's something wrong with our priorities.


Action RPGs for all

Our game is submitted. By MD5 but you'll be seeing it before long. But just to whet your appetites here's our complete feature list (and not a single word of a lie). Our game:

  • Is an originally presented action RPG.
  • Sports an array of 21 player weapons and 7 weapons only usable by enemies, couple with extensive modding system for endless variety
  • Has approximately 40 types of enemy and 10 varied boss fights
  • Provides an estimated 2-3 hours of gameplay including an extensive storyline (not including the optional challenge dungeon), supported by a powerful and flexible scripting system
  • Is presented in 100% anti-aliased scalable vector graphics
  • Implements saving and loading.
  • Has an interactive tutorial!
  • Has procedurally generated dungeon design.

We even found time to script multiple endings! Seriously, this has been a good PyWeek. We've been working down to the minute to get this all together, personally I really wanted to go back and make sure the interface wasn't going to break. I know there were lots of features and classic RPG elements we wanted to try and implement but didn't get round to. The entire optional challenge dungeon mentioned above, just to give you an example, was implemented in the last few hours.

We're not certain its bug free, so we recommend a saving policy. But when you play, I know you'll agree quite how clean and well paced this is. We are very pleased with our results, now we get to play it!


Release delay

There's some problem with my MD5 sum, I think I may have generated it by reading the file in text mode rather than binary mode, these things are really confusing. At any rate, you can play the game by downloading it here for now, although you can't rate it. I've asked Richard what can be done about it so it may be up here eventually, I just thought everyone would like to play it anyway.

Oh! You need AVBin, this wasn't in the README. You can get it at http://code.google.com/p/avbin/.

Have fun, everyone.


Robot Underground - a Cambellian monomyth robot action RPG in five acts.

Our game is now up. Thanks to Richard for being so helpful with the MD5 problems. Note that we've packaged Pyglet but you will need AVBin to play. Get it from http://code.google.com/p/avbin/. We're around on #pyweek if you have questions, ask for Membury, mewo2 or amgb2.


Robot Underground: for your enjoyment and pleasure

Well, with the madness of coding behind us, we've managed to take some time out to actually play our game (along with everyone else's). There's a whole raft of stuff we'd like to improve or add, possibly in some future post-Pyweek release, but there's a couple of specific issues which might merit the attention of players over the next two weeks:

  • There's some slow resource leak we haven't managed to track down yet. This can slow the game down after playing for a long time. If you save your game, quit completely, then restart the game and reload, performance will return to normal.
  • If you ask Putney to send you to the Outer Zones while he and Victoria are both in the room on the very left of the town area (after the fifth or sixth story-based mission), you will receive the error message 'programming error: unknown scene key' followed by a game over screen. Pyweek purists may rest assured that you can finish the game without needing to do this, but if you want, you can fix the error by changing the string 'outerzones' to 'ozmission' on line 112 of lib/content/act3.py.


Linux issues with Robot Underground

We've had some reports of errors that look like this:

pyglet.image.codecs.ImageDecodeException: Unable to load:

This is a problem with pyglet image loading on Linux (I knew we should have tested on Linux). If you want to give us a DNW, that's fine, but if you'd still like to play the game, you can download a set of replacement map files here. Just extract them to the data/maps directory, overwriting the files which are already there. You'll also need to add the following line between lines 20 and 21 of lib/worldgen.py:

    if pitch > 0: offs -= pitch


Robot Underground feedback

We're still working on Robot Underground, albeit at a much slower rate. We've got a to-do list for the next version, but what we'd really like is some feedback from unpaid testers *cough*, I mean players. What works, what doesn't, which bits are too easy, which bits are too hard, where does the story fail to make sense? These are the things we need to know in order to make the game better.

If you have any comments, please feel free to leave them here. Bug reports are also welcome, although we think we've fixed all the major bugs since the competition release.


Robot Underground - The Future

Well, there's been a lot of positive comments in the feedback and a fair few neutral comments. I guess you can't write a game everyone'll like. I won't do a complete post-mortem on those comments because there isn't much to say, except thank you. There were some featurue suggestions/bug reports but most everything has been covered in the feedback thread we started earlier.

There'll be a post-pyweek release very shortly (Mon/Tue perhaps) with a lot of the major fixes and then an overhaul of the content and engine someway down the line. This is the plan anyway, we're still keen on this project and we hope to see it continue to do well. There may be some kind of website and bug reporting mechanism for players before long so watch this space!


Robot Underground 1.0.2

Here it is, our first post-pyweek release. There've been a lot of cosmetic changes and I don't know what they are anymore but I'll mention some key differences here:

  • Item names are more interesting than they used to be.
  • The inventory menu is new and improved.
  • Targeting enemies is easier now.
  • Balance has been tweaked.
  • We added a new weapon. :-)
  • A million little things.

Basically, it works better now. Feel free to post feedback to this diary. Our next release (a couple of months away I would estimate) will be a massive content upgrade.

Get it!


Robot Underground 1.0.4

Another release!

Mostly bugfixes this time around, although there are a few little content tweaks, and an extra super-secret weapon, which I'm sure all you RU completists will want to try out.

The big change in this release, from a development standpoint, is that we've included a lot more logging, to help with balance issues. As such, it would be really great if you could send us copies of your savegames. Eventually we'll have an automated system for this, but for now, we'd appreciate having copies of your save/game0.sav, etc. emailed to savegames@supereffective.org. Only savegames from this version (or later) are useful, so don't worry about old savegames. However, we're particularly interested in receiving savegames from people who had trouble with the game, or who didn't really enjoy it.

Anyway, enough talk, here's Robot Underground 1.0.4.


Continuing Development

As we've said before, it will probably be a while before the next Robot Underground release. However, you can now follow development at our website, www.supereffective.org.

We also have Windows and Mac binaries of the latest release, so if you've been having trouble getting things to run up until now, or you'd like to share Robot Underground with your less Python-inclined friends, now you can.