04 February 2019

Roguelike Ideas

A place to organize some ideas for a roguelikes game similar to nethack.

nethack mockup

I made a mockup to try out some ideas for a graphical nethack. Some thoughts going through my head:

  • removed non-essential HUD details (character attributes, name, dungeon location).
    • Thinking on it more, I would readd the name and make space for a portrait that could be customized.
  • onscreen UI that groups similar operations under action groups. Unusable commands are disabled. Trying to surface more commands under fewer buttons. I’d leave the option for adding more shortcuts, but the goal is for this to work on a gamepad controller
  • visible enemy health indicators. Not completely sold on these. Would settle for little UI indicators for damaged and undamaged.
  • graphical sprites are not confined to their 16x16 collision box. Especially the height. all monsters here occupy a single tile (16x16), but the height is varied to create scale and imply qualities like their strength/level.

RL Interpretation

Before getting much further, I need to establish RL qualities I want to emphasize or unique tweaks I could make. I’d like to make a more accessible, immersive RL. I’d like to streamline the interface without dumbing down the options. I think this can be accomplished with a bit of UI design on top of some nice visuals and animations. It’s also important to me that the world feel concrete, like the monsters are just doing their own thing that the player happened to catch in the moment.

Character Differentiation

  • I like the idea of having equipment builds tailored for different game areas. I think you could combine it well with the idea of mututally exclusive branching paths that you can take. You should be able to employ different builds for psychic enemies, magic enemies, brutish enemies, or titan enemies (Demogorgon)
    • the main problem with this is it can make the end game sort of samey if the same build is needed. Maybe this could be gotten around if there’s a class intended for equipment min/maxing because of their min-avg stats allocation.

PCG

I’m not that attached to a procedurally generated world. I think it actually gets in the way of a memorable world, though I see how it is effective in a minimalist terminal setting. Diablo was an interesting example where they designed static landmarks like puzzle pieces and then stitched the pieces together in a random order. PCG is an important feature of RLs so it can’t be ignored, but I would try to design memorable static pieces with PCG to accent this content. For example, if you have mazes, then it makes good sense to make them randomly generated so that you aren’t always doing the same maze.

FoV

I dislike a detailed FoV/fog of war. Like the ones based on projected rays (see Cataclysm screenshot below). Once I’m in a room, I’d like eveything to be visible. it’s just odd for small corners to be hiding junk or for weird angle to be hidden cause of the ray caster. I understand how the ray casts given an interesting results in the forest like the screenshot, but to me that’s the only usecase I would tolerate. I think it’s annoying when enemies in the same room sneak up on you because your back was turned.

catacylsm screenshot

Permadeath

I’m not a huge fan of permadeath personally. 1+ hours of lost progress is a lot of stress for my brain and I’ve gotten too used to savepoints at this time. I do think having high stakes is good, but my preference is to have little checkpoints to keep them from getting too high. I think the mission levels of Goldeneye64 or the campaigns of Left 4 Dead are a potential goalpost. One of the reasons I’d like to have checkpoint progress is that you can switch up the gameplay mechanics to have some variety.

Like In Goldeneye64 some missions had constantly spawning enemies to put pressure on you to move forward. Others required more stealth because loud gunfights summoned all the nearby enemies. L4D will introduce fetch quests or boss showdowns in some sections of the campaign. All these variations to the gameplay keep things interesting, and would be hard to pull off without checkpoints. Or at least would require a baseline skill beyond most people.

Ghosts and Goals

I was watching Aliens, and thought the original marine mission would make an interesting goal replacement for the Amulet of Yendor. Your goal is to reach and rescue other colonists. When you are “killed”, you swap bodies and try to reach the nest again but with a different marine. You could use runs strategically to set up future runs by setting up ammo stockpiles, or doing a suicide run to open routes/close off alien spawn points like tunnels. This becomes the game equivalent of ghosts.

This last one is kind of controversial since meta-progression is seen as a type of cheating. I think this could work for a couple of reasons. One, ammo and weapons are constrained by you carrying capacity and monster leveling. Two, environment maniplations can be pulled off as part of a normal run. This is the rule that a game be winnable on your first run without obtaining any meta-progression. And, three, if the world is designed to be persistent, then helping your future runs is consistent with your own expectations of how that world works.

Controls

It’s a bit of an old pattern, but I think modal controls could be the perfect answer for the general overwhelming number of command options in a typical roguelikes. The different actions would be spread out over these different modes. Could also see dedicating the shoulder buttons as mode toggles so that each mode is 1 button press away. maybe in the key configuration? One of the problem with modal controls is entering and exiting these modes. The modal switches could really slow down a competent player and overwhelm new players if it’s complicated to exit. Another issue is that it can increase the time to perform a task depending on where it’s buried. Modal controls can simplify controls by spreading them across modes, but this also can hide important information and disadvantages new players.

Control Modes

mode ring
  • only 3 total modes. At least 1 dedicated button that goes to each mode on order every time you press it. After the 3rd mode, circle back to the 1st, and repeat.
  • Normal/Move mode for movement and quick access to movement-enabling commands like opening doors.
  • Inspect mode for examining the environments. This is mostly for actions that are performed on a given tile. So picking up, searching, waiting, opening chests
  • Offense/Attack mode for actions that are applied to adjacent tiles. Mostly attack, magic stuff, but also interact options like dip, apply

Movement/Turn-based Mechanic

Wondering if there’s space to innovate on the standard RL turn-based system by allowing additional movement points during a turn, like Fallout or Fire Emblem. I like the extra sense of control you feel with multiple actions per turn. Without fallout, the number of movements per turn is determined by your speed/agility stat. It also doesn’t stack to effectively double your moves within a turn like a RL. I think it might work better if a base speed value of 12 gives you 2-3 moves a turn. Or 2-3 attack if you don’t move.

I think having non-turn based movement outside of combat gives a nice feel. Things would operate on a turn based system internally, but a turn would only tick forward once you had travelled two square or whatever your movement speed is per turn. If you don’t move, then the nothing else can move unless they were in the middle of executing their own turn (move to a square, do some action)

Multi-turn ideas:

  • Each faction takes a turn. All units move simultaneously within in a turn. Individual units speed determines its movement radius [Advance Wars]
  • 3 (or any number) base action points. Everything is normalized to this.
    • If you are slowed down, all enemies available AP are multiplied by their relative speeds. If your speed is half the norm, a norm speed enemy gets 2x the normal AP
    • if you are twice as fast as all enemies, you get 2x the available AP.
    • randomize the turn orders and scale by speeds. Create a cumulative distribution normalized over 1, then select rng for each turn position, repeating when a monster who already has their turn order determined is selected again.
  • lose future move energy if attacked? Eh, kind of negative. Would mean that crowds would absolutely own you. Could cap it so there’s always at least enough turn energy for 1 attack.
    • doesn’t sound very good, but I think the core idea here is about momentum and giving motivation to move around on a turn instead of just spamming attack. Need to come back to this later.

Gfx

Like how the turn-based movement looks in Baba Is You. The little dust clouds on previous tiles is a nice graphical touch. I’ve noticed there’s two schools of though on animating a grid-based game like this. Either you glide the character to the next tile like Baba or you show a walking animation. The gliding animations tends to look pretty cheap, but you get used to it and the walking animations tend to slow things down and get annoying over time. I think the alternating animation frames in Baba Is You give the animation a cadence which hides the glidiness.

I forget the name, but there’s a RL where you navigate diagonally with a dpad by togggling between diagonal and orthogonal directions with a shoulder button.

grid movement

For fun I animated the fog of war from the mockup I made. I kind of like it. The reveal animation is sped up compared to the hide since that’s where the player’s attention will be focused so i wanted to make sure it felt snappy. Slightly offsetting the shadow of items was a great touch. Might even be a good idea to apply a delay on the walls.

fog of war effects

Line of Sight

I found a line of sight implementation that looks great. lights up an entire room like I wanted.

I’m interested to see how it would look if combined with extra light sources. One thing that bugs me about line of sight is how you might see things that glow like lava sources covered partially by the fog. Just doesn’t look right. If the line of sight uncovers part of the lava, it should behave like a light source and light up the rest of the connected lava tiles.

line of sight

Just thinking about displaying text. It’s funny how different it can feel for in-game text to just draw on the screen versus showing an animation that types out the words. I’ve found the fastest speed on these animations tends to be a bit slow for my liking. I think the reason for this is that they typically animate line by line. If you slowly tween in and out, you can skip multiple lines without it looking jerky.

scrolling text