[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 - 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.
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.
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.
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!
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.
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!
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:
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!
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:
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:
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.
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?
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:
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.
We shared a lot of our plans for the future in our previous blog, and received a large amount of feedback. Most of it was positive, but there were also some critical notes that are good to keep track of. We'd like to thank you for your efforts and encourage you to keep voicing your opinion! We cannot respond to every single comment, but we do read pretty much everything and we keep them in our mind when making decisions.
Most of the time, I start blogs by summarizing what we've done in the past week, and end them with lots of rambling about diverse subjects. This week, we've spent a lot of time dealing with edge cases, and I'd like to start out by rambling about edge cases in general. Edge cases are problems that arise when something is used in a way that it wasn't intended to be used.
Edge cases in programming are often complex and hard to explain, so I'd like to use a clearer example: race tracks. The basics of a race track are pretty simple. I'm thinking of something like the Top Gear Test Track. Put some tarmac in a field and you're done. If you've got the land and the materials, you could probably build a fun race track and use it with your friends within a week.
I've been thinking about using race tracks as an example for a long time, but had a hard time finding decent images. The new Hitman game perfectly suits my needs in regards to visualizing race tracks!
Okay, so you've built your simple race track and had a fun weekend racing on it with friends. It didn't take a lot of effort. Now you want to host some more serious races and invite spectators. Your friends didn't need to prepare their cars, they drove safely, and they brought their own food and water.
But as you scale up, these things cannot be guaranteed anymore. You need to build pit lanes and garages, and you need to prepare for crashes. You need to build run-off zones, track walls and safe barriers. You need first aiders and firemen.
Spectators bring their own problems. They need places to park. You've got to build stands, and you've got to prevent your spectators from entering them for free. You need security and pay desks, toilets and food stands.
A Formula 1 race only lasts roughly 90 minutes. Most of them don't involve serious crashes. If people didn't crash and if everybody prepared well and perfectly followed the rules, it could've been a very simple event. But that's not how human beings operate, certainly not large groups of them. They do crash. They don't pay if they don't have to. They don't care about the rules. You need to provide them with toilets and food and water. So you have to image and prevent hundreds of edge cases.
That's why hosting a single F1 race costs tens of millions of dollars. Every event is staffed by roughly 150 security officials and 130 medics and doctors. Providing cars with some tarmac is the core of the event, but it is only a very small part of the problems that have to be solved to run a serious event. It's the edge cases that swallow up time and money.
Edge Cases & Happiness
The basics of the happiness system are simple. Certain items should be consumed by colonists and provide happiness. But when actually developing this feature, we ran into a large amount of problems.
Currently, food is consumed automatically. If certain happiness items are also food items, players will be able to control the diet of their colonists, and provide them with more or less calories. How do we prevent players from 'overfeeding' their colonists? (Solution: food is a separate category with a slider for "total calories")
How do we deal with starvation? Where's the line between "not enough food = unhappiness" and "barely any food = death"?
What if a diet is equally divided between four types but three of them run out? Do colonists consume more of the available food type?
How does Siege Mode work in the new system? (Solution: it's changed entirely and will generate large amounts of unhappiness instead of increasing food consumption)
What if a colonist cannot reach a grocer's shop for his daily "happiness package", including food? Currently, food is instantly teleported into their bellies, so starvation only occurred if there was no food in the stockpile. It should happen for isolated colonists as well now.
Realistically, a colonist that has had double/triple rations for a while should be more resistant to starvation. Does that happen in-game? (Solution: probably not)
These are the kinds of edge cases we're thinking of and trying to solve with good design choices. Individually, they're not very significant problems, but all these cases combined can easily fill a workweek.
Very much work-in-progress
I'd like to end with some relevant quotes from On War, a book from 1832 written by general Von Clausewitz. I am not trying to imply that organizing a Formula 1 race or developing a game is as difficult as war, but he does describe perfectly how things that are theoretically easy are often difficult in practice.
"As long as we have no personal knowledge of War, we cannot conceive where those difficulties lie of which so much is said, and what that genius and those extraordinary mental powers required in a General have really to do. All appears so simple, all the requisite branches of knowledge appear so plain, all the combinations so unimportant, that in comparison with them the easiest problem in higher mathematics impresses us with a certain scientific dignity. But if we have seen War, all becomes intelligible; and still, after all, it is extremely difficult to describe what it is which brings about this change, to specify this invisible and completely efficient factor.
Everything is very simple in War, but the simplest thing is difficult. These difficulties accumulate and produce a friction which no man can imagine exactly who has not seen War.
Activity in War is movement in a resistant medium. Just as a man immersed in water is unable to perform with ease and regularity the most natural and simplest movement, that of walking, so in War, with ordinary powers, one cannot keep even the line of mediocrity. This is the reason that the correct theorist is like a swimming master, who teaches on dry land movements which are required in the water, which must appear grotesque and ludicrous to those who forget about the water. This is also why theorists, who have never plunged in themselves, or who cannot deduce any generalities from their experience, are unpractical and even absurd, because they only teach what every one knows—how to walk.
It is therefore this friction, or what is so termed here, which makes that which appears easy in War difficult in reality. As we proceed, we shall often meet with this subject again, and it will hereafter become plain that besides experience and a strong will, there are still many other rare qualities of the mind required to make a man a consummate General."
This week, we've worked on the grocer's shop. It's an integral part of the happiness system. Until now, colonist's only daily demand was food, and it was magically teleported straight into their bellies. In 0.7.0, they'll require a lot of other items to keep them happy. To get these items, they will have to visit the grocer.
The grocer's shop is a physical block that has to be manned by a colonist. As long as the position is manned, other colonists can visit the grocer and get their daily bundle of food and other happiness items.
Instead of letting hundreds of colonists storm the grocer simultaneously, they choose a random moment during the workday for their daily trip to the grocer. It would be dangerous if guards did that, so they visit the grocer at the end of their shift.
The grocer's shop doesn't have textures yet and the system isn't 100% done, but we expect to be able to show you a video next week!
It has been a while since we gave you a general overview of work that has been completed and things that still have to be done. Here's a new rough summary!
I hope we can finish happiness, trading and some unique content per biome before the end of the year. Once those features are done we can start a beta! A form where beta testers can apply will be released here and on Discord in due time.
Rough outline for new content in 0.7.0 and 0.7.1
New systems like happiness, VAT/XP and multiple colonies are merely that, systems. They're a framework on which new content, new items, new recipes, new jobs can be build. Here's a rough sketch for new content.
First period: before 1500
This is where most of the current content is set. Muskets are on the edge of this period, they're early 16th century weapons.
Possible new content that would fit in this period:
A cook, to turn ingredients into meals
Fishermen
Beekeepers
Chicken coops
Barley, as chicken feed
Olive trees and olive oil
Water gatherers
Early modern period: 1500-1760
I was excited to go straight to industrial tech like steam engines, but we were warned on Discord by players like Aljetab that the change would be too abrupt. So we've been thinking about intermediate tech.
A realistic solution that could work in-game are engineers who can craft printing presses and clocks. The first mechanical clocks were installed in churches in the 12th and 13th century. They were big and often lacked faces or hands. They're not small clocks that could be purchased by colonists as happiness items.
In the 15th century, watchmakers invented spring-driven clocks that are more like modern table clocks. They became very popular in the 16th century.
Printing presses were adapted from wine presses in the 15th century. Like clocks, they became very popular in the following century, printing hundreds of millions of books.
Both technologies seem a perfect bridge between current Colony Survival and more industrial Colony Survival. Their complexity and technology is comparable to muskets, which are already in-game. But when looking at printing presses and spring-driven clocks, the core of the Industrial Revolution is clearly visible.
At the end of this period, a lathe was invented. The importance of this is brilliantly explained in this video:
The First Industrial Revolution took the complex mechanical machines described above and added power to them in the form of steam engines, and used these steam powered machines to produce important items like textiles. For the first time in history, labor productivity went up dramatically.
This will become highly necessary in Colony Survival, because of the exponential nature of the happiness system. Every single new colonist adds unhappiness to every other colonist, meaning that the now grown population needs more happiness items per capita.
Rough graph to demonstrate the principle described above
To be able to sustain the exponentially growing need for happiness items, you'll need to use new machines. Luckily, these were invented IRL as well. Where the blacksmiths that are currently in-game require a significant amount of time to produce a single metal part, I'm envisioning new advanced machines that can quickly craft a multitude of a single part. This should give your economy the boost it needs.
Second Industrial Revolution: 1860-1914
The First Industrial Revolution barely required any exotic resources. Iron and coal are enough. But we'd like to integrate far-away biomes in late-game tech. Luckily, the Second Industrial Revolution provides plenty of opportunity to do just that. In this period, electrification got started, just like the use of rubber, petroleum and advanced chemistry. It's the age of light bulbs, bicycles, telephones and early cars.
End-game tech: 1914-1945
We'd like to have something special for diehards who build huge colonies, explore the entire world and research all the tech. I'm still a fan of early nuclear technology. On one hand, it is absolutely futuristic, but on the other hand, it's already outdated and a bit "retro". We don't want to add "clean", modern tech, white and shiny with touchscreens and fancy displays. We like older tech that squeaks and creaks, with plenty of switches and nixie tubes. It should be advanced for Colony Survival, but historic for players.
These plans are still rough and can be changed based on your feedback, so let us know what you (dis)like!
Programming Progress
Last week, I showed an example of the kind of interfaces I was making while learning how to combine C# and Unity. I made some good progress this week and made a practical interface that's a lot prettier. Warning: not a true countdown!
The basics of interfaces seem easy and clear to me now. I've tried messing around with controlling 2D objects and physics, and it's pretty daunting. But I still remember how daunting simple interfaces looked to me only a short while ago, so I hope I'll pass this obstacle in the same way!
Thanks for reading the blog, and don't forget to share your opinion!
Fullscreen, an awesome render made by Lordis3D! Not in-game functionality, sadly
Until now, we've put most of our focus on new systems like the new world generation, multiple colonies and co-op. This week, we've turned our focus to all of the new content in 0.7.0: new jobs, new items and new science.
Old systems have to be changed to facilitate unique jobs and science in different biomes. Much of the old content was hard-coded. Zun has been working hard to convert the old systems to flexible and streamlined .JSON files. They can easily be accessed by us, players and modders alike.
The list of things that can be changed in these .JSON files is steadily growing. It's now possible to use them to:
change the way the world is generated
change how biomes look
change the shape of trees
add or change blocks/items
generate specific complex block types easily (rotated blocks, 'job outlines')
add science
add or change player recipes
add or change npc recipes
add or change npc/zombie types
add or change audio files
add or change localization
change textures
add crafting jobs to blocks
add guard jobs to blocks
We can't wait to see how modders will use this new functionality! While working on these systems Zun has taken care to prepare them for Steam Workshop compatibility, meaning that it should be easier to add workshop support in the near future.
As both gamers and game developers, we have some pretty strong opinions about games and the way they ought to be priced and sold. We're noticing some pretty disappointing trends and we'd like to share our opinions about them.
Mods
We believe a great game is a sandbox which players can have lots of creative experiments in. Which doesn't mean every game has to be an open world game; I'd say the description above holds true for a more linear game like Portal.
Such a game is fun to explore within the constraints set by the developers, but it often holds a lot of potential for other kinds of fun. That's why cheats are awesome. We feel they were a lot more prevalent in the past. Who remembers 'rosebud', 'Photon Man' and JUMPJET?
Another way to greatly extend the amount of fun you can have with a game is mods. I've played lots of Third Age Total War. A brilliant game like Rising Storm was developed in cooperation with the modding community. Both Counter-Strike and Day of Defeat started out as mods for Half-Life.
It seems like big modern games are way more hostile towards mods than they were in the past. We feel the decline of both mods and cheats share a major cause: microtransactions. You can't sell XP boosters and swords with +5 damage if players can easily cheat or mod them into your game for free!
Microtransactions
They're fine in free-to-play games. I don't mind microtransactions for cosmetic items in multiplayer games. But pay-to-win multiplayer in a paid game is terrible, and microtransactions for important content you already bought are frustrating as well. As soon as a game introduces those microtransactions, the "grind" cannot be trusted anymore.
Many games contain some kind of grind, for XP, money or some other currency that can be spend on perks and upgrades. Grinds can be lots of fun if they're done well and there's a decent balance between time spent grinding and the rewards you're getting. But when microtransactions can be used to shorten the grind, the developers have a huge incentive to make the grind frustrating and annoyingly long. That instantly makes those games a lot less appealing to me.
DLC
Good DLC is DLC that could have been sold on a disc. Episodes from Liberty City was great GTA IV DLC, Operation Arrowhead was great Arma II DLC. Both were released a significant amount of time after the full game and contain a good amount of new content. It feels like a decent expansion that you wouldn't mind traveling to a physical shop for.
But when a full-priced game has just been released and it already has multiple DLC packages available, it feels like they're trying to nickel-and-dime you to death. If it's a cosmetic outfit that was available as a pre-order bonus, okay, but if it contains significant amounts of content it just feels like a scam.
A yearly release cycle with season passes
We haven't played Red Dead Redemption 2 yet, but it has received a lot of praise and our moderator Vobbert is very enthusiastic. The game has been in development for eight years and it shows, the attention to detail is fantastic.
The opposite is releasing a reskinned, formulaic sequel every single year. $60 + $50 season pass + microtransactions. It feels like a cynical attempt to milk your cash cows. In the end, I don't even believe it really benefits the developers; for every person that is willing to buy the season pass, there might be two who are turned off from the entire game because of the exploitative business practices.
Rainbow Six Siege is a great example of modern, non-exploitative game development. The game is now nearly three years old but still actively supported with events and new content. The community isn't expected to repurchase the game every 12 months. New maps are released for free, new operators can be purchased with in-game money but they can also be bought with euros and dollars. There are no pay-to-win elements.
Review score
On every game's storepage on Steam, there are two big colored sentences that show how positive or negative the game has been reviewed by those who purchased it. Every sentence, every image on the storepage can be adjusted by developers, except for this. It gives the community the opportunity to confirm that what's said on the storepage is pretty true and accurate, or that there are big problems beneath the surface.
I notice that I rely pretty heavily on user reviews when making purchase decisions, especially on Steam. It's a very useful system for customers, but it can be painful for developers. You'd rather not have "Mostly Negative" in big red letters next to your title.
In recent times, I've seen big franchises that I had expected to receive negative reviews choose not to release on Steam. Of course there are valid reasons to choose for other platforms, but expecting negative reviews and wanting to hide them is not one of them.
Although it is understandable that developers want to hide negative reviews, it is beneficial for customers that they are prominently visible. We hope that reviews stay visible, and we hope that ours stay positive. Knocking on wood now :)
What it means for Colony Survival
We expect to keep developing the game into 2020. Those who've purchased the game now will receive all new content for free, but the price of the game might increase to $25 after a big update. We won't add a microtransaction store with XP boosters and science bags available for real life money. We'll keep supporting modders. We're focusing on creating the best game we can make, instead of extracting as much money as possible from gamers. We hope this will be the most successful strategy in the end. It has been working pretty well up to this point :)
Programming Progress
In the past few months, I've been learning some basic C#. In recent weeks, I've been trying to apply these skills in Unity. The first steps were pretty hard, but it was a lot of fun when I finally got the hang of it. I'm sticking with simple interfaces for now, instead of more game-like programs, but I'm happy with the progress I'm making. If anyone needs help on how to start programming, join the Discord and @Pipliz me!
What's your opinion on good game development? How should games be priced and sold? Have you got any advice or criticism on how we approach things? Let us know here or on Discord!