Prototyping a conversation system: Twine meet Unity
Hi,
I present to you... Celestial, a prototype. [Update: To be clear, this is in no way affiliated with the awesome games company of the same name]
Download playable PC demo (30MB) - UPDATED: v0.002
(Created with Unity Beta 4.6... Sorry, web build therefore not available)
What is this?
An elusive pursuit of creating a fun and interesting game by means of prototyping.
I have taken a slight detour away from building gameplay mechanics and have ventured into a realm
that is new to me... Interactive conversations and story-telling.
Choice in game conversations apparently improves player engagement and buy-in.
It also allows for complex branching stories to be told, which adds depth, improves character development and
facilitates game replayability. So they say.
As you can tell, I've done a little research and also discovered the wonderful interactive story creation tool called Twine. (Check it out if you haven't already, twine is very cool!!!)
I've also received excellent advice from local expert @rustybroomhandle who implemented a similar mechanic in their awesome game The Makers Eden by screwylightbulb.
So without further ado I present a short prototype which is inspired by one of my all-time favorite games, where player
choice in conversations had a fun and real impact on events... Star Control II.
Technical goals of prototype:
1) Build interactive branching conversation mechanics that supports external story creation via Twine.
2) MUST HAVE Star Control-ish vibe.
3) Create a rotating universe (star with gravity, rotating planet and moon, alien presence)
4) Use this opportunity to explore the new Unity UI in Beta 4.6
5) Implement an off-screen target indicator mechanic to assist navigation. (Yep, its a bit buggy... Aargh, the maths of it all!)
6) Build a complex, branching interactive story (complex? haha! done).
Your feedback, as always is appreciated, thanks. (BTW: I believe that writers block is a real phenomenon and I might have suffered from it during the making of this...)
PS: The Twine stories that I wrote(?) and implemented in game can be downloaded in Twine format here.
PPS: I don't hate PE... :)
Thanked by 1Tuism
Comments
Here I can do that as well I see. I like the dialogue part of it too, very easy to access. It pauses the screen, so one could make strategic decisions then too.
Will the ship be upgradeable in future? As in Xenon 2 for example?
I'm really curious to see where Celestial goes.
I also did like what Star Rangers 2 and the more recent Space Pirates and Zombies did with their game mechanics, so there's plenty of ideas out there that are great.
Not sure yet exactly where Celestial wants to go... It would be cool to board other ships, land on planet surfaces, ride around in a buggy and enter bases (with a smaller ship and/or squad)? I guess the right approach would be to go back to pen and paper and design it before touching any code.
I already have done some procedural level generation stuff before which I may incorporate in a bigger prototype in the future, will see.
For now I am just very happy with getting a basic choice driven story-telling mechanic into a game for the first time using Twine :)
Oh and I've never heard of Parley before, going to go and investigate...
Gave the prototype a spin and I must say I really like the controls there, pausing the game and going into the menu with the wheel is awesome :)
The conversation engine is also pretty cool, I'll have to look into how it's done, I wanna get conversations into my games too and having an engine behind it would be ideal :)
The whole conversation mechanic is simply a text parser of the Twine "twee" format. So pattern matching. I am loving Twine more and more. Its a huge productivity tool for creating content.
In the prototype if you opt to go aggressive against the UFO, it will fire an in game event, calling a method that changes the colour of the UFO to red. In the future it might attack the player. :)
@tbulford please keep me in the loop on Parley! Last we spoke about it we were talking about a Gamemaker version, now I can work Unity :D
The code is not optimised and very rough as it is for a prototype. This class is added to some GameObject (GameController)
and I set the public variables by dragging the UI button objects to this script variables via inspector...
In the game, you can only chat with one object... the one that is in proximity. I use the twine TAG section to set the image resource per passage. See my twine file linked above for details.
The actual parse method is right at the bottom.
Sorry for the wall of text... here's the code, would be happy to discuss.
-added meteors (destructible)
-added enemy ship with very basic AI
-particle trails (woot!)
-radar distance indicators
- a shield thing (hold down right mouse)
Coming soon: health, weapon damage, explosions. A betterer story. (You can currently have a chat with the sun, the planet, the moon and the ufo when in proximity - see comms).