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)
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 knowshow 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." Bedankt voor het lezen! Reddit // Twitter // YouTube // Website // Discord
[ 2018-11-16 14:34:19 CET ] [ Original post ]
- Linux 32-bit [97.57 M]
- Linux 64-bit [96.17 M]
- Multiplayer support: play with friends and strangers!
- Advanced pathfinding: colonists and zombies will find their way in the world you've build. They will dynamically navigate stairs, bridges and tunnels.
- Explore a world with realistically placed biomes. A giant jungle in the center of the world, surrounded by savannas, deserts and temperate biomes. Two polar regions in the far north and south.
- Support for textures and language packs created by players
- Dynamic lighting and eye adaptation
- Voice your suggestions and be part of the development of Colony Survival!
- OS: Ubuntu 12.04+. SteamOS+; 64-bit
- Processor: Intel Pentium G620 (2.5 Ghz dual core) or equivalentMemory: 2 GB RAM
- Memory: 2 GB RAM
- Graphics: Intel HD Graphics 5000. 1280x720 display
- Storage: 300 MB available spaceAdditional Notes: Work in progress: new features may raise the bar. optimizations may lower the bar
- OS: Ubuntu 12.04+. SteamOS+; 64-bit
- Processor: Intel i5-2300 (2.8 GHz quad core) or equivalentMemory: 4 GB RAM
- Memory: 4 GB RAM
- Graphics: Nvidia GTX 750 or equivalent. 1920x1080 display. supporting openGL 4.2+Network: Broadband Internet connection
- Storage: 1 GB available spaceAdditional Notes: Work in progress: new features may raise the bar. optimizations may lower the bar
[ 6089 ]
[ 3241 ]