|Update: Whole New World|
August 3, 2019
Thank you all for bearing with me as I continued to adjust and perfect what is now the most massive set of fundamental changes in the history of the game. Like I said in the last update, we got off to a very rocky start, but by the end of this week, it was almost completely smooth sailing.
Containing all player activity in a bounded area, instead of letting it spread infinitely on the map, revealed all sorts of problems, particularly in terms of resource distribution, settlement locations, and griefing. On an infinite map, there are always more resources available if you walk far enough in any direction, which is what people used to do to find settlement locations, and you can also easily hide from trouble-makers in the vastness. A bunch of important features in the game, like fences, were rendered unnecessary by the unbounded map.
So, first up, let's take another look at that now-ancient map generation algorithm. It placed biomes independently in patches, and there was no structure to that placement. That meant that the biomes that were useful together, like swamps and grass (a prime settlement location) almost never spawned next to each other. Finding a prime spot used to require a very long walk. This also meant that jungles could border the arctic areas. The independent placement resulted in a lot of map variety, but there were obviously some trade-offs.
The new algorithm uses a more naturalistic topographic layout, with biomes in altitude rings. This means that each biome always borders the same other two biomes. Swamps always border grass, for example. Now prime settlement locations are all over the place. I also added per-biome likelihood controls, so the really-necessary biomes can be more common---they have wider topographic bands. Finally, I classified three biomes as "special": arctic, desert, and jungle. These aren't needed quite as much as the others--they're only needed for advanced tech---and it's more interesting if they are far-flung on the map. They don't occur in regular topographic rings, but instead at the centers of each topographic peak.
This one change resulted in a dramatic improvement in the survival rates of settlements on the map. Suddenly, the bounded arc area became quite livable. Even better, the old long walks to find a settlement location were gone.
Living close together highlighted a bunch of new problems. Families often live in the same village for generations, yet are still logically separate due to war swords and inability to curse each other. After many generations together, they might even speak a common language. At that point, they really are one village.
Now, if you can curse someone in a language they understand, it will work, whether or not they are in your family. And elders from two families can declare PEACE to each other, as long as it's in an understood language, thus disabling the war swords. They can also declare WAR to each other again later if need be. Note that both these features also work before you learn a common language across generations if you do the work to actually type the other family's language.
Now that people live near each other, fences are everywhere. This is good. Towns are more interesting with fences. However, rogue fences can also be a problem. The idea with fences is that they homestead unclaimed land with a waiting period to ensure local consensus. But what about out in the wilderness? In an infinite map, it's all unclaimed land, but in a finite map, it might need to be used by someone in the future. A fence bisecting a large wilderness area is a real problem. The 2-hour decay period for an abandoned fence is too long in this context. So, I've given you a way to remove a fence, with the help of an elder and a brief waiting period. The idea here is that you'll only be able to remove abandoned fences, because of the waiting period. If someone cares about the fence, they will intervene and cancel your removal notice.
And regarding resources, the only non-renewable so far that has been a real problem has been iron. So I've given you a high tech way to produce more iron by burning oil. Iron never runs out now, but oil is finite, so there still is an eventual limit. Those diesel mining outposts are extremely valuable, both in terms of production and the expensive capital improvements that are installed there.
The goal in all of this is to enable a collective challenge: How long can you all survive together before civilization collapses globally? The most recent record was 44 hours. But there's enough oil on the map to support farming for 100 people for at least ten days. I'm guessing that 44 hours is just the beginning, and you'll all be gradually getting the hang of it over time.
It took a while to come together, but this really does feel like a wholly new and improved game. There's something going on at any moment in this world now. There's a story to tell.
Welcome to IMPULSE FOLLY.
And with that I'm off on a two-week vacation with my family. There will be no updates for the next two weeks.
|Update: Grand Arc|
July 27, 2019
We got off to a rocky start with this week's update. It was hard to predict exactly what would happen when going from an infinite map with infinite resources to a limited area with limited resources, but in the first few runs, all hell broke loose.
But before I get into that, I should explain the goal of this update: To give the world in the game an arc beyond the arc of individual villages. When you join the game tomorrow, it should be fundamentally different than when you played today. I want things that you do in the game to matter on a grander scale than just your individual life or even just the life of your village. Finally, I want players to be engaging in a real collective challenge over the course of several real-world days in the game. With this update, that challenge becomes surviving as long as possible, collectively, with limited resources. Before this update, the game just went on and on, endlessly and always the same, with an endless supply of natural resources and and endless supply of very similar village rise-and-fall arcs.
Now on to the details of the rocky start:
Most of this actually had to do with the failure detection code being thwarted, but how quickly we got to what should have been a failure state was also troubling. The first time, it happened in about three hours.
During the first run, people exploited a low-tech glitch to escape from the limited area, which allowed them to exploit unlimited resources outside while the remaining people faced a resource-stripped wasteland inside. The failure condition at that point had to do with baby survival, and babies were certainly surviving just fine on the outside, so on we went. However, things got pretty bad inside in about three hours, because a few people realized they could ruin all the wild berry bushes.
The next run was much better. The escape glitch was patched, and the area made 2x larger, and the berry-ruining method was blocked. Eves could only spawn in the first two hours, so there was no longer an endless flow of nomadic families. This time, they went after all the maple trees, systematically chopping down every one. Even so, people managed to bootstrap and survive for more than 16 hours.
The failure condition in the second run was an absence of fertile mothers inside the limited area (so even if people escaped by plane, they wouldn't thwart failure detection). At the end of 16 hours, we got down to just one family surviving, and eventually just two fertile mothers, each with a trail of about 20 babies chasing them. Still, there were fertile mothers around, so no failure was triggered. I eventually had to kill it manually.
Now we're on Arc Run 3. Chopping down most of the more useful trees has become hungry work, so you can't just go berserk with the chopping. The failure condition is now the ratio between helpless babies and fertile mothers. When that ratio gets too high, the world resets. Finally, the map seed is chosen randomly for each run, so you can't just memorize the best spots without actually exploring each time. Also, Donkeytown has been fixed so that it is located outside of the limited area, correctly. There was a glitch before that caused the donkeys to mingle inside.
Things are going much more smoothly in Run 3.
But in general, I've now realized how much of a design (and player) band-aide the infinite map really was. So many problems can be solved in a hand-wavy way by saying, "Just walk further out and _______", where the blank is "find more resources," or "evade griefers," or "hide from your neighbors."
Why did no one ever chop down all the maple trees or ruin all the berry bushes before? Because there were an effectively infinite number of them, of course. But an infinite quantity of any resource is simply not that interesting. Actually there are around 36,910,000,000,000,000 maple trees on the map. That's 36 quadrillion.
There have always been (and will always be) huge opportunities for griefing in this game. I can add work-arounds for some of the big ones, but at the end of the day, people are always going to be able to do stuff that you don't want them to do. That is the fundamental challenge of building a civil society from scratch with a group of strangers. That is this game, full stop.
Now, with limited resources in place, we can see these fundamental challenges very plainly. There's no way to escape from them or paper over them. The only way to succeed is to actually trust and interact and cooperate and optimize and protect and conserve and balance and lead. You can't just head into the hills to escape from this challenge.
|Update: New Brothers|
July 19, 2019
I'm back from a very interesting and refreshing trip to Taiwan. Taking time off---and not working on the game at all for a week---is a really important thing to do from time to time.
The variety among the red-headed a black characters has been a little thin for a while. This update adds two more male characters for each, taking the total up to 22 playable characters, currently in four different skin tones (12 males and 10 females) The red-heads and black characters are still missing one female each (to bring them up to six each), but those will be added in the near future.
As the character set has grown, I'm facing a larger and larger creative challenge with each new character that I add. I want them all to look unique, and 22 unique people is already a pretty broad spectrum. I already have a bearded guy... already have a balding guy... already have a mustache guy.... oh wait, I don't have a totally bald guy yet!
Along with the characters, there are a bunch of fixes. I'm still working on those reported issues, bit by bit. Reconnection after a network outtage is now much more robust (before, if the server didn't know you were disconnected, it would block you from reconnecting). Projectile aiming from acute vertical angles was totally broken (the line algorithm that I was using was missing an important case), but it's working now. You can now swap items into full clothing containers (like backpacks). You can't force-break someone's YUM chain by feeding them (getting fed by someone else only helps, but never hurts, your YUM chain).
There's one more big change that I'll describe in a minute, but first a little context.
Over the past few months, I've been tackling several "grand design challenges" in this game. Most of them have now been solved to my satisfaction, but there's one big one left. Those design challenges are:
--The possibility of property as a foundation for social structure, trade, inheritance, and inter-village negotiation.
--Bringing villages closer together in an crunchy way (without having everyone just blend together into one bland mega-city).
--Some reason to care about the survival of each and every one of your offspring.
--The civilization-building arc, from Eve up to the diesel water pump, is challenging and reasonably well-paced. There are many possible failure points along the way, and the challenge is indeed transgenerational. (The pacing might still need tweaking... but it's close enough for now.)
The reason why these design challenges are so important is that, in solving them, we will enable new kinds of intricate emergent stories inside the game. As a simple example, if all property is communal, you never have to ask your neighbor if you can borrow a tool. You just walk up and grab it. The story where you have to ask first is simply more intricate, by one degree. Your neighbor might say no. Then what? Well, you have a bit of drama, that's what. The same goes for caring about offspring. "We were short on food, so my teenage son died. Shrug." That's not a very interesting story. A desperate search for food, to save your teenage son at the last minute, is much more interesting.
The last grand design challenge is this:
--What is the long-term arc of the game? What happens after you hit the top of the tech tree? Does the game vary across a week or a month? Is there a game-wide arc? Do resources run out on a global scale?
This part of the game is currently handled by an ever-expanding Eve placement spiral that forges endlessly into untouched wilderness. We have a perpetual churn of brand new civilizations rising and falling in parallel. But each rise-fall cycle follows the same arc, and happens in relative isolation. Yes, villages can interact, but interaction is optional. There are no pinch-points where they must interact. If you need extra resources, you can always just head into the unexplored hills and find them. If you really run out of resources in your local area, you can migrate into greener pastures. On an infinite map, there is an endless supply of greener pastures.
And you can see how optional village interaction reduces story complexity. "We were out of oil, so we wandered into the hills and found more." That's way less interesting than, "We were out of oil, and we couldn't find any new deposits, but the neighboring village had control over three productive oil wells."
This is the grander-scale version of asking the neighbor if you can borrow a tool. Will they give you some oil? Will they demand something else in trade? Will they answer "no" with a volley of arrows? All of these possibilities are grist for the emergent drama mill.
But currently, there really is no long-term arc in the game. There's a perpetual cycle of parallel civilizations spawning in resource-rich wilderness.
So I'm thinking about changing this. I'm thinking about long-term, world-wide arcs. Arcs that take several days to complete. The most obvious arc is one based on world-wide resources running out. At the start of the arc, the world is green and rich with resources. But as people survive longer and longer in that world, the resources get consumed. Meanwhile, civilizations become more advanced and efficient in their use of the remaining resources. But pinch points and dramatic texture will emerge when one village runs out of a necessary resource first.
The problem with such an arc, of course, is that it's not sustainable. The current implementation is sustainable, though bland. The big question with such an arc is this: what happens at the end? Obviously, there will be some kind of reset at the end of the arc, but what happens in the hours before that reset? Imagine a world where there are almost no resources left, and people are barely surviving. Imagine that you're a brand new player who plays their very first games in such an environment.
Part of this change may involve a finite map. An infinite map, though tantalizing conceptually, means infinite resources.
But this week, as a warm-up exercise, I've patched end of the current civilization arc to eliminate a steady-state once you have a diesel water pump: oil wells now eventually run out.
"We built an oil well, and then had oil forever after that." That's not such an interesting story.
I'll be tackling this issue on a larger scale next week.
|Update: More Fixes|
July 6, 2019
Another week spent plowing through the long list of player-submitted bugs and issues. Thank you all for your tireless work in tracking these things down and reporting them to me, and please keep the reports coming.
The biggest gameplay fix is for off-screen murders. You could always hear the off-screen scream, and all sounds in the game are directional, but even with good stereo headphones, there's no way to differentiate north from south. Now certain sounds that occur off-screen produce a visible, directional marker. Currently, this is used only for murder sounds, but it might be expanded to other important sounds in the future.
Next, items can be swapped in full containers, which is a huge convenience improvement.
Finally, a bunch of small fixes. You can now carry sterile pads in the medical apron---it has a separate pocket that expands to keep them isolated from whatever else you're carrying in the main pocket. Rubber trees can be cultivated. Popcorn bowls, and a bunch of other dry bowl items, can be contained. A bunch of more advanced steel items can now be scrapped for recycling, and scrapping is now a two-step process, to prevent the destruction of valuable steel items by accident. Dog aging makes more sense. Threshed wheat piles decay after 30 minutes to reduce clutter. You can no longer build floors and roads on top of existing floors and roads.
There will not be an update next week, because I'm traveling to Taiwan to speak at the Taipei Game Developers Forum:
When I return, I'll be focusing on getting through the rest of the list of player-submitted bugs and issues, and then adding some new characters.
If you notice anything in the game that's broken or doesn't make sense, please report it. You can report content-related issues here:
And code-related issues here:
|Update: Genetic Fitness|
June 29, 2019
The survival of your offspring, and yourself, now matters.
Before, each life was lived in isolation from the rest of your play history, with no thread tying the lives that you lived together. This lack of over-arching meaning had a long list of consequences, contributing to long-standing problems like suicide, griefing, and general listlessness. Furthermore, it tended to undercut some potentially interesting family survival stories. Why would you go to great lengths to save one of your children if your child didn't really matter to you in the long run? But such "great lengths" make for great, dramatic stories.
The Precious Life update helped with this somewhat, because lives were no longer lived in complete isolation from each other---they were all part of a pool of limited lives that you were spending. While this helped to make each individual life you played a bit more tense and precious, it didn't do anything to increase the tension of family survival.
A great deal of discussion has focused on how much players in the game tend to care about the last viable female child born in the village. She is really treated like royalty, and there's no role-playing necessary. All the hard work of the living players depends on her survival. Without her, everything they built will be lost for future generations.
That's great, and it's also kinda magic, because it emerges naturally from other unrelated game mechanics. There aren't "last surviving girl survival points" that are motivating you to care about her. On the other hand, you don't care for her in a way that has anything to do with her specifically. She could be anyone's daughter. As long as some girl survives, that's all you need. Which is also not analogous to why you would care for a daughter in real life (be she the last surviving female or not). Thus, "our work won't be lost" is just as orthogonal a reason to care as points or any other unrelated reason. It's nice that it's an emergent reason in this case, though.
Why do we care so much about the survival of our family in real life? It's apparently due to some pretty abstract underlying genetic reasons, and our actual behavior often matches the underlying genetics to a spooky degree. We would, for example, save a sibling over a cousin, and a sister over a brother, and age would also be factored in (a younger sibling would be saved over an older one), with the results pretty closely approximating genetic relatedness and reproductive potential. But in real life, we just feel the feelings. We don't do this genetic math when we make these decisions.
And in the case of this game, those biological feelings will never come into play. This in-game daughter is not your real daughter, and she never will be. A longer game might allow for more bonding between players, but it would never be actual kinship bonding.
Games are not real.
Thus, as long as we motivate appropriate player behavior---behavior that is congruent with the thematics of the game, I don't think it matters too much how we motivate that behavior. Emergent motivations are nice, but when they aren't possible, abstract motivations are fine.
Genes are abstract and exert a weird influence on behavior in real life.
Genes can thus be represented abstractly and allowed to exert a weird influence in the game. They can be points. Why not?
And thus, why do you care about the survival of your daughter in the game, even if she's not the last girl in the village? Because of the genetic points that she represents.
And there's still some interesting emergence lurking. If you want a high genetic score, the survival of your offspring needs to get pushed to the limit. And what is the best strategy to achieve that? What will be the most successful parent and grandparent strategy in the game? I have no idea! When push comes to shove, the very best players will figure this out. And it's a good and thematically appropriate thing to figure out. They've never had a reason to figure it out, until now. Furthermore, for players who care about their genetic scores, there is never an unimportant moment. Even if they are born to a doomed village, standing there and waiting to die won't be a viable strategy. They will need to ensure their own and their offspring's survival at all costs, even in a doomed village.
That's the underlying design philosophy, but how does it work?
Everyone starts with a genetic score of 0. Every time you or your offspring live a life that is longer than your current genetic score, you score goes up. Every time you or your offspring live a shorter life, your score goes down.
Your score represents what we generally expect in terms of longevity for you and your offspring. If someone dies young, that means our expectation was too high, and vice versa if someone dies older than we expected.
This is somewhat similar to Elo ratings that are used in competitive games like Chess, albeit applied to each player in isolation. The actual formula is very simple, given an offspring or self that lived Y years: newScore = oldScore + (Y - oldScore) / 10
For women, offspring are any direct descendants that were born during your lifetime (generally children, grandchildren, and great grandchildren).
For men, offspring are nieces and nephews (and great, and great great variants) that are born during your lifetime. The so-called "gay uncle hypothesis" is alive and well.
And of course, your own lives count too. And note that baby suicides don't count to pull their mother's scores down, but do count as short lives for those who live them. Thus, for those who really care about their genetic score, survival in all situations is necessary.
Finally, is genetic score just a meaningless number? No, it has a small effect inside the game. Since it tracks family longevity, it gives you a distinct advantage in old age. The higher your genetic score, the fewer hunger bars you lose with aging. With a perfect genetic score of 60, you'll keep your full hunger bar all the way until your last breath.
So if you see a particularly strapping old person running around acting half their age, you'll know what's going on. They're genetically fit.
The leaderboard can be seen here:
Everyone is assigned a randomized name for tracking on the leaderboard. Your name can be seen on the GENES screen inside the game, along with a recent history showing changes to your genetic fitness over time.