Monster Intros 3: Squid and Titan

When coming up with non-randomly generated characters for an otherwise random game, sometimes you start with an (perhaps obvious) idea: This one should be able to freeze enemies! This one should be able to steal enemy health! Sometimes you start with no idea at all and figure out what to do.

Squid is the second monster I ever drew for Realm of the Ghost King (the first is Ghost, who you'll hear more about next Saturday) and it hasn't changed at all since (the only one to never undergo any revisions). The design is an obvious reference to Cthulu and the name an adknowledgement of that.

Initially Squid was kind of boring. No double move like Ghost, no teleport like Morel, no explosions or energy sapping. Its special attack used to just be regenerating health (which is what BOT_3000 does now) and its passive used to be regeneraing a bomb for every close kill. This made Squid fairly overpowered but also not very interesting.

At some point or another I added friendly AI into the game, which are just enemies that target other enemies instead of the player. I don't recall if that was added for Vlad's special attack or for Squid, but it's one of my favorite additions to the game since it can create some interesting and even unpredictable scenarios. Really the main drawback here is only two monsters allow you to benefit from the friendly AI. Vlad, as mentioned, can temporarily convert enemies to friends, but Squid can summon a permanent ally in the form of an undead skeleton (or, I suppose, just a large skull).

Initially summoning an ally was very expensive. It cost the usual two souls but also cost one health. While this limited the number of skeletons you could summon to your health minus one, it also meant you couldn't summon one as a last ditch tactic when you had one health left. There are no such restrictions on any other special attacks, so it was kind of unfair. I eventually removed the health requirement, but then you could summon four or more skeletons at a time depending on how many souls had you banked. It made the game kind of crazy if you just spammed skeletons into every level. It was a waste of resources to do it most of the time, but it seemed silly to allow it.

The final compromise ended up being only allowing one skeleton in the level at a time and blocking subsequent attempts at using your special attack. Skeletons generally don't last long enough where you'll want a second special attack, and if they do survive to the end it usually means there aren't any more enemies anyway.

Titan is more of a product of the first method of thinking. The basis behind him was: "What if there's a monster with a lot of health... and also he can make himself invulnerable!" Invulnerability is a fairly standard thing in a lot of games. The main thing you have to make sure is that it doesn't make the game too easy. Since becoming invulnerable takes from your valuable soul pool it's hard to overuse it in most cases, which is good. The only revision I made to invulnerability was making it last for an extra turn: four instead of three. Three turns felt too limiting and it was still useful as a way to bail yourself out of a bad situation, but there wasn't much to be done if you wanted to plan something with it.

Also unlike Squid, Titan also underwent some pretty major revisions. Back when the game was called "Ghost Realm" and every character was a ghost (which just meant they all floated), Titan looked like a floating shield and was named accordingly. In fact internally in the game code he's still referenced as "shield".

As always, happy Saturday! The final three monsters will be introduced next Saturday.

Monster Intros 2: Icecap and Fireball

If you haven't yet, check out the the first post in this series. It explains a few concepts in the first couple of paragraphs. But in a nutshell, I'm writing up some quick profiles of the monsters in Realm of the Ghost King. Two new ones every Saturday!

Since no game would be complete without an ice monster, Icecap of course exists. Her primary attack is freezing other monsters, which happens both randomly as part of melee attacks as well as on a greater scale via a special attack. Freezing a monster renders them unable to move for three turns, which generally results in death for that monster. There are also a couple of benefits to freezing a few monsters, but I won't spoil the surprise.

While enemy Icecaps can't freeze the player at will, they have a random chance of freezing you if you let them attack you. This means you need to plan around an Icecap when you see one, lest you meet a quick demise. You could also just roll the dice (or maybe you have a potion that will unfreeze you) but I wouldn't get too cocky.

And of course with the ice monster always comes the fire monster. Fireball is unique in that she cannot be frozen by Icecap, meaning you can't use your usual strategy when encountering one. You also gain this advantage when playing as Fireball. Like BOT_3000, Fireballs will explode when killed, so you need to take that into account when dealing with them.

Along with immunity to freezing, you also have a controlled explosion as your special attack. This has the same power and radius as a bomb but with the added advantage that it you can use it at will as long as you have enough souls. This is especially helpful for times when you run out of bombs and need to bust through one last wall for a much needed power-up.

I hope you enjoyed this Holiday Fire & Ice combo. I'll have the skinny on two more monsters next Saturday!

Monster Intros: Vlad and BOT_3000

With the game coming out in less than a month, I'm going to spend a little bit of time over the next month talking about all of the monsters in the game. First, a brief note!

Realm of the Ghost King is sort of unique (or at least I'm not aware of many other roguelikes that do this) in that the player can play as and against all of the same enemies (with a few minor exceptions). You choose from one of eight monsters to play as and you face off against those same eight monsters when you play. While player monsters and enemy monsters do share similar powers, players have some added abilities, but it's also important to know which monsters can do what to better conquer the game.

The second thing you'll hear a lot about are "souls", which are the main currency of the game. Each monster drops a soul when it dies, and souls can be used to purchase stat upgrades, items such as health or bombs, as well as being utilized for "special attacks" which are attacks or abilities every monster has but can only be used by spending souls.

So with all that said let me introduce you to the first two monsters!

Vlad is a bat who has a small health pool but has the ability to sap health from any enemy killed by a close (adjacent) attack. Using this ability allows Vlad to survive some attacks that other monsters cannot. By spending souls (via a special attack) he also has the ability to convert enemies into allies who will fight on your side for a short amount of time. In the gif below you can see a couple of converted enemies, denoted by the skull helmet.

When fighting against Vlad he does not sap health from the player, however he will move backwards a square whenever he is damaged. This means your approach to Vlad needs to be a little bit more considered since he'll move out of direct attack unlike all other enemies.

BOT_3000 is a robot caught in a world of monsters. Thanks to being a robot, it explodes when its health reaches zero, but ejects its robot brain, surviving the process. The explosion will hurt any monsters adjacent to it, which is good because it'll need help getting around after that. Once BOT_3000's body is destroyed it can no longer use bombs, only adjacent attacks. However, if you collect two (or more) souls you can use your special attack to build a new body.

When in full-body form, BOT_3000 can spend two souls to gain one health. This provides an extra degree of survivability without needing to revert into robot brain form.

Enemy BOT_3000 doesn't possess a robot brain, however it does still explode when you kill it, which does require some degree of thought if you don't want to lose too much health. However the explosion works the same as any explosion in the game, and could be used to your advantage if you're clever.

That's all for now, but I'll have info on the next two monsters up on Saturday, and every Saturday thereafter until the game launches.

Official Announcement Trailer!

Hooray, I made a trailer! That's a thing you do when you release a video game, right?

This is all very exciting and it makes the game feel official in some way. I mean, it's definitely a game I made and will sell for money (that's weird!), but making a video about it for some reason makes it seem like a legitimate game. Also I'm impressed that I don't completely hate watching the trailer. I can't be around when other people watch it yet, but one thing at a time.

Anyway, some insider info for those of you who care. As with most game stuff, making a trailer is hard and also time consuming! I've never made a video like this before and due to not really having any video editing skills to speak of it was kind of a challenge from the start.

The trailer is done entirely in game! All the level transitions, changes to the player, text overlays and so on are all in game. It's actually piggybacking on the tutorial system I wrote which allows you to display some text (or anything really) on the screen and then transition to the next step when some condition is met. The sequences where the player moves in the tutorial are just me. I actually recorded the footage for it probably 10 - 15 times and each one was unique for any sequence that requires player input. Also the level generator continues to do work so if you looked at the raw footage the levels would also be different.

This was mostly done due to my aforementioned lack of video editing skills. Rather than capture a ton of footage of what I thought would be cool and splicing it together in a video editor I just staged it all within the confines of the game itself. A lot of sequences are trimmed for time of course, so the cuts when you "play" the trailer aren't as abrupt. Either way it probably cut down on the work I had to do since I already know how the game works but not how video editing works. I don't know if this is the best way to make a trailer (I'm guessing it's not) but it worked pretty well for me.

And a final note, the music in the trailer is called "Ice Cave" and it comes from a Creative Commons album called "Songs from an Unmade World" by Visager. You can check out his website or follow him on Twitter for more. This is also the music the game plays and I'm pretty happy with it. Thanks to Visager for releasing some great free music and I hope my game does it some justice.

Build 'Em Up

We're now to the part of our story where your hero (uh, that's me, I guess) valiantly scrambles around to figure out how the heck to release a game. Back when I started this I envisioned having just a Mac and Windows build (and maybe Linux some day if I set up a VM) and that was it. There are lots of things you never think about: a development build with a bunch of debug stuff so you can easily muck about with bugs or tweaks. Then if you distribute the game on Steam having some integration with Steamworks is helpful. Also there's Mac and Windows versions of everything now. There's a reason larger game companies have build engineers to deal with all of this stuff, because if you are even on two or three platforms it becomes confusing. I can't even imagine doing launches on consoles or mobile at the same time.

The least exciting part of making video games?

Add to this that I basically have no idea what I'm doing and I am using my personal computers to do builds and it's all just kind of crazy. Also my poor foresight didn't allow for more than one build per platform, so if I want to upload the Windows version of game to and Steam I need to build one version, deploy it, then build the next version and deploy that. Then I have to do that all over again on my Macbook for the OSX builds. At some point I'm probably going to push an incorrect build somewhere.

There's also still a fair degree of manual stuff that's sure to ruin my life one day. When uploading to Steam you can push any number of platform builds at once, but since I only build Mac and Windows versions on separate machines and also deploy from those, it's a lot of running around and editing config files. There are ways to make this easier on myself, but I've locked myself into a launch date next month so I don't know how beneficial it would be. Maybe for the next game!

Early next week I'll be releasing the trailer and hopefully getting the Steam page up soon as well. It's the home stretch!