Inkpot - An container for Ink within the Unreal Engine developed by The Chinese Room.
This is a plugin for Unreal Engine 5.3 or later.
This is version 0.1.20 of the plugin.
Inkpot is a wrapper for the wonderful narrative scripting language Ink developed by Inkle Studios.
Inkpot works with version 5.3 of Unreal.
Inkpot includes a C++ port of Ink-engine-runtime version 20, which can be found in the InkPlusPlus module.
As Inkpot compiles the Ink source directly on import, it should be compatible with any Ink editor version as long as you only use features from Ink version 20.
InkleCate requires the .net framework 3.1 which you can download from here.
https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-3.1.32-windows-x64-installer
(Without this you will not be able to import Ink source)
This plugin is distributed as source code which needs compiling.
You will need to install Visual Studio 2022.
https://visualstudio.microsoft.com/vs/
Copy to the plugins folder of your project.
[Project Root Directory]/Plugins/Inkpot/
or add via git as a submodule.
For an example of how this plugin should sit in your project see the InkpotDemo.
https://github.com/The-Chinese-Room/InkpotDemo
Inkpot is made from three modules.
InkPlusPlus is the name of the module that contains the C++ port of the Ink Engine Runtime which can be found here
https://github.com/inkle/ink/tree/master/ink-engine-runtime
When porting the code from C# to C++ we came to the conclusion that we should keep the source as close to the original C# as possible to make updates easier.
That said we took the code in the summer of 2021 and have not had a need to update as it works for our purposes.
The Ink version we are running is therefore behind that of the offical Ink release being at Inkversion 20.
A set of wrapper classes for InkPlusPlus to simplify Blueprint coding.
Manages the lifetime of the Ink story and provides the interface for Ink variable setting, getting and change notification.
This is the unreal editor facing part of Ink pot.
This manages the defintion of data types in Unreal for inkpot and the compilation of new Ink scripts as they are added to the project.
It also contains the unit tests for InkPlusPlus.
There area couple of supporting folders that make up the Inkpot distribution.
All the Unit tests for Ink.
Currently 168 tests.
This contains a copy of InkleCate and is used by the script importer to compile the scripts.
You will note that 2 of the tests fail, these are the JSON serialisation tests & we simply did not need to implement them in our usage case.
We have also not implemented custom function definition.
Inkle
for creating Ink. We've used this for much more than narrative.
UnrealInk
for giving us a good basis for creating InkPlusPlus.
Colin, Seb & Canute at TCR
for the brilliant job in porting the Ink Engine Runtime to C++, along with the editor asset handling, unit tests and Unreal integration, most of the work here in fact.