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.

(log in to comment)

Comments

There'll be comments in the judging, hopefully.

The strongest point of criticism I had was "that the movement seems a little fast, and that it should keep moving towards the pointer when the mouse is held down (rather than requiring clicks)."

Separating movement from aiming (ie. move with keyboard, aim with mouse) could be a good improvement too.

Thanks, Richard. Of course the judging is a good source of comments, but sooner is better than later!

The point about things being too fast is well received -- I don't think it helped that the team member working on combat balance had a particularly slow machine. I like the idea of keeping moving towards the pointer as well -- I'll try to put something like that in the next release.

At present, you can hold Ctrl to aim without moving; this is mentioned in the README and in a couple of places in-game, but not explicitly in the tutorial -- perhaps we should make it more prominent. We were quite keen for the game to be playable entirely with a mouse, but maybe this just isn't practical.

Thanks again for the feedback.

Just my small ideas: when I'm struggling in "close combat" (i.e. machine gun), I have a hard time to actually click on the enemies [to fast to click accurately], so maybe there could something be tweaked, but it's not that much of important. More important - from my side - would be some kind of "permanent" Health information of the enemy currently choosen as target (e.g. at the top center of the screen), especially helpful on fast moving enemies... ^^ - and maybe it should be prevented that the player is able to kill the whole population of the village [including the duck] via timed mines... ^^""

Ooh, I like the idea of having permanent information about your target visible. And I think we can do something about the speed/difficulty of clicking issue.

As for killing the duck (how could you?!), that's a definite problem, which we were aware of (although we hadn't thought of timed mines as an approach). It's on the list of problems to fix.

Oh, and when you're trying to decide whether to sell or install it'd be handy to be able to immediately see what sort of weapon you've GOT :)

Also, I'm currently just guessing about whether a tazer is better than a laser, or machine-gun. I presume a "heavy" laser is better than a laser, of course.

Oh, and then there's the bazooka. Oh, I likes my bazooka :)

There's no real ranking on the weapons -- there's a complex system of tradeoffs between damage, rate of fire, range, area of effect, etc. However, in terms of the levels at which enemies drop the weapons, a taser is indeed better than a machine gun, which is in turn better than a laser. Heavy laser is better than all of those, and bazooka knocks the pants off everything I've mentioned. However, it's still only about half-way up the table of weapons.
disclaimer: i hated diablo, and i'm not much of a fan of dungeon crawlers in general, so i might not be your target audience. =] targetting enemies is a royal pain. at the VERY least, right click vs left click should target vs move, instead of click vs ctrl-click. moving with the same interface as targetting is a pain. i would much prefer WASD controls or something like that for movement, and then mouse targetting only. if that movement stuff was better, i might not be so annoyed with the scarcity of auto-targetting weapons. on my first play, i picked up an auto-targetting taser real early, but got killed before i saved. i havent seen that thing since, and i miss it.. it made the game a lot more tolerable. as the interface is now, i wish everything would auto-target, because my patience runs out pretty quick when trying to click one of those little fast enemies. these are only the complaints. i have plenty of good things to say about the game too, but i dont want to make this post too long. =] i'll just say i've put a few hours into it already.

Well, you're a PyWeek contestant, so yes, you're our target audience.

Anyway, points well taken. The latest dev version already has right-click as an alternative to Ctrl-click. We haven't made a decision yet on keyboard movement -- obviously this would change the dynamic of the game considerably. We're certainly going to do something to make targetting easier, but we haven't yet decided precisely what.

Thanks for the feedback, and I'm glad you're enjoying the game.

Perhaps make the target selection hitbox bigger. It's just too hard to click accurately on the little targets, meaning that often you end up just running into them a lot instead of shooting them.

Perhaps that could be some function of some upgrade, or experience, ...

another idea (for the 2.0 version) would be something like attribute-points you get with a level-up which you can then choose to distribute on things like Hull (+HP), Targeting Unit (+Damage), Battery (+Energy), ...

- and I think the inventory should be easier to access (for "looking what someone got during the current mission") and the shop at the blacksmith should be a bit easier to work with (maybe an Appraise filter, only listing items that are not appraised - or even a new character that will have the ability to appraise items for you [e.g. "Cainbot" ;o)]; To be able to buy some items at the blacksmith would also be a nice idea [you cannot buy the best items available, but you could buy some items that are a bit below "normal" for the current state of the game - this would at least give the player the possibility to easily compare different weapon types early in the game to chose his favourite; which brings me to the point that "more" weapon-stats would also be nice - like min and max-damage] - or a crafter giving you the possibility to add a certain/random improvement to the chosen item with the chance the item breaks and/or gets negative enchantments on it.)

Oh, and it would be nice if there would be some way to see at how many XP the next level will be reached ^^

@richard: That's why we introduced the Ctrl-LMB option to target without moving and in the recent version RMB does the same thing. We are planning to have a minimum size of target area.

@Zahmekoses: While our item dropping is clearly Diablo-esque it'd be nice to have some mechanical distinctions. Additional and more functional screens and menus that can be called up are on my list of things to do once I've redone the ones that we have the way they should've been done in the first place. :-) To be honest the item mods we have at the moment aren't working too well, it is almost too random, getting things like increased range on repair kits doesn't make sense for example. And although the work our balancing expert did during the week was excellent given the time frame, we now have the opportunity to rethink it. I'm sure many of your suggestions will be showing up in a future release.

Oh, and in case it wasn't clear -- you're a robot. You level up every time your XP hits a power of 2.

That sounded much more obvious in my head.

I must say - for a pyweek game, and what you were trying to do, this is awesome.
I do however have a couple of things I think could have been fixed/planned better.
I am being a little extra-critical because I like this kind of game - and because it seems like so many teams were awesome this time - I find it hard to rate more than a couple games a 5/5/5 - so this not to say I didn't think the game was great or anything ;)

First - like everyone else above - being able to hold down my mouse to move is a must ;) The endless clicking got really annoying at times...

Second - it seemed to kinda get a little boring after a bit, with the monotonous "move", "shoot", "run", "shoot", "run", "kill", "collect", "return to city", "talk", "talk", "talk", "move", "shoot"....
Maybe I just didn't play long enough - but the thing that keeps my attention in this kind of game is good character development - perhaps if leveling up were more interesting or something....

Third, the production was really sound - but parts of the game seemed a tad buggy - not something I can quite put my finger on - just not as smooth as the rest of the game.
Also, you didn't make your own music - which, I admit, is not that big of a deal, I do think I should give teams that did make there own music a higher production score, or else there is little point.

Just little stuff like that - but, again I say, for what kind of game you were making - you did awesomely for pyweek :)
Definitely one of my favorites so far ;)

@RB[0]: Our plot-wise character development started strongly and tailed off because we didn't have time to do much except finish the plot we had planned. The mechanical character development I agree is basically, "how awesome are my weapons".

As for music, none of us are really musicians. Music is vitally important of course, it provides atmosphere and it brings a game to life, but none of us were good enough to produce anything of the calibre we needed in the time we had, especially given the time limitations imposed by the scale of our game.

Anyway, thanks for your comments, it's really useful to know what people think.

The game was cool, but it was rather monotonous. I couldn't get interested in it long enough to get any new weapon powerups. Fighting was more or less boring/annoying, since it was pretty much click on a badguy, and stay just out of reach. Having to repeatedly click was also pretty annoying. Its a nice job for a week though :)
Penalising because they didn't write their own music is a tad harsh IMO.

Personally I'm still playing this and enjoying it a lot. Except for the targetting. I've judged it - could you release an improved version now please :)

We're hoping to release a new and improved version immediately following the end of the judging. Maybe a few more days to tidy up. After that we'll have v1.1 with features we've been wanting to do but haven't seemed pressing after a few more weeks. Basically we're still actively developing and aren't planning to stop while there are still improvements we can make. Especially while people are still giving us ideas for improvements.

I explained my reasoning to mewo2 in irc earlier - but basically - what incentive is there for a team to have a musician or to take the time to put into making music if it isn't reflected in there score?

It isn't penalizing per se, it is just that I want to give more points to those who do put the effort into music - these guys put it into the game-play, and it shows, but I can't see giving them a 5 on production when they did not make there own music...

I hope that doesn't sound too harsh - but that is how I interpret the judging "guides"...
Just let me know if that is an incorrect interpretation.

@RB[0]: I suppose it depends on whether a game whose game play is simply a reimplementation of a known game receives similar treatment. From one point of view we did no work at all: our game play is Diablo, our graphics are Geometry Wars, our music we didn't write, the sound effects were generated automatically by sfxr and the plot is a retelling of the Cambellian monomyth.

Flippant comments aside, I am clearly biased and you should judge how you will. To me good production is about attention to detail. I spent a long time, for example, implementing careful fades in music transitions. It took a while but if the music just stopped and started a new track that would sound ugly, this way it doesn't hurt your ears and the transition of the music reflects the transition in the game, and to me such attention is what should reflect good production. Of course if a team went to great efforts to produce good music that really synced with their game that is also good production. Again, it's attention to the detail.

Chard - yeah, I agree on that interpretation of the production section, except I also add the music/sfx and gfx there...
I don't mean to "penalize" you guys - I mean - I do like it more than a few of the games that did focus more on production than fun - but I just feel that it would be unfair to not reward entries for doing everything "from scratch".

The game-play and plot I would put under innovation more than production though - and I would rate my game far worse in that regard than yours ;)

I did give you an above average on production BTW - so I hope I'm not being a heel here in not giving you a 5 - I just thought the better part of this game was the game-play itself, rather than the production.
But the GFX rock!
This is an interesting discussion, and one I have a few thoughts on myself. However, it's a bit out of place in this thread now. Can we move it somewhere else, and keep this thread for feedback on the game?

Just finished it (put several hours into the game), and it's amazing. I loved this game, it is one of the best pyweek entries ever. Congratulations.

Some small things to improve: I got a lot of weapons that I didn't have the chance to try out. Being able to try them in some playground would be nice (to know if I want to equip them/go to a mission to them or whatever). Still unsure if it should make you pay equip costs for that or not.

Also, Sometimes it took me a lot to realize that I had empty slots I could be using. Just showing an empty box below would have helped a lot.

Perhaps shuffling slots would be comfortable. That helps to, after equiping here and there, be able to sort weapons by category and have together the keys to toggle the weapons one need to turn of often.

At an advanced level, it was getting hard to get cobalt, I had always a low supply. Was that intentional, or accidental imbalance?

Targeting could be improved, as others said. Perhaps when using CTRL, you should select closest target to the cursor within a medium-large radius. That would help a lot, specially when targeting small, fast targets (unless you consider the dificulty of targetting them part of the game, I am not sure).

The inventory UI could get a lot better (most actions are multiple click, sometimes with a cancel button appearing right below the place you just clicked).

As for extra features, I imagine you already have thought a lot of them. A key to "fire all guns towards the cursor" would be interesting (specially for long range shots, or firing slow bolts forwardguessing the target future position). More armor slots, more item kinds more monsters, more levels, more characters, that kind of stuff I guess its obvious :)

This is my favourite for this pyweek. Congratulations!

Here's my error message:
http://pastebin.ca/984367

This is on Intel OSX 10.4 with Python2.5 and Pyglet 1.0.1 and AVBin2.

Any ideas?

@HanClinto: That *looks* like an AVBin problem. Do other games which use AVBin run correctly on your system?

If so, then I'm a bit confused. Perhaps Alex or Richard can advise? One thing you could try is disabling music. Edit the default.cfg file in the main directory to contain the line: music = False

@Martin: I installed AVBin from its standalone distribution first, and then later I installed it again when I ran the Pyglet OSX installer package (which supposedly includes AVBin). Pyglet games run fine now, and I was assuming that if Pyglet installed correctly, then it would have installed AVBin correctly as well.
Hmm. Judging by the problems you're having with Make Me as well, it really does sound like a problem with your AVBin installation. AVBin and Pyglet install themselves in quite different ways (even though they're in the same installer), so it's quite possible that AVBin has failed to install correctly, even though Pyglet is working fine.
Good call -- that sounds like it would line up. I tried deleting my AVBin install (by looking at the shell script and undoing the files and links that it made) and reinstalling it, but that didn't take either.

Is there a simple way I can test to see if AVBin is working? Is it as simple as seeing if I can import avbin from a test Python script?

I'm still in the middle of it. I want to echo two above comments: it should be easier to target enemies, and it should be easier to try out weapons. You seem (rightly so) to be very proud of the rich weapon variety, but if a player can't experiment and see that variety, it's all for nothing. My suggestion to fix this would be to make the equip cost a one-time cost (I guess by incorporating it into the appraise cost), but the suggestion about a playgroud is also good.

It seems like you give lots of information on each weapon except the stats that matter: damage, rate of fire, range, and area of effect. I suppose all that is rolled into the name "Cannon" or whatever, but again that's lost on players who haven't looked at weapon.py. If I know I want a short-range weapon and a long-range weapon, I've probably got that in my inventory, but the only way to find out is to spend all my cobalt equipping each one and trying them out.

I don't have any problem with repeatedly clicking to move. It feels very natural and easy. It's no worse than holding down the up key to move forward.

Okay, that's all for now! Keep up the good work!

@HanClinto: I believe you can test for AVBin with:

from pyglet.media import avbin

I *think* this should throw an exception if your AVBin setup is wrong. Maybe Alex or Richard can confirm this?

@Cosmologicon: We're certainly intending to give more information on weapons, although I'm not sure this will make it into the immediate post-PyWeek release. I like the idea of reducing the cost to equip weapons, but obviously this would require rebalancing metal drops for the entire game, so it's probably a longer term project.

@Martin:
>>> from pyglet.media import avbin
Traceback (most recent call last):
  File "", line 1, in 
  File "/Users/clint/Desktop/pyweek6-games_04-07-2008/make_me/pyglet/media/avbin.py", line 53, in 
    darwin='/usr/lib/libavbin.dylib')
  File "/Users/clint/Desktop/pyweek6-games_04-07-2008/make_me/pyglet/lib.py", line 122, in load_library
    raise ImportError('Library "%s" not found.' % names[0])
ImportError: Library "avbin" not found.

That's really odd, because it's finding the correct location of libavbin.dylib (in /usr/lib), but it's still saying somehow that the library isn't found (even though it just told me where its path was).

10 minutes of twiddling... AHA! Permissions issue! I'll post about it in the other thread.
I *loved* this game. It seemed like a full professional game to me. I would've paid $20 for it, hands down. I'm still in awe of what you guys accomplished in just a week. I was completely addicted to it, I played it all the way through and it was a fantastic experience.

In terms of criticism, things got a bit weaker towards the end (final boss music didn't match, the concept for beating the boss was great, but the execution of the last dialog was sloppy compared to the brilliance of earlier dialog), but I figured that was more due to time than anything. I agree with comments about not knowing what to think of all the different weapons, the high equip cost combined with the relative scarcity of cobalt to other metals at high levels heavily discourages experimentation, but I think experimentation with weapon combinations is actually a high point of the game. My concern there would be somebody who isn't a perfectionist nut like me wouldn't put in the time in the outer zones to be able to afford to try stuff out to find things they really enjoy.

I loved all the weapon mod stuff and trying to find great weapons. I found many weapons were quite worthless (the flame family and cannon shots never hit, lightning was too slow for it's small damage and high energy, rocket launcher mostly just killed myself) but I very much enjoyed discovering and playing with them all nonetheless. For what it's worth, I ended up going almost exclusively for efficient (i.e. low energy cost) moderate firing rate smart weapons, except for a manual aim sniper rifle and bazooka (for fun), with armor that does high energy regen.

speaking of smart weapons, the one thing I think the game really let me down on is simply how stingy the targeting is. I really couldn't have enjoyed this game anywhere near so much if I had to depend exclusively on clicking on stuff to shoot it. I feel real-time action clicking needs to be very generous (i.e. a big buffer zone around enemies) while it was often stingy to the point of feeling broken. Also I think anytime you have a context sensitive click action (i.e. left mouse to move and shoot depending where you click) you *have* to give some meaningful feedback in the mouse cursor (i.e. visibly change the cursor representation) based on hover. Also, it would be nice if Camden was a little better at getting around corners on his own. All that said though, I do think aside from the problem of missing clicks however, the single button all by mouse control is actually a real winner. In particular it's great being able to zoom around the map and kill stuff with just one hand, and I find the control simplicity of a single button really let me zone out. I think WASD move would be a more tedious worse game for me. In fact, just using the ctrl thing actually degraded my experience somewhat. I would say that right-click support for the same thing that ctrl accomplishes would be vastly superior in my case, but my preference would definitely be to have the left mouse control tuned to the point where that option wouldn't even be needed.

Again though - just a brilliant job all around. The music fit everything to a tee, it really had a great light and humorous style but still oddly compelling, and it's like crack to a discoverer-type personality like me.

I'm still really enjoying this game after a week of playing it. It's so great!

I didn't have any trouble with cobalt at the later stages. That's probably because I sell about 90% of the objects I find unappraised.

Incidentally, I find the whole thing about five different kinds of metal a bit clumsy. It seems like the idea is to prevent you from using a "level 3 weapon" against "level 2 enemies", and that's accomplished by requiring the "level 3 metal" to equip the level 3 weapon, and only giving you the level 3 metal when you get to the level 3 enemies. Why not just only have the level 3 enemies drop level 3 weapons? So instead of the metal being scarce at level 2, it's the weapons themselves. Alternately, you could make prices (and treasures) increase precipitously as the game advances. So you'd keep everything just like it is, but replace 1 zinc with 50 cobalts, 1 molybdenum with 2500 cobalts, and so on. That would mean it's possible to equip a weapon ahead of time by spending 10 hours in the Outer Zones, but if a player wanted to do that, it seems fine to me.

Also, at one point I think I managed to foil the system and use a "level 4 weapon" against "level 3 enemies". I had an auto-firing railgun, which was very powerful for me at the time (when the tanks came to the fountain, just before "clearing the caves"). It required 1 bismuth to equip, which I hadn't encountered yet, but I got it by selling some other powerful weapon. This made the next three stages a breeze.

Wow! People like us!

@Thorbrian:

In general the game is weaker towards the end, this was because of time, we polished the start more so people would get into it more easily and didn't have time to go back over the later stuff. Plus the late game balance starts to fall apart a bit.

Item/mod mechanics need rethinking, likely equip costs will disappear and the main metal sink will become upgrading weapons with *additional* mods. Not sure how this'll work out but we plan to spend some serious time playing with our mechanics now we have more time. :-)

The control of the game was a conscious decision that you should be able to play with a single button mouse and no keyboard. Not everyone likes this and so optional keyboard controls exist. Again these things are being considered and it is likely RMB will feature somehow in the moving/targetting bit.

@Cosmologicon:

The tanks in town during the third Act were bugged. My fault I'm afraid; I wasn't thinking when I added them. They were railgun tanks which you shouldn't encounter before Act 4 so they could easily drop higher level stuff some of which you can sell for the metals you need to equip the others.

As for rethinking the metal system, I'm not sure if that will happen. Personally I find a one resource resource model over simplistic. Possibly if you could trade metals down but not up that would alleviate the issues.


Thanks, both of you, for your very positive comments, look forward to an upcoming post pyweek release. Said release will be fairly soon but won't contain all the changes we want to make, just the important fixes and enhancements.

I'd like to add to Chard's comments that we're not done with Robot Underground quite yet. There'll be a "bug-fix" release (with some new content) slightly after the judging finishes, but there will also be a proper "content upgrade" release at some point in the next month or two, with a lot more new stuff, and some proper re-balancing.
I'd like to add to Chard's comments that we're not done with Robot Underground quite yet. There'll be a "bug-fix" release (with some new content) slightly after the judging finishes, but there will also be a proper "content upgrade" release at some point in the next month or two, with a lot more new stuff, and some proper re-balancing.
Okay well here's two bugs you probably already know about, but I haven't seen them mentioned. First, it always crashes for me in Pimlico's cave before the end of the second level. Second, it crashes if you sell everything on the last page of your inventory without scrolling up.
I get the Pimlico cave crashes too, although there are 2 different crashes, first:
  File "lib\missionmode.py", line 819, in update
    self.mission.tick()
  File "lib\mission.py", line 126, in tick
    self.advanceScript()
  File "lib\mission.py", line 115, in advanceScript
    main.control.start_mode("game.mission", force=True)
  File "lib\main.py", line 143, in start_mode
    self.handler = self.mode.handler()
  File "lib\missionmode.py", line 180, in __init__
    self.mission = mission.Mission()
  File "lib\mission.py", line 38, in __init__
    content.setupMission(main.control.plotstate, self) # inits map, protag, actors, scripts
  File "lib\content\__init__.py", line 33, in setupMission
    act5.setupMission(ps, m, nextScene)
  File "lib\content\act5.py", line 28, in setupMission
    setupSuperDungeon(ps, m)
  File "lib\content\act5.py", line 498, in setupSuperDungeon
    placeEnemies(m, getSuperEnemies(div, rem))
  File "lib\content\act5.py", line 462, in placeEnemies
    newE = e(m, (750, 50+(100*idx)), bearing=0)
  File "lib\content\enemies.py", line 870, in __init__
    weap = weapon.GatlingGun.applyMod(mod.BOSS(3)),
TypeError: unbound method applyMod() must be called with GatlingGun instance as first argument (got BOSS instance instead)
which is fixed with: weapon.GatlingGun().applyMod, and:
  File "lib\missionmode.py", line 528, in on_draw
    self.draw_entities(minx, miny, maxx, maxy)
  File "lib\missionmode.py", line 408, in draw_entities
    sprite, colour = graphics.sprites[e.name]
KeyError: 'Super Rocket Tank'
which I assume is because there is no art for the "SuperRocketTank" enemy?
Thanks for the reports, Cosmologicon and Thorbrian; we did know about those errors but weren't really sure that it was appropriate to announce fixes for them during the judging when they don't impede your ability to complete the game. Thorbrian's fix for the GatlingGun() error is correct; the super rocket tanks can be fixed by adding this line to the definition of 'sprites' in lib/graphics/__init__.py:

"Super Rocket Tank": (anim_tank, (1,1,0)),

All of these errors should be fixed in the post-judging bugfix release which should be out shortly after the judging period ends.
Am I the only one who doesn't want a White Dress?
Am I the only one who doesn't want a White Dress?