🧤

Roguelike in Rust

Hands on Rust - Learn Rust and build a roguelike

This is an online book by the author of Hands on Rust. It is more expansive than Hands on Rust. https://bfnightly.bracketproductions.com/rustbook/chapter_0.html

A roguelike for several purposes:

1) Fun. A side project related to games that I enjoy just to enjoy

2) An AI harness. Test RL and/or DL or other algorithms (ART?) to play the game

3) Learn new programming paradigm(s) and technologies

  • Blockchain for saving game data across user defined dungeons... (big idea)

4) Able to port to the Switch

  • This last one could be required by 1) using Unity, or Godot or similar, or 2) port using Smile BASIC

Porting an Existing Roguelike?

To save on time for inventing a new system and game mechanics, look at porting an existing roguelike

  • Omega - a well reviewed roguelike but not super popular. Could be well received with better graphics and some good promotion.
  • Hands on Rust - roguelike built in book in Rust
  • Dungeon Crawl Stone Soup
  • Nethack
  • BRogue - well known beginner roguelike
  • Gauntlet - this is a departure being real-time, but could be fun too.
    • Could make a terminal version similar to Snipes
    • Hands on Rust starts with realtime input
  • Ultima IV or V or similar remake

Candidate Languages

I haven’t decided on which language to use to create the roguelike. There are several candidates.

  • Rust - already have a roguelike in Hands On Rust. Plus it’s a popular language to know right now.
  • Zig - interesting language that looks to be a better C
    • Interesting compilation time meta programming system. “Better” than macros.
  • Clojure -
    • Use the JVM version
    • Use one of the ClojureScript implementations, such as SCI, Planck, or nbb.
    • Arcadia works with Unity
  • F# - .NET so works with what I already use. Could also work with Unity too.

Chose Rust as the language, and using the Hands on Rust book to make progress.

Roguelike Design

The book Hands on Rust mentions that it’s good to get a list of details for your game.

I do have a few listed above, but I would like to expand on what the book Hands on Rust has.

Goals

  • Follow the book but use my own RPG system, possibly something like 5e or something else
    • Build the MVP with slightly different resolution mechanic
  • Learn portions of Rust outside the book
    • Example: Rust contracts
    • Example: Plugins?
    • Functional Design - persistent data structures
  • Interface for Reinforcement Learning

Features for MVP

Use contracts on all public methods (Hoare Logic?)

Modular design (I think the book covers this)

Tests

Story

This roguelike is set in Eberron, in the city of Sharn.

The premise for starting is very similar to Baldur’s Gate: Dark Alliance.

The player arrives in Sharn to meet a friend who asked them to meet in the halfling inn Mincemeat Pie, in the

The player is robbed at the beginning (written in text, or perhaps played out as an ASCII cutscene) and left for nearly dead. The guard come along and get the hero to the nearest inn.

Upon recovery, the player is in a tavern, where the keeper is looking for someone to rid the basement of rats so they can to the good stock of wine. Apparently they got in through a secret entrance into the sewer.

The leads to a large sewer complex, with the new Thieves’ Guild behind the most recent string of crime and murder, but who is hiring the Thieve’s Guild?

This could have some fun randomly generated story elements.