Skip to content

Releases: inkle/ink

Version 0.4

08 Jul 16:46
Compare
Choose a tag to compare

Biggest change: We've removed ink's dependency on Newtonsoft.Json.dll. When you install this latest of ink (in Unity), make sure that that the dll has been removed (unless you're using it for something else of course!) This should make Unity integration a lot more stable, and remove the compatibility bugs we've been having (especially on Windows) once and for all.

It also means that you can use .NET 2.0 Subset rather than .NET 2.0, making it possible to create WebGL builds without hundreds of megabytes of JavaScript!


The build includes extra functionality for the play mode of the command line inklecate compiler. This was mainly to support inky, but you may find it useful if you use play mode too:

  • As well as typing in choice numbers, you can also type ink expressions, such as myVar to print the value of a variable, myVar = 6 to perform an assignment, or -> myKnot to jump straight to another place entirely in your story.
  • Launch the play mode with the additional -k argument to keep inklecate running even after the story as finished. This allows you to continue to evaluate expressions like -> differentKnot, to try different sections of your story, especially if it's designed to be played in fragments within your game engine.
  • Ability to get the source line and file from a particular point in the full output text, by using DebugSource(<character offset>). This isn't very human-friendly, and it's really designed for inky to be able to alt-click output text in the player window and jump to the source in the editor.

Also included are a few small bug fixes including:

  • The ability to use threads within inline logic. For example {first|second|<- pullLogicFromThread}.
  • Fix for compiler crash if you attempt to use an empty sequence, e.g. {!}.

Unity users: What should you download?

If you're using Unity, the UnityInkIntegration package is all you need!

Version 0.3.5

20 Jun 13:39
Compare
Choose a tag to compare
  • Ink-unity-integration package improvements:
    • Improved warning/error logging
    • Added some new icons
    • Added the ability to change which files are compiled automatically
    • Massively reduced the file size footprint of the ink library, and removed a call that was creating unintended effects on the Unity Editor.
  • In runtime format, Branch is no longer used, in favour of using a simple condition boolean on Diverts.
  • Command line player now signifies when player input is required with prompt characters ?>, so that integrations into automated pipelines are easier (e.g. for web or app interfaces).
  • Project settings to allow pushing to nuget (thanks @ncthbrt)
  • Bug fixes
    • Diverts no longer break when they reference a target they're currently in
    • Shuffle no longer leaves rubbish on evaluation stack, which sometimes caused functions to return the wrong result.
    • Shouldn't attempt to continue to evaluate after story's state is broken
    • Exiting inklecate with CTRL-C returns command line text colour to normal (thanks @bncastle)
    • Fix for crash in Divert.ToString()
    • Fix for visit counts when diverting as a result of a choice

Unity users: What should you download?

If you're using Unity, the UnityInkIntegration package is all you need!

Version 0.3.4

06 May 14:47
Compare
Choose a tag to compare
  • Lots of increased robustness for this release, both in the ink-unity-integration package and in ink itself. In particular, the compiler should cope much better with Windows and mixed line endings, since it does an initial cleansing/standardisation step now.
  • Removed the command line option to specify a working directory. Instead, INCLUDE files will always be relative to the root ink file.
  • Much of the ink-unity-integration plugin has been overhauled and re-written. Changes include:
    • Track ink errors, warnings and todos via the inspector
    • The name, location and existence of a story JSON file is tied to its Ink file
    • Shows relationship between INCLUDE files
    • Make compilation process visible via a loading bar
    • Ability to disable automatic compilation
    • Massive performance gains for larger stories

Unity users: What should you download?

If you're using Unity, the UnityInkIntegration package is all you need!

Version 0.3.3 Alpha

12 Apr 15:57
Compare
Choose a tag to compare
  • Open up access to VisitCountAtPathString
  • Open up access to jsonToken on StoryState, useful for JSON serialisation as part of a wider game.
  • Open up access to StoryException
  • Standardised error message format for easier parsing in newly released Unity integration package.
  • Fix for JSON serialisation of save state when threads are used
  • Fix for reversed arguments in external function binding
  • Revised documentation to reflect that the ink Unity integration package is the best route into getting started
  • Bug fixes, documentation typo fixes

Version 0.2.3 Alpha

30 Mar 10:06
Compare
Choose a tag to compare
Version 0.2.3 Alpha Pre-release
Pre-release

Breaking changes:

  • ChoiceInstance is now Choice, while the old (internally used) Choice is now ChoicePoint, making the public-facing API more friendly.
  • choiceText and choiceIndex members are now just text and index.

Other improvements:

  • Include XML documentation in Windows release for use in Visual Studio.
  • Fix for incorrect naming conflicts for labels (named knots, stitches, gathers, choices) in entirely different scopes.
  • Parse errors in include files no longer cause a incorrect "file not found" error.
  • Removed silly synonyms for true and false which were indocumented and causing problems, and added error message for when you name a knot parameter using a reserved word.
  • A couple of smaller bug fixes

Version 0.2.2 Alpha

26 Mar 12:23
Compare
Choose a tag to compare
Version 0.2.2 Alpha Pre-release
Pre-release
  • Fix for sticky choices not getting serialised properly.
  • Function calls on tilda lines now clean up the evaluation stack after themselves properly.
  • Streamlining runtime implementation: Renaming Literal to Value, since it's more accurate. There's now no separate Runtime.Text, it's all just StringValue. Callstack pops are now just types of ControlCommand.
  • Improvements to Sublime syntax

Version 0.2.1 Alpha

24 Mar 22:58
Compare
Choose a tag to compare
Version 0.2.1 Alpha Pre-release
Pre-release
  • Public method to get the visit/read count of a knot or stitch: story.state.VisitCountAtPathString("yourKnot.yourStitch")
  • Rewrote system that counts visits to Containers. Simpler, faster, more robust.
  • story.state protection level fixed, so you can actually access it!
  • Various bug fixes

Save state now available!

23 Mar 17:15
Compare
Choose a tag to compare
Pre-release
  • Save state now available. Call story.state.ToJson() to get a JSON string representation of your game state. Call story.state.LoadJson(yourString) to load it up again.
  • Intermediate compiled JSON format for stories themselves re-worked from scratch. File size is now roughly 50% smaller. Further improvements may be made in future but they're likely to be harder work and less dramatic!
  • VariablesState now implements IEnumerable for easy walking over your global variables from game code. Thanks @bateramos!
  • API Change: Story now has a normal constructor that takes a JSON string rather than calling a static CreateWithJson factory method.
  • Small bug fixes

Version 0.1.3 Alpha

12 Mar 21:30
Compare
Choose a tag to compare
Version 0.1.3 Alpha Pre-release
Pre-release

Nothing changed, other than to the Mac release zip, since it needs to include Newtonsoft.Json.dll (oops).

Version 0.1.2 Alpha

11 Mar 15:42
Compare
Choose a tag to compare
Version 0.1.2 Alpha Pre-release
Pre-release
  • Syntax for includes has changed to INCLUDE blah.ink from ~ include blah.ink
  • Bug fixes