“And now, Mister Vimes, I’ll take you back inside and I’ll give you some background on the sergeant and we’ll work out what you need to know from all this, and we can set up a little loop so that you can tell yourself what you need to know. No addresses, though!”

‘And what’ll happen to me?’ said Vimes. ‘The me sitting here now? The . . . er … other me walks away and me, this me, you understand . . . Well, what happens?’ Sweeper gave him a long, thoughtful look. ‘Y’know,’ he said, ‘it’s very hard to talk quantum using a language originally designed to tell other monkeys where the ripe fruit is. Afterwards? Well, there will be a you. As much you as you are now, so who can say it’s not you? This meeting will be … a sort of loop in time. In one sense, it will never end. In a way, it’ll be-‘

‘Like a dream,’ said Vimes wearily. Sweeper brightened. ‘Very good! Yes! Not true, but a very, very good lie!’ – Pratchett, Night Watch

I have a new visitor at Carleton at the moment, Andreas Angourakis from the University of Barcelona. We’re both interested in agent based modeling and archaeogaming, so we’re currently working on a project that merges these approaches. If you remember my ‘Romans Must Die‘ (of course you do) I argued for the natural affinities between ABM and gaming in a way that I must now confess seems pretty Pollyanna-ish, now that we’re actually trying it. More posts soon on how this project is panning out. Andreas is pretty darn good with Unity and Netlogo, so I’m glad he’s working on that aspect; me, I’m doing the …. other bits. These have included importing DEM data into Unity and figuring out aspects of the UI. This post is mostly for my own memory for later in the project when I wonder what the hell I was doing…

Storytelling does a lot of work in ABM, although we don’t really acknowledge it as such. When you insert a player into the middle of an ABM, storytelling is your way of equipping the player with what she needs to know in order to survive, much like Sweeper tells Sam Vimes. So, I’m experimenting with Cradle which enables Twine and Twine-like storytelling within Unity.

Things to know about Cradle:

  • the last release is out of date, so don’t bother using it
  • download the repo, unzip, and use it to start a new Unity project (Start up unity, open a new project, and select the ‘cradle-master’ folder. Contrary to the readme, don’t try installing it in an existing Unity project yet. This is because the repo appears to be his actual project.
  • I kept getting an error in the logs concerning some error in one of the ‘test’ files. I can’t recall at the moment, and I can’t check because I’m at the wrong machine, so I’ll have to come back to this point. Commenting out the offending line solved the problem.
  • Drop your Twine file (twee or html) into the main Assets folder for your project. Cradle will convert that into C# for you.
  • Drag TwinePlayer prefab into the scene and then make sure to inspect it; add script to get it to point to your C# twine file.
  • Ta da.
  • Export as package, and select the relevant files (ie, you don’t need all of the assets or example game files etc) and then you can drag it into any other projects you have on the run.