Experimental Development, part 4: “Implementation issues 2 electric boogaloo.”

Implenting Ink into Unity proved more difficult than expected. I had plans to use tags within the Inky file to start events on the scene, however struggled to properly read said tags through code. These events included changing audio effects/ambiance, spawning game objects on scene, changing the background colour of the camera or some other event. The issue is that the documentation didn’t provide – in my mind – a sufficiently clear example. That being said, one of my course members had previous experience with Ink’s implementation.

Following Tom’s advice, I attempted to use his example to identify, store and access tags written within Ink’s script, however it proved to be too difficult and I had a sense of doing something wrong (namely the script didn’t work). The progress I was making was too slow and insufficient to execute without sacrificing a playable example by the release date. I considered mimicking “Keep Talking and Nobody Explodes”, by providing with the game a downloadable PDF that would cover the diseases encountered during the game.

I decided to undo everything and instead made use of a List<string> currentTags, to fetch any of the current story tags in the ink file. Ink has a function called story.currentTags that returns a List of all current story tags, debugged that underneath the function story.Continue() which as it says continues the story.

the sweet sweet scent of progress

With that out of the way, I could finally get to implementing spawning different game objects when the script reads through the various tags. With this placed properly, I can finish the story and begin to embellish the whole project.

Finally got this key to spawn.

Things left to do:
* Finish the smith’s story.
* Make it prettier.
* Make the background change depending on the tag.
* Add sounds and feedback to buttons and interactions.
* Add a proper text box behind the main text box.

Leave a Reply

Your email address will not be published. Required fields are marked *