inkle / inkle/ink

Open World Integration

Open
#861 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
4.9k
Forks
540
PR merge metrics
No merged PRs in 30d

Description

Hey,
I've toyed and looked around on how to best integrate Ink into an open world game (think Skyrim). Currently my dialog looks like this (please don't laugh, I'm a programmer):
```
VAR talked_to_faye = 0

=== InteractFaye ===
# npcs: Faye
{ talked_to_faye == 0:
Faye: Bear. Bring me head get reward.
- else:
Faye: Bear.
}
~ talked_to_faye++
* {has_item("Player", 22)} [Give Bear Head] {remove_item("Player", 22)}
Faye: Good. -> END
* [Make Faye hostile] {make_hostile_to_player("Faye")} -> END
+ [Exit] -> END
```

The game uses __inkStory.ChoosePathString_ to "start" a dialog. The __inkStory stays the same, meaning the global state is shared. This means that the knot restarts every time the dialog is triggered, thus I have to use the _talked_to_faye_ variable to give a different reaction. **I wonder if I could somehow stay inside the dialog, using threads or parallel "flows"**. Or if that is even a desirable thing, KISS et al.

edit:
Hmm, maybe the solution of having a [Move] choice together with having one parallel flow per NPC. That would achieve the dialog pause at predefined points. Lots of options, maybe somebody can share some experience.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.