[ANN] Ascend - Dungeon RPG for your terminal

Hi there, OCaml community!

Announcing the first release of ascend!

Venture into the depths to retrieve the stolen artifact, and hopefully escape with your life…
NetHack lite.

Get it via:
opam install ascend
ascend

Rievax the Revelator is recruiting you for some “manual testing”.

22 Likes

Very cool! Always excited to see more old-school roguelikes. I’m playing it now and I have a few notes if you’re interested. For context I haven’t played much nethack specifically but I’ve played a bunch of other traditional roguelikes like dcss and brogue and I’ve done the 7drl like 9 times.

  • I loved the “go blind/unblind” key. I haven’t used it yet but reading its description on the help screen makes me interested to explore and find when it’s useful.
  • it would helpful if it printed a message when you pick up an item
  • when a lot is happening at once I’d find it useful to have a way of seeing a log of events rather than just the most recent events (either on a separate log screen or just if the message area to the right of the screen displayed the most recent few events)
  • some kind of “examine” command would be really helpful when you’re encountering a new ascii character for the first time and aren’t sure how scared you need to be (though I appreciate this could be left out on purpose to make the player more comfortable with the “learn things by dying” mentality :wink: )
  • I was confused about the difference between gold and zorkmids. When you stand on a “$” on the floor it says there are gold pieces there, but I found a shop where I could buy items for zorkmids and it caused the number next to “$” in the hud to go down, but then I died and the game said I had “30 gold and 450 zorkmids worth of items”. I assume that a zorkmid is the name of a coin and the coin is made of gold so colloquially it’s referred to as a gold piece.
  • Is there a way to wait for a turn? During combat it’s sometimes useful to skip a turn so enemies walk into your melee range and you can hit them before they hit you. It’s possible to skip a turn by walking into a wall tile but it might be worth adding a dedicated “do nothing” command. Again this could be left out on purpose as it forces you to think more tactically to compensate.
  • The player heals automatically over time and it seems like no resource is consumed by healing like this so I find myself walking back and forth a bunch after each battle to get all my health back. In the roguelike dev “literature” there’s a term “food clock” for dis-insensitivising waiting around like this.
  • Is it possible to eat apples or are they just for pets? I couldn’t find a way to eat the apple I found though this might be by design as I’m not sure the player character is the sort of thing that eats (they can only “absorb” corpses :wink: )
  • Nice addition of nethack’s sokoban boulder-pushing puzzles!
  • I couldn’t work out how to compare weapons. Might be useful to display their damage/accuracy (or whatever stats are relevant) on the “wield” menu.
  • It looks like enemies keep spawning forever. I found that if I spent a few minutes walking back and forth along a long corridor I could farm kills and get a bunch of levels and gear. This is another problem that could be solved by a “food clock” (again doesn’t have to be literally food!). Despite grinding a bit early on I still struggled with enemies around floor 5 though so this “loophole” doesn’t necessarily break the game.
  • I like the mold enemy because it’s hard to kill and can block your path. After I spent ages farming I found a bunch of molds had spawned which made it hard to get to the exit (next time I’ll farm near the exit haha). I needed to use a wand of digging to dig around the molds blocking my path which was fun!
  • The garden on level 6 was a nice touch.

Overall I had fun playing your game. There’s already an impressive amount of content. Looking forward to seeing how it evolves!

I think it would’ve been really neat to attempt to implement a graphical gnu version of nethack in a terminal with unicode symbols. More in a pure nostalgia sense than anything.

The more truly immersive games, even with the 1990s level of graphics, still require a fully graphical display. Consider e.g. TFTD of UFO from that era.

This is very cool! Though note that it’s written with an assumption that you run a terminal with a dark color scheme. I run with a light color scheme and the player was same color as the background - thus invisible! That makes the game quite difficult.

Hey reynir,

You are so right!

Someone having a light color scheme is something really important that just got left out.
My bad for not considering this, thank you for bringing it up!

Would you like to send me your color scheme to confirm it would look good for you?

Edit: There’s a release for you, awaiting merge into opam.

There are so many different interfaces for NetHack out there, but maybe not a gnu version.
The latest minor version added support for unicode symbols as well.

TFTD is good example for a fully graphical display.
DwarfFortress’ Phoebus graphic set is a good middle ground between pure terminal and full graphic display.

Some people want great graphics for immersion, some people are fine with text from a book for immersion.

Hi gridbugs!

You were implemented just the day before!
Thank you for playing and giving such detailed feedback.

That’s definitely the plan, it’s just been deferred.
Edit: If you don’t see any logs at all, your screen is not rendering everything.

This one’s a bit tricky. A good solution may be to have a threat rating from “harmless” to “death incarnate”. If the character is wise and the creature common, you see accurate threat ratings, if not so wise, dangerous creatures can be rated “pushover”. If they have some clairvoyance they may see more specific details.

Not a fan of learning by dying, unless it’s the player’s fault, as in charging at every unknown creature.

The code is confused about this too. Internally it’s all Gold, sometimes displayed as zorkmids, but this should become one consistent unit.

Yes, (s)earch. There are rare cases though where wait (unimplemented) would be better than searching.

You can’t eat apples yet. This one is a bit tricky to balance. It didn’t make sense that a rat only rarely leaves a corpse. But then with food being abundant, how do you balance hunger? You could make hunger quite “aggressive” forcing the player to urgently seek out the next meal.

At least for now, there’s no hunger, and eating became absorb. Adding a food clock of some kind, as you suggested, could definitely make things more interesting.

“Walking back and forth to heal” is risky, especially further down.

If there’s a puzzle, it’s all on the RNG.

Specific details should not be shown, unless the character has some magical insight.

Ideally, which weapon is better should be intuitive, e.g. a club is better for hitting a rat, but isn’t as good as a dagger when attacking an orc.

Yes, they do (with some special exceptions). At greater depths, farming is trickier because the creatures are more dangerous. You just want to move on before something deadly spawns.

You can farm in the beginning, but there’s only so much you can carry. One solution would be to have chests with useful beginner items, and as a balance not have creatures like newts or gridbugs drop weapons or wands. How were they carrying those anyway?

Unless your round is unusually unlucky, this game is balanced to not require farming.

Ah yes, the jiggly molds! Those are my favourite.

Thank you again for your thorough, thorough feedback!

1 Like

This line is my favorite thing that I’ve read all day. I’ll be using it in the future for sure. :laughing:

Thanks! This works excellent :partying_face:

Hey gridbugs!
Most of your improvements are in the game now:

  • Improved logs with item pickups (L)
  • Blind/unblind still very useful
  • Skip a turn (.) – doubles as regeneration
  • Less walking back and forth a bunch to get health back
  • Farview/examine ( ; )
  • Molds are still moldy
  • Less confused gold

Thank you again for all your suggestions!

3 Likes