Colony Survival - Pipliznl


The testers started their work exactly one week ago. We've gotten a lot of feedback, and we've implemented many tweaks and changes to improve the gameplay.

The happiness menu was messy and hard to understand. There were a bunch of sliders, and if you dragged them around, some stats on the left side of the menu would eventually change, after waiting one or two in-game days. It was not intuitive and hard to test.

There was plenty of data we liked to show in that menu, but we struggled finding a way to visualize the data without making the entire menu cluttered. Eventually, we decided that the best way to accomplish this would be by expanding the tool-tip that appears when you hover your mouse over an item. It now provides players with a lot of new information. It makes it a lot easier to make good decisions surrounding happiness.



The new data isn't only shown in the happiness menu, it's also present when you hover over happiness items in other menus. The "In Stockpile: #" line is also displayed for other items, which is useful when you're in for example the science menu and quickly want to know whether you meet all the requirements for a new unlock.

There's still a significant list of small things to fix and improve, but we might manage to complete all tasks on that list next week, and start adding new content and features again. The next thing we're planning to add is unique content in other biomes, e.g., starting a colony in the tropical biome and being able to grow coffee beans and tea leaves.

Videos

Yogscast has rediscovered Colony Survival! They've done a couple of long livestreams in the past few weeks.
https://www.youtube.com/watch?v=Zy0fbrcleVw Zun has religiously watched every one from start to finish and has found it very calming. We're glad they're enjoying the game, and hope they'll enjoy 0.7.0 once it releases!

3kliksphilip made a brilliant video detailing the technical trickery that makes CS:GO's large battle royale map possible. The video is very in-depth and it makes very clear how much work happens behind the scenes to make games possible:
https://www.youtube.com/watch?v=EYDaIKIoOkw It's not directly relevant to Colony Survival, but it does give a good insight in the kind of details developers have to think about.

Bedankt voor het lezen!

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

P.S. We tripled the amount of testers today. Some people applied and were approved, but were not present in our Discord, or at least not with the username mentioned in the application. So if you've applied, make sure you are in the official Colony Survival Discord! The one with emperors and a not-so-serious channel :)
Colony Survival - Pipliznl


One month ago, we shared a link that you could use to apply to be a tester. The form is still open. We've had plenty of great responses, and today, we selected the first five testers! Together with mod creators, "kings" and "emperors" on Discord, they were granted access to the 0.7.0 dev branch. There's a lot of new content. New world generation, multiple colonies, co-op functionality, new jobs and new items, new mechanics like happiness, etcetera. The update is not finished yet - some mechanics still need to be added or refined. There are no unique resources in other regions yet, or quicker ways to travel there. But it's great to start receiving feedback!

We've made good progress this week. Rotatable objects, like beds, torches and certain job blocks, had a unique mesh and code for each direction. For example, one torch that faces north, one that faces east, one for south, and a fourth one for west. Certain new job blocks are also rotatable, and to improve performance and speed up adding new rotatable content, Zun rewrote how rotatable objects work. It's a lot easier to add them now.

And we used that ability a lot this week. Plenty of new items and jobs were added. We listened to last week's feedback, and decided to replace some existing job blocks as well.


Fullscreen
Clockwise starting bottom left: a stove for the cook, a shop where colonists gather their happiness items, a writer's desk, the new grindstone and an updated anvil


Water gatherers and fishermen


Olive farmers

We're rapidly releasing new builds right now. On January 8, Zun started numbering builds. This afternoon, build 10, 11 and 12 were released. Lots of things are changing, and I find it both exciting and terrifying!

The current happiness menu is very bare-bones and not intuitive, and I hope we'll manage to update it next week. We've got some good ideas on how to improve it!

Bedankt voor het lezen!

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

[Everything in this blog regards progress on 0.7.0, which has not been released yet]

Recently, we added lots of new content but nearly all of them had placeholder art. This week, a lot of that has been replaced by actual items and icons. We've also added new science to give the new jobs and recipes their appropriate place in the tech tree. Here are some screenshots of the new content!


Beekeeper: gathers honey and wax, which is necessary for cooking, items like bow strings, and happiness items like candles and wax tablets


Cabbage farmer: because your colonists need some greens in their diets


Chicken farmer: because your colonists also need meat in their diets, and your arrows need feathers


A primitive printing press: for when you're tired of writing by hand

The style of the new objects is a bit different than what you're used to, but we like how it looks and it'll cost less performance than new detailed textures for every job block. We're considering to replace some existing job blocks, like the bronze anvil and the grindstone, with physical objects like the ones above as well. How do you feel about this?

Bedankt voor het lezen!

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

[Everything in this blog regards progress on 0.7.0, which has not been released yet]

After Christmas, Zun's birthday and New Year's Day, we've started to settle into a more regular rhythm again. We've redesigned the happiness menu. The intended outcome is a gradual increase of used happiness items. But quite a lot of happiness items are food items, and it doesn't make sense to feed your colonists 10,000+ calories per day. Obviously, being able to eat 3000 calories makes colonists happier than 2000 calories, and 2000 is better than 1000. But there's a threshold where extra calories don't make people happier.

We've been struggling with how to turn this into a sensible mechanic. At first, food had "weights". Each food item had a slider, and there was one supreme slider to rule them all, which determined how many calories colonists ate a day. The sliders per item only mattered relatively. This has been removed and replaced. You can now choose how much exactly of each item you'll feed your colonist, and there's a "display only" slider that shows how much calories your colonists receive in total.

To be able to properly test the happiness mechanics, we've added quite a lot of new content. A multitude of happiness items, each with complex and unique production chains. I've been hard at work rendering icons for the new items, and I've replaced some older ones.


Fullscreen


Fullscreen

It's going slow but steady! If everything goes according to plan, the first testers will be able to try the new content next Friday.

Bedankt voor het lezen!

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

Fullscreen - One of the winners of the Equilinox Contest, made by ChrisDash2004

It's the last Friday Blog of the year! Today, we'll be looking back at all of the progress and broken promises of 2018. But first, we want to start by thanking all of you! It's been over one and a half year since we released Colony Survival in Early Access, and we're getting used to being fulltime gamedevs. We're very grateful to all of you who've made this possible! Purchasing the game, telling your friends about it, giving feedback, writing Steam Reviews, translating, developing mods: all of these things were tremendously important to us. Thanks a lot!

Here's the first Friday Blog of 2018, where we detailed our plans for the year. We'll be going over the blog section by section.



This worked out 100%. A couple of weeks later, a small update added stairs to the game.





This held true as well. We did add builders & diggers, and we did skip blueprint builders.

https://www.youtube.com/watch?v=koa_E3jkuVM



Most of the things described above are in the current dev branch, but they're not publicly available yet. We would have loved to finish the update earlier, but sadly, did not succeed.

https://www.youtube.com/watch?v=LMaFZ8I2Xg8



This is where things truly start to diverge. The multiple-colonies-feature are all fully present in the dev branch, but we ultimately decided against the burghers idea. We ran into a chicken-and-egg problem. The burghers were needed to colonize exotic regions, and you needed items from exotic regions to be able to recruit and sustain burghers. We believe the happiness feature to be more sensible and think it will deliver a more interesting challenge.



We haven't started working on these features yet, but we're still planning to add them. But instead of creating some kind of "medieval uranium", we're now planning to bring the time period of the end-game to the Victorian/industrial era. This allows us to add new, modern resources like rubber and oil, making exotic regions more useful and extending gameplay.



Fail, sorry. We are letting you wait for a long time without updates. The reason is explained pretty well in Friday Blog 66 - "Roundness" in Game of Thrones.



This is working pretty well! Here's a real map of a random terrain in the dev branch:



Currently, the world is "mirrored". You go from a cold north to a tropic center, but if you keep traveling south, you'll return to colder regions. We were planning to keep it in 0.7.0, but later decided against it. In 0.7.0, the north will be cold and the south will be hot.



Animal husbandry got cancelled/postponed, and is replaced by happiness/VAT/XP/modern machines. Running a colony together is possible in the dev branch, trade is not finished but still planned, griefer protection hasn't changed sadly.

Refactoring

Before June 2017, we had hoped that Colony Survival would be successful, but we couldn't know for sure it would happen. We prepared for a worst-case scenario. Minimal sales, finish the game as soon as possible, and transition out of Early Access within a year.

But we were lucky. Colony Survival became pretty popular. And the popularity has lasted: after more than 18 months, we've still got a decent amount of active players and steady sales. Over time, our ambitions have grown. We're planning to focus on developing new free content for Colony Survival in the next couple of years.

During the first year, we were thinking about the short term. We released a lot of small updates as soon as possible. But during the past sixth months, we've been overhauling the fundamentals of the game to make them future proof. It's difficult, it's complex and it's slow. But it's not because we've lost our commitment. To the contrary, it has grown a lot!

Thanks

We started this blog by thanking all of you, in general. Those who purchased the game, those who spread the word, those who shared feedback. We cannot possibly name all of you in this blog, and we're sorry to those we fail to mention! But here are a couple of people who have helped us tremendously:
  • Vobbert. When we've got to take important decisions, or need a sounding board to break a stalemate between Zun and me, we ask Vobbert, and he's always there to provide us with wise advice. He also wields the banhammer on Discord.
  • Pandaros. Modder supreme, probably the biggest influence on our code except for Zun, and creator of the Settlers Mod
  • Boneidle, one of our most dedicated builders, and who has also recently started modding
  • Yogscast, for making dozens and dozens of episodes about Colony Survival. They gave us plenty of good advice in their videos, and we hope to see them play Colony Survival again after some big updates!
  • All those people who've provided us with feedback, support and entertainment. Thanks Aljetab, Bilzander, SirDragonov, Lordis3D, Mtdeed, Pantoufleee, Semegod, Turner, Tonyy, Zeta-Prime and all the others!
We hope all of you, both named and unnamed, have enjoyed Christmas, and we wish you all a very happy new year!

Gelukkig Nieuwjaar :)

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


I spent hours on a long and detailed Friday Blog. Half of it was about the game, and half of it was about major disruptions to large platforms. Then I accidentally deleted it like a total noob. I don't have the time to do it all over again, but it was about these subjects:
  • YouTube Rewind 2018 being the most disliked video ever, beating the dislikes that Justin Bieber collected over 8 years
  • Patreon banning people, seemingly for political reasons, and some of the most successful Patreon users (Sam Harris and Jordan Peterson) leaving the platform and vowing to create a new one
  • Tumblr banning adult content
  • Steam (70/30 split) receiving competition from Epic Games (88/12 split) and Discord (90/10 split).
Please post your insights about these subjects in the comments, so we can have a community generated blog (:

Regarding development progress, setting up multiplayer is a lot easier now. There's a new button in the main menu: "Host co-op". It's not just a shortcut to the server, it's an entirely new full menu with a separate loading screen for co-op savegames.



We've also added a bunch of test content to the game to finetune the happiness system. New jobs, new recipes, new items. Everything lacks decent art, it's very primitive, but it does allow us to get a feel for how happiness will work in practice.


Fullscreen

Zun also spent a couple of hours automating Gephi to create a graph that shows the interdependence of all jobs and items:


Items linked to the workbench

Sorry for the short blog, the deletion was a total failure. Spent three hours on it.

Apply to be a tester and participate in the Equilinox Contest here.

This was 2018's last "normal" Friday Blog. We hope to have finished a decent amount of art for the new content by Christmas, allowing us to select the first testers. The third day of Christmas, December 27, is Zun's birthday :D
And I'm planning a Colony Survival Rewind 2018 for next Friday. Hope to see you then, without accidental deletions!

Merry Christmas!

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


Today marks the start of the Perpetual Testing Initiative! In the past, testing has been sporadic, limited and temporary. 0.7.0 is the biggest update in the history of Colony Survival, and it changes a lot. Dozens of technical systems have been refactored, and the update isn't finished yet. We'll need very thorough testing, and once we've set up a group of testers, why end that when 0.7.0 is released? If the testers are willing, they can test 0.7.1 and later updates as well. That's why we call it the Perpetual Testing Initiative, and not "0.7.0 Alpha" :)

We've made a form that you can use to apply to become a tester. Here are the qualifications we're looking for:
  • Owns Colony Survival and has joined the Discord.
  • At least 16 years old (GDPR rules here)
  • Has played Colony Survival pretty extensively
  • Good English writing skills
  • Has time to test the game pretty frequently and to summarize his or her experiences
  • Has "general gaming experience", can say some intelligent things about gaming in general
  • Some technical experience
  • Our group of testers should include a diverse range of hardware and software, for example laptops and gaming PCs, Windows & Linux, etc.
The form consists out of four pages. Page 1 is general terms of service things. Page 2 requests some personal info, like age, location and type of hardware used. The third page will probably take the most time to answer. It asks you to describe some good and some bad games, and what you like and dislike about them. The final page gives you some room to describe yourself and share info of your own choosing.

We're going to be watching the results, and we'll probably select the first batch of testers somewhere around Christmas. Don't despair if you have not been chosen! We need to know how people respond to 0.7.0 without any experience with the update, so we'll regularly need new testers to see how they react when they encounter the new features for the first time.

Testing is going to happen on Discord. "Tester" will be a new role with access to exclusive channels. That's why joining the Discord is a prerequisite to becoming a tester. You'll need to enter your Discord username in the form, and it's very important that you do this correctly. It's our only way to contact you. Discord automatically generates a four digit identification code that makes sure we contact the right person. On the desktop software, it's always visible in the bottom left. In the app, you'll need to press the three horizontal bars in the top left to open the menu where the code is visible in the bottom left as well. Please enter your full Discord name and the four digit code!



If you've read everything above, and you're willing to dive into a half finished, buggy alpha, here's the link to the Application Form! :)



Equilinox Contest

A couple of weeks ago, Equilinox was released on Steam. It's a beautiful indie game made by a very communicative developer, which is scoring an overwhelmingly positive review score (we're jealous!). The game has been in development since 2015 and he's been documenting the entire process in weekly devlog videos on his YouTube Channel.

Equilinox features hundreds of different plants and animals. They've all got their own unique preferences. It starts out simple, with some sheep and grass. To unlock new species, you need to accomplish a diverse range of tasks. Use selective breeding to evolve larger species or new colors. Provide nuts to your squirrels, let fox hunt chickens or harvest honey. Eventually, you'll be running large and complex ecosystems!

We're organizing a contest that allows you to win 1 of 10 free copies of Equilinox. Equilinox is all about providing your plants and animals with a suitable habitat. Up to this point, that has been pretty unimportant in Colony Survival. Working all day and spending their nights in a dark cave with 1000 beds crammed together is not a problem for your colonists. That won't hold true in the Equilinox Contest! To win the game, you'll actually have to display some tender loving care for your colonists. Design a world you'd actually like to live in, make a beautiful screenshot, and post it in the #submissions-only Discord channel. The ten best screenshots win a free Steam Key for Equilinox!

You need to get the "verified" role in Discord before you can submit images. Post a simple message in #introductions or #general and as long as it's not in the middle of the European night, you'll be verified pretty quickly.

Rules:
  • You're allowed to post only one submission. You're allowed to remove it and upload a new one when the old one is gone.
  • Submissions have to be uploaded before Christmas Morning, December 25, 10AM Central European Time.
  • You're allowed to use mods
  • You're not allowed to use the 0.7.0 development branch
  • You're allowed to use Photoshop or similar software to edit the image
An "opposite" contest is also going to be organized. ThinMatrix, the Equilinox developer, is organizing a contest to win Colony Survival keys! He'll upload a new devlog with the required information this Saturday on his Youtube Channel.



Colony Survival Progress

Last but not least, we've continued work on 0.7.0. One important new feature is "local servers". We got quite a lot of complaints about the server tool, because it required people to dig in their program files and launch external software. We've now developed a server that can be launched from the main menu! The biggest drawback is that it'll end when people quit the game, but that's not a problem if you just want to play co-op with a friend for a couple of hours.

Work on the happiness feature has continued as well. We're redesigning the entire early game to accommodate the new features. Some new jobs and items that have a high chance of being added in 0.7.0:
  • Beekeepers (honey/wax can be used as a cooking ingredient and for wood polish, bow strings, wax tablets and candles)
  • Olive trees and olive oil
  • Water gatherers
  • Fishermen
  • Cabbages
  • Chicken coops
  • Books
  • Jewelry
So, lots of things to do in this Friday Blog. Apply to the Perpetual Testing Initiative, check out Equilinox and participate in the contest, and let us know what you think about the proposed new content!

Bedankt voor het lezen!

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

Built by Boneidle

Wow, this week went by quickly! I'm finally starting to get a grasp on Unity and I'm very happy with the results I've managed to get. While I was leveling my Unity skills, Zun has continued to work on the happiness feature.

The UI is still primitive, but 'behind the scenes' a lot of progress has been made. The Happiness Menu now calculates a total happiness and the recruitment cost of colonists varies based on this happiness level. The causes of happiness and unhappiness are shown to the player. We added a setting to toggle happiness off.


Work in Progress

Now that the underlying systems are mostly functional, we're planning to add new content next week. We had hoped to get the "colonies with unique content in other biomes + trading" features ready before the end of the year, but I doubt that'll be 100% finished in 2018. Anyhow, there's a bunch of new features and testing them on a diverse range of hardware is always useful. We're still thinking of opening the beta (perhaps alpha is a better word) to the first group of testers around Christmas. It won't be a short, single event: the beta branch will be continuously updated.

We're preparing a form where all who are interested can apply. We're pretty sure the GDPR applies to the kind of data we'll be trying to gather, so we've got to figure that out as well. Short timeline:
  • 7 December: today
  • 14 December: next Friday Blog, probably includes Beta Application Form
  • 21 December: last Friday Blog before Christmas


A screenshot from this week's game-experiment

When I first started learning programming and Unity, I had set my expectations very low. I would've been happy if I was able to make a half-decent interface by the end of 2018, and a very primitive game after more than a year of experience. But the basics are pretty intuitive, and Unity is a lot more user friendly than I thought on my first try. It's very exciting and I've been pretty addicted this week. Here are three short clips from my evolving prototype:

Prototype 1, when the AI navigation works
Prototype 2, with more weapons, a more walls and a hilarious spawn bug
Prototype 3, moving camera, more graphics effects

At the moment I'm still afraid that applying my current programming/Unity skills to Colony Survival will do more harm than good, but in a couple of months I might have enough experience to work on for example the interface. I'm looking forward to it!

I've gotten quite a few questions about which resources I used to learn these things. Everybody learns in a different way; there are books that were tremendously useful for Zun that I couldn't stand, and vice versa. You've got to find the things that work for you specifically, but this is what worked for me:
These resources + lots of Google + lots of asking other people (thanks Zun!) will get you pretty far :)

Bedankt voor het lezen!

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

Colony Survival - Pipliznl


Zun has worked pretty much non-stop since the previous Friday Blog, because he was having quite a lot of fun fixing some networking problems. In the past, connecting to other servers relied on a Steam Networking API. Zun rewrote it in such a way that we're not reliant on Steam anymore for networking. This has the following benefits:
  • LAN support.
  • Connecting to a server goes quicker
  • A Steam non-public server is truly non-public now
  • Network packets are now compressed and bundled, resulting in 10-30% less network traffic
  • Useful preparation for improved co-op features
  • Solved the biggest problem in porting Colony Survival to non-Steam platforms like GOG, Xbox and Playstation
I'm sure most of you had preferred to see progress on actual features instead of technical behind-the-scenes stuff, but it's pretty important to do this now. It needs to be tested thoroughly, so it should be finished before we start the beta. And because it breaks compatibility with older servers, we want to include in 0.7.0. Updates that break older saves and servers ought to be rare.

Mods

Luckily, modders are coming up with brilliant content. The update that we're currently working on, 0.7.0, has significantly improved mod support. Modders are already using these new tools to develop great additions. Pandaros, who started the Settlers Mod, has made good progress on two interesting features.

The first new feature is a 'blueprint builder'. It allows you to choose a blueprint of a specific building and let your colonists build it. Because of a small error, my colonists built their first cathedral sideways, but it's still great to look at! Click here and here to see the cathedral while it's being built.



The second new feature developed by Pandaros is the Colony Management Menu. Lots of players have asked for a menu where they could see how many colonists worked a certain job, and the ability to recruit colonists to or fire them from specific jobs. 0.7.0 gives modders the ability to develop their own menus, and Pandaros developed exactly what was demanded before we got to it ourselves.


Fullscreen

For those who fear that we're going to rely on modders to add content and finish the game: that's not going to happen. We're still committed to making the base game as good as we can, and that does include blueprint builders and better menus to manage your colony.

A couple of weeks ago, I wrote that I initially expected programming to be like magic, but that that turned out to be wrong. Well, I was wrong about being wrong. When you write code, followed by objects moving in 3D according to that code, it does feel like magic. And quaternion does sound like a magic spell! I made my first little game this week and I'm very excited about it. You can watch some gameplay here.

Transport

We've currently got automagical crates. Put something in a crate and it will magically appear in the stockpile which can be accessed by any other crate. This means you don't have to worry about transport while building your colony. It doesn't matter how you create your production chain, as long as all jobs have crates nearby. You could mine ores underground, smelt them in furnaces in a high tower moments later, retrieve the metals seconds later in an underground blacksmith and instantly send the new arrows towards your guards.

This does help to keep the game fun and understandable. But it also dumbs down mechanics that could potentially be very interesting. If you actually have to transport items from one place to another, the layout of your colony suddenly has a lot of impact on your production.

It could also make features like small trains that bring items for one place to another relevant. Imagine a train bringing ores from an underground mine to a factory, and transporting metals from the first factory to a different one. I believe this could potentially be a great feature.

At first we were planning to do make the crates more realistic, but we ended these plans when we got feedback that the game was too complicated. We've tried to streamline the early gameplay, and these complaints have pretty much stopped. Now we're pondering about it again. A big update after 0.7.0 could potentially focus on it.

So we'd love to have your opinion! What do you prefer? Easy, automagical crates, or more realistic transport demands that allow features like trains for cargo transport to be relevant?

Bedankt voor het lezen :)

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

Built by Boneidle, with modded blocks made by Boneidle

Last week was focused on the mechanics of the grocer's shop; this week we focused on the mechanics behind the happiness items. Every happiness item now gets three stats. For food items:
  • Food value / calories: how much hunger it satisfies
  • Happiness: how happy the colonist becomes from eating the food
  • Monetary value: the value that the VAT will be based on.
Potatoes could be cheap, provide little happiness but lots of calories, while spices provide little calories but lots of happiness and VAT.

There is one big slider that applies to all food items; the "rations slider". Here you'll set how much food a colonist will consume in a day. You can "weigh" each food item to determine what part of their diet will consist out of that food type. For example, if bread weighs "10" and berries "5", 66% of their daily calories will consist out of bread and 33% out of berries.

For non-food items, food value is replaced with "how long the item will provide happiness". There are some things we consume every day. Electricity, internet, water. Other items need to be replaced on a slightly longer timescale: toilet paper, gasoline, toothpaste. And other items will last years: clocks, winter coats, cars.

It wouldn't make sense to deliver daily packages with new smartphones (or clocks, for a more historical alternative) to every colonist. But a yearly package with 1 smartphone and 365x3000 calories wouldn't be appropriate either. So the "happiness-time" value will scale the daily requirements to appropriate levels. Imagine you've got 800 colonists and a clock will last 200 days; this means you've got to produce 4 clocks per day. That seems like a reasonable and realistic result.

A lot of work has happened behind the scenes to make these processes reality. Adjusting items, creating new systems, saving the new values, teaching the server how to deal with this. Sadly, nothing that can be easily shared in an awesome screenshot or video. I can't wait until that's the case!

Lighting, in real life and games

When I was younger, I intuitively thought that my eyes worked as an active system, something like radar. It probably sent something out to scan objects at a distance and report back its findings.



When I started messing around with photo cameras I started researching the subject for the first time. Apparently, the word "photography" was created from the Greek words "photos" (light) and "graphe" (drawing). Photography is drawing with light. To me, photography was creating images with interesting subjects and good composition - I barely knew about the importance of light.

But when operating a camera manually, the fundamental importance of light becomes very apparent. Your camera is basically "catching" light and you have to determine how much you're going to let in for what amount of time. When there's little light available, you've got to change the sensitivity of the sensor.



The image above should be obvious. Sun shines light on flag, light bounces off flag into eye. Eye sees flag. That's how our eyes and photo cameras alike perceive the world. But lots of objects aren't directly illuminated by the sun or a lamp. How does that work?



The sun emits lights in all directions. And when light hits an object, it might be partly absorbed, but it will probably also be partly reflected. Many objects, like textiles, paper and skin, reflect light in all directions. So light is "bouncing" all around us, giving our eyes lots of input to create an image of the world around us.

To simulate this, you would have to calculate every ray of light emitted by every light source and track it through multiple bounces. It's called ray tracing and it's used to generate photorealistic images and videos.

You can probably imagine that this is pretty hard to do for a computer. Even using limited ray tracing in a simple scene in Blender takes ~30 seconds. That's not a problem if you're just trying to render one image, but it's impossible to use it to generate 60 frames per second. That's why CGI trailers often look so different from real gameplay.

The solution that Colony Survival and many other games use is a distinction between direct and ambient lighting. It's the primary thing we notice when looking around in real life. Some things are directly lit by the sun or a lamp and are pretty bright, while all the other things are relatively dark. So that's how it works in-game. All blocks are automatically lit by virtue of existing, whether a light source is nearby or not. If a block is 'hit' by the sun or a lamp, it becomes significantly brighter.

The results resemble real life the most when you're standing outside and the sun directly lights most of what you see. But it's less appealing in other situations. The world is too bright when you're underground without light sources. There's a lack of contrast indoors. Cloudy days are also hard to simulate accurately with this system.

Plenty of modern games try to overcome this by 'baking' the lighting. Lighting is rendered with ray tracing once and saved in a texture. Now people can explore a 3D world in real time with nearly perfect lighting. Here's an example of such a world:

https://youtu.be/Y6PQ19BEE24
Still frames from this video are nearly indistinguishable from real life. But baking has some pretty big disadvantages. The baking results are accurate as long as both the light source and the environment don't change. Both are stable in the video, but they're highly unstable in Colony Survival. The sun is permanently moving and players can change every block in the world. So baking is unsuited for Colony Survival.

But there are other systems we can use to add semi-realistic lighting to Colony Survival. We talked about light hitting an object and it bouncing away in all directions. This happens because most surfaces are pretty rough on a microscopic level.



But that isn't true for all objects. Plenty of objects have relatively smooth surfaces, even on a microscopic level. Plastic, metal, finished wood and wet objects are often quite smooth. This means the light isn't equally reflected in all directions.



Most of it reflects in the same direction. This means the object will look darker from most angles (because less light hits your eye / the sensor), but it'll look a lot brighter from some special angles.

Because we're truly talking about roughness on a microscopic level, it doesn't make sense to simulate this with actual "physical" bumps and indentations. Most games have certain textures that can be used to instruct the software how an item should reflect light. Colony Survival has "specular maps" (they determine how much light the object reflects) and "smoothness maps" (they determine how smooth or rough the object is on a microscopic level). Here's an example in Blender:


Fullscreen

You can view and modify Colony Survival's textures by going to "steamapps\common\Colony Survival\gamedata\textures\materials\blocks". There you'll see four folders: albedo, emmissiveMaskAlpha, heigthSmoothnessSpecularity and normal. We'll focus on the most important textures.

Albedo



This is the basic look of the block, without reflections. It can be made or adjusted in software like Paint, Gimp and Photoshop. It's pretty straightforward.

Heigth / Smoothness / Specularity



This one is more complicated. It consists out of three separate greyscale maps. Instead of choosing the height/roughness/smoothness value with a slider that goes from 0 to 100, it's chosen in a greyscale map that goes from black to white.

Blocks in Colony Survival are simple objects with six flat sides. But when you look closely, they seem to have 3D details. This is done with the height map. We can use it to slightly adjust the height of the block without a big impact on performance. For example, the nails are slightly higher and the center of the crate is lower.

RGB images consist out of three channels: Red, Green and Blue. We put a different greyscale map in each channel to create one colored image: the "Heigth / Smoothness / Specularity" map. Software like Gimp or Photoshop can be used to inspect and adjust different color channels.

Normal



The specularity and smoothness maps are meant to simulate lighting effects on a microscopic level, but normal maps are used to simulate bumps and ridges on a bigger scale. Normal maps are made by special software that "reads" height maps and outputs blue-purple images like the one above.

The game's lighting system uses normal maps so that the lighting acts as if the bumps and ridges described in the normal map are actually there. It's a great way of making objects look detailed while they are actually pretty simple.

---

This might seem pretty complex on a first glance, but opening these textures, messing around with them, and checking the results in Colony Survival will quickly teach you everything you need to know. And if you need more help, join the Discord :) More and more people are starting to experiment with the textures and we're seeing awesome results.

For those interested in my Unity/programming experiments, here's my latest project.

Bedankt voor het lezen!

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


...