Game
Shroudfell

5 years ago

Dialogue System for Shroudfell - Devblog 2

An in-depth look at the design decisions behind the dialogue system used for Shroudfell.


Why Bolt?

There were two main questions I needed to answer before I know how I'm going to implement the dialogue system.

1. Do we need a node-based solution?

2. Will we use a plugin or have it custom-made?

One of the game design goals is that the world is very malleable. This means that the player should be able to impact the world a lot depending on the decisions he has made.

For our designer, this means he needs to be able to have a good overview of effects and be able to maintain it easily. To me, this screams a node-based solution.

Whether we use a plug-in or not was quite simple. We have a short deadline and we were already using a node-editor as a plugin; Bolt.

The beauty of using Bolt is that you are able to create game logic and the designer can easily change what logic is run by the player's decision.

How?

Bolt is a visual scripting plugin, this means that most logic in C# you can do in Bolt as well.

Because of this, there are 3 ways we can implement our nodes for the dialogue system:

-Super Units

A super unit is essentially a node with nested logic in it. You can define inputs and outputs on how you want to interact with it. This is great for applying the DRY principle.

-Reflected Units

Bolt can generate nodes by using reflection for the C# scripts it finds in your project.

Because they are generated they usually lack a lot of flexibility that you might have with super units or custom units.

-Custom Units

Custom units have to be created manually using the Bolt API. This is one of the more difficult ways to create units as it requires knowledge about the internals of Bolt. This is made even more difficult due to the fact that there is no official documentation and what the community provides is sparse. However, custom units have the greatest flexibility.

A great table demonstrating the pros and cons of these different units:

chrome_2019-11-01_09-43-30.png

I wanted something that can give you an overview at a single glance like so:

chrome_2019-11-01_12-07-49.png

This is not doable with super units and reflected units as the node’s layout is too far from what it is designed for. This is why I went for custom nodes.

After fiddling a bit with Bolt’s API this is what I managed to get:

ezgif-1-47dd18db8092.gif

It still isn't completely done but it's functional. Ideally, I would like to embed the choice text into the branch node but that's a little bit more difficult to do well with Bolt.

That's all, thanks for following the development of Shroudfell!



0 comments

Loading...

Next up

This is the second main character of Shroudfell, Lia. She will be joining you on your journey into the depths of the Abyss.

We are Game Tokoro and this is our first Project called Shroudfell. You can find our Twitter and Instagram through our linktree: linktr.ee/GameTokoro

We will soon start posting on our Devblog, detailing the development of Shroudfell.

This is one of the very first areas of Shroudfell. You can see it went through various iterations since we started development.

This is Sol the main character of Shroudfell. The script above the name is the written language of the people living around the Abyss.

Introducing Shroudfell - Devblog 1

A Devblog about how we got to work on Shroudfell.

Been working lately on lots of 'behind-the-scenes' boring stuff that no one really cares about, so here’s a guy playing the sax for some reason.

#screenshotsaturday

Shadow The Hedgehog X pixel art

Call it 'wrong turn'!🚫 The feeling of running into a house with only one exit🚪, and being doomed to die. #pixelart #pixelartist #pixelartwork #art #pixel #indiegame #IndieGameDev #indieartist