Colony Sim

By popular demand, let's make a colony the likes of (hopefully) Rimworld, Dwarf Fortress with a touch of Dwarf Corps.

Course Lessons
Course contains 70 lessons.
This is an early public preview of the Colony Sim (Patreon only atm) showcasing: - World simulation - Texture to Voxel world - Multithreading (not in the video) - Progressively visualizing chunks - Progressively adding chunks - Max Height viz (a la Dwarf Corps) - Circumnavigating the world - Pathfinding & Circumnavigation Pathfinding & many more to come! I just wanted to show you the progress for this already 40+ parts series. When it's a little bit more presentable, I'll start making the videos public. Cheers

Let's talk a bit about what is a mesh and what it consists of.

Let's create a flat world for now

Let's add one more axis into our world

Let's give some thickness into our world

Let's fix our UVs which were set wrong on the last part.

Let's start creating data for our world and resolving issues, such as multiple faces being rendered on the same positions.

Let's implement multi threading onto our world generation.

Let's split our world into chunks

Let's fix the noise repeating through different chunks

Let's make our noise passes easy to add/remove

Let's setup our UVs so different sides of our blocks have different textures

Let's interact with our world

Let's prepare a "Unit" and some block visualization so we can do pathfinding afterwards

Let's implement the first version of our simple A* pathfinder

Let's move our Unit around

Let's create a scene that will help us visualize better our world simulations

Let's see how to create cellular automata based on John Conway's Game of Life

Let's make our generation a bit more modular

Let's make our cells consider cells over the other edge of our world, thus making them "fake" circular. Also let's add beach cells around sea cells

This is mostly a bad attempt at making temperature for the cells but we will improve it later in true sharp accent™ fashion.

Let's turn our 2D world into a 3D map, part 1

Let's turn our 2D world into a 3D map, part 2

Let's create a height map using the midpoint displacement algorithm

Let's put some real height on to our height map from the midpoint displacement

We will mostly see the benefits of this part later when we have more filled up chunks but for now it will eliminate inside faces on the chunk it's self

Really quickly, let's add sand blocks

Let's introduce our action system with the strategy pattern to move our camera

Let's make a system that will visualize only the chunks around us and not of the entire world

Let's make a system that will visualize only the chunks around us and not of the entire world

Let's make a system that will visualize only the chunks around us and not of the entire world

With this part we will be able to circumnavigate our created world with no errors.

Let's introduce progressive world generation/visualization in a more optimized way

Let's Magellan it up by creating a circumnavigating pathfinder

Let's destroy and bring back land!

Quick fix for the world not rendering correctly

Let's fill... the holes we had in our world ( ͡° ͜ʖ ͡°)

An infinite world needs an infinite address system for it's chunk, let's convert ours

Let's add chunks as we build and/or dig

Let's make the height visualization a la Dwarf Corps

Let's fix the issues we had on the last part and also see how we can add rules to the viz (though we drop them on the end)

Let's see a different approach to our terrain generation (we're still going to keep our mid point displacement however)

Let's get to work

Let's make others get to work

Let's work our mouse interaction and assigning the closest idle Unit to a task

Let's destroy some blocks

Let's create a lightweight sprite animator

Let's add the animations to our units

Let's tailor our pathfinder to adapt to our terrain

Let's create tasks in bulk

Let's make each block to be only able to have one task at a time

Let's see the logic for filling an area from point A to B and as you will see in the video. Having a lot of tasks at a time, brings our allocation to it's knees. Let's fix that

Let's place some trees in our world

Let's create a modular system for materials

Let's make our tasks more pluggable so we can hook them to our game's interface

Let's chop some trees

Let's create a nice spot to place our resources

Let's move our materials back to our storage units

Let's make a better solution for our material management

Let's make builds based on target materials (and their amounts).

Let's rewrite our task manager to assign tasks based on events rather than a fixed time rate

Let's finish our crafting system

Ever wondered how dwarfs procreate? Well let's explore that area... ( ͡° ͜ʖ ͡°)