Beyond RoboLike


What?

RoboLike was created for 7DRL 2021. Inspired by the classic 8-bit games Paradroid and Quazatron, but re-imagined as a turn-based roguelike with procedural level generation.

It failed.

But only because I lacked time and experience to complete my vision in seven days.

Quasidroid continues the development of RoboLike into the game I was trying to create.

Why?

Despite submitting RoboLike as a "success" it was really only "complete" in the sense that you could in theory play a game through to the intended win condition. The main reason for the "in theory" being that it's horrifically buggy and prone to locking up due to my struggles with overlaying turn-based gameplay onto real-time animation. On top of that, a lot of planned features never made it in. So I had unfinished business.

RoboLike remains frozen for 7DRL assessment, giving me a chance to rename. Although I'm not sure I've got that right.

On top of which, there's a very good chance it will turn into more of an action game in the future, which will givw me the option of updating RoboLike to the latest turn-based code and having both forms available.

How?

In my first RoboLike postmortem I reckoned that after a week of pretty much full-time development it was half way to being feature complete. I've put in another couple of weeks of spare-time development, hard-descoped a couple of features, and I reckon it's there. Still expecting masses of bugs needing fixing and rebalancing to do, but I'm not sure there's anything new that really needs adding.

The third postmortem goes into the planned features missing from RoboLike. This is how I've tackled them in Quasidroid:

Missing sprites/tileset

The biggest. literally, visual change is that I doubled the sprite size to 96x96 and reconfigured the default resolution to 1080p/fullscreen. Despite this, I still don't think that visual clues to anything other than weaponry would work, so decided to stick with RoboLike's simplified (from the original plan) approach of distinguishing player from enemy by both colour and shape . Which simplifies things.

I resized the 72x72 tiles to 96x96, relaid the sprite sheet to follow Godot's conventional template, and filled in the missing pieces as best I could

Fog of war

Doubling the sprite size but only increasing the screen size by 50% imposes some of the restrictions that a fog of war would, while I remain perfectly happy with both the in-game and pragmatic reasons for dropping it, so it remains unimplemented and I intend to keep it that way.

Minimap

I dropped the idea of a minimap in favour of an overview, _ie_ a live map of the current level, which halts movement. I think this is a better solution to the problem.

Level map

This was the last thing to be descoped from Quasidroid when I realised that having a graphical representation added nothing, and the information could be conveyed more clearly and succinctly textually.

Hybrid enemies

They made it in to the lowest level as simple crosses of two donor models.

Grappling

Grappling is in, but can only be initiated by the player, which simplifies the AI. (And I think was the behaviour of the inspirational games.) I'm still unconvinced by the balance of it.

EMP (sort of)

Decided to leave as a directional weapon, but there's no visual indication that it's being carried, and it's one of the range weapons I've increased the effective range of.

Implicit damage

Damage can be inflicted to chassis if power:weight ratio is insufficient, or to speed stat if it exceeds drive capability. I tuned these to be quite difficult to run into, which feels right for balance (see below).

Enemy AI

I thought about putting some player targeting and explicit path following in, then decided that apart from not adding further complexity to the code, having just the unpredictable behaviour fitted well with the game concept. One thing I did change was that if you melee attack and the enemy isn't already facing you they'll turn around, although they'll choose a random new direction so still might not lock onto you.

Extra equipment

Many of the same arguments for not including extra equipment in RoboLike remain. The only thing that might have made sense would be something to counter implicit damage, but I made that less punishing instead.

Save/Load

Save/resume/new all working nicely. I kept with the idea of having a single save per game, but the save point being determined by the player. So there's no true permadeath, but you can only do-over from the last time you saved or the very start.

Polish

I changed the font to Jura for improved legibility and to get some typographic variety into the text, and worked out how to feed it through Godot's theme system. However, it's still mostly out-of-the-box Godot UI.

Apart from the polish added by the new sprites, I made the level transition smoother, and rearranged the UI (which had the nice side-effect of simplifying the code).

The game should be fully-playable with just mouse or just keyboard, and mostly playable with a joypad, but I think I've got some controls that aren't mapped.

Who?

As usual, this is just me gluing together other people's assets, although there's been quite a bit of adaptation to the robots and walls, and the weapons are all my own. (Be honest, you can tell.) Specifically, the walls are from https://nurdi21.itch.io/a-cave-tileset, the floor, doors and base robot from https://kauzz.itch.io/kauzz-free-tiles-space-pack, and the "access point" from https://kauzz.itch.io/kauzz-free-tiles-32x32.

When?

Now. Quasidroid is playable in-browser (Chrome recommended, apparently, and more cautious setting may not let youy save games) or as a download for Windows, MacOS and Linux. I've got the main burst of development done and it's time for some serious play-testing.

Files

quasidroid.exe 40 MB
Version 1 Apr 05, 2021
quasidroid-osx.zip 54 MB
Version 1 Apr 05, 2021
quasidroid.x86_64 41 MB
Version 1 Apr 05, 2021

Get Quasidroid

Leave a comment

Log in with itch.io to leave a comment.