We got our setting, we got the team together, we had lots of ideas... We even had some pieces of code we could reuse from previous projects (e.g. for navigation in a scene), it was time to put the pieces together and script the characters and write some dialogue. We knew roughly what we wanted to see. It was nothing special, we were going for a classic point click feel, with options to talk/use/look at things and people.
And then, when you pick an option, the main guy, Johnny would do something or say something about the thing you clicked on, or start a conversation with a character. During these conversations sometimes you would have the option to pick from possible things to say. Sometimes, depending on what you say different things can happen. Sometimes, your options within a conversation change depending on what you have said or done already. Aaaand there are lots more that can alter the course of the story and change the behaviour of things and people in the game.
to invent or not to invent?
We thought a lot about how we should implement the engine that makes the story go forward. We could use our own engine, sure. But a game jam is not really the time for inventing these things. We could just write bespoke c# code for everything in the game, but let's face it, it's quite a bit of slave work and also not really elegant. In the end we decided to look for a tool that does all the hard work for us. This is how found Ink, which we deemed pretty cool and ended up using for scripting our game for the jam.
So why change it then?
Before I say anything else, know this. Ink is great. We love Ink. It can do lots of things and has great potential and it is probably the best free tool you can pick if you want to make a game like 80 Days (which Ink was invented for). But it was not quite what we needed. Pretty close though...
Now that the rush of the jam was over, we had time to think about the subject, so MB and I spent countless hours arguing over the syntax of our very own scripting language. Pretty much the only thing we agreed on was that we want to write our own tool. But it just didn't work. No matter how we tried we kinda always ended up rewriting Ink, but with a slightly different syntax. Something was missing, but I just couldn't quite put my finger on it... Eventually I gave up and let MB take over this scripting thing and went back to polish the story a bit. That's when I had a eureka moment.
When we were working out the details of the story and puzzles in the game we used a method, the great Ron Gilbert describes on his blog. He calls them Puzzle Dependency Charts and I found them very useful during the writing process! So after the jam I continued to add a bit more to the story. I also started adding notes and colours to the diagram. Now it looks something like this.
So why change it then?
Before I say anything else, know this. Ink is great. We love Ink. It can do lots of things and has great potential and it is probably the best free tool you can pick if you want to make a game like 80 Days (which Ink was invented for). But it was not quite what we needed. Pretty close though...
Now that the rush of the jam was over, we had time to think about the subject, so MB and I spent countless hours arguing over the syntax of our very own scripting language. Pretty much the only thing we agreed on was that we want to write our own tool. But it just didn't work. No matter how we tried we kinda always ended up rewriting Ink, but with a slightly different syntax. Something was missing, but I just couldn't quite put my finger on it... Eventually I gave up and let MB take over this scripting thing and went back to polish the story a bit. That's when I had a eureka moment.
When we were working out the details of the story and puzzles in the game we used a method, the great Ron Gilbert describes on his blog. He calls them Puzzle Dependency Charts and I found them very useful during the writing process! So after the jam I continued to add a bit more to the story. I also started adding notes and colours to the diagram. Now it looks something like this.
When I finished the part for the new demo and once again turned to our scripting language, it hit me. This is what's missing from our scripts! While working with Ink scripts I often found myself lost in the wall of text looking for a node that had a weird name and by the time I found it I had already forgotten why I was looking for it in the first place (which very well may be because of my tiny brain is unable to handle the task)... But! Look! A chart! Boxes and arrows! That's more like it. It's so much easier (for me at least) to understand from a glance what's going on. AND we don't have to invent a new language either...!
Ahh, fine... to be 100% mathematically correct, we DID invent a new language, only instead of characters and words we use boxes and arrows and other things. Strictly speaking this is still a new, domain specific language, but we didn't just swap one textual language for another.
Phew! Ok, so now you see how we justified writing a custom tool. :)
Now comes the interesting part ... in our next post!
Ahh, fine... to be 100% mathematically correct, we DID invent a new language, only instead of characters and words we use boxes and arrows and other things. Strictly speaking this is still a new, domain specific language, but we didn't just swap one textual language for another.
Phew! Ok, so now you see how we justified writing a custom tool. :)
Now comes the interesting part ... in our next post!
Comments