Looking for help picking a dev system / any input on my current project

Hello!

I’m about as new as can be here, but I’m really excited to find an active community for this medium! If you’d like to hear more about my creative backround please feel free to check out my reply in Introducing Ourselves. I’ve been lurking here and researching elsewhere for the past few days and frankly I’m very overwhelmed with all there is to learn haha, but it’s so cool to find so much developed theory and discussion around IF as a genre.

Posting in general because I’m not 100% sure where this kind of post would normally go, my guess was Authoring - General Design Discussion but I didn’t want to presume.

Anyway getting right into it, I need help picking a dev system that would suit the needs of my project.

The Concept:

A survival RPG that mainly takes inspiration from Metro 2033, Sunless Skies, Kenshi, Dwarf Fortress, and Oregon Trail.

The year is 20XX. The bombs landed long enough ago that a generation of children have been born, grown into early adulthood. Most of them have never seen the sun. When the bombs fell the only survivors where those who we’re already underground, and in the city of Dansk, for most of those few souls that was in The Dansk Underground Metro System, AKA, The DUG.

You are a merchant who makes a living running your wares between stations. The work is perilous, you contend with being shot at by brigands and railwaymen, dodging the toll collectors and draft catchers employed by the larger factions, feral and unnatural mutated wildlife, or worse still, the things that the raving mad preach about in bars across The DUG, if they’re to be believed that is.

Plan accordingly, spend wisely, step lightly, and above all else, ride fast, as you try and survive, The Underground.

I started this project thinking it was going to be a boardgame but as I kept writing lore and ideas for gameplay I realized this was growing waaay too complicated for that. I kept chewing on what I could do with the work I had done because I didn’t want to cut it back to fit the boardgame mold, then I started to consider a text adventure and that was 3 days ago and now I’m here.

Admittedly I am profoundly early in the process of developing this into something real but I’m far enough along that a roadmap is starting to coalesce, and I’d like to avoid as much backtracking down the line as I can.

What I need from a dev system:

  • Trade Systems:
    • A huge part of the game is the trading, it’s how you make your living, and so it’s how the player character survives. This includes:
      • Inventory Managment for the PC and their freight
      • Economy tracking: Some stations have valuable or unique trade goods that other stations will buy at a profit. This also potentially includes a scarcity mechanic where if a station is flooded with a certain trade good, or deprived of it, the value of that good changes to reflect that.
      • Barter systems; there’s no centralized currency in the DUG, most purchases are made with high value or useful items such as Military Grade Ammuntion, Moonshine, Favors. A way to track the relative value of each of these compared to one another.
  • Character Building:
    • Not nessicarily a linear leveling system, but systems to track the skills the PC / others in their party have aquired.
    • Reputation System: A way to track the reputation the PC builds with the different factions, but also individual unique NPCs throughout the world.
  • A Living World:
    • The choices the player makes should affect the world around them. If they supply arms to one side of a confict, that should not only effect the chances of that side winning, but also how the PC is treated post conflict regardless.
  • Potential Future Ideas:
    • Some bigger strech goals could include some rudamentary graphics, multiplayer funtionality, or some other things I can’t remember right now.

These are the main functions I’m looking for. I mentioned a roadmap earlier; the first things I’m looking to build out are just the rudamentary basics of the above:

  • Basic Character Creation: Name and starting stats
  • Basic Markets: Purchasing and Selling Trade Goods and Supplies
  • Travel: A Map with various routes of travel between stations
  • Encounters: Random encounters such as “Attacked by brigands on Z-Line” or “Pickpocket at Station-Y”

And once I have those basics down growing into more advanced mechanics such as:

  • Hiring guards for your tram
  • More involved encounters such as “Side Job: Deliver a Package to Clandestine McSuspect at the next depot” or “the way ahead is blocked, we need to detour”
  • hunger / survival systems
  • unique NPCs

And eventually down the line get to the more big scary systems like the Living World mechanics above, which as I’m writing this I realize also includes the scarcity system I mentioned in Trade Systems.

Anyway wow that turned into a much longer post than I planned I hope this is received well lol. Can’t wait to hear peoples thoughts on what dev tools would work best or if I should even be making an interactive fiction game with this, perhaps there’s some other medium that y’all think would work better but I hope I’m on the right track here lol.

2 Likes

Welcome to the site! The first question I need to ask is—how do you want the player to interact with the game?

Do you want them to type in commands (GO TO STATION X, TRADE FOOD FOR WATER) which the game responds to? That’s typically called parser IF, and the most popular systems for it are Inform 7, Dialog, and TADS. These systems are best when you want a consistent set of actions that work in consistent ways, and the player chooses how to apply those actions to the world around them.

Do you want to present a list of choices as buttons or links, and the player clicks one? That’s typically called choice IF, and the most popular systems for it are Twine, Ink, and ChoiceScript. These systems are best when you want to customize the options available in each situation, with a lot of different unique ways to handle things.

Do you want a virtual deck of cards representing events in each location, and the player chooses cards from a hand they’re dealt? That’s quality-based IF, and the most popular systems for it are Dendry and ChronicleHub. These systems are best when you have a bunch of different stats, and event cards can test and modify those stats (think Fallen London).

All of them have their benefits and drawbacks, but the first decision you’ll need to make is how does the player interact with this. That’s the biggest thing separating these systems from each other.

6 Likes

Looking at your requirements, a lot of them are things you don’t get “for free” with any of the main IF development systems.

There may be other systems out there which are more appropriate for the game you are making, I don’t know, but I think with a traditional IF system you will end up implementing a lot of that stuff yourself.

2 Likes

Hi!

I guess somewhat of a hybrid between choice and quality based.

I’m thinking definetly hyperlinks / menu interface, similar to how Sunless Skies operates.

If you haven’t played it, the game takes place in Fallen London’s world but you play as a ship captain running cargo and exploring the underzea near and far from London itself. When you come into any port you are presented with many options for how to spend your time.

  • going to the local market to buy / sell goods and supplies
  • exploring the local area - which could lead to something as light as some flavor text or into a whole new branching questline
  • doing quest specific activities like searching for a specific person or writing a report on the local area

I do like the idea of the Deck of Cards style random encounter system that Fallen London has, and it definetly could work in my case, but I don’t nessicarily need it that way? Like as long as there is a way to throw encounters at the player that fit the location their character is in at the time my needs are met.

Is there any hybrid or choice based systems that you think would hit all my needs? I feel like it might be a tall order lol, and frankly I will learn to code a system on my own if I need to but I’d like to avoid that headache if I can so I’d like to check some different systems out first.

ya thats fair, I would honestly be surprised (and releived) if there was a system that could do everything I need it to do but tbh I will learn to code if I have to for this but I’d like to try and save the time if I can.

What do you mean about ending up implimenting a lot of that stuff myself? Like I would be able to build onto the system through adding onto the code or would the system already have pathways to implementing what I want built in?

If you want to go choice-based:

  • Twine gives you a lot of freedom, but not a lot of structure. You can do anything, but you’re probably going to have to code it yourself in JavaScript. The basic structure built into Twine’s various formats is mostly focused on links and connections between passages, which I think will be a pretty small fraction of the mechanics you’ve pitched.
  • ChoiceScript is very good for one particular structure. If you’ve played anything by Choice of Games, ChoiceScript is their in-house programming language designed to make games in their particular style. The license is also pretty strict; if you want to do something that’s not built into ChoiceScript by default, you can’t do it at all.
  • Ink is my personal favorite of these three. It’s very flexible and can be extended in lots of different ways, and various non-IF game studios use it to build their dialogue systems. But its notable weakness is data structures: building something like an array or a dictionary is like pulling teeth.

From the pitch you made, none of these seems perfect for you, but none of them seems completely unsuitable either. I might recommend trying each one out a little bit and seeing if any of them catches your fancy.

1 Like

Ok I looked into Ink and so cool to see 80 Days mentioned, loved that game.

Something I hadn’t considered as an option is that many of the IF DevSystems can be used in tandem with unity, or another dev tools.

So it seems like what I’m actually looking for isn’t one IF DevSystem but rather, a Devsystem that is compatible with other systems that can handle the more technical things outside of dialoug trees.

Also you used the terms ‘arrays’ and ‘dictionary’, what exactly do those mean in the context of a devsystem?

Arrays and dictionaries are coding tools for grouping data. Arrays organize items by index/number/position (e.g. the first item in ["apples", "bananas", "cranberries"] is "apples" [1], while dictionaries link values to keys (e.g. if someone has the contact information {"name": "Alice", "surname": "Brimstone", "class": "bard"}, then looking up Alice’s "class" would give "bard".


Note that Unity is used for graphics and simulations…not exactly sure what you’re trying to get out of that. Unity also uses the C# programming language.

All of those systems can be used to create complex mechanics—it’s just a measure of how difficult it is out of the box and what you want to prioritize. You would be adding most of these mechanics by coding them in yourself, since these are outside of the scope of what these systems can do out-of-the-box (but most will be powerful enough to give you that flexibility).

This sounds like a complicated game. I would create a basic IF first in some of the systems recommended here before starting on something bigger to see what you like/don’t like about them before you’re too deeply invested. If you come back with your findings, that’s useful for us in helping you, too.


  1. although most systems use zero-indexing, meaning the first element is called 0, the second 1, etc. like floor numbering in the UK ↩︎

3 Likes

Seconding this! Pick one you’re interested in and build something small. See how it feels. If you don’t like it, try another.

Apart from ChronicleHub (which is very new), all the systems I mentioned are very well-supported, so you can get help here with anything you’re stuck on. (Well, ChoiceScript you’ll probably get more help on their dedicated forums, which are much bigger than here! But there are people here who know it too.)

By the time you’ve built a small project or two, you’ll probably have a better sense of what works for you and what doesn’t.

2 Likes

Not sure if you’re comfortable with Typescript, but Sharpee’s composition based architecture could easily implement all of your requirements.

I already implemented a character package for NPCs to autonomously live in the world you create.

The Traits and Behaviors structures would enable other aspects.

Happy to support your work if you go this route.

2 Likes

@vapor I’m currently building a small Twine-like game in a newer engine called Rez. So far, I really like it. It took a while to digest the documentation though so I’m glad I’m building a simpler game with it first, because I have grand ambitions, like you, for making a more complex game. The programmer behind the engine @sandbags is actively working on it still for his own ambitious game as well. It’s actively maintained and still getting updates.

https://rez-lang.com/
https://intfiction.org/tag/rez

It’s designed to allow for an easier time creating and manipulating game objects that have complex relationships and rules. However, it doesn’t hold your hand so having a stronger programming background is recommended, but the learning curve is low, to be honest. It’s very data driven, which is what your game system is.

That said, almost any game engine will work for what you want, it just requires a lot of planning. You were smart to think about this in boardgame terms first because you’ll be doing exactly that as you program your game. Think of locations as places on your board, encounters are drawn from a deck of cards, modifiers come from stat sheets and might be applied to dice rolls or determine if something is simply possible or not. Relationship scores will trigger dialog and plot elements (another deck of cards). You might have different piles of plot cards related to which location the player is in. Plan this sucker out like it is the most complicated boardgame out there… then translate that to code.

I think there’s a market for systems-driven IF. These tend to be light on prose and more game-like. My favourite IF game is Seedship and it was made in Twine with the Sugarcube story format. Another great game is A Dark Room, and it starts out simple and grows into a colony simulator with random encounters… and then it goes off the rails, but I won’t ruin it for you.

https://spacegoblingames.itch.io/seedship
https://adarkroom.doublespeakgames.com/

Both games are worth playing to see what’s possible in the “text space” of game design and maybe inspire you in other ways.

4 Likes

I think this a fair assessment. While Rez doesn’t necessitate any more programming than using Twee (the command line version of Twine) it’s true that I’m a programmer and Rez makes some programmer-ish assumptions.

That said I am keen to hand hold as much as possible. Both in person (I’m happy to help authors out) but also by improving the documentation and examples. Something I am keen to do and get feedback on.

3 Likes

I hope you are right because that’s definitely where my interests lie :grinning_face:

It’s perhaps worth mentioning that Rez has built-in support for behaviour trees. I’ve used them for implementing NPC behaviours and ‘environmental’ systems in one of my games.

I’m not well placed to judge how easy they are to use but they require relatively little real “programming”.

2 Likes

I see, so those systems could create what I’m describing it just takes work, that’s fine ty for clarifying that for me.

And yeah lol I’m gonna pace myself. I’m gonna start with making small isolated stories / games in the world. The rough plan for the first one is a game where the player buys supplies / goods to sell, and then travels to another station to sell them. Does that sound doable given I dont really know know what I’m doing or should I cut even more back?

That makes sense, in my reply to @Hidnook I explained a smaller version of the project, would love any input you have on it as well.

Also as for CoG I’m not particularly interested in it, played a lot of their games growing up and I loved them but I don’t think it’s gonna be what I want it to be (although it’s been years since I’ve played their games so maybe their DS has grown since then.)

Thank you I’ll definitely look into this! :purple_heart:

This is

This is so helpful ty!

Great to hear from multiple people that what I’m describing isn’t impossible it’s just involved enough that most DS will need me to do some extra work.

Frankly speaking, I don’t know shit about coding lol but not to overshare too much but recently I’ve hit a kind of early-life crisis that’s lead me to become really desperate to create things and reconnect with my imagination in a constructive way. All that to say I’m more than ready to learn haha.

Also, your advice on thinking in terms of boardgame rules is very interesting. That makes a lot of sense and I feel like on some level I knew this was how to approach this but very cool to be able to articulate the process and plan ahead in a more intentional way.

1 Like

Thanks I appreciate it!

Its so cool and refreshing how immediately multiple people have offered to help with guidance on this. I’ll almost certainly be hitting most of y’all up when I have more specific questions!

The devil is in the details but this sounds like an achievable goal. Modulo you’ve stated elsewhere that you have no coding experience and, of course, you are going to have to learn some to implement any kind of dynamic features.

I would counsel to imagine the simplest possible interface and explore how to implement that and incrementally deepen the problem as you learn.

Given your experience I would suggest you try Twine first. While I think it has many problems and one day you might outgrow it, it has two big advantages in that (a) it’s among the most beginner friendly systems, and (b) you are going to find a lot of resources & people on here (and elsewhere) who can help you with it.

If you pick some more niche system (and I speak as an author of one) you’re going to find less examples and less people who can potentially help you.

2 Likes