Continuing to plow through the list of reported content issues this week.
There are now a bunch of new ways to mark graves. Bonsai trees can go on tables in all of their stages. Snake skin boots no longer decay. Pencils can be piled. Lathe heads and kraut boards can be deconstructed. Locks are now much slower to brute force with trial and error. Several things that had weird visual positions when set on a table have been fixed.
Weekly Update #133
A seemingly small update this week, but it actually involved changes to 170 different objects. You can now fully manipulate all bottles on top of tables, including filling them with funnels. Before, you had to move a bottle to the ground to fill it with a funnel. All the bottles also now have better looking positions when held.
Weekly Update #132
A raft of fixes this week. Bugs have been fixed in the presentation of a player that walks into view from far off screen. Radios no longer mistakenly transmit weird metadata from maps and orders. A glitch was fixed that prevented cursing living players by name. You can down drink milk from wine glass. Empty bottles have better positioning on tables and in boxes. You can now put slaked lime in a bottle. A crock of pumpkin can be composted. Diagonal gradient dry springs can be dug. You can now dig all the different types of rabbit holes. Sprinkler pipes now require a two-person effort to remove. You can remove feathers from hats. You can now pile up unskinned dead rabbits. The turkey platter no longer has to be removed from the table for the final stages of slice serving.
Weekly Update #131
Players who want to build an Endtower, which triggers an apocalypse that wipes the entire world back to zero, face many obstacles, since most of the other players will do anything in their power to stop them. There hasn't been a successful apocalypse in quite a long time, but hope, apparently, springs eternal for the most purpose-driven players.
The threat of an apocalypse creates macro-scale dramatic tension, so I don't want to detooth it entirely. But these purpose-driven players are a creative bunch. The latest trick is to try to get as far away from the population center as possible. They want to get way more than one lifetime's worth of walking, so they have babies along the way, and the babies grow up and keep walking. Eventually, they get ridiculously far away from all the other players, and they build an Endtower there.
While this kind of perseverance is admirable, it's also not that interesting to defend against. Just walk forever yourself, and have babies along the way, until you eventually find the tower. Many, many hours later.
The Endtower can now only be built within 10,000 tiles of at least 50% of the active player base. It can be somewhat far and hidden away, but not ridiculously far away.
Some bugs in cursing people during the five minute window after they die have been fixed.
You can now say GOODBYE FOREVER in your final utterance to disable the feature that has you born automatically to your own descendants if you live to old age.
There's a new method of interacting with moveable containers: right clicking on the ground around the container will swap your held item for the container itself, instead of inserting it into the container. Right-click the container itself to put the item in or swap it with contained items.
Weekly Update #130
Photography has been part of the game since 2019, but the photos themselves were somewhat ephemeral. After the click of the camera, the image itself disappeared from the game world and appeared in a permanent archive on the public-facing website. This was cool, in that otherwise-undocumented and invisible moments from inside the game world could produce a kind of permanent record visible outside of the game.
However, the fact that photographs worked this way was a little magical and weird. You put photo paper into the camera, but took nothing out. After taking a photo, you ended up with an empty camera.
While it was cool that in-depth photo chemistry was represented in the game (making photo-sensitive silver nitrate solution from scratch), some important real-world steps were omitted. What about fixing the negative? What about making positives?
The photo chemicals in the game start out clear and become dark when they get exposed to light. Essentially, light breaks up the molecules, releasing elemental silver. When more light produces a darker spot on the paper, we get a negative image.
Of course, once you have a negative, you're not done yet. If you wave it around out in the open, it will get exposed to more light, making it darker and darker. By soaking it in a fixer, the remaining unexposed photo chemicals are dissolved, which halts the darkening process. After that, you have a negative that is safe to look at under normal lighting conditions.
To get a positive, you need to make a contact print with another piece of photo paper. The light areas in the negative let more light through, which creates darker areas in the positive print. And of course, you need to fix the positive too before looking at it. After that, you have your finished photograph.
All that said, photographs, both positive and negative, are now objects in the game that can be stored, traded, moved from place to place, and looked at by whoever handles them. A full-resolution version pops into view on the client whenever you handle a photograph.
And by using one negative to make multiple contact prints, you can duplicate a photograph as many times as you want.
Imagine visiting an abandoned village and rifling through a storage box to find photographs of the people who used to live there. Imagine viewing a photograph of your own great great grandmother. These things, and more, are possible now.
Weekly Update #129
I have been working through a heap of improvements and fixes this week.
There are several new features on the settings screen for toggling vsync and manually setting the frame rate when vsync is off. You no longer have to go digging through the settings folder to tweak these things.
Objects that empty out as you use them, like buckets, now have a visual distinction between the full and one-less-than-full state.
A new /ORDER command allows you to review the most recent order that you've heard from your leader. Before, if you missed it the first time it was presented, there was no way to recall it later.
Radios no longer work between Donkeytown and the main world.
A bunch of fixes have been put in place for the situation where specialty biomes switch on and off during the wee hours when player counts drop below the threshold of 30. Tool tips get re-enabled, expert waystones still work, and there's a buffer between 30 and 40 players to prevent the specialty biome status from flip-flopping as the player count hovers around 30.
Some glitches in oil flow transitions have been fixed.
You can now remove green beans from a bowl, one by one.
Weekly Update #128
Paved roads are now harder to remove, requiring a two-person operation, just like rail tracks. The paving machine now requires a smithing hammer to stop, which makes it much harder to stop by accident.
Donkeytown players are now much farther away (200 million tiles), but they have access to all the biome bands, meaning that they can potentially build their own thriving civilization out there. Maybe they'll even have their own world-famous opera house someday.
Given that curses last five years now, and some people may have issued many curses casually in the past before this change, a new FORGIVE EVERYONE command lets you wipe the slate clean.
There was a bug occurring at every server startup that reset each player's curse count back to zero, which meant that the global component of curses (which affects how far away you need to be born from someone who has you blocked) wasn't working correctly. With this week's fix, the players that have received hundreds of curses will now feel the full effect.
There has been a long-standing client-side bug that would register your death as a disconnection event in rare circumstances. This bug has finally been found and fixed.
And finally, there's a new SERVICES screen in the client, which can be used to generate hash tokens to verify your account with third-party services. For example, future versions of the Phex chat service could verify that you really have a game account, to prevent spam bots from posting.
Weekly Update #127
A curse is a mechanism by which you can say, "I don't want to play with this person anymore." After you curse someone, it prevents that person from being born near you---or you being born near them. Originally, this block was only supposed to be temporary, perhaps a few days. But over time, my thinking about curses has changed. If you really don't want to play near this person, why should the game second-guess your wishes by applying a time limit? So the duration got longer, eventually reaching 90 days, which is where it stayed for quite a long time.
But even 90 days isn't that long, in the grand scheme of things. Especially in the face of griefers who have dozens of accounts and cycle through them every 90 days after their curses wear off. You thought you had taken care of this annoying player. Having them buy an alt account is bad enough. But then facing the original account 90 days later, popping up like an eternal and glacial whack-a-mole, is even more ridiculous. How many times do you need to say it? You don't want to play near this person anymore.
For this update, I had originally increased the duration from 90 days to 50 years, which is effectively permanent.
However, there's also some concern about the effect on innocent players getting cursed unfairly, either through intentional framing or simple mistakes. If curses are permanent, won't these spurious curses slowly pile up on the most active players, even if they are innocent?
Again, we should remind ourselves that curse just prevent you from being born near these accidental curse-givers. However, there's one more effect in place, which is that the radius of the block (how far away you need to be born) grows based on how many living players currently have you cursed (how much you've been bothering the people who are currently playing) and based on how many total people have you cursed, whether they are playing or not. The radius formula is 50 times the number of living people who have you blocked plus square of the number of total people who have you blocked.
That second factor starts small, and is pretty much a non-issue for people who have a handful of accidental curses. But for a serious griefer, who is bothering lots of people, it grows fast.
However, if curses essentially last forever, you could imagine innocent players accumulating enough accidental curses over time to bring that second squared factor into play.
The first step in figuring this out was to actually look at the current curse database on the live server, which tracks curse counts over the past 90 days. That data is as follows:
2 people had 24 curses, 1 person had 21 curses, 2 people had 17 curses, and so on. At the bottom, you see that 46 people had 0 curses, which is just the people who had their last curse expire in the past week (these get cleared out every time the server restarts during an update). In total, 329 people received at least one curse in the past 90 days, which seems like quite a few.
But not when you consider the fact that 9746 people played the game in the past 90 days. Thus, over 96% of the active players were not cursed at all in the past 90 days.
This gives us a rough upper bound on "accidental curses" for the vast majority of players (1 or less in a 90-day period), which also gives us an idea of how many accidental curses might accumulate on someone for a given expiration window.
All this information feeds into the choice of 5 years as the expiration time for curses, which means that the vast majority of players would not accumulate more than 20 during that time, which is something we can live with.
Meanwhile, active griefers who are bothering lots of people will get their accounts tarnished for five solid years, which is as good as permanent.
Along with this change, the ability to CURSE MY BABY has been disabled, since curses are more serious now, and you have no chance to change your mind and forgive them (since your baby is often dead already).
Solo Eve spawns on low-population servers can now crave all foods, including higher-tech foods, from their second life onward. And several bugs in property inheritance and fitness score have been fixed.
Weekly Update #126
A funny thing happened on the way to viewing last month's sales data. One Hour One Life sold 36 copies in the nation of Argentina. This is the fourth biggest country in terms of units sold in one month. However, all of these sales only brought in $27 total. Because prices were set long ago, they haven't been adjusted based on exchange rate changes over the years, and Argentinian residents can currently buy the game for 78 US cents per copy.
You might think that is bargain basement price is driving sales over there, but I suspect something else is afoot. US residents who want multiple accounts are buying them in bulk by using VPNs and tricking Steam into thinking they live in Argentina.
And why would one person want so many low-cost accounts?
Because they are using the accounts to grief, and quickly getting cursed by other players, and their accounts are getting stuck in Donkeytown over and over. They escape Donkeytown via the purchase of a new account, which gives them a fresh start.
Of course, the price in Argentina can be adjusted, but this discovery highlights a deeper issue:
The curse system is great, insofar as it allows you to say, "I don't want to play near this person anymore," and have your wishes respected. Each person gets to decide what counts as "unacceptable" on their own, without needed consensus from others. Maybe one person doesn't like swearing, and another person doesn't like berry munching, and a third person really hates bossy players. Some people might like the drama of a murder or theft, while others might hate it. Curses allow us to avoid defining global behavior rules that must satisfy everyone.
The problem is that curses only work if you've encountered that particular player (or account) before. When dealing with a brand new, unknown account, they don't help you differentiate that account from other uncursed accounts---even accounts that you've enjoyed playing with many times in the past. Essentially, all the uncursed accounts are lumped into the same category: they are all unknown variables.
The new Trust system inverts this, allowing you to whitelist accounts that you feel belong to "good" players, from your perspective. By saying "I TRUST JANE SMITH" or "I TRUST YOU" to the closest person, that player is added to your eternal trust list. You will then see "+" symbols around their speech, and this effect persists across lives, with no time limit. This doesn't allow you to track specific players across lives, but rather shows you the growing group of players that you generally trust.
The other accounts in the game are either cursed by you---in which case, you've specifically caught them doing something that you dislike---or unknown variables---in which case, you can proceed with caution until you can determine their trustworthiness.
Aside from marking trusted player's speech, the Trust system has no effect on birth placement or other gameplay elements.
Cursing someone, of course, removes them from your list of trusted players.
Weekly Update #125
This update deals with one of the last sacred cows left over from historic One Hour One Life design decisions: truly-permanent structures.
There were two player-built items left in the game that could not be moved or destroyed: ancient walls and the bell tower monument. Both of these things were added long ago, before property fences and many other things. They each required ten hours to soak before they became permanent. Ancient walls were originally meant to be discovered when exploring abandoned towns---perhaps the last remnants after everything else had decayed away (back when I was thinking that most things would decay away in time). And the bell tower was meant to be a major community accomplishment along with a navigation beacon between towns, back before there were other navigation aids in the game. If you managed to build the bell tower, which required cooperation across many generations, you would be able to keep it forever.
The problem with permanent structures, of course, is that they are permanent. If they are somehow built in annoying places, they will be annoying forever. The idea was that people had plenty of time to notice the annoyance before permanence set in. The problem is that you might not notice the annoyance until later, especially if the permanent structure is built far away and permanently entombs something that you might really want to access, like an almost-completed End Tower.
So, you can deconstruct both ancient walls and bell towers now. If you care about your bell tower, you can always protect it with property fences. And ancient walls will still appear in ancient towns, but their fragile beauty now be protected with a careful husbandry.
There have also been a bunch of issues fixed with property gates. You can no longer be assigned ownership from great distances, and destroying an in-progress gate now correctly clears ownership status. Finally, in line with the above discussion about permanence, you can no longer build a long string of property gates right next to each other, since these were effectively impenetrable walls as long as you and your heirs remained living. This was being used to work around the intended removeability of property fences that are supposed to work in conjunction with sparse gates.