baiyu

Gender Chaotic

combo Epic Divorce Man + Visual Novel Developer


IndieGamesOfCohost
@IndieGamesOfCohost

With INDIE INTERVIEWS, I talk to the game developers hanging here on Cohost to learn more about new games you might love.

This happens to me all the time: I see a cool game out there, and I wish that there were beginner-friendly tools to make something like that. It was a thought I had specifically upon seeing Disco Elysium: "is there a way to make a game with a general layout like this?" Then, a few months into using Cohost, my wish was answered! I found Narrat, the new narrative game engine by @liananana. It looks like a great way to get started on narrative games that incorporate stats, skill checks, and inventory. I wanted to reach out to Liana to hear more about it.

You can get Narrat on the official website

You can get Infierno Rubi, one of the games shown above, on itch.io.

You can get Will This Bitter Night Bring Change? - Two Women in Trouble, one of the games shown above, on itch.io

You can join the Narrat Game Jam that's going on right now!

Introduce yourself for everyone here on Cohost: Who are you?

Hi I'm Liana, a trans woman from the UK. I've been making games, websites and other things for a bit more than a decade now. I used to work making web games, though these days my work is more typical non-game web development. And I've been working on narrat the last 2 years or so as my main side project

Tell me more about your game engine, Narrat. I've been very tempted to start learning it the past few weeks.

So Narrat is essentially a game engine for making narrative games with RPG mechanics. This is a relatively vague definition as the customisation and scripting system mean you could use it for a few different kinds of games, but fundamentally it's for making text-heavy games with branching dialogue, and (optional) RPG mechanics.

So early on, I was inspired by Disco Elysium and wanted that basic layout with visual stuff on the side and dialogue on the right in a vertical panel. I find that this layout is much easier to focus on that your typical visual novel layout where it's individual dialog boxes. Feels more like reading a page that you can scroll through for context. The whole characters and skills system was also inspired by that game.


Over time it got more features built-in as common requests came in. The general philosophy is that if a feature is something that a lot of games might need, and I can think of a way to make it generic/customisable enough to apply to most games, I'll try to include it in the engine. This is how we now have items, inventories, quests, achievements...

Another focus has been developer experience. I try to make it as easy, accessible and fast as possible to work on games. For starters, the use of web tools gave us nice features like a running dev server that can reload as you make changes, and more recently I added features like hot module reloading to try to make it as seamless as possible to edit a game. There's also the little tool to generate narrat projects which is just one command to type to get started.

It's all based on web technologies, as initially the idea was to release on the web. In fact the engine was made using Vue.js, which is a framework for building web apps. It doesn't really use typical "2D graphics" systems, instead everything is HTML and CSS UI. This places some limits on what can be done (no fancy realtime 2D gameplay), but it also has the great benefit of letting you customise games in CSS.

As far as I know, customising layout in a lot of visual novel engines can be a pain, and isn't normally very flexible. CSS on the other hand is how the web is built, so it's very versatile and powerful. Of course there's a bit of learning curve, but that combined with how hyper-configurable the engine is, make it possible for people to create drastically different games.

How did you find yourself first getting into developing your own engine?

It started when my wife wanted to make a new game with a few mechanics (and especially layout) similar to Disco Elysium, and didn't like working with the available engines. I said I could make a quick system for it. As I started making it and thought more about it, I ended up deciding to make it open source from the start so other people could use it, and over time it has become a much more mature engine that can do a lot.

From the start we wanted a system where it's as easy and fast as possible to write dialogs, that would out of the box ship to desktop and web and be easy to customise. The rest came based on the needs of people's games as more people started using narrat.

Because I made this open source basically from the start, everything I built into the engine was made in a very configurable way. Whenever I add a feature I try to think of how different ways might want to use it. Initially, the engine had a massive config file with lots of options. Over time, this has evolved into lots of nice little individual settings files relating to all the features, so that people can do what they want.

There's a few approachable game tools for narrative-focused games out there. Ren'Py, TyranoBuilder, Visual Novel Maker, RPG Maker, and Twine come to mind. The great thing about having multiple options is that each tool could be helpful for different people, different projects, or trying to accomplish different things. If someone was looking at options and considering using Narrat, what would you say some of its best strengths are?

Honestly, it's probably weird to admit but I've barely tried other engines at all. Most of the features and tools in narrat are based on demands from people actually using it, or fed up with other engines and asking me if it's possible to do X.

I think the core points are accessibility/productivity, and common game mechanics out of the box. The initial goal was to make something that feels nice to use, more modern and fast to iterate on, but that can adapt to a lot of games. Maybe some other engines out there do similar or better things, I don't know, but I think for generally making "narrative games", narrat feels really nice to work with. And that's something people using it also often mention.

For the game mechanics part, a lot of people tell me how much it's a pain when they want to create, say, an items inventory in ren'py or something. A lot of narrative games have other gamey mechanics here and there. Especially these days where narrative games are evolving as a genre towards being a bit more complex than your typical visual novel.

So with narrat, I just add those features. Any feature that can be generalised enough to be useful to many games, I put directly in the engine. If you create a narrat game, out of the box you have working quests, items, skills with leveling and skill checks, etc. I think that's pretty useful for people who want to mix storytelling with gameplay, or TTRPG systems.

At the end of the day, the types of indie games we see are strongly influenced by what tools and tutorials are available for people to get their hands on and experiment with. Is there any type of game, game mechanic, or game structure that you wish had beginner-friendly tools but currently doesn't?

This is a weird one but I really like MMOs, in the sense of persistent online worlds where players can exist. There aren't many good accessible ways to make them. Partly because it's extremely hard to make an MMO. It would be cool if there was a system to make it easy to create a persistent multiplayer game. Indie small scale MMOs could be interesting, but the upfront development cost to making it work is a lot.

What can we expect from Narrat in the future? Do you have any features or improvements you can share?

There is a ton of stuff I want to do really. At the top of my head:

  • Localisation support (this is a bit tricky, I need a system to automatically extract all strings from a game to put them into localisation files)
  • System to dynamically swap out the game theme for another one, to be able to radically change layout and style during gameplay for different phases
  • Graphic settings options for windowed/fullscreen modes, to make released games more professional
  • Twitch integration (no one has really asked for this, but I think it could give a nice marketing boost to people's games if streamers could use it)
  • Finishing the narrat-2d plugin (which uses pixi.js) to give people who aren't scared of getting into code the option to create 2D games with an actual world players can walk around in, or any other 2D gameplay they want
  • Gamepad support, which is nice for accessibility and would enable games to run on Steam Deck and consoles. Xbox support would probably work at that point too. It's a bit complicated to add properly because of all the UI involved in the various features of the engine.
  • More improvements to make the skills system and skill checks more versatile, as it's a core system and there are always new things people want to try. For example, built-in support for skill check modifiers is a common requested thing
  • Systems to make item shops easily, as it's a common mechanic.
  • More general polish and improvements to existing features to make them nicer (for example, I want to add nice hover tooltips on skill checks that show details on rolls and modifiers)
  • More example games for people to use as reference. I'm planning to make a repository with collections of example games, or little libraries of useful narrat functions. Now that the script system has evolved, you can effectively have a bunch of useful narrat functions together in one file and share that as some type of "library" to help others.

I also recently ran a poll on the narrat forum to see what people want next https://narrat.discourse.group/t/poll-what-features-do-you-want-the-most-next/43. It's a good place to suggest new features or vote to give me an idea of what's the most needed

Any advice for people out there thinking of making their first indie game?

The first advice would be to just do it, I suppose. Don't overthink and try something. Even if you fail or get nowhere, you'll learn a lot. But hey, you can get a narrat game working in a minute so: https://docs.get-narrat.com/guides/getting-started.html

I'll give another controversial piece of advice: The most common advice I see is to make small games and not try more complex or harder games. It's generally good advice but I'm not sure it's always good for everyone. I'm a very ADHD person, and I also like complex games with deep systems. The result is I haven't finished many games, but the experience you get from trying to make something complex and new by yourself is invaluable. So, I'm not saying you'll succeed if you do that, in fact it probably won't go well, but it can be a good learning experience for side projects. I've got a very versatile system and experience in all sorts of things just because I like to try new things. I might get bored of them in a week, and maybe no one will ever play or use them, but it doesn't mean that time was wasted.

Every project you work on, no matter where it ends, gives you xp for future ones. Make whatever excites you, it's not worth forcing yourself to make boring games just because everyone is telling you to, if it doesn't make you feel something.

But also, don't listen to me because I only finish like 4% of my projects.

Lastly, are there any indie games out there you've been playing recently? Any favorites to shout-out?

I haven't been playing that many indie games lately (or many games really, outside of spending two weeks on TOTK), but in the very indie category, I'll shout-out all the fun narrat games people have made, which I've conveniently collected on that website: https://narrat.games

One in particular made by a friend, two women in trouble https://narrat.games/game/two-women-in-trouble I played somewhat recently. I think it was a really good story with pretty art.

Also worth mentioning that the Narat Jam 2 is ongoing at the moment, and there will soon be a bunch of indie games people will have made ready to be played and rated: https://itch.io/jam/narrat-jam-2

Thanks for chatting, Liana! I'm legitimately gonna give this a go, this feels like a great third pillar for me in addition to my meddling with Twine and RPG Maker. For everyone else, go give Narrat a shot!. And if you want an excuse to make something, go join the Narrat Jam!


You must log in to comment.

in reply to @IndieGamesOfCohost's post:

Hiii 👋 Thanks for taking the time to ask me questions, and for people taking the time to read my very random thoughts :3

It's funny reading the list of things I want to do from a few days ago because there's been improvements to some of those already:

  • Theme swapping: Turns out it didn't need a new feature and I made an example project that does it with a simple plugin
  • Narrat 2D Plugin: I've been thinking about this in more generic terms and wondering if I should create integrations for popular 2D engines to work with Narrat. It's probably easier to work with a known 2D engine than a basic one I made from scratch as a demo. There's a thread in the forum asking for suggestions.
  • Gamepad support: It's now already in as a first version, though super basic for now (only works in the dialogue panel). I'm in the middle of finishing and testing the new system to be able to play a game from start to finish entirely on keyboard or gamepad
  • Example games: I made this narrat-examples repo to throw example projects in. Now that I have it, it's very easy to make a quick game to demo an idea (literally setting up a new narrat game takes a minute so). So when there's an interesting idea that other people might want to know how to do, I create an empty proof of concept game and put it in that repo. Feel free to contribute to it by the way.