steffendx / GoNorth

GoNorth is a story and content planning tool for RPGs and other open world games.
MIT License
571 stars 30 forks source link
bootstrap dialog dialog-planning dialogue-systems dotnet-core dotnetcore gamedev-tool gaming knockoutjs map mongodb npc openworld planning-npcs quest quest-planning rpg state-machine storytelling wiki-pages

GoNorth

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:

Deployment

Badge

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.

Brief Overview

Chapter and Quest Planning (Aika)

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:

Chapter planning

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.

Npc, Item and Skill Planning (Kortisto, Styr and Evne)

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:

Npc planning

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.

NPC State Machines

GoNorth supports the creation of state machines to aid in developing the AI of different monsters and Npcs:
State Machine

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.

Dialog Planning (Tale)

Using the dialog planning module a user can create the branching dialogs for the different game characters as a node system:

Dialog planning

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.

Daily routine planning

To help you build a living world, GoNorth allows you to easily define a daily routine for any Npc:

Daily Routines

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

Exporting

GoNorth supports exporting Npcs, Dialogs, Skills and Items to JSON and scripts.

Dialog planning

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.

Wiki Component (Kirja)

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:

Wiki

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.

Map Planning (Karta)

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:

Map planning

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.

Implementation Status Tracking

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:

Implementation Status Tracking

This way its much easier to keep track of the integration progress and not forget changes.
More details can be found in the wiki.

Task Management

A Kanban Board supporting different task types is integrated into GoNorth:

Task Management

More details can be found in the wiki.

Technology

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.

Browser Support

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.

Plans for the future

The next steps which I will implement in the future are:

License

GoNorth is open source and released under the MIT LICENSE.

Copyright (c) 2018, 2019, 2020, 2021, 2022, 2023 Steffen Werhahn, former Noertershaeuser.

Acknowledgement

GoNorth uses the following libraries: