Announcing Realm of the Ghost King 1.1.0!

For immediate release, Mantis-Eye Labs, LLC is pleased to announce:

Realm of the Ghost King 1.1.0

After dozens of sales and a little time away I'm happy to announce the future of Realm of the Ghost King! In the near future an update with new content, bug fixes and other fun stuff will be released totally free of charge to current owners of the game!

Coming Soon!

So what content is in ROTGK 1.1.0, you ask? Well, here's how game development works: you think of all the cool shit you want to put in a game and then you completely cut like 80% of those things because otherwise you'd never release anything. 1.1.0 is my chance to add back in some of those things!

But Why?

Because I can! The game didn't exactly sell like hotcakes, which is fine, but the last year or so of development was quite a slog. It made me kind of dislike the game, and I don't want to end on that note. So I'm adding in a few features that I cut, some other good ideas I had, and tossing in a couple things I knew would be really fun to build. It's an update for me, the developer, as much as you, the player.

So what's in it? Glad you asked!

Graphical Updates!

If you follow me on Twitter you may have seen this tweet with a mockup of some new "lighting". I always felt the levels were a little sparse around the edges, but it wasn't a high priority to fix them. The new look isn't quite as dramatic as that mockup, but I like the final result:

Playable Ghost King

Having the Ghost King be a playable character was something that seemed fairly obvious, but it ended up as part of that 80% I mentioned earlier. A lot of the 80% of stuff cut is for the better, but some of it is just a bummer. Unlocking the Ghost King awesome and I'm glad he's finally playable! Here's his character select screen:

I'll have more stuff on him in the near future. Keep an eye on Twitter where I'll probably post some videos or GIFs about this.

New Monsters

In the above image you might also notice there are twelve characters to pick from now instead of ten (nine plus the Ghost King). This is one of the fun things! Designing new monsters is a lot of fun! I'm so excited that I even made a graphic!

New Monsters

Both of these are still in the pretty early stages of development, and it's possible I won't even be able to pull off Phantom's special ability in the way I want to (which is why I'm being vague with "possess your foes") but maybe announcing it will motivate me.

Like I said before, I'll put stuff up on Twitter when I have something I'm happy with and worth sharing.

Daily Challenge Countdown

This is a small change but I like it. The Daily Challenge starts and ends at midnight UTC every day, which is more or less an obvious time to do it, but it's never actually communicated anywhere. Now there's a little countdown letting you know when the current challenge ends (or when the next one starts, if you prefer):

What Else?

A couple less fun things that are still hopefully good!

I'd like to balance the last (non-boss) level of the game a little bit better. It's always seemed too hard to me. It should obviously be hard but something makes it feel a little too difficult in an unfair way.

I'd also like to add controller support. I'm not sure if anyone actually wants this, but it seems cool to have and I don't think it will be too tough to do... might be famous last words though.

More achievements for the Steam version! People like achievements, right? I thought I would hate them but I had fun implementing them and I'll try to think of a few more that are actually achievable.

Okay So, When?

No date is set yet! I'm hopeful for late April or early May, but I'm not going to promise a date just yet! So, for now...

Coming Soon!

There will be plenty more #content and #announcements to come regarding this version. I'm excited to build some (hopefully) cool junk for this game!

7DRL 2018: Shift Stack

I made a roguelike in seven days! It's called Shift Stack and you can play it on (in a desktop browser) for free!

I had a lot of fun making this game and I want to go into some aspects of the game I like and some that I don't. I'm going to assume you've played it a little bit, so if you haven't you might want to give it a spin. You don't have to, of course, but it might make more sense to play it and then read this.

About The Game

The main idea I had when I started this game was playing with the idea of "depths" in traditional roguelikes. Generally there are some number of levels you traverse down into, and in some cases you can retrieve something from one of the lower depths and then go back to the first one to win the game. Hoplite worked with this formula very well, and one of my favorite iOS roguelikes, MicRogue (which I can't find an offocial website for, so I'm just linking to the App Store and Google Play Store), used this as its main goal.

The main mechanic of Shift Stack is that you can warp between depths (or levels) pretty much at will. There's a limit to how many times you can do it and yu can only warp to adjacent levels so it's not completely free, but it feels like a worthwhile limitation.

The second mechanic I ended up adding is making the player helpless, so to speak. You can warp levels and move around but otherwise you're powerless. No attacks, no abilities, no spells or anything like that. This ended up happening because I wanted the focus to be the level warping and not just wrangling enemies so you could punch them in the face.

So then how do you win? Rather than collecting a single treasure from one of the levels, your goal is to defeat all the monsters. Since you can't attack them, monsters are more dangerous than a standard roguelike. While you can end up adjacent to one and never get attacked, you can get trapped and since you ony have two health you can only really sacrifice one hit point most of the time.

Things I Like

There are a lot of things I enjoy about the design of the game. I really like the main mechanics and the concept of a stacked set of levels that you can sort of see. I like having a player character who doesn't have any means to directly attack monsters and must use the envirornment to their advantage.

I think the thing I'm overall happiest with is how seamlessly enemies and the player interact with the level's tiles. Enemies will avoid directly walking onto traps in the current level (aside from some edge cases) but can also steal your power-ups.

While Realm of the Ghost King did use an entity-component system, it was never as refined as I wanted and I decided to not revise it in order to actually finish the game. Shift Stack gave me an opportunity to rethink parts of it that I wanted to, so I ended up with very clean entity definitions. Here's the player:

player: {
    width: 16,
    height: 16,
    components: {
        Player: {
            power: 3
        Renderable: {
            size: 12,
            color: "#0000C0",
            sprite: "player",
            shadow: true
        Movable: {
            moveSound: "step"
        Hurtable: {
            health: 2,
            hurtSound: "hurt",
            deathSound: "player_death",
            onDeath: function() {

The only real difference between the player and an enemy is that the player is controlled by input. The "Player" component is a small differentiator but that coule easily be (and maybe should be) a "PowerUser" component that would signify the ability to use the power charger pickups but also give the entity an inventory of power they could use. There's also an "Enemy" component that dictates enemy movement.

The final part to this system is that every tile has a function triggered whenever an entity enters it. Tiles have properties denoting that they can heal, recharge or do damage, so whenever an entity enters a tile one of those things happens (it could also be all three but no tiles in the game have multiple properties).

Things That Need Work

The main issue with the game is I feel like it needs more variety. Once you figure out how it works it just becomes a matter of plotting a course that lets you get rid of all the enemies without running out of health or power. I almost feel like it would be better as a series of authored puzzles rather than a set of randomly generated levels. It could be interesting to play with grid size as well as the number of levels. It also could potentially scratch an itch I have for making something with authored content, so maybe I'll revisit that at some point in the future.

Also due to the design of the game it's easy to get stuck. The game attempts to account for the most obvious case: when you run out of power and there are no charging stations on the current level. However it's also possible to get trapped by enemies with no way out (due to being blocked from warping to the next level). The game does not account for that issue, which is why I added the "Murder Scientist" button, which is a kludgy solution. I could certainly add detection for when the player is trapped, but leaving that out was mostly due to the time constraints. The "Stranded" scenario (running out of power) was only added in the last day and actually introduced a bug where you could beat the game but lose because you used your last teleport to kill the last monster in a level with no power stations.

Final Thoughts

Overall I had a lot of fun and in all honesty being able to submit a mostly finished game was a great boost. Like I said I don't think the final product is perfect, but being able to get something done was awesome!

Release 1.0.5

My continuing series of updates, I released ROTGK 1.0.5 which has some (hopeful) fixes for Linux crashes, the blocked exit bug (not optimistic about this one at all) and a Steam achievement issue as well. Patch notes are on Steam and as always.

1.0.4, I'm Good At Games

1.0.3 introduced a pretty silly bug, so I wanted to patch it up to 1.0.4 pretty quickly. Hopefully I can lay off breaking my own game for at least a few days now. You can read the full patch notes on the Steam Community page or the devlog if you prefer.

Patch 1.0.3 + Linux

This one is already making me realize I will need a new patch soon, but I'm sure people don't mind waiting a little.

The main piece of news is the Linux version is finally out. This was slightly more of a struggle than the Mac or Windows versions since I don't have a computer running Linux and I didn't really want to set up an existing one to dual boot. So I installed Vagrant and VirtualBox and all that good stuff and here we are:

It's hard to tell how well it runs since things in a VM generally don't run super well, but it seems to be pretty quick all things considered, so I'd imagine someone running it non-virtually will have a good experience. The DRM-free version is also up on if that's your preference.

There's also one gameplay related change, which adds visible enemy spawn spots (one turn before they spawn) for all those enemies that teleport in during each map (you can see a screenshot in this Steam update). My main reason for this was sometimes I'd be playing too quickly and run up against a spot where an enemy had just spawned and immediately get hurt or killed. This won't actually prevent that from happening, but it takes away my excuse for why I'm so bad at my own game. Maybe I'll take it out in a couple of weeks when I decide I want that excuse back (I won't).