Home
Team: 3 programmers & 2 artists.
Project period: 2018 - 2019, for roughly half a year.
My role: Gameplay Programmer.
My contribution:
  • Event System
  • Economy
  • Site interaction
  • Tooltip
  • Diplomacy
  • Time scaling
Preface

On this page I'll explain how the following Systems work:
  • Event system
  • The Event system which uses a combination of several event related systems to make event pop ups with a variety of effects.
  • Economy
  • The system using Game ticks to consume resources over time using the Civ manager and the Game manager.
  • Site Interaction & Diplomacy
  • The system used to interact with islands and loot sites both in diplomacy and raiding.
The Game

NoMansBoat is a civilization management game set in a large island filled sea. The goal of the game is to keep your civilization alive through trading with or pillaging other islands, looting resource sites and other interactions with the world around you. You must survive through several challenging events with one final event winning you the game.

EventSystem
  • Popup events
  • Templated for easy additions
  • Both scripted and random events
  • Hover over tooltips
The event system works by setting up templated events made using scriptable objects. These templates contain fields for the flavour text, the number of buttons you want, the text in said buttons and the effect of each button. The event manager holds these filled out templates and can then at random show them to the player after each daily tick. Besides random events there are also Scripted events that occur at specific times in a game These represent the main story quests. These mainly consist of challenges for the player to survive like an influx of new people that need to be fed. the final quest event makes the player win the game. By hovering over one of the events buttons a popup window will appear with information about the effects of clicking the button.

An example of a popup and the hover over tooltip Gif missing

Economy
  • Player interaction, events and the daily tick affect the resources
  • Resource management
    • Food for the people
    • Materials for building
    • Money for trading and other actions
    • People that need food to survive
    • Stability that affects money income and the loss condition
The player manages 4 types of resources: food, materials, money and people. These values are held, adjusted and obtained from the "civ manager". Besides resources the player also has stability this value acts as a positive or negative modifier on the island's income. The negative effects scale more aggressively than the positive effects. Resources get added or removed through the players actions, events and the daily tick. When the stability or food drops below a certain value for too long, “game over” will be triggered.

Example of the daily tick (5am in game) removing food from the players resources Gif missing

Point of interest Interaction & Diplomacy
  • Interactable points of interest (Interactable objects)
    • Uninhabited and inhabited island's that can be pillaged or traded with
    • Lootable resource deposit's
all lootable sites and islands are interactable objects. When selecting an interactable object, it will check its details and present the player with the correct UI elements. This includes locking or unlocking certain buttons based on what options are available. Islands need to be explored to interact with them. If inhabited, you get the options to trade or pillage while an uninhabited island can only be pillaged. What you get from islands depends on the resources it's rich in. If you pillage an inhabited island, you lock yourself out of trade. This is based on the attitude of the island towards you. These relations naturally move towards 0, changing each daily tick, and the further from 0 it is the faster it changes. Besides island's there are also resource deposits in the ocean, these give 1 type of resource and then permanently disappear.

Example of exploring and pillaging an inhabited island leaving them at -100 attitude stopping you from interacting with them

Trade
  • Prices are affected by:
    • Prices are affected by the island's excess and demand
    • Prices and trade capacity are affected by the current attitude
Trade is affected by the island's resource excess and demand, the amount of trade capacity and the island's attitude towards the player. The excess and demand of an island is determined by an Enum. While trading, the island will give more for an item it has demand for and pay less for an item that it has excess of. What the player demands and asks for can be freely changed in the trade screen. The amount of trade left is related to the island's opinion towards the player and limits how much it can trade with the island. Trading itself improves the relations between the player and the island which in turn increases the maximum amount the player can trade.

Showing off trading and some of the restrictions, like not being able to buy the same item you’re using as payment Gif missing

Click Here to go to the Github