Narrative Roguelike Template


Lets you create a multi stage "Oregon Trail" type game with persistent resources and random events. Resources, stages, and events are defined in JSON format allowing for development without code.


by Hamster IV


Price History +

This template lets you create a roguelike game where the player is presented with random events. Each choice the player makes may have one or more possible results. The result randomly selected from the possible results can change persistent resources which will affect future events.


A playable example of how such a game can work is available here:

https://hamsteriv.itch.io/narrative-roguelike-demo


In addition to just a standalone scene, this template has features to open other scenes as combat/skill check encounters. If a developer wants to wrap existing game play within a narrative roguelike campaign structure, this template provides tools for that.


The template was inspired by Oregon Trail and FTL, however it can be used for any type of game where there are resource counters that can be modified by multiple choice decisions.


All event, resource, and stage objects are defined by Json files. As such a non programmer with a basic knowledge of the Unity editor can craft a whole game via Json Files.


While the JSON files can be directly edited via your text editor of choice, there exists a separate GUI JSON editor. It is available for free download here:

https://hamsteriv.itch.io/narrative-rougelite-editor


The designer needs to define three types of Json object:

  • Resource - Defines the counters that maintain gamestate between encounters. All changes to resources are referenced by the resource key defined here.
  • Stage - Defines a subsection of the plot. Has a user facing introduction text and specifies the types of Events that will be shown to the player
  • Event - Defines events the stage randomly picks from for each round of user choices.

In addition to the text interface, this package allows for the Json to specify keys for foreground and background images. The image needs to reference images stored in a provided image controller.


My Youtube Channel will host tutorial videos on how to use this package:

https://www.youtube.com/@HamsterIV