Version 0.55 - Tutorials and More

I’ve put the latest version (0.55) of Warning Call here.

The bulk of my time has been spent building a tutorial level. It’s not done yet, but it’s accessible from the start menu. More to come here – I’ve never written a tutorial before so it’s an interesting challenge. All of the feedback I’ve gotten from the kind devs on r/roguelikedev has been helpful in seeing the game in a different light.

Major changes from the last version include:

  • Removed Targetbots (t) from the first level
  • Fixed bug where Empowering and Ammo-generating nanites would not allow power usages if you had zero charges.
  • Enforcing same hotkey press for powers & confirming target. This makes it easy to double-tap a hotkey when targeting quickly. This also allows you to return the Axe using the same key that you threw it with. (pro-tip: you can have more than 1 Axe power installed at once!)
  • Made sure Warp Beacons cannot be trapped behind impassable terrain
  • Gridbots (x) no longer get stuck in the wall when they explode out of a Xenobot (X)
  • Put the Power menu as the first line of the footer
  • Added the SEED # to the header (mostly for help in bug reporting, but eventually for game-sharing)
  • Spread out the guaranteed powers on the first level – the starting room was way too cluttered
  • Fixed mysterious game-crashing bug with ’empty’ nanites spawning on the ground in deeper levels
Feel free to post comments, bugs, and feedback below, or on the reddit link above. Or e-mail me: todd AT (this domain).

Latest Version of Warning Call (aka Hardpointe) online

The latest version (0.5) of Warning Call is here. (I changed the name from Hardpointe, but the game is the same). If you have commentary leave it on reddit here.

A full list of changes since the last playable version is below. Thanks, and enjoy!

From 0.5:

  • On-screen radial menu replaces ‘ambiguous input’ menu:
    • Makes it simple to double-tap space to wait when standing on wreckage
    • Can no longer escape out of radial menu
  • Interface updates:
    • Warp Beacons and Airlocks are highlighted when not in view
    • Significantly expanded HELP content
    • Better item and power descriptions all around
    • Cycle between enemies while targeting with ‘e’
    • Inventory is sorted more usefully
    • Power install menu has better shortcuts (allows player to quickly tap SPACE + # to install a power into a given slot)
    • Grenande targeting shows area of effect
  • 3 new nanotech types (found as items and on the grid): 
    • Recharging nanotech (temporarily makes all power uses ‘free’)
    • Reloading nanotech (temporarily makes all weapon uses ‘free’)
    • Strengthening nanotech (temporarily adds the HULK effect and +1 melee damage)
  • New enemies:
    • Gridbot (1-hp enemies that always appear in pairs)
    • Xenobot (explodes into gridbots when destroyed)
    • Megadrone (constructs mini-drones out of nearby scrap)
    • Protectobot (casts shields onto nearby allies)
    • Interdictor (able to see cloaked targets and use a displacement field to cancel PHASEWALK and CLOAK effects)
  • Ability to ‘sacrifice’ Warp Crystals to double SCORE
  • Enemies take damage when falling through chasms
  • Different icon for weapon powers vs. ability-based powers
  • Better distribution of grenades, powers, and nanotech items 
  • More wreckage distributed across levels
  • HACK effect is now temporary, and scales with power level
  • PHASEWALK is now more liberal when calculating if a ranged attack goes through you and hits a nearby enemy

From 0.35 and 0.4:

  • Power level is now tied to how long (or far) powers last 
  • Lowered the base duration of most power effects (but they now scale with level)
  • Warp beacon menu improved and text made more helpful
  • new HULK power that temporarily adds +1 to melee attacks

New Site - Old Games Back Up

I finally uploaded my redesign of and have started restoring some of my older games. First up are roguelikes from the 2012 and 2015 7-Day roguelike challenges, all browser-based and utilizing the amazing rot.js library.


RoboCaptain specializes in ranged combat and power-management similar the old X-Wing games. Looking back at it now it is pretty rough, but also very complete and still fun, which is saying something.

Heavy Axe

Heavy Axe is a small-scale classic roguelike featuring extremely tactical combat. Journey through the temple to slay the gods themselves, using a massively heavy axe. Moving with the Axe drains stamina, and stamina determines damage, so moves must be planned carefully to avoid running into an unkillable foe.

 Next up will be Dungeon Dual. This one is a bit trickier since I need to get the co-op engine running again as well as a django server that powered the leaderboard and login process.

Let me know if you run into any trouble playing either game.

I can't just kill you, can I?

One of my overriding design principles of Hardpointe is to keep the number small. Originally the rule was “nothing over 3.”

  • The player has a maximum of 3 hit points. The player can cheat a bit here and add 3 shield points temporarily using the shield power.
  • All regular enemies have a maximum of 3 hit points. For some enemies, this is a combination of health and shields, the later of which are usually temporary and also vulnerable to EMP grenades.
  • All attacks do 1 damage. There are no enemies that do over 1 damage. The player can add +1 to their damage by using a wall-smash, surprise attack, or the `hulk` effect.
I really enjoy the tactical decisions that these design choices enforce on the player. But they also force some tough decisions on me, the developer. 
When the player only is only ever 3 hits away from death, there is no room for taking easy (or “cheap”) hits at the player. Part of this is making information about battlefield as clear as possible. Another part is toning down the usual brutal mechanics that power my favorite roguelikes.
For example, in Hardpointe there are tiny nanites that effect the player when you step on them. You will see them, and you can use the HUD to find out what they do. But, there is always the chance of a player stepping on them accidentally. So, for that reason, there are no cases of ‘instant’ damage in the game. 
Corrosive nanites (orange dots)
Right now, the closest we get are ‘Corrosive’ nanites, which make the player (or any enemy) weak enough to kill in one hit – temporarily. This is a great advantage to the player if they can make use of them, but also not instant death if they are forced to step on a square, or they trigger the effect inadvertently while not paying attention. 
There are other nanites that will make the player temporarily invulnerable, or temporarily do +1 damage. Again, great advantages for the player, but getting terribly close to an instant-death situation if an enemy steps on them and the player does not notice. 
Enemy changes color as a warning*
In this case we turn the monster a different color when they are either invulnerable (as the player is in this gif above after stepping on the neon green nanites on the left) or `Hulked Up`, after stepping on strengthening nanites (dark green on the right). There’s also a HULK power that the player can use but I think it is a bit overpowered.

(* don’t worry, I made the color change more dramatic once I saw this in GIF form)

A long-dormant chunk of code in Hardpointe deals with radiation and fire as features. Since in most games fire does damage, I’ve not yet come up with a good way to add it that does not seem unfair. Radiation is a bit different – it will not kill you instantly, but will start a timer on the player. If you don’t get out of the irradiated zone before the timer ends, you will take 1 damage. This seems like a good trade-off. There’s also a HAZMAT suit power coded up that I can make use of some day and add specialized rooms or levels where the player will need to sacrifice a power to make it through unscathed.
In summary – I can’t promise not to kill you. But I can promise that you will see it coming.

Give me the 30 second version

“So, what’s it about?”

I’m probably mis-quoting Darren Grey here, but it’s close enough. I was in London for a visit last year and while I was there I decided to look Darren up. I’ve been a big fan of his for quite a while. We’ve run in the same circles online, from the old (RGRD) to rogue temple and all of the incarnations of the 7-Day Roguelike Challenge to the current rogue-reddit “scene” at (r/roguelikedev and r/roguelikes). He also writes some great games – he’s done a lot for the community.

So of course I was excited to meet him in person. And of course we start chatting about development, what are you currently working on, etc. Turns out being a new dad is not so condusive to programming, but I had been continuing to develop my failed 2017 7DRL Hardpointe. That’s when I get the question: “So, what’s it about?”

Oops. I didn’t have a smooth or particularly convincing answer. Something about tactical combat, maybe?

A few months later, here was my first definition:

Hardpointe is a “medium” sized roguelike with a focus on tactical combat and movement. Managing a limited set of powers, upgrades, and items will be critical to your success.

Here’s my 2nd try:

Hardpointe (name subject to change) is a browser-based roguelike with a focus on tactical movement and finite resource management. Players have 3 power slots that can be upgraded or swapped out as luck and necessity see fit. Combat is deterministic and the numbers are small – almost all attacks do 1 damage and almost nothing in the game goes over 3 hp. (With 1 or 2 exceptions). There are no real ‘vanilla’ enemies. Fighting 1-on-1 is usually easy, but difficulty can scale quickly with multiple foes.

Maybe somewhere in between?

Hardpointe is a browser-based “medium-sized” roguelike with a focus on tactical combat and finite resource management. A lone soldier must infiltrate and destroy an asteroid fortress filled with robotic hordes bent on Earth’s destruction. You will harness unique powers, abilities, and an assortment of weapons that you find along the way. Each enemy has unique abilities and behaviors that will require different strategies. Combat is deterministic and health is extremely limited; positioning and thoughtful movement will be your keys to victory.

How’s that? (They keep getting longer… oops.)