The point of the arcs is to see what happens over the long haul to villages as fundamental resources run out in a finite area. However, those fundamental resources have been so plentiful in the past that villages died out for other reasons before the experiment got to run to completion. Oil was one of these primary resources, but taking a quick survey of a sample map, I found 42 tarry spots. That's a lot of oil in a lot of places.
It's much more interesting if only some of the villages manage to find and monopolized oil. So in this update, there are now a fixed number of tarry spots---five of them---scattered randomly on the map. And to make them easier to find, they only occur in the snowy biome.
Oil is primarily needed for pumping water long term, but what about the intermediary water pumps leading up to the diesel pump? I took another look at those and made them both more reliable and long lasting, which will give a village a bit more breathing room before they need to rush oil exploration.
The hint system has been refined even more since last week. Now, when you type a filter like /HATCHET, you see a list of step-by-step instructions for making the target object, with blue arrows pointing to the ingredients for each step as you go, and the current step switching automatically whenever you pick up a new ingredient. For simpler crafting tasks, this system almost works like magic to lead you step by step through the process with blue hint arrows guiding your way.
The posse system has also been adjusted to allow you to join a posse verbally (I JOIN YOU), even if you are unable to right-click on a fast-moving griefer. You need to be holding something to join a posse, but it doesn't necessarily need to be a deadly weapon. Your joining adds moral support to the posse and speeds it up. Setting down whatever you're holding takes you out of the posse, just like before.
You can fly over the rift barrier with a plane again, but you can't have babies outside the rift. The past few arcs were ended by escapees sucking babies away from the remaining arc families.
Weekly Update #75
First of all, if you live in the Denver area, I'm speaking this Saturday at the Whaaat festival held at CU Bolder. More info here: http://www.whaaat.io
When baby naming was added to the game 18 months ago, there were 86,000 possible last names and 30,000 possible first names. That's a lot of names. The last names were taken from the US Census 2000 and included all names that occurred at least 200 times. The first names were taken from the Social Security database for the year 2016, and included all first names that occurred at least 5 times.
Taking a closer look at the source data, I noticed that far more names were available. I must have picked the 200+ cut off for last names myself, because the source data went all the way down names that occurred only 100 times. I suppose I was trying to cut down the data size, but now I realize that there's no reason to do this, thanks to the logarithmic time complexity of the name matching algorithm. Adding these extra last names almost doubles the size of the name pool, taking us up to 151,671 last names, and adding gems like Bodnarchuk, Gathof, and Shcnitkey.
For the first names, the list from 2016 only includes babies born in 2016---in other words, modern baby names. Turns out that many widely-known antique names like Helga aren't on that list. Furthermore, the available data is insanely comprehensive, covering all birth years going back to 1880. Might as well merge all these lists, to get a mega-list of all baby names that were ever used in the past 138 years. And wow, all the names are tagged with the gender of the baby. We can do something with that too. No more girls named Robert or boys names Sally.
Yes, there are some unisex names, but we can easily tease them out of the mix. Each name is accompanied by an exact occurrence count for each gender in each year. If a name is more balanced than 80/20 in any year, we call it unisex. It's also interesting that the gender associated with certain names shifted over the past century. Charlie was exclusively male early on, but now it's more female than male.
The result is 7917 unisex names, 32,074 exclusively male names, and 58,411 exclusively female names. Why are there nearly twice as many female as male names? People apparently exercise more creativity when naming their girls. This was true to some extent even back in 1900, when there were 1500 male names and 2200 female names. But it's clear that baby name creativity has blown up for both genders since then, with 18,000 female names and 14,000 male names in 2017---we've gotten almost 10x more creative, or maybe just more diverse, in the past 100 years.
Anyway, these changes mean that there's a lot more first and last name variety available (welcome to the party, Helga), and also that your baby's name will auto-match to the closest available name for their gender, including unisex names.
There's also a small improvement to immersion, as your mother's naming speech will be auto-filled with your actual name. YOU ARE ROBEFJLSKDF might auto-correct to YOU ARE ROBERT, for example. The same is true if the name your mother tried to give you is already taken. If Lucy is taken currently, YOU ARE LUCY might auto-correct to YOU ARE LUCILE. So you don't need to mouse over yourself after naming to find out your actual name.
The other big thing is an improvement to the hint system. When actively tabbing through or filtering the hints, a helpful bouncing arrow highlights the closest target object in the world. No more mousing over a bunch of stuff when trying to figure out what a flint chip looks like. There have been many requests for visual crafting hints, but there are problems with auto-scaling huge objects (like the rubber tree) in an aesthetically appealing way. Visual crafting hints would mainly help you find the object that you're looking for, and this bouncing arrow may solve that problem even more thoroughly.
The arrows can also be leveraged by expert players who are searching far and wide for a rare object. Tab to a hint that requires a tarry spot, and then roam. It will be impossible to miss any tarry spot that passes by on your screen. Since these arrows are only activated when you're actively tabbing or filtering the hints, they'll be invisible during regular, moment-to-moment play.
And bugs have been fixed, including one last cause of grave duplication and spurious (!) off screen sound notifications (sorry for making you paranoid last week, folks).
And what about the changes made last week? Did they work to extend arc longevityl? We just had a record-setting arc, lasting 4+ days after the Eve window closed, as can be seen in this family population graph:
We're getting close!
Weekly Update #74
The big changes this week focused mostly on griefing and long-term family preservation. The most recent arc lasted 67 hours, which is much better than before, but we're still not there yet. Ideally, an arc would last 5-7 days, to the point where we hit an interesting resource-exhaustion situation. The arc ends when there's only one family left, and families were lasting longer, but still dying out too quickly.
After looking at the data, it became clear that very few people were ever going to Donkeytown, even though there were plenty of curses being doled out. In fact, the most widely-cursed player had accumulated curses from 104 people, and even that extreme outlier barely went to Donkeytown. The fixed-radius blocking associated with curses---where someone you cursed is guaranteed to be born far away from you for the next seven days, wasn't working. Even if many of the living players had an incoming player cursed, their blocking radii wouldn't cover enough of the map. There could always be a crack for a heavily cursed player to slip through.
And it was clear that some of these griefing players were actively trying to kill off families to bring the arc to a swift end.
Now the blocking radius for a cursed player grows depending on how many living players have that incoming player cursed, growing by 100 tiles for each additional cursing player. If you try to get born during a time when 10 living players have you cursed, your blocked radius will cover the entire diagonal diameter of the rift, meaning that it's impossible for you to get born there, and you go straight to Donkeytown. However, as the number of living players who have cursed you rises, it becomes gradually harder and harder for you to get born in the rift, as you are pushed further and further away from more and more people. Thus, the more you bother people, the more likely you will be to end up far away from people or even in Donkeytown.
As an example, a recent sample showed that 13 living players had cursed that most-cursed player (the one with 104 curses). That player has gotten to the point where they will almost always be born in Donkeytown. They've bothered enough people that, day and night, there are always a bunch of bothered people online in the game at the same time.
Next, I took another look at killing, and how it gives lone griefers an advantage as they sneak around and pick people off. You now get a 3-second warning when someone targets you before they can actually kill you, and their murder-mouth sounds have a visual indicator when they are off-screen. Your character also shows a SHOCK face while they are targeted. So you can see them coming, with plenty of warning. Still, depending on how skillfully you move relative to them, they might be able to catch up to you. Furthermore, a lone griefer, using skilled movements, can often evade a determined group of players. This never felt right. The group should have a huge advantage over an individual, and a lone griefer shouldn't be able to get the jump on anyone.
The solution to this problem is the new posse movement system. If you're trying to kill someone, acting alone, you move slower than normal. If you join up with a larger and larger group, all targeting the same person, you move faster and faster as a group.
All of these changes make unilateral killing much harder. Your victim gets plenty of warning, and you can't catch them. However, a lone individual can still guard a choke-point or area, preventing anyone from passing through. Lone guards are good. Lone killers are bad. On the other hand, it is also much harder for a lone griefer to escape from a determined group, because the group speeds up. When the whole village decides that you need to go, they should be able to carry out justice without too much mucking around.
But even with these changes in place, I'm still worried about families dying out too quickly. Maybe flukes of baby distribution are still contributing factors. I decided to redo the baby algorithm yet again, this time always giving incoming babies to the family with the fewest fertile females after the Eve window closes. It used to be round-robin, but that kind of even distribution might not be enough to keep a struggling family alive. And so far, it seems to be working. Here's the family graph for three hours from the latest arc:
Oh, and one more really cool thing: you can now build boxes on property fences. They allow you to store things there, thus conserving space, but they also serve as pass-through channels, allowing you to pass stuff in and out of a fenced area without opening the gate.
Specialized work units are now possible. Get ready to apply those time and motion studies!
Weekly Update #73
Another week of glorious bug fixes. The list is still pretty long, but I made a dent in it.
Over the past few weeks, I've been watching the server-wide arcs rise and fall. More recently, the arcs have been getting shorter and shorter. The arc currently ends when there's only one family left, and families have been dying out very quickly.
For example, here's the family population graph of a recent arc:
Total server population is on the Y axis, and each family's portion of that total is represented by how thick their color band is. For example, the forest-green band represents the Kelderman family, which got thin after about an hour and a half, and then made a bit of a comeback after that before finally dying out. But what actually happened to the Keldermans? To help us answer this, let's take a look at Wondible's amazing family tree visualizer:
Some of their fate was player-driven, and that's fine. In fact, that's partially the point of an arc end condition: to put the fate of the server into the hands of the players. But we can also see a lot of rectangles at the end of their family tree. Rectangles are boys that cannot have babies themselves. Thus, it's possible for a family to die out simply due to a random fluke of genetics.
While this may be true in real life too, and is somewhat interesting, over the long haul, this particular fate is likely to befall every family eventually. When an assortment of families is what's keep the arc from ending, this kind of randomized attrition doesn't feel right, because it's completely outside the realm of player control.
So, among loads of fixes and improvements this week, I adjusted the gender distribution algorithm to force girl babies if a given family has less that three potentially fertile females left alive. With this change in place, we'll see how long the arcs last, and what the family population graphs look like, over the next week.
You can see the full list of server-side code fixes in the change log here:
I'm back from PAX West with a bunch of bug fixes and improvements. The arcs have generally been pretty stable during this time, lasting one to four days before we get down to a single family. I'm still not fully satisfied, and I'll be putting a lot more effort into making it even better in the future, but this is a good place to turn my attention to other matters, namely the enormous list of user-reported bugs that have built up. This week, I got through all of the reported and reproducible code bugs. Next week, I'll be tackling the list of content bugs.
The biggest change this week is the war report feature: mousing over someone from another family will now tell you if you're currently at war or at peace with that family. War status changes should also let you know, but what happens if you're born into a war or peace that was declared generations ago? Now you have a way of finding out.
The road-following code was also overhauled, and it now works perfectly in all situations, including diagonal roads that join other roads, double-backs, and so on. If there's a viable road ahead, you will follow it.
Other small fixes:
--Parked horse cart no longer overlaps weirdly with the object to the left
--You can paste text into chat with ctrl-v (requested by a player with brain damage who has trouble typing)
--Single-click set-down on surrounded tiles.
--No more ghost monument locations after an apocalypse.
--Fixed a glitch that allowed children to pick up swords and cars via swapping what they're holding.
Weekly Update #71
Live from PAX West 2019
I write to you from rainy Seattle.
If you're at PAX West, please stop by and say hello. I'm in the PAX Rising area, and I've got:
--500 Limited Edition OHOL purchase cards with unique QR codes (on sale for the first time at 25% off for PAX attendees only)
--Mofobert stickers
--Sandara posters
--Diamond Trust of London
The update went out on Wednesday evening, before I left, and it includes several improvements, which I will simply list here:
--Eve window remains open for 8 hours.
--Arc ends if we ever get down below two families.
--The bug causing the apocalypse whiteout to stall has been fixed, so families can easily survive the end of the arc now.
--Fixed a imprecision accumulation in server walk speed code that could potentially allow WASD mods to walk slightly faster.
--You can spend YUM to do hungry work, and you must always have a 5-hunger buffer when doing hungry work (for safety, so you don't starve immediately after).
--After the Eve window closes, babies are distributed to families round-robin, to prevent one family from getting baby starved.
--A new family population log has been added, so I can make nice graphs of families over the arc.
--Pine trees are no longer hungry work (softwood, naturally)
--You can eat carnitas straight.
--You can eat onions and tomatoes straight.
--You can deconstruct the track cart kit.
Hope to see some of you at PAX West!
Jason
Weekly Update #70
On the heels of my return from vacation, there will be no gif this week, but there's still an update.
During my vacation, as many of you might recall, the arc wore on an on and on for something like 8 days, and none of the end conditions were triggered. Meanwhile, the space inside the rift became an over-griefed hell-scape. I had to kill that arc manually from vacation, and disabled the rift barrier temporarily until I could return home and tweak things.
So, this week, we take what we've learned from the arc runs so far and tweak a bunch of stuff that needs tweaking. Keep in mind that this game has been live for 18 months at this point, and we just learned about new problems that never mattered too much before. Bears have been in the game for 18 months, and it never mattered that their caves respawned new bears every 24 hours. I didn't even recall that it worked that way. But inside the rift for 8 days, this suddenly mattered. There were hundreds of roaming bears by the end.
The point here is that an infinite map kinda "solves all problems" magically. If something is broken, you can always walk away from it. If something runs out, you can always find more of it further out. I can't even really answer a question like, "Is there too much oil in the game?" How much oil is in the game? An infinite amount. What if I cut the oil spawning rate in half? Then there's still an infinite amount. We have to talk about resource allocation in terms of what's within a reasonable walking distance from a given town. But towns can move and spread over time, so any distance becomes reasonable, given enough time.
I can find answers to questions about a finite map, however. I can cut the oil spawn rate in half, and there will be half as much oil.
The biggest thing we're testing this coming week is a new arc failure condition: when we get down to less than 5 surviving families, the apocalypse happens and a new arc begin. In conjunction with this failure condition, new Eves only spawn for the first 2 hours of the arc. After two hours, the families are fixed, and the arc will last as long as at least 5 of those families last.
The great thing about this failure condition is that it puts the arc end squarely in the hands of the players. Do you want the arc to keep going a bit longer? Then help that struggling family stay afloat.
The other interesting thing is that the arc end does not kill anyone. Every living player survives, which means family lines can outlive the arc. In fact, with these changes, there's nothing stopping a family from living forever.
We're also testing a new curse system. The old, global-tally Donkey Town has been removed and replaced with a personal cursing system that lets you determine, unilaterally, who you no longer want to play the game near. Once you curse someone (you get one token per hour), that person will not be born within 50 tiles of you for the next 48 hours. If someone is cursed by so many people that there's nowhere left for them to get born, then they do go to Donkey Town, but there's no longer a fixed-length sentence there.
Finally, a bunch of little issues that came up during the last long arc have been fixed:
--The default state between families is neutral instead of war. To use war swords, an elder must declare WAR in the target family's language. Elders cannot hold swords themselves, though, blocking solo crusading.
--Cross-family curses can now work without saying it in their language.
--The shortcuts CURSE YOU (closest player) and CURSE MY BABY have been added.
--Babies now keep their family name even if adopted.
--A bunch of things that were blocking and unremoveable (Newcommen towers and looms) have been made deconstructable.
--Chopping all trees, including juniper, is now hungry work.
--Fences now orient themselves relative to other fences automatically. No more ugly fences.
--Wildcard phrases for gate ownership, like MY OFFSPRING OWN THIS (all living children) and MY FAMILY OWNS THIS (all living family).
There will be one more update next week, and then I'm off to show the game at PAX West.
Vacation Update: A Reprieve from the Rift
I'm still out of town on my family vacation, but it was clear that life inside the rift had gone completely haywire in my absence, mostly due to newly-discovered forms of griefing that I cannot fix until I get back. We have a lot of great data an ideas to work with, though, and the path ahead is clear.
In the mean time, so I can enjoy the rest of my vacation worry-free, the Rift is disabled, and the ever-growing Eve spiral is back in action, with no forgotten-area culling.
Thanks for hanging in there during these rocky times, and I'm looking forward to getting back in the saddle next week.
Weekly Update #69
Whole New World
What...a...week!
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.
Weekly Update #68
Grand Arc
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.