Fathom's Edge: Progress Report #2
JoeStrout

JoeStrout @joestrout

About: Creator of the MiniScript programming language and Mini Micro retro-styled virtual computer.

Joined:
Oct 25, 2022

Fathom's Edge: Progress Report #2

Publish Date: Jun 4
2 2

In my spare time, I've been working lately on a project called Fathom's Edge, a sort of roguelike RPG with a twist — you take your character on multiple adventures, which can be written by different people. (See Progress Report #1.)

I've laid out a development plan in the road map, and according to that, version 0.2 is now finished! Here's a quick run-down of what it can do, the challenges I faced, and how I got past them.

Working Features

The key theme for version 0.2 has been interacting with stuff. You can bump into a sign to read it, bump into a chest or other container to place or remove things in it, or bump into an NPC to talk to them.

Containers

Animated screencap of interaction with a chest

As you can see in the screencap above, when you find a chest, you can move stuff into it from your inventory, or take stuff out of it into your inventory. You can even use (equip, eat, etc.) stuff directly out of the chest if you like.

As in Oblivion, we'll probably have some chests that are safe to store your stuff in long-term, while things might disappear from others over time (presumably because NPCs come along and help themselves).

Item Stacking (including gold!)

The video above also demonstrates another new feature: identical items can stack in your inventory. This seems like a minor thing, but it's crucial to keep your inventory manageable. Buttons or keyboard shortcuts to drop or transfer an item in/out of a container do one item at a time, unless you hold the Shift key, in which case it does the entire stack.

NPC Conversation

Talking to NPCs is an important part of almost any adventure. For v0.2, I developed a conversation system that lets the designer define arbitrarily deep conversation trees, with callbacks available for any response that lets the game adjust to the player's choices. As you can see below, it's a menu-driven system that should be familiar to any adventure gamer.

Animated screencap of conversation with NPC

Challenges

I struggled a bit with signs, the first interactable object (other than mobs) in the game. My first approach was to allow you to define certain tile types (for use with the map editor) that would be a custom subclass, rather than the standard "MapElement" class. I figured you could make a Sign subclass here, which would define the message to display when you bump into it.

The trouble is, a MapElement instance is shared by all occurrences of that tile type, everywhere on the map. This approach would require a separate tile type for every unique sign, which seemed excessive.

So, I pivoted to an approach where signs are Things placed on the map by the level-loading code, just like mobs, random items left for you to find, etc. Currently there is no GUI for these; they're just placed in code, but we'll probably fix that somewhere around version 0.5 or 0.6.

Item stacking was a fun challenge too. I started with apples (which is why you will currently find several stacks of apples on the map near your starting point), and then tackled gold. With gold I went one step further and defined custom icons for 1, 2, 3, 4, and 5+ pieces of gold. My thinking is that it will be pretty common to find small amounts of gold throughout an adventure, and it will be fun (and useful!) to see at a glance how much is there.

Animated screencap of 1-6 coins

Finally, the NPC conversation trees remain a bit challenging. The data structures are simple, but defining them is a little painful. For example, here's the code defining the simple quest-giver in the screencap above:

    Alyce.conversation = Conversation.Make(
       "I've lost my dog Fido.  Can you help me find him?",
       ConvIcon.GIVEQUEST)
    r1 = Alyce.conversation.addResponse("Sure, I'd be happy to!")
    r2 = Alyce.conversation.addResponse("Sorry, I'm busy.")
    r1.next = ConvNode.Make("Oh thank you!  I really hope he's OK!")
Enter fullscreen mode Exit fullscreen mode

I mean, it's not that bad, but you can imagine as a conversation gets deeper that this could would be a bit of a pain to write, and easy to screw up. I should probably move these conversation trees into something like GRFON (which would also make it a lot easier for people to localize them into other languages).

Coming Soon

So what's next? The road map defines a handful of features for v0.3, but the big one is probably zone transfers. A "zone" is a single map, like the town overworld, or the inside of a building. Right now we have only one zone; none of the buildings on the map can be entered. So in 0.3, expect to be able to actually go into some of those buildings and look around, or go down a sewer drain and explore the sewers beneath the town, etc.

Another feature I'm kind of excited about is "ask NPCs about arbitrary topics." The idea here is that almost any friendly NPC would have an "[Ask about...]" option in their conversation dialog. Picking this would prompt you to type anything you want to ask about: the name of another NPC, some item or place you're looking for, etc. If the NPC knows anything about that topic, they'll tell you. This addresses a frequent complaint I have with many adventures, especially when I'm looking for something or someone that others should know (like finding Jauffre at Cloud Ruler Temple) — you should be able to just ask someone to get a little help.

Feedback Wanted

So, what do you think? Are these progress reports useful? Any game features you really want to see? Let me know your thoughts in the comments below!

Comments 2 total

  • Victoria Gutiérrez
    Victoria Gutiérrez Jun 5, 2025

    Good progress for this version, I'm look forward the implementation of entering buildings in 0.3! I'd like to see a feature to maybe break stuff and get items from it, like the pots in Zelda... If there's no it, inside buildings! It's fun, I think.
    This progress is really helpful for someone who would like to build a big game as well cough and might be facing these issues or similar*cough*

    Looking forward next update!

    Are we gonna get chest to loot?

    • JoeStrout
      JoeStroutJun 8, 2025

      Great ideas! I love the idea of breakable pots. I'll put that on the list! And yes, we now have chests to loot, so that will always be a thing.

      I'd love to hear more about the big game you're thinking about building! Perhaps I can help with advice and tips here and there, or at least cheer you on. :) Feel free to join the MiniScript discord, we have a very active and friendly community!

Add comment