Breakwater is an open-world top-down 2D game with the goal of the player becoming a prominent figure in the world either through trade, plunder, or loyalty to the crown. Essentially, this is a game that focuses on colonial survival with a heavy focus on naval combat and exploration.
Rimworld, FTL, Sea of Theives, Stardew Valley
To maximize the amount of freedom that player’s have, the game will be tailored for three different play styles or gameplay routes that have different types of tasks to complete.
Build or buy a boat and form/hire a crew and sail the sea in search of treasure and loot and amass an armada and eventually form a nation.
Start the game as an expendable naval soldier for one of the already established factions and accomplish quests to eventually make your way up to higher ranks.
Buy and sell goods from an owned shop in order to profit from neighboring settlements. You can buy and sell shops and order ships to make deliveries to other places. Although there are three routes of gameplay it does not mean you can’t mix them. Become a corrupt admiral or a black market dealer, there are many possibilities.
Take on the base of society, performing tasks and various things, which might include having a set routine that they complete based on time of year, day, week, etc.
Combat is split between naval and land combat. Naval combat will mainly uses mounted weapons while land combat employs all types of weapons.
The premise of having an in-game economy is to purchase or plunder resources in one region of the world, and then sell them for the highest price possible through dynamic pricing. There are also luxury items that are more rare, and require more skill to obtain. Additonally, based on your actions in the world, governing bodies can and will impose tarriffs on certain items.
Buidling allows the player to set up a settlement or base at a location of their choosing, and each of the three routes allows for their own unique attributes.
Building your very own pirate cove can give the player many advantages towards their plundering endeavours, such as a safe place for the player and their crew to rest as well as a place to store and make gold.
Building is the one of the main focuses of the trade branch, building trade ports, farms, mines, fisheries, and more to make money. This is probably going to be the players main source of income and seeing as money is what gives them power most of the game will be spent doing this.
Building for the imperial path is how the player conquer new islands or take over islands that are already occupied. Factions will often give out settlement contracts that will have the player escort a group of settlers to an island untouched by man. When arriving the player is tasked with building up a small village that can sustain itself. Or after taking control of an island you are tasked with repairing the village so that new settlers can occupy the old village. The building mechanic is heavily inspired by games like Stardew Valley in which you can do place individual fences, furniture, and paths, but the buildings are pre-built structures with fully customizable interiors.
Creates a chunk system for the world using the chunk's world x1, x2, y1, and y2 coordinates. This chunk system renders the chunk that the player is in, defined by the dimensions of the screen, and the 8 adjacent chunks.
Loads the chunks.
Creates a circle.
List all of the entities that exist in the player space.
Originally used rectanges to check if a given set of points contained a point within it. Used for collision detection. Now uses ellipses ™️ Now uses lots and lots of cirlces.
Draws the map and the entities
Renders all of the entities in the game (player, enemies, buildings, ships, etc.)
Path-finding algorithm that the NPC's will utilize to move about the world.
Main game loop
Breaks up the playable world into a grid.
Collision detectiom.
Everything about the player.
Points to things.
Main entry point for the application. Initializes the terrain generator.
Creates a quad tree, which is used for compartmentalizing entity locations, and collisions.
Renders the stuff on screen I assume.
Generates the terrain.