Need help choosing an engine for a text based rpg game.

Sinistrem

Member
Feb 18, 2018
193
399
Hello.

I wish to create a text based game similar to the likes of CoC/TiTs, or as a non adult game example, Fallen London.
I myself was leaning towards using HTML/CSS/JS, since i have some knowledge of HTML and CSS back from school, but i often heard "build a game, not a game engine, no need to reinvent a wheel" argument, so i wanted to consult experienced people here, whether you would advise using some pre-built engine instead.

Google was able to pinpoint some potential engines, but i'm not sure they fit the bill. Engines like Inform 7 seem to be all about "dry" game which is 99% text with only minimalistic graphical and rpg elements.

On the other side of the spectrum was Ren'py. It looks like it is amazing for traditional VN structure (bg image, with character sprites on forefront and small text box in the middle), but gets rigid as you get away from that formula (I.e. I was thinking about having most of screen dedicated to text, with no background and character sprites on the sides). And once again, it seems to be very limited gameplay wise.

I'm not planning on adding any "heavy" gameplay, like 3d or even real time 2d, mainly aiming for "choose one of options and if necessary roll against attribute/equipment". The most "advanced" part i was thinking about was having a card based deck for random encounters / events (i.e. you sneak into mansion and by pressing "explore" button you draw cards from the deck, which can range from finding loot to an encounter with guards).

I hope HTML/CSS/JS is powerful enough for doing that. I'll also be very thankful for any advise on choosing any other engine for my game.
It's funny how i always imagined coding being easier than drawing as an artist. Yet after learning to draw for over half a year and finally deciding to look into coding it scares me much more.
 
  • Like
Reactions: antuzinsky
Apr 24, 2020
192
257
I don't know what CoC or TiTs are supposed to mean, but Fallen London I could look up.

I'm not sure what you mean with Ren'py being limited, gameplay wise, as I can't see why Fallen London couldn't be made with it. Sure, it's tailored to visual novels, but at its core it's still just python.
The only issue I could see with Ren'py is movement and animation, but there doesn't seem to be any of that in Fallen London.

I think you are confusing "rigid" with "default settings that are easy enough for anyone to use, so the market gets flooded with visual novels that only use the default settings."

One of the major positives I've found in working with Ren'py, is how easy it is to write and change dialogue. So if you're going for something that's heavily text based I would certainly consider Ren'py as one of the first options. Especially for people that are new to coding.

EDIT: An example of a game that stays very far from what is default, here's Lab Rats 2.
 
  • Like
Reactions: Sinistrem

Sinistrem

Member
Feb 18, 2018
193
399
Thanks for answer! When i said rigid, i meant the basic "background image, character sprites in front of background, text box in front of sprites" formula. It feels like it works for Visual Novels since, well, they are visual, so they mainly focus on imagery, while i was aiming for more text heavy approach.

In example, here are links to the games i mentioned above (sorry for not providing links before) Tits / CoC2 . You can see in screenshots that the basic UI is pretty much all text, with only character portrait standing out. Another example is Lilith's Throne , although it aims for a much more complex gameplay systems than i want in my game.
I'm not sure how hard it is to make a similar interface in Ren'py, ui that focuses more on text and gameplay stats as opposed to pretty pictures. Although maybe it's survivorship bias kind of thing, where it's not that renpy is bad at non imagery ui, it's that most people who use it would rather focus on pictures. Also, while i had basic courses on Html/Java/C++ in school and uni, i've never dabbled in Python, so i honestly have no idea about how hard it is to learn or how flexible it is when compared to others.

Another game example would be "My very own Lith", where most of the game is text with images shown only from time to time. Actually, i just realised that most of those games were using Flash as their engine, and all are considering migrating to html5 as the flash goes down. It made me wonder whether it's html5/js that is good for such kind of games, or whether it is just the easiest one to port flash game to, and i should instead start learning something else for a brand new game.

Thanks again for sharing that info, i'd definitely look into Ren'py more.
 
Apr 24, 2020
192
257
When i said rigid, i meant the basic "background image, character sprites in front of background, text box in front of sprites" formula.
If that's your definition of rigid, then no engine will suit your need, since none of them will look like you want just out of the box. The "Ren'py game" look is there because all it takes for something too feel custom made, is simply to replace the images that the engine uses. This means that artists can make a visual novel without knowing much code.

I'm not sure how hard it is to make a similar interface in Ren'py, ui that focuses more on text and gameplay stats as opposed to pretty pictures.
The thing you're fuzzing over is just the placement of a textbox.

Even the example I've shown has that, but for some reason you seem really hung up about them not being placed exactly where you want them to be placed.

To put things into perspective, what kind of save/load system were you planning on implementing in the other engines?
 

Sinistrem

Member
Feb 18, 2018
193
399
Honestly i don't know, i've never developed a game or used programming language for anything more complicated than solving a textbook problem. I thought i'd go the same way as with learning art - learning fundamentals and then looking for guides on how to do specific things, or taking a finished product made by other person and studying it to find out how to do it yourself. It's just it is much easier to pick and choose a style of art you want to learn, compared to picking and choosing an engine/programming language. I heard something about using cookies for saving a html5 based game, and some stuff about serialization, but i didn't really dig deep, since that is beyond my current level. I know Ren'py has a built in save/load system which would solve that problem from the very beginning.
 
Apr 24, 2020
192
257
It's just it is much easier to pick and choose a style of art you want to learn, compared to picking and choosing an engine/programming language.
Is it? There are some art styles out there that I definitely will not have the time, patience or money to master.

I'm just trying to point out that the first iteration will always have some obvious flaws, so don't get too caught up in the details. The reason I'm recommending Ren'py, despite its limitations, is that it's so easy to start working with.

The UI is not going to be your biggest issue when making a game, but it's something that's very easy for other to judge.

Although I do have to say that Ren'py will not do what you want without a small bit of tinkering so if I were you, I would accept the text box not being like I want for a bit and start prototyping.
 
  • Like
Reactions: Sinistrem

79flavors

Well-Known Member
Respected User
Jun 14, 2018
1,583
2,224
If you're more interested in text rather than pictures, then RenPy does have something called . Just put 1 static image on the screen as a background and then do all text in NVL mode... it will appear like a scrollable text box (much like the "history" screen in most RenPy game).

It's not widely used, but here's an example...



The other thing I would say is that while you tend to think of RenPy as being "background images and foreground sprites"... hardly anyone uses the foreground sprites anymore. Instead people just render full character scenes and use them as a series of ever changing background images.

In your case, it sounds like you want to create a custom , which isn't exactly beginner level stuff - but not especially hard either. Add a few hbox: and vbox: statically placed windows around the edge of the screen with a NVL text window in the center... and I think you'll be almost where you want to be.

However, if we really can't talk you into using RenPy, then there an awful lot of HTML games you could use for inspiration. I'm sure they're using some sort of common framework. Though maybe I'm wrong and everyone is coding games directly in HTML, CSS, etc.

Finally, there is - which, now I look at it, does seem to be creating HTML games. So maybe that's the common framework I was thinking about. I've never used it - but know it's good for prototyping games which are later converted to a more feature rich engine (*cough* RenPy).
 
Last edited: