Colony Survival - Pipliznl


We were pretty happy with the continents as shown in the previous blog, but we had also spotted some room for improvement. There was one major problem: a lot of biomes looked pretty similar. It wasn't immediately clear when you had arrived in a different biome.

A good thing was the combination of different trees. In certain areas, there is a mix of pine trees and deciduous trees, and we love how that looks. We suddenly realized we could use this as a solution to our problem of biome distinctiveness! Trees with different colors can make a biome look better, ánd it helps to visually separate the biome from others. Here's a video to show the new look of the biomes:

https://youtu.be/LMaFZ8I2Xg8
What do you think of the changes? Let us know!

We finished the important changes to the world generation this week. We decided to test it by starting a new colony without cheats. It was highly frustrating. Look at this area:



It looks relatively flat, right? I thought it was a great spot to start a colony. But when seen from above, a problem becomes obvious:



There's barely any flat space to start a 10x10 wheat field! I discussed with Zun whether it was easy to add more truly flat spaces, and he answered "no". He quickly came up with a different solution to the problem: allow players to create fields on areas that aren't flat! In real life, there's plenty of farmland that isn't 100% flat. It takes some tweaking, but it should definitely be possible to let players start non-flat fields in Colony Survival. We hope to be able to show it next week!

Q&A

Last week's blog generated quite a lot of questions, and here we'll answer some!

#Discussions_QuoteBlock_Author
But the card is very small right?

You flew from the south to the north in 1 minute?
That is very small. The map should be 10x that big.
Multiple people complained that the world looked small in the video. I nearly made a video of me walking from the far north to the deep south, but I quit that after I noticed how many gigabytes of footage that would require!

It looked small in the video, because we were using cheats to fly rapidly ánd we were fast-forwarding the video. We can assure you that the world ís big if you're traversing it by foot. If you're still unsatisfied with the size, it can easily be increased in the settings!

#Discussions_QuoteBlock_Author
Looks great, when can we expect to see some sort of alpha/beta to test this stuff?
Modders already have access to the latest dev branch of 0.7.0. We're now focusing on essential features (happiness, unique content per biome, trading between colonies) and will start a beta when those are done. We'll release a form where everybody can apply when the moment is there!

#Discussions_QuoteBlock_Author
i know you probably wont read this but what are you doing for the longevity and replayabilty for the game? it seems once you complete all the sciences that there is not much reason to continue playing and there doesnt seem to be much replay ability since it will always end up the same way?
We did read it :D Many players already spent 20-40 hours on the game, mainly unlocking all the science and building a big colony. 0.7.0 will add lots of extra content, exploration, multiple colonies, new science, and features like happiness and XP/VAT. It should occupy players for a long time! :)

Why do you keep playing a game?

We didn't have much to show in Friday Blog 66 and 67, so I filled them with semi-philosophical ramblings. I expected people to be happy when Blog 68 returned to actual progress updates, but there were actually many people who missed the rambling! I'm glad some of you enjoy it, and here's some more rambling about the things that I've been pondering about.

I've been gaming for roughly 20 years, and I've always thought and talked a lot about them. But now as a full-time gamedev, I'm even more in some kind of "analytical mode" when playing games. In the past month, I bought two AAA games, Far Cry 5 and Forza Horizon 4. While playing, I tried to carefully consider why I wanted to keep playing or why I felt 'done'. It forced me to think about the essential nature of meaningful gameplay, and about meaning itself. And when we're talking about that, we quickly end up with Jordan Peterson:

https://youtu.be/_7poPzW1u-U
In the video, he talks about the yin and yang symbol. One half stands for "order" and "the known", while the other half stands for "chaos" and "the unknown".



It seems obvious why you'd want "order" and "the known" in your life. You don't want to live in a chaotic mess that you cannot deal with.

But it's not as simple as it seems. The white side of the symbol, yang, is characterized as many things. Not only order and the known, but also "masculinity", "day" and "authoritarianism". It is not characterized as good. The black side, yin, is also characterized as the night, femininity and decadence, but not as bad.

Apparently, both sides have a purpose. And it's obvious when you think about it. We might strive towards more order, but we also love the unknown, 'chaos' and surprises. We don't want to do the exact same thing every day. We want to learn new things, do things we've never done before, discover places that we've never visited!

Our lives feel meaningless when we're in a constant chaos that we cannot get a grip on. But our lives also feel meaningless when we have the exact same repetitious rythm, day in, day out.

Jordan Peterson advises "you should construe yourself as the process that mediates between chaos and order". That's when your life becomes meaningful. In one part of your life, you should build order and knowledge, but simultaneously, there ought to be a "frontier" where you're confronting the unknown and learning and doing new things.

I think the principle above absolutely holds true in gaming.
If you're being shot at from all sides, and constantly die random and unpreventable deaths, it's pure chaos. You'll quickly tire of the game.
If you can predict exactly what is going to happen, and you're just going through the same motions over and over again, it's pure order. You'll also stop playing.

A game is fun as long as it can simultaneously give you a feeling of increasing order and knowledge and the idea that chaos and "the unknown" are still present.

These demands are pretty contradictory. As order increases, chaos decreases. Once you've unlocked all technology, beaten the last boss, explored all levels, chaos is 'gone'.

Of course, you can always add new levels and expansions. But I think the best games that people spend the most hours in don't rely on that. Games like The Sims and Rollercoaster Tycoon have complex systems that continuously generate new challenges, and it's not obvious when you've "completed" them. Both games contain many relatively simple and obvious systems, but when you combine those systems, the result of their interactions is often unique and engaging.

We want to do something similar with Colony Survival. We don't have a big team and we don't have fantastic artistic skills. We can't make an epic photorealistic cinematic experience that lasts three or five hours. But we can try to make deep and complex systems that keep challenging and surprising players in the long run. There are already plenty of players with more than 80 hours of playtime, and there's even a sizeable group who've played CS for over 200 hours. We hope to grow those groups in the future :D

Bedankt voor het lezen!

Reddit // Twitter // YouTube // Website // Discord
Colony Survival - Pipliznl


In many games with randomly generated terrain, there is no overarching logic to the world. If you want to find a specific area, your best course of action is to travel as far as possible in a straight line, and eventually you'll encounter the terrain you're looking for.

While this system has benefits, we've got a different idea. We want the arctic to be in the north, and the tropics should be in the south. If you're looking for those areas, you'll always know in which general direction you should head.

So during the past weeks, we've been working on a system to generate unique, random worlds which still conform to general, overarching rules. The result can be seen in this video:

https://youtu.be/HIjeNA-JCjc
We're very happy with how it has turned out! We'd like to allow people to explore all directions, so there is a "New World" in the west and a "Far East" in the east. These other biomes should have unique resources, to encourage players to explore and settle new lands.

It would be a bit weird if you could build two colonies right next to each other, but on opposite sides of the "biome border", allowing you to acquire all the resources of two biomes in one big "double city". That's why all the "useful" biomes are separated from each other by "useless" biomes.
  • You need to traverse the tundra before you discover the arctic
  • You need to cross the steppe before you discover the Far East
  • You need to survive the desert before you discover the tropics
  • You need to sail across the ocean before you discover the New World
To finetune these regions, Zun created a system which allows server hosts to print a map. Here is the map of the world in the video:


Fullscreen

When printing the map above, you automatically print three other maps with data for height, rainfall and temperature. They can be seen here: https://imgur.com/a/z8NBDaq

Nearly all the settings for the new world generation can be easily changed in a couple of .JSON files. The world in the video is 12,000 by 12,000 blocks, but that size can be changed quickly. You can generate a smaller world if you don't like traveling, or you can generate a much larger world if you and your friends need more space. The amount of trees, the height of mountains, the size of the seas, the color of the grass: all of it can be changed, and we can't wait to see what you'll come up with once 0.7.0 has been released!

Bedankt voor het lezen!

Reddit // Twitter // YouTube // Website // Discord
Colony Survival - Pipliznl


A couple of months ago, I wrote that I wanted to learn to program. The first couple of steps of programming are lots of fun to learn. You learn commands like Console.WriteLine, which allow you to let your computer "speak". Vice versa, Console.ReadLine lets your PC read your input. It's exactly the kind of stuff I expected to learn.

But as I progressed, new lessons started to subvert my expectations. Instead of teaching me new commands that allowed me to try new and exciting things, all the tutorials started to focus on abstract methods used to "organize" your code. That's not at all what I was interested in! I gave up and focused on other tasks.

Subconsciously, I approached programming like it was magic from Harry Potter. I thought experienced programmers, like Zun (the programmer on our team who has written the code behind Colony Survival), just knew a whole lot of "spells". I expected programming lessons to be like magic lessons at Hogwarts, learning a couple of new spells every day.



And at the start, that's pretty much what it will be like. Here's a piece of real, functional code:



When you run this piece of code, a console window will open and ask "In what year were you born?" Type "1993", press enter, and your PC will set "birthyear" to "1993". In the next line of code, it will set "age" to (2018 - birthyear) = (2018 - 1993 ) = 25. The final "Console.WriteLine" will print that age to the screen.

That's pretty awesome, right? It's relatively simple and does something useful. But... it only asks one question, gives one answer, and then it stops. Let's make it more interactive! We can start by asking what the user wants to do. If he responds with "calculate age", we can continue by asking him about his year of birth. If we create a loop with while {} and put the code between the brackets, the first question will be repeated when the end of the code is reached.

New problem: the code is too long to Photoshop onto one scroll. Now we've got to do the dreaded thing that frustrated me so much. We've got to work with "methods". I'll admit that it's pretty useless in this example. But it's crucial in larger projects, so please bear with me!

A "method" is a block of code that can be executed by using its title. So the code from the previous example can be copied to a different location and titled "calculator". When I type "calculator()" in my main code, it'll execute the full block of code saved under that title.


Fullscreen

It's becoming more complex now, but I hope the explanation above makes the basics of the concept pretty clear. There's one last concept I'd like to explain before I come to my conclusion, and that's structs. They're a way to save more complex information in an organized fashion. The basics of a struct look like this:



On the left, a general format for saving "game information" is defined. On the right, an example of specific information that can be saved in that format is shown. The struct isn't limited to one set of data, it can hold many more. The code on the right scroll can be followed by for example:

game Skyrim;
Skyrim.Developer = "Bethesda";
Skyrim.Releaseyear = 2011;
Skyrim.EarlyAccess = false;

A variable like "TimeSinceSkyrim" could be used like this:

TimeSinceSkyrim = ColonySurvival.Releaseyear - Skyrim.Releaseyear;
Console.WriteLine($"Colony Survival was released {TimeSinceSkyrim} years after Skyrim.");

All of these concepts are interactive. Structs can be used in methods, and methods can be used to fill structs. Using these concepts, you could write a more complex program that can sort games by age, or another one that provides users with a list of all games by a selected developer.



Structs can be used inside of structs, and methods can be used inside of methods. A complex program can quickly become an intricate web where everything is connected to everything.

That seems to be the difficulty of learning programming. It's not like learning magic or a foreign language. It's not about learning spells or acquiring a large vocabulary. It's about organizing complexity and understanding abstract connections.

If you're writing your own code, you're the one who has to decide how data is saved and used. You've got to determine which blocks of code will be split into methods, and which won't. Creating a good but complex program requires a lot of thought before the first line of code can be written.

Pretty often, your first plan won't be perfect and you'll learn that you've got to reorganize parts of your code. This is called refactoring. Sometimes code is refactored to prepare the game for new features, sometimes it's done to optimize performance, and sometimes refactoring can help mod developers.

The oldest code for Colony Survival was written in 2014. Since then, Zun has learned a lot. His programming skills have improved, and we've gotten a lot of feedback from mod developers and users with different kinds of hardware. This means that there is a lot of potential for improvement when working with older code. Instead of quickly hacking a new feature into the game by adding it on top of flawed code, Zun has the habit to rewrite older code to make it more useful, more stable and more optimized. It does take more time, but we believe it's worth it!



Progress

In the last video of the new world generation, there was no logic behind the location of biomes. That has changed dramatically! There's a cold north and a hot south, with a gradual transition between them. A dry steppe separates the spawn region from the far east. There's an ocean between the main continent and a new continent in the west. Every world is still unique though.

The code behind the terrain generation has been refactored. It's quicker now, and it's possible to change certain settings. Among others, the amount of hills, the "depth" of the world, the water level, the size of the world, and the amount of rivers can be changed.

To-do list:
  • A nice in-game menu to change those settings
  • Some new trees
  • Some simple rock formations
  • A simple map (mostly for us, not in-game) to help us fine-tune the continents
  • Grass shouldn't grow on cliffs
I was hoping to show a video of the latest version of the world generation today, but we've decided to postpone it to next week. The changes above will make it look even better!

For the non-programmers: Did you have the same expectations of programming as I did? Does my explanation make any sense?

For the programmers: Does what I wrote actually hold true in your experience?

Bedankt voor het lezen :)

Reddit // Twitter // YouTube // Website // Discord
Colony Survival - Pipliznl


Game of Thrones is one of the most popular series on earth, and like many others, we've watched all seasons. Many episodes are absolutely brilliant. But like anything in life, it isn't perfect, and it has received criticism. This week, I was watching a video that criticized the development of a certain character, and when I thought about it, it reminded me a lot of the problems we're experiencing with 0.7.0. I'll try to keep the Game of Thrones spoilers to a minimum!

In GoT, there are two important continents. There's the "main continent", that receives roughly 90% of the attention, and a second continent that gets the other 10% of screen time. One of the most important and beloved characters spends the first four seasons of the show on the first, main continent.

It's great television. The main character is very interesting and entertaining. But the world he inhabits is highly compelling as well. The other characters are complex and have deep interrelationships. There are important and violent political problems with sensible motivations on both sides. And we know a lot about the "background" of the world. We learn about the most prominent religions, we learn how the rich and the poor live, we know about the history of the continent.

Watching our main character interact with this world is fantastic. But in the fifth season, he moves to the 'second' continent. Of course, this continent is also populated with interesting characters and political problems. We do learn some things about that world. But it lacks the depth and complexity of the primary continent. And our "main" character suffers for it. He's a lot less important and interesting on the second continent.

I don't think it's caused by any changes to the character. The actor is still amazing, the character is still very witty. But he's missing the deep and complex world to interact with. Apparently, the second continent is way more detailed in the books, but when converting the story to television, the showrunners had to cut characters and storylines.



With many things in life, returns are proportional to investment. Study hard, and you'll learn a lot. Work hard in the gym, and you'll lose weight and/or become stronger. It's also very often true in game development. We could easily release weekly updates with new cosmetic blocks, new jobs or new items. It's simple to add a new guard that does more damage or has a lower reload speed to Colony Survival. But we're sure that doing that every week will quickly result in bored players and a cluttered game. Developing new and complex features will probably result in a better game, but that takes time.

But it's not always that simple. Imagine you're a car designer, and you and your team have designed a pretty average car. It's good, but not particularly fast. So you spend months or years integrating an engine that has thrice the horsepower of the old engine. You've put a lot of effort into it. But is the car better? Arguably, it's worse. It lacks the brakes, the tires or the safety features to properly handle its new power. You have dramatically improved one aspect of the car, but it has only caused a lack of balance. Now you need to upgrade the rest of the car as well, turning a minor upgrade into a major redesign.

I think the showrunners of Game of Thrones faced a similar dilemma with the secondary continent. It's less interesting, so they spent less time on it. But now the viewers are less familiar with the characters, problems and history of the secondary continent, making them even less interested. It's a tough problem to solve. You need to cut some characters and plotlines when converting a book to a television show, but cut too much and the viewer won't care at all!

In my mind, I imagine a circle - or only a couple of fragments thereof. You can spend a lot of time developing a brilliant engine, but it's worthless if the rest of the car cannot support it. A main character can be very witty and charismatic, but all the effort is wasted if he doesn't have an interesting world to interact with. The engine or the main character is just a fragment of the circle, and it needs other parts before it's "fully round".

In a TV series, a supporting character can be added or removed from a well established situation without changing the "roundness" too much.
In a car, the audio system or the upholstery can be dramatically changed without affecting the "roundness" too much.
In a game, some new (cosmetic) content or complementary features can be added without disturbing the "roundness".

But add a new continent to your TV series, upgrade the engine of your car, or add a significant new feature to your game, and you've "broken" the roundness. While the change itself might be good, the lack of balance might make your product worse. But invest in the other parts of your product as well, restore balance or "roundness", and you might have just taken your product to the next level.



Colony Survival 0.1.0 to 0.5.0 all had some obvious "holes" in their "roundness". It needed more content, it needed the science system, it needed a way to let your colonists assist you in building. Plugging those holes made the game "rounder". But the latest version, 0.6.3, lacks big holes that can be fixed with fun new gameplay like the builders & diggers.

There's one dramatically underutilized thing: the large and diverse world that's barely ever explored and used by players. That's why we'll work on that in 0.7.0. But adding only multiple colonies disturbs the balance. It's not "round", it's just a fragment. You'll need a good reason for exploration as well. And a means of transport.



Separately, these features are useless. Multiple colonies need a purpose, and the happiness feature relies on the other continents. Transport is not needed in 0.6.3, why explore if you can only start one colony and it functions the same everywhere?

This is the reason why 0.7.0 is taking a while. Each one of these features is complex and significant alone, but they require each other to have a purpose. We've thought about releasing them separately, but the more we think about it, the more we realize that's a bad idea. We can't wait to see how those features will interact together!

Two weeks ago, we published a rough timeline that will most certainly change. We're still on track though! For convenience, here it is again:

September: New world generator, continents, new trees
October: Features like trading, multiple players in one colony, happiness
Closed beta starts here, we'll release a form where you can apply to become a tester
November: New crops, jobs and items + airships or boats
December: Finishing things up, patching issues found by testers, polishing, achievements

That was a long, philosophical ramble and I wonder if it makes any sense. Was it actually insightful? Let us know in the comments or on Discord!

Bedankt voor het lezen :)

Reddit // Twitter // YouTube // Website // Discord
Colony Survival - Pipliznl

Fullscreen

We've made good progress on the new world generation this week! We've added cliffs and some kind of tiny rivers, and new trees. We're very happy with the results! Here's a video featuring the new terrain:

https://youtu.be/QQ50AmplF3g
While traversing the new terrain, the command "/debug printbiome" can be used to display info about your current location. Here's an example of using that command thrice:



Temperature and average rainfall (precipitation, in-game stat only, no visual effects) change gradually, ensuring a smooth transition between different areas. With those stats in mind, the new terrain generator selects an appropriate biome.

In the past, trees were predetermined structures. They had to be built by us, manually, block by block. We saved the structure, and the structure was loaded into appropriate locations. For the new world generation, Zun has written a program that can quickly convert simple instructions into a complete tree. This makes it a lot easier to add new trees!


Fullscreen

To the left is an example of the tree instructions. The first "box" instructions cause the renderer to generate a trunk made of "logtemperate", 5 blocks tall. The second block of code titled "format : circleY" generates a circle of leaves on top of that trunk. The next blocks of code generate more circles of leaves.

To the right is an example of one of the biomes. The lower bounds are 20% rainfall and 9°C, the upper bounds are 60% rainfall and 15°C. The "totalStructureChance" defines the total amount of vegetation. It's followed a by a list of trees and bushes that spawn in that biome. The higher the weight, the bigger the chance of spawning that particular tree.

The code above isn't hidden deep in an inaccessible generator, it's easily available in a couple of .JSON files. It is now very easy for modders to add their own structures, and to change the terrain generation! We're sure there are talented people with more artistic skills and patience than us who will be able to improve dramatically on the examples above. We're looking forward to seeing their results!


Fullscreen

Currently, the world is one infinite continent with randomly fluctuating temperature and precipitation. There is no cold north nor a hot south. That's our next job. The shape of the continents should be pretty random, every world should be different. But the "standard" biome in the center should be bounded by obstacles in all directions. A cold tundra in the north, a dry steppe in the east, a hot desert in the south, and an ocean to the west. On the other side of the obstacles should be different biomes, where new colonies can be started and new resources can be generated and extracted. It'll be an interesting challenge!

Bedankt voor het lezen :)

Reddit // Twitter // YouTube // Website // Discord
Colony Survival - Pipliznl

Fullscreen

After multiple weeks of behind-the-scenes work resulting mostly in ugly brown hills, we're finally starting to render more interesting worlds! Every place in the world is assigned a temperature and a level of rainfall. With this information, the appropriate biome is selected. This ensure a realistic distribution of biomes, and a gradual transition.

We needed more shades of grass to make this gradual transition possible. We've got a system for giving blocks different colors without adding new textures, but we couldn't get it to work with grass in the past. Yesterday, we succeeded in doing that! So today we've been experimenting with many shades of grass.


Fullscreen

Zun has also created a way for me and modders to easily generate new trees. The old world generator required hand-crafted trees that were saved as 'structures'. With the new system, a tree is defined by it's height and the shape of its leaves. This makes it a lot easier to generate a wide variety of trees, and to ensure a smooth transition between them.


Fullscreen

Here is a summary of the work that still needs to be done on the new world generator:
  • More diverse trees and shrubbery
  • Random flowers
  • Rocky outcrops and cliffs
  • Clear consequences for going north/south/west/east, continents and oceans
  • Appropriate ores in each biome
We've made a very rough timeline for the 0.7.0 release. It'll most certainly change!
September: New world generator, see list above.
October: Features like trading, multiple players in one colony, happiness
Closed beta starts here, we'll release a form where you can apply to become a tester
November: New crops, jobs and items + airships or boats
December: Finishing things up, patching issues found by testers, polishing, achievements

Hopefully, you'll be able to start testing at the end of October and to play the full release during the Christmas Holiday! But as always, development is unpredictable and Valve Time applies.

New renders and fatal crashes

I've hated the icons for wheat and wheat seeds for a long time. We've worked on new icons this week, and I'm pretty happy with them. NACH0 made a mod that adds the new icons to 0.6.3, and I feel it makes the game look a lot more professional:


Fullscreen

The rendered icons make the hand-drawn icons for the command and banner tool stand out like a sore thumb. Time to upgrade them as well!

Something that also needed upgrading, was Zun's PC. While testing the new world renderer, his graphics card died resulting in a pretty dramatic image.



The next morning, Zun's dead graphics card was replaced with a brand new GTX 1080, and we were able to continue working without problems!

While we're talking about new hardware, my new vertical mouse arrived. Thanks for the concern about my wrist pain, I received lots of advice! It's already feeling quite a lot better. The new mouse is a Logitech MX Vertical, and it looks like this:



In a lot of ways it feels better than holding a normal mouse, and I got used to it pretty quickly. But the mouse is pretty big, which can also become uncomfortable.

We're pretty sure we can post an extensive video featuring the new world generation next week, and we're looking forward to it!

Bedankt voor het lezen :)

Reddit // Twitter // YouTube // Website // Discord

P.S. This blog isn't sponsored by Nvidia, Logitech or LG, but it probably should have been ;)
Colony Survival - Pipliznl

Rendering a silver ingot in Blender

Last week's blog resulted in a lot of comments and a long discussion on Discord. They were very useful! I never expected so many people to be so passionate about Malthus and Boserup :)
There were two suggestions that really surprised us and have a pretty big chance of being added to 0.7.0.

"Around999People" suggested turning the XP system into an income system. Others loved this idea and expanded upon it. We discussed it, and we think it has a lot of benefits! Instead of the consumption of a chocolate bar by a colonist resulting in some XP, the chocolate bar is assigned a monetary value, and there's a variable VAT (Value Added Tax) rate.

Imagine the value of the chocolate bar is 10, and the default VAT rate is 20%. The consumption of one bar would result in 2 "money" for the colony, to be spent on productivity upgrades.
Increase the VAT rate to 40%, and you'll receive 4 "money". It will also result in more unhappiness.
The opposite is also true: reduce the VAT rate to 10% and you'll only receive 1 "money", but your colony will be happier.

It might make more sense than calling it "XP", and it gives players another interesting choice. High happiness makes it easier to recruit new colonists, and improves the speed of research. But having a lot of productivity upgrades will make your colonists way more efficient, making it easier to produce food, ammo and science bags.

On Discord, Greedoflashbang and Boneidle suggested hot-air balloons / blimps / hot air boats / airships. Exploring will be an important part of 0.7, and a quicker form of transport than walking will be very useful. I've tried to convince Zun of boats, but he was hesitant. He thinks they're pretty hard to add decently, because of the floating on water + collision + multiplayer. Airships will probably be easier to add. We're almost certain trading in 0.7.0 will not involve colonists/boats traveling from one colony to another, but if we ever add something like that, airships are a lot easier to automatize than boats.

Rendering new icons

Drawing icons for items that have no in-game model has always been hard for me, and there are quite a lot of terrible icons. It felt like a huge improvement when, in 0.6.0, I replaced the ugly hand-drawn bed icon with an icon that was made using a screenshot of the in-game bed. This week, I've been busy replacing ugly hand-drawn icons with rendered alternatives. At the start of the blog, you've seen the rendered silver ingot. Here's what the old and new ingot icons look like:



I think it's a worthwhile investment to replace as many icons as possible with rendered alternatives. Zun was very unhappy with the icon for bronze coins, so I made this:





I worried about hand-drawing icons for all the new happiness items, but I think rendering them is a great solution!

Terrain generation

While I've been rendering icons, Zun was working on the terrain generation. It's taking a while, because we want the new system to meet high requirements:
  • More realistic world
  • More interesting world
  • More beautiful world
  • Better performance
  • Players should be able to set some parameters, like size of the biomes, amount of flat terrain, many islands vs big continents
  • Modders should be able to easily change the terrain
Zun is working on a new system to easily create a large variety of trees, and distribute them among appropriate biomes. Today, he showed me the first version of the new world generation with basic trees. It's starting to look more like what it's supposed to be, and we hope to show you some images and perhaps a video of our progress next week!

Wrist pain

During the last two weeks, I've been struggling with some wrist pain. Sometimes it was barely noticeable, sometimes it prevented me from using my computer mouse. I've been watching my posture and started using a gel pad, but the pain did not go away.

I was worried that the pain might be the start of carpal tunnel syndrome, so I visited the doctor yesterday. He quickly concluded that my wrist joint was perfectly healthy, I should just focus on improving my posture even more. He told me that the act of holding a standard computer mouse is pretty unnatural.
Our wrists don't like moving our hands to the sides all day long. One way to improve this is by using an ergonomical, vertical mouse. Holding a vertical mouse is a bit like how you hold your hand during a handshake. It's a lot more natural. We've bought one, and we hope to be able to tell you what it's like using one next week!

What do you think of VAT, airships and the new icons? Has using a computer ever caused pain to your hand, wrist and/or forearm, and have you found a solution? Let us know!

Bedankt voor het lezen!

Reddit // Twitter // YouTube // Website // Discord
Colony Survival - Pipliznl


A couple of Fridays ago, we wrote about an issue with the increasing costs of keeping colonists happy. It would encourage people to start new colonies, instead of expanding their first one. Some encouragement is fine, but there should be benefits for having a big colony with lots of colonists (that consumes lots and lots of happiness items) as well.

There are actually very interesting principles behind the real life historical benefits and costs of population growth. And instead of last week's blog about geography, this is something I've actually got an academic degree in :) Avoid the history lesson by skipping to "What does this mean for Colony Survival?".

Thomas Malthus, an English scholar who lived from 1766 to 1834, wrote some very important things about population growth, which are still taken very seriously. He's basically Thanos from the last Avengers movie. He thinks the population growths exponentially. Populations don't grow with a steady +100,000 per year, they grow with a percentage, like for example 3 or 4%.

On the other hand, food production doesn't grow as quickly. It does grow (England was a lot more populated in 1800 than in AD 100), but it increases linearly. So while food production has a growth like "10 - 12 - 14 - 16", population growth goes like "4 - 8 - 16 - 32".

The problem is obvious. After a period where enough food is produced for the entire population, the population will inevitably outgrow food production. They ran into the Malthusian trap. A period of disease, starvation and war will occur. A significant amount of the population is killed off, and food production is adequate again. But without the availability of reliable birth control, the population is bound to exceed food production a couple of generations later, running into the same Malthusian trap.


Source

The ideas of Malthus can be used in a decent amount of situations. But it also runs into some problems. Let's take a further look at his linear increase of food production.

Our civilization has increased food production in a lot of ways in the last couple of generations. Tractors, synthetic fertilizer, irrigation, genetically modified crops, etcetera. They've spread around the world like other inventions, for example televisions and smartphones.

Tractors and smartphones are obvious improvements, and a large majority of farmers/people want them. The biggest barrier is often money.

We often apply the same view to historical food production. Someone invents a better plough or improved irrigation, and this takes the world by storm, like televisions and smartphones. Barriers are things like lack of education and lack of money, but fundamentally, people want these improvements.

That's what Europeans thought when they tried to spread their advanced farming technology around the world in the last couple of centuries. But very often, natives in other continents didn't care for those improvements. The same happened with European settlers: when English and German farmers moved to South America, they often reverted to more 'primitive' forms of agriculture.

This is pretty much unexplainable with the Malthusian perspective. Methods of food production ought to increase linearly! Knowledge and availability of more advanced agricultural technology is the bottleneck of humanity!

Enter Ester Boserup, a Danish economist who lived from 1910 to 1999.

According to Boserup, agricultural improvement is mostly a lot of extra work that isn't a whole lot of fun, and thus will be avoided if possible. You're basically trying to grow more crops per square meter, which requires you to put a lot more effort into your job.


Medieval peasants, source

If you're a primitive farmer in an empty, fertile Europe in 5000BC, growing crops is easy. You burn down part of a forest, the ashes make the ground extra fertile, you throw some seeds in there, and a couple of months later you've got your harvest!

If you're a medieval peasant with a small amount of land, your job is a lot harder. You've got to plough and fertilize, you might have to irrigate, you've got to remove weeds, etcetera.

Now image the medieval peasant trying to get the primitive farmer to adopt his agricultural methods. Of course he's not going to accept that! Why do all that work, when there's enough fertile land around that you don't need to optimize your crop yield per square meter?


Slash-and-burn agriculture, source

So Boserup claims that most agricultural "improvements" are only adopted out of necessity, when lack of land / overpopulation forces farmers to do it. I believe this to be true.

This really hinders the development of cities. You can't start a major city in an area with only a handful of slash-and-burn farmers. You need a significant amount of dense villages where lots of food is produced before a nearby city can develop. Remember, there were no trucks, railroads or refrigerators! Everything had to be transported by humans, horses and simple carts. You can't import major amounts of food from far away places.

What does this mean for Colony Survival?

Earlier, we concluded that the increasing cost of happiness items would stimulate people to keep starting new colonies, instead of focusing on growing one colony as large as possible. New colonies are very attractive, because colonist #1 has a lot less demands than colonist #821, which will require a lot of happiness items.

We just concluded that the exact same thing happened in real pre-industrial villages and cities as well. Why live in a place where land is scarce and farming is a lot of work, when there are still places nearby where more land is available?

Big cities like London, Paris and Rome were all surrounded by hundreds of kilometers of densely populated farmland in all directions. If we're adding realistic incentives to Colony Survival, the optimal way of playing the game would result in a similar world: one relatively big colony, surrounded by lots of smaller colonies in all directions.

But imagine doing that, in singleplayer. Having to build dozens or hundreds of small, repetitive colonies before you can make progress. That's not fun. That's awful.

To prevent this realistic drudgery, we've got to introduce an unrealistic feature. We're thinking about experience points; XP. A pretty weird form of XP, that is only gained by consuming happiness items, instead of doing actual work (please add that in real life).

Instead of XP directly upgrading the related job, it's all added to one big pool per colony. You, the player, will have to decide how to use it. Upgrade your miners, or your farmers? It's your choice. But XP earned in a colony can only be spent in that colony on productivity improvements that only apply there. A new colony will have to start from scratch.

We just compared colonist #1 and #821. It doesn't mean that colonist #1 will always have little demands. When you've got 100 colonists, you'll have 100 colonists that demands a couple of happiness items. When you've got 821 colonists, you'll have 821 colonists which will all require lots of happiness items. This means that a colony with 800 colonists won't require merely 8x more happiness items compared to a colony with 100 inhabitants, but probably closer to 60x more happiness items!


More, more, more happiness items! Source

If we tie XP to consuming happiness items, this will mean that the large colony will also receive way more XP than a smaller colony. If the XP can be invested to make jobs more productive, the motivation to start new colonies becomes a lot more balanced. Colonists in small colonies will have less demands, but they'll also be less productive. It'll still be very compelling to start colonies in different biomes with new resources, but filling the same biome with lots of repetitive colonies won't be as lucrative.

XP is one way of dealing with the quickly increasing demand for happiness items. Another way that we talked about earlier is industrial machines. We can now visualize what playing 0.7.2 (0.7.0 + a few updates) will roughly look like.


Full size

At the beginning of the game, there will be a large surplus of happiness ("presence of the King"), and it'll be easy to recruit more colonists and grow. Easier than it currently is! We've received many complaints of people who thought recruiting the first 30~50 colonists is the slowest and most boring part of the game.

Eventually, the increasing population will add unhappiness, and expanding will become more difficult and expensive. But there's a solution! Start producing and distributing happiness items, and further expansion will become possible.

At first, this will be cheap and easy. But as your population grows, they will start demanding more and more happiness items (which can also be found in other biomes). Producing them will start occupying a larger and larger part of your population, making further growth harder again.

Next solution: XP! As your colony has started consuming more happiness items, you've received more XP. Invest it to make your colonists more productive and to fuel further expansion. But the XP costs of higher levels of productivity increase exponentially, so eventually you run out of quick productivity boosts. You need something else to be able to produce enough happiness items for very large colonies.

Enter the Industrial Revolution! Invent machines that help you do just that. Spinning machines that help you turn large amounts of flax into linen for your tailors, electric furnaces that can smelt many ores simultaneously, etcetera. They will all require electricity. As you start building more machines, and invent more advanced machines, your electricity consumption quickly increases. More and more colonists will need to work at generators, and to produce the fuel they need.

Next optimization: nuclear reactors. They're a bit controversial, but we're still planning to go forward with them. They won't be very realistic, and they'll look pretty retro / steampunk. But they're a sensible way to force people to gather resources from all biomes. And they're a great solution to the problem of the increasing cost of electricity in Colony Survival.

Eventually, there will be an end to new content. There's a finite amount of happiness items and ways to optimize producing them. But we don't want to have a theoretical limit of for example #2462 colonists. Theoretically, you should be able to keep expanding. Our way of allowing this is infinite research. It'll cost a lot of energy, but when you've built nuclear reactors you'll have just that. With infinite research, you'll be able to keep optimizing your colony and to keep adding new happiness to the colony.



This was a long and dense Friday Blog - congratulations on reaching the end :) The graph above pretty much explains what we want 0.7 to look like eventually. We're pretty sure that electricity, nuclear reactors and infinite research will not be added in 0.7.0, but we need to make sure that all required ores are available in 0.7.0. We don't want to force you to start a new world in 0.7.1 or 0.7.2!

One caveat to the graph: the various "stages" will be a lot smoother and less obvious in-game. For example, the XP system isn't a bottleneck that has to be "solved" once: the productivity upgrades will keep coming throughout the game.

We'd love to have your feedback! Are you looking forward to it, or are you disappointed? Have you got suggestions to improve it, or do you see pitfalls that you want to warn us for? We're listening! Leave a comment here, or join our Discord and share your opinion!

Bedankt voor het lezen :)

Reddit // Twitter // YouTube // Website // Discord

Colony Survival - Pipliznl


Colony Survival is a wildly unrealistic game. Everything is blocky. Colonists don't have mouths and are born as adults from a wood-and-cloth construction. The night only lasts a couple of minutes. It's permanently summer and wheat only requires a couple of days to grow.

But despite all of these simplifications, many parts of the game required quite a lot of real-world knowledge to develop. While working on the graphics, we had to learn how light scatters through the air and reflects from various surfaces. When adding the new ores and metals in 0.4.0, we had to learn about real history and even physics.

The attempts to underlying realism might seem like overkill. I believe it isn't. The following paradox is relevant:

A.) My hands are physically able to draw a photorealistic sketch
B.) My brain knows when a sketch is not photorealistic
C.) Despite A and B, my brain cannot let my hands draw a photorealistic sketch

I often wondered how this is possible, and I think I have a solution. We have got a lot of unconscious knowledge and experience. In the specific case of photorealism: we are looking at the world nearly every waking moment. We know what real life looks like. We've got many years of experience with it. But we don't know why exactly the world looks like it does. While we have years of experience and know it perfectly well unconsciously, we cannot consciously verbalize the reasons why something looks realistic or fake.So while nearly all of us can judge whether a sketch is photorealistic or not, only a few us have the knowledge and skill to draw a photorealistic sketch.

I think the same principle applies to many aspects of developing Colony Survival. To portray a historical colony in a semi-realistic world, we need to understand some historical/biological/geographical principles in quite a lot of detail. The better we understand those principles and represent them in-game, the more immersive Colony Survival will be. When we 'break' those rules, you might not be able to explain precisely what's wrong, but you will feel that something is off.

In the past week, we've been struggling with the principles behind natural variety. Why do deserts and jungles exist? Why are they located where they are located? How does a desert transition to a jungle? How can we apply these principles in-game?

One of the charts we've been looking at a lot is this one:


Source

Most of the chart make sense. Tundras are cold and dry. Deserts are hot and dry. Rainforests are hot and wet.

But to me, some of the info was pretty surprising. It's possible for a desert to receive just as much rainfall as a temperate or boreal forest. I didn't know anything about temperate rainforests.

Another thing that surprised me was the "border" between biomes. Many of them are angled from the bottom left to the top right.



Look at the red line, the border between shrubland and forests. What does it mean exactly? I struggled to put it into words.

Apparently, as the average annual temperature increases from 0°C to 22°C (30°F to 70°F), more rainfall is needed to sustain a forest.

The same can be seen all over the chart. Transitioning to a 'higher' biome requires more rainfall as the temperature increases. And 'higher' biomes are generally biomes with more vegetation. I modified the original chart to represent that a bit better:



At first glance, I thought this was a bit weird. Don't plants and trees 'like' sunlight? Not in extreme amounts, but an average annual temperature of ~10°C doesn't sound high, and in the "low rainfall scenario", there's already significantly less vegetation at that temperature compared to colder climates.

Then we figured out that the problem probably is not the heat directly, but the increased evaporation. As the temperature increases, rainfall disappears quicker, and there's less water available for vegetation to grow.

Here are some "rules" we've tried to distill from the charts above:
1.) More water = more vegetation
2.) Higher temperature = more vegetation
3.) Higher temperature = water disappears quicker (Paradox!!!1!!1!)
4.) Maximum rainfall is way higher in hot climates, meaning that a wider variety of vegetation can appear there (everything from 'none' to 'lots')

Here's what that would look like, from north to south. Average annual temperature:

Below 2°C/36°F: Tundra. It barely rains, but once it rains, the water barely evaporates. It's too cold for trees or lots of bushes, so everything is covered in grass and moss. There are no deserts.

Below 8°C/46°F: Taiga. Rainfall increases. Nearly all of the region is covered in trees. Only the driest of places revert to shrubland/grassland.

Below 22°C/71°F: Temperate. On average, more rainfall. Most of the region is covered in trees. Relatively dry places revert to shrubland or grassland. In the hottest and driest corners of the region, some small deserts exist. In the hottest and wettest parts of the region, there are temperate rainforests.

Above 22°C/71°F: Tropic. The driest ~20% of the tropics is a desert, because the heat makes the water evaporate quickly. As the rainfall increases, vegetation increases from desert to grassland, to shrubland, to woodland, to seasonal forest, to rainforest.

We believe applying these rules in Colony Survival will result in a world that's a lot more realistic and more fun to explore. We're looking forward to showing you our first successful attempts at generating the new world! This week's attempts mostly looked like brown hills, so we've still got some progress to make :)

Bedankt voor het lezen!

Reddit // Twitter // YouTube // Website // Discord
Colony Survival - Pipliznl

"SummerTales" by Pyris-TT

Last week, we posted a video of functional multiple colonies. While the basics were done, many jobs and systems like science didn't work yet. Zun spent nearly the entire weekend fixing those issues, and it's done now! All jobs and systems are functional with multiple colonies now. We've made a video to show the changes:

https://youtu.be/iISE1YBYD-Q
While old systems are functional, multiple colonies require many new functions. Naming your colony, trading, travel, producing banners, info on remote colonies, etcetera. But instead of immediately continuing to work on those issues, we've decided to enjoy some variation by working on a different problem: the new world generation.

World Generation

Until now, exploration hasn't been important in Colony Survival, but it will become so in 0.7.0. The non-standard biomes are pretty simple, boring and ugly currently, so that definitely has to be fixed.

We'd like to make the landscape a lot more diverse. Random flowers and plants, rock formations, cliffs, grasslands in the desert and patches of trees in the tundra, etcetera.

The transitions between biomes is very harsh now. I've been thinking of ways to improve it. I realized there's no clear line in Finland separating taiga from tundra. Nor does the desert in the west of the US appear suddenly. There's a gradual transition that looks roughly like this:
No vegetation (snow/sand) -> grassland -> shrubland -> some trees -> forest

This doesn't mean the world will be a simple monotonous transition from grass to forests either. IRL, there are patches of sand in the middle of fertile Europe, and there are patches of green in the middle of the desert. I'd like biomes in Colony Survival to be like that as well.

When sharing these conclusions with Zun, he responded that he had already come up with similar ideas independently. He'd like to generate some underlying statics like temperature and humidity, and to pick a relevant biome based on that info. This should make the world both interesting and realistic! We hope to be able to show you some of the first experiments with the new world generation next week. A fastforwarded flythrough of the old world can be seen in the video above.



First Complete Texturepack!

There have been people in the past who've redone some textures, and others who've made new textures for mods. As far as we know, there is nobody who has redone all the textures in the game. Until now! Pyris-tt has made the SummerTales texturepack. It's used in all the screenshots in this blog, and the middle part of the video. It's beautiful! He's also made new icons for nearly all the items, and they improve a lot on the default icons. Thanks Pyris-tt!

In related news, Pandaros has expanded the team working on the Settlers Mod. The team now includes Pandaros himself, Pyris-tt, Kenovis and Servius. They've got many exciting ideas, and they're also planning to use the upcoming multiple colonies and happiness features. We can't wait to see what they'll produce!

Bedankt voor het lezen!

Reddit // Twitter // YouTube // Website // Discord
...