GoNorth is a web application used for planning the story and world of RPGs or other open world games. GoNorth is cross-plattform ready, provides multilanguage support and is designed as a responsive layout.
It offers modules for:
Please refer to the wiki for deployment details, docker deployment details, installer deployment details and the official documentation on how to host and deploy an ASP.NET Core application.
GoNorth provides a module for planning the different chapters of your game and the branching story. For this it provides a node system which allows you to connect the different quests and their possible outcomes together:
A similiar node system can be created for the different quests.
Each quest will show the connections to Maps, Wiki pages and other objects to provide a view on the big picture while planning the quest.
More details can be found in the wiki.
The web application provides functionality for planning Npcs, Items and Skills with flexible values. You can create templates and then create new Npcs, Items and Skills based on these templates:
Each object will display the different maps in which the Npc or Item is marked, the Wiki Pages in which its mentioned and all other connections. This way the user has a good overview what he or she has to consider when building the character or item.
To help with balancing and moving data, GoNorth supports bulk exporting and importing of values and objects.
More details can be found in the wiki for npcs, items and skills.
GoNorth supports the creation of state machines to aid in developing the AI of different monsters and Npcs:
In addition to defining states and transitions you can also associate a script with each state in order to export the State Machine later on. More details can be found in the wiki.
Using the dialog planning module a user can create the branching dialogs for the different game characters as a node system:
GoNorth provides different dialog nodes for player or npc lines, player choices, conditions or actions. Statistics such as word count are also supported.
More details can be found in the wiki.
To help you build a living world, GoNorth allows you to easily define a daily routine for any Npc:
You can define movement targets for npcs as well as scripts that are run at a certain time of day. This way you can really let your world come to live.
More details can be found in the wiki
GoNorth supports exporting Npcs, Dialogs, Skills and Items to JSON and scripts.
The scripts can be adjusted using a template system with different placeholders for values, learned skills, inventory and dialogs.
To enable a very flexible template system GoNorth uses Scriban to export the different objects.
For better localization support strings can be exported as language keys and localizable language files can be exported.
More details can be found in the wiki.
To give an additional form of flexibility during exporting, GoNorth supports so called export snippets. These can be used to specify certain hooks in the templates that can be filled by the different npcs, items or skills. This way you can have a special behaviour when picking up an item like adding a quest log message for example.
More details can be found in the wiki.
Kirja is the wiki component of GoNorth. Apart from allowing the user to write wiki pages it also features versioning and a tight integration into the other systems:
Kirja also allows the users to attach additional planning files.
A review system is also integrated into the wiki system, allowing you to collect feedback and easily merging the feedback into the page.
External sharing of wiki reviews can also be enabled, offering support to generate a link with a strong token to get external feedback on a wiki page.
More details can be found in the wiki.
A user can upload a high resolution map image to GoNorth which will then be transformed into an interactive map similiar to Google Maps. On this map a user can mark the position of Quest Markers, Npcs, Items, Wiki Pages and Map Changes:
Each marker provides brief informations about the different objects and allow the users to jump of the detail page.
A user can add addtional geometry like rectangles or polygons to a marker to indicate the affected area of the marker.
More details can be found in the wiki.
GoNorth allows you to mark objects as implemented once they are integrated into your game. If a user changes relevant values of theses objects afterwards GoNorth will reset the implemented flag and show you which values where changed:
This way its much easier to keep track of the integration progress and not forget changes.
More details can be found in the wiki.
A Kanban Board supporting different task types is integrated into GoNorth:
More details can be found in the wiki.
GoNorth is implemented using .Net Core for the backend. Since .Net Core provides cross-plattform support you can host the portal on Windows, Linux and Mac OS.
To store the values GoNorth currently uses a MongoDB System. Since GoNorth uses dependency injection and all database access is done through an interface it is possible to integrate a different database system. More details on this topic can be found in the wiki.
Knockout is used for the frontend together with Bootstrap. The whole frontend is optimized for a responsive layout.
I've tested the web application using Chrome and Firefox. The portal might have problems running under Internet Explorer since this is a hobby, spare time project and I did not want to bother with all the Internet Explorer problems.
The next steps which I will implement in the future are:
GoNorth is open source and released under the MIT LICENSE.
Copyright (c) 2018, 2019, 2020, 2021, 2022, 2023 Steffen Werhahn, former Noertershaeuser.
GoNorth uses the following libraries: