Heroic Fisticuffs!

Here's a place where I talk about games, applications, websites, and other things that I make for fun. Mostly roguelikes. And pirates. And robots. Since my domain is hard to spell you probably came here on purpose.

Next version progress & Phasewalk

Spent some development time beefing up the Cloak and Phasewalk powers. Cloak is fairly straightforward, but I wanted the enemies to react a little better. Instead of immediately giving up, they will move towards your last location. This means you can easily predict their movements and set up traps for them.

Attacking will remove your cloak, but also add +1 damage, which enables you to take out the tougher 2hp enemies relatively quickly -- assuming you have a Cloak charge to spare.

Phasewalk has been in since day 1 - I initially added it as a debugging feature so I could walk through walls, and thought it was a pretty fun mechanic. Now it gets a bit more useful. When phased, your attacks won't do any damage, but enemies can still attack you. Their attacks will pass 'through' you and hit anyone behind you.

This works for ranged attacks:

And melee:

I'll roll out this version pretty soon. Meanwhile the game is still playable here.

Hardpointe v0.2 Long Play

I did a full play-through of the game so far. Took me a lot longer than expected! I guess that's a good sign. I also managed to not die. Definitely on the easier side at the moment - there are grenades and powers a-plenty. Here it is on youtube. I'll try to add commentary next time.

Later versions will get a lot more brutal. More terrain, more enemies, fewer power-ups, and at least two more enemy types. I want to have some support-style enemies, with two in the works: one will keep it's distance and put shields on near-by enemies, the second will be super-fast with no attacks, but be able to alert other enemies to your location.

I am also toying with some kind of factory-type system or enemy that will spew out countless 1-hp/1-damage enemies. Simple to handle in the right scenarios, but if left unaccounted for, it could make things very difficult.

Hardpointe ver0.2 is playable

The latest version of hardpointe (I'm called it v0.2) is available to play here.

It's a bit more polished than the first version, with a number of ease-of-play fixes and more varied enemies.

Change log:
  • Screen/font can now be enlarged/shrunk
  • Auto-pickup of items
  • 'Brogue-style' exits that you just walk into (this item and last item are meant to reduce over-reliance on the action key)
  • Removed redundant power install menu
  • No monsters in the starting room (whew)
  • Added fleeing enemies (Skirmisher)
  • Added shielded enemies (they will recharge if they escape): Skirmisher, Centurion
  • Added an EMP grenade that conveniently takes out shields
  • Fixed a bug with level changes caused by dropping through chasms (sometimes)
  • Added a final boss (sort of): The Archon. The only enemy in the game with more than 3 'health' (shields + hit points)
  • Made the asteroid 6 levels
  • Monster count & difficulty level scale better with increasing levels
  • Player starts with the Hack power (fairly OP but I have not done much balancing)
Shielded enemies and the EMP Grenande in action

If you've played it, leave me a comment here, or on /r/roguelikedev. Enjoy.

Tank Control - A 2018 7DRL Success

My 2018 7DRL - Tank Control - was a success. You can play it on itch.io.

In TANK CONTROL you command a stolen Leopard 2A tank. Your enemies want it back.
Your mission is to navigate dangerous terrain and rescue as many civilians from the area as possible and deliver them to various checkpoints. 

You will utilize your overwhelming firepower against your adversaries, which are numerous. Combat uses classic turn-based roguelike mechanics, so positioning the direction of both your tank and your weapon will be critical.

7DRL Note: I did not build this entire game + engine in seven days! I am using first and foremost the amazing rot.js library (as per usual), and have forked the engine and other elements from  hardpointe.

Hardpointe - How to play (so far)

You can play it here.


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.

Our Story So Far

Humanity is on the brink of annihilation. Ever since the robotic uprising of the late 1990s, humans have waged a bitter war against their would-be AI overlords. Many decades later, Earth is finally free of war, but elements of the robotic hordes have taken to space and have taken refuge in the asteroid belt.

For a time, many thought the robots dormant, or dead. But they were building. Utilizing self-replicating machinery, they turned countless asteroids into factories, crisscrossed with countless mazes and dungeon-like interiors. Some they turned into weapons, and began hurling them at Earth.

Only a few asteroids have penetrated Earth's defenses, but even these few have wiped out entire cities.

All efforts to attack and neutralize these strongholds have failed. Your mission is to succeed where others have failed. Infiltrate the asteroid, grab the AI Core, and bring it back safely. Your suit should be able to interface with any weapon systems that you find - human or robot. We cannot get close enough to reliably use our telewarp technology - so you will have to travel on foot. We may be able to link up to your suit at various beacon points. Look for warp crystals - the robots use them as much as we do.


WASD, Arrow Keys
Movement (4-directional)
Action (Wait, Pickup, Use Stairs, Activate)
1, 2, 3
Activate Power
eXamine (look around)
Heads Up Display
(cycle with movement keys)
Power Listing
(don’t really need this)

How to Play


For now, you can win by finding the "MacGuffin" and returning it to the exit that you started the game on. There are only 4 floors since the game is still rough and fairly unbalanced with all of the items and powers lying around.


You have limited health. (almost nothing in this game goes over 3) All attacks in the game do 1 damage, with one exception (a wall smash).


You have 3 power slots. You will come across powers during your mission - you can replace these with your current powers. You can also use them, dump them, and then go back and re-install your old powers. Some powers can be upgraded to make them more powerful. All powers come with a limited number of charges - but most are rechargeable.


You start with a shield power, but you don't need to keep it. Currently shields are pretty overpowered! When activated, you'll get 3 shield points added to your health. Eventually, some enemies may also have shields. Certain special EMP attacks can wipe out your shield.


You start with the dash power, which lets you move quickly across terrain to attack distant enemies. Just be careful putting yourself into harms way. Don't dash into a 2-hp enemy unless you've already hurt them - otherwise they are sure to attack you next turn.

Other Powers

There are a handful of other powers in the game at the moment - at varying degrees of usefulness. The Heavy Axe is a great ranged weapon. Cloak will make you temporarily invisible. Phasewalk will let you walk through walls (although not enemy fire - yet). Hack will turn enemies into allies.

Blasters (Weapons)

Blasters are weapons that take up power slots, but cannot be reloaded or recharged. They may have special effects like double damage, knockback, or stunning. 


You'll find lots of grenades lying around for some reason. You can carry them in your inventory and throw them. Some have special affects such as knockback, or stunning.


These are phials of tiny nanites. When thrown, they will begin to replicate and modify the surrounding terrain in mysterious ways. Some affects are beneficial to you, so be careful not to let your enemies take advantage of this. 


Forthcoming - you can use the HUD (z) or EXAMINE (x) to get an idea of what different enemies do. There are no 'vanilla' enemies.


Wall Smash

When you melee attack an enemy with a wall (or other solid terrain) behind them, your attacks will do 2 damage instead of one. This also works for dash attacks.


Any enemies with more than 2 health will leave wreckage behind. You can heave these into other enemies to do damage.

Blasters (Guns/Weapons)

You will find these one-off weapons during your mission. They are installed just like other powers, except they cannot be reloaded. Nothing stops you from swapping in a weapon (or two), using up all the ammo, and then swapping back. Great for taking out strategically difficult enemies.

Target Locks

Most ranged enemies require a target lock before they can fire. They will flash and turn a different color when they have targeted you. The HUD will also give them a special flag (shown below).

Unless stopped, they will fire and hit you on the next turn. You can interrupt this by making the enemy move, moving out of range, or destroying them.

Warp Crystals and Warp Beacons

You will find warp crystals scattered around the asteroid. These function both as fuel and encrypted locators for Warp Beacons. Using a Warp Beacon will always consume 1 crystal, and will not work unless you have one in your inventory.

Warp Beacons allow you to link back to home base, and acquire upgrades to your current powers. Or recharge them. You can also use them to restore health and also call in backup - home base will warp allies to your location. (currently they won't travel to different levels with you)

More to Come...

Welcome to my underground lair

Hardpointe is set on the asteroid lair of an evil robotic overlord - conveniently enough these lairs are surprisingly similar to dungeons. A bit.

Level design is the great time sink of every roguelike developer. I have a system that I've developed over the years (mostly for my 2014 7DRL dungeon dual) that I call the floorplan approach, which basically smashes a bunch of rectangles together. Once you have rectangles, you can easily convert them into rectangular rooms, or other shapes (cross-rooms, ovals, etc.) that will still fit within that bounding rectangle.

For Hardpointe, I have brushed off this algorithm and cleaned it up a bit to make it less wasteful. I am rather liking the results so far.

While level design is great, what I really want to get to is 'lock and key' style puzzle rooms. Think of the key rooms in brogue, or the linked challenges in Unexplored. Or zelda. In any event, Tom Ford did a lot of work around this in his 2014 7DRL TraumaRL and then did a great talk on his approach.

In order to accomplish this, I first needed a more intelligent level designer - one that kept track of separate rooms as if they were nodes on a graph. I had to brush off a part of my brain that hadn't been used since CS classes many years ago, but got a working tree structure that should suit my needs.

I used treant.js to display the resulting graphs.

This first one corresponds with the above dungeon output.

Red nodes/rooms represent the longest (or one of the longest) paths in the level. In most cases, the entrance point will be at the top of the tree and the ending point will be at the deepest node of the tree.

Gray nodes are flagged as "dead ends" in that they have only one connecting room. This makes them great candidates for locked rooms, special challenges (and rewards) that will give the player a reason to explore the entirety of the level, should they choose to.

Here are a few more because I like them:

Heads up

Finally have a working heads up display (HUD) - one of my requirements for releasing an actual playable version of the game. I really want to keep the screen as uncluttered as possible, but at the same time allow players to get the tactical information they need. In general, all monsters have 1 hp and the behaviors are unique, so there is a lot of information that should be conveyed just from playing a few times.

Other important things to know are status effects, and whatever items or unique terrain is near you. (e.g. is that radiation?)

The code to get this working was actually really fun to write.

Other things tackled this week were 'conveyed' flags. Certain powers can now convey flags such as flight, or radiation resistance. In earlier versions I was doing this quite messily - lots of room for error when power systems were being installed or uninstalled. Now it flows quite naturally.

This is important because at some point I plan on adding 'challenge rooms' that require you to sacrifice one of your power slots for an otherwise useless power. For example, there is a really amazing item inside the next system of rooms, but the rooms are irradiated. Fortunately, there is a system near-by that conveys radiation resistance - but you'll have to temporarily sacrifice something else in order to install it. What you choose to do away will may make the next couple rooms harder, depending on what's inside of them.