Esoteric Update #204 - Inkteroperability


Mmmm, yes, time for a more regular update today.

So first off, let me just say that I am exhausted, and it's freezing, and I just feel sleepy, so no article or lore today.

Furthermore, the novel is still in quality control, and that's just because I didn't have enough time to really sit down to it and edit the final few chapters. I did sit down and edited... one out of the five remaining, but that's all I managed. And the reason for this is that I had a lot to do at work all week, which will carry over to the next two or three days. But, once that's done, I can have a break for Christmas. Unfortunately, not only have we been swamped, but I've also had to go out of town, which in total consumed 2 of my usually free days. Oh well, as they say, it was necessary, and I'm at least getting paid for this.

So, what's up in terms of updates? I got down to programming really hard. Taking a break meant there were some things backed up that I wanted to put into code. And this resulted in two things.

Firstly, I made some tools for displaying images with metadata some two weeks ago or so. I didn't bring much attention to it because it wasn't a big thing, but I continued to work on it with some puzzle functionality integration.


Images can now have defined pointed (really regions) of interest that appear when you click the image in the right place. Once clicked, they allow you to access a small menu of actions attached to them. It's a highly customisable system, but here, have a quick list of features:

  • Any number of regions per image;
  • Regions don't trigger mouse interactions until they are clicked, at which point they become more visible and responsive;
  • Regions can have a highlight that betrays their presence for tutorial and skill check purposes;
  • The menu is fully customisable and can be used to display more information and offer actions implemented in either JavaScript or Esoteric Script;
  • It's all scalable and causes no problems with scaling;
  • It has rounded corners (you laugh, but I had to learn new CSS to make it happen).

Speaking of CSS, I also got into some advanced CSS exploration in general and learned a few new features I had not been aware of before. These will definitely come in handy for a few things in the game, here and there.

Secondly, I allowed myself to just assimilate the entirety of the Inkle's Ink language into the engine. I've yet to do anything significant with it, but here, have a very, very simple story that shows Ink code tagged to work with our stack-based control system:


The interoperability goes pretty deep. Esoteric Script can call code from Ink in the form of functions and can run Stories with an implementation for most API features. In return, Ink can more or less directly call Esoteric Script code, which means it can call most of the functionality with little issue. A considerable part of the latter is the ability to evaluate my grammar statements, which are much stronger than what Ink offers.

Now, the big question might be why I'd even want to do this?

And the truth is that I just wanted to see if I could. But there is actually a legitimate use case for Ink. People can use it to help with the game's development by providing interactive narrative modules that are easier to write than what I do while having access to many powerful features. Ink is an extraordinarily robust format for how concise and human-readable it is.

If you want to know more about any of this: I remind you that I have a Twitter and discuss various implementations there on the fly as I work on them.

Get Esoteric ♥ Esoterica

Leave a comment

Log in with itch.io to leave a comment.