C# DLL bridge for using Inkle's INK narrative scripting language in GameMaker Studio.
- Story loading and continuation
- Choice handling
- Variable manipulation (get/set)
- State save/load
- Tag support (current, global, path-specific)
- Variable observers
- External function binding
- Visit count tracking
- Windows (for building and usage)
- .NET 8.0 SDK
- GameMaker Studio (x86 or x64)
build.bat.\build.ps1cd GMInk
dotnet restore
dotnet build -c Release -p:Platform=x86
dotnet build -c Release -p:Platform=x64output/GMInk_x86.dll- 32-bit GameMakeroutput/GMInk_x64.dll- 64-bit GameMaker
Copy the appropriate DLL to your GameMaker project and use the exported functions:
Load(file)- Load INK JSON fileCanContinue()- Check if story can continueContinue()- Get next story contentCurrentChoicesCount()- Number of available choicesCurrentChoice(index)- Get choice textChooseChoiceIndex(index)- Select choice
SaveState()- Get JSON stateLoadState(json)- Load JSON stateChoosePathString(path)- Jump to story path
VariableGetReal(name)- Get numeric variableVariableGetString(name)- Get string variableVariableSetReal(name, value)- Set numeric variableVariableSetString(name, value)- Set string variable
TagCount()- Current tags countGetTag(index)- Get current tagGlobalTagCount()- Global tags countGlobalTag(index)- Get global tagTagForContentAtPathCount(path)- Path tags countTagForContentAtPath(path, index)- Get path tag
ObserveVariable(name, script)- Watch variable changesBindExternal(name, script)- Bind external functionVisitCountAtPathString(path)- Get visit countRegisterCallbacks(...)- Initialize GML callbacks
Based on original GMInk extension for GameMaker Studio.