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 eventsTemplated for easy additionsBoth scripted and random eventsHover over tooltips
The event system works by setting up templated eventsmade 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 managerholds 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 gameThese 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 informationabout the effects of clicking the button.
An example of a popup and the hover over tooltip
Economy
Player interaction, events and the daily tick affect the resourcesResource managementFood for the peopleMaterials for buildingMoney for trading and other actionsPeople that need food to surviveStability 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 stabilitythis value
acts as a positive or negative modifier on the island's income.
The negative effects scale more aggressivelythan 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 foodfrom the players resources
Point of interest Interaction & Diplomacy
Interactable points of interest(Interactable objects)Uninhabited and inhabited island'sthat can be pillaged or traded withLootable resource deposit's
all lootable sites and islands are interactable objects.
When selectingan 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 pillagewhile 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 islandleaving them at -100 attitude stopping you from interacting with them
Trade
Prices are affected by:Prices are affected bythe island'sexcess and demandPrices 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 playerand limits how much it can trade with the island.
Trading itself improves the relations between the player and the islandwhich 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