Game design: Dialogue system
12 years ago
I am a bit of slowpoke with my programming so I decided I'd start doing (daily?)/frequent updates what I've been working on. These might be really boring for most of you but these are mostly for myself so I can concentrate better on the game.
Today I've been revamping the dialogue system after I found it lacking in some key areas, monstly on the scalability of the system. Earlier thingie only supported three options for the player to pick and had rigid UI elements the one I've been hammering today has infinite (well until the bits run out) scalability because I replaced the three player dialogue options with a scrollable list and added support for unlimited number of player dialogue choices to the dialogue object parser (a thingie that creates an object that has all the npc dialog in it, along with the player choices). Other thing that makes the dialogue content easier to create is my revamped syntax for the dialogue.txts.
It used to look like this:
0/Hey stranger, do you want to arm wrestle?/
No thanks./8/
Why do you want arm wrestle?/3/
Lets arm wrestle (strength check)/player_strength.>=.enemy_strength.2.1/
|/
1/Ha ha, you lost!/
Darn, why did you want to do that anyway?/3/
Damn you are strong./4/
Eh, I let you win./7/
|/
2/Hey you won!/
Ha ha, you lost!/7/
What's my prize gorgeous?/9/
You almost had me there./4/
|/
It now looks like this:
{0} Hey stranger, do you want to arm wrestle?
[8] No thanks.
[3] Why do you want arm wrestle?
[player_strength.>=.enemy_strength.2.1] Lets arm wrestle (strength check)
|
{1} Ha ha, you lost!
[3] Darn, why did you want to do that anyway?
[4] Damn you are strong.
[7] Eh, I let you win.
|
{2} Hey you won!!
[7] Ha ha, you lost!
[9] What's my prize gorgeous?
[4] You almost had me there.
The dialogue data needs to pretty readable and easy to see if there's syntax problems. I feel the new one works a lot better.
The dialogue index pointers (things with the "[]") can include simple logic scripts that can change the variable states that determine the next dialogue index (strength check in the example). Dialogue syntax is also used to show images and notice boxes. The new indexes don't have to be numbers, I can use words and text aswell. Dialogue indexes are also used to save players progress with a character. Every character has a "saved index" that is loaded and used when talking to that character, it's basically a checkpoint in a conversation. If the player hasn't met the character "saved index" is 0.
Also I've settled on 1280x720 resolution for the game.
Today I've been revamping the dialogue system after I found it lacking in some key areas, monstly on the scalability of the system. Earlier thingie only supported three options for the player to pick and had rigid UI elements the one I've been hammering today has infinite (well until the bits run out) scalability because I replaced the three player dialogue options with a scrollable list and added support for unlimited number of player dialogue choices to the dialogue object parser (a thingie that creates an object that has all the npc dialog in it, along with the player choices). Other thing that makes the dialogue content easier to create is my revamped syntax for the dialogue.txts.
It used to look like this:
0/Hey stranger, do you want to arm wrestle?/
No thanks./8/
Why do you want arm wrestle?/3/
Lets arm wrestle (strength check)/player_strength.>=.enemy_strength.2.1/
|/
1/Ha ha, you lost!/
Darn, why did you want to do that anyway?/3/
Damn you are strong./4/
Eh, I let you win./7/
|/
2/Hey you won!/
Ha ha, you lost!/7/
What's my prize gorgeous?/9/
You almost had me there./4/
|/
It now looks like this:
{0} Hey stranger, do you want to arm wrestle?
[8] No thanks.
[3] Why do you want arm wrestle?
[player_strength.>=.enemy_strength.2.1] Lets arm wrestle (strength check)
|
{1} Ha ha, you lost!
[3] Darn, why did you want to do that anyway?
[4] Damn you are strong.
[7] Eh, I let you win.
|
{2} Hey you won!!
[7] Ha ha, you lost!
[9] What's my prize gorgeous?
[4] You almost had me there.
The dialogue data needs to pretty readable and easy to see if there's syntax problems. I feel the new one works a lot better.
The dialogue index pointers (things with the "[]") can include simple logic scripts that can change the variable states that determine the next dialogue index (strength check in the example). Dialogue syntax is also used to show images and notice boxes. The new indexes don't have to be numbers, I can use words and text aswell. Dialogue indexes are also used to save players progress with a character. Every character has a "saved index" that is loaded and used when talking to that character, it's basically a checkpoint in a conversation. If the player hasn't met the character "saved index" is 0.
Also I've settled on 1280x720 resolution for the game.
FA+

Also I had no idea someone was hyped about this.
I've never heard about OffBeatr but I'll give it a look, seems like a porn kickstarter not sure if I can even use it because of the geographical limitations.
I'll do new update soon.