C# engine for making a mostly text-based game?

I’ve started planning out a simple rogue-like, and I’m looking for a simple, light-weight, and easy to learn game engine to make it in.

The game is primarily a text-based adventure, so I considered using something like Quest. However, when players encounters enemies I want to have a turn-based combat system pop up like in an RPG, so I need to display loads of information to the player during fights like their health, evade, mana, armor, status effects, etc. which I can’t do in Quest.

I know how to use unity, but since I’m not using any real graphics and it’s all menu based it seems like a bad fit for what I want to make, especially since making menu’s in unity take a fair amount of work and it’s not really meant for text-based adventure games.

I’d also prefer using an engine that supports C# so I can practice using it.

Have you considered using BYOND’s Dream Maker? It is easy to learn and use, though not written in C#.

It would certainly be capable of doing what you’re talking about though.

Ever thought about using Lisp? You can integrate it with emacs and with auto-syntax correction and online help, and dynamic debugging on the fly. It’s Object Oriented, multiple inheritance is much better than Java or C++ could ever hope to match. Best of all it’s an incremental compiler and doesn’t require linking.

Huh, BYOND looks interesting, I’m surprised I’ve never heard of it before.

I’ve heard of Lisp, but I don’t know much about it or the tools that are available with it.

I mostly just need a quick and easy way to make a UI that can display all the required information to the player during battles.

I’ve considered using WPF but I couldn’t find a good way to do health bars and status icons.

Godot may be one to check out. They have a mono variant you can use C# in and the UI system is actually quite nice to work with. Also, its lighter weight than many modern engines are.

To give you an example of its UI capabilities the editor is actually written using the engine.

Lisp with Clim (Common Lisp Interface Manager) allows objects on the screen to interact independently in different contexts (mouse, text input or output, pointer, with other objects) but it is complicated to learn. For example in my earlier days another person and I coded a planning and scheduling tool used to sequence spacecraft in only 20k lines of lisp with an gantt chart resource management display. When they converted it to Java and C++ it took over 300k lines to replicate a subset of its capabilities. It’s a shame more people don’t learn lisp. But I’ll get off my soapbox.

Godot might be just the thing I’m looking for, thank you. The lightweight aspect is definitely appealing, because I really don’t need much out of the engine other than a pretty UI.

1 Like

Rags is a Good engine to use.