a multiplayer game of parenting and civilization building
You are not logged in.
I spent quite a bit of time this week improving the family tree browser. Cause of death, including animals and murder, is now in place, along with a display of the oldest-known ancestor at the top of every family tree page, and a display of the deepest-generation descendants at the bottom of every family tree page. Thus, you can bookmark your character's page and return to it later to see how far your descendants have gotten.
In-game, the biggest change this week is that graves of known people now display their name and relationship when you mouse over the grave. This only works for undisturbed graves, and only for people who were alive during your lifetime. Bone piles don't count after they are moved, so leave Grandma's bones alone, please.
Another fix: Ancient stone floors now hug walls properly.
But the other big thing going on this week is a bug hunt, as described in detail here:
http://onehouronelife.com/forums/viewtopic.php?id=1648
You may not realize it, but every game of OHOL that you play is being quietly recorded in a compact, text-only format in your recordedGames folder. Copy one of these files into your playbackGame folder and launch the game. Like magic, you can watch a ghost version of you play the game exactly as you played it before, with all server events fully simulated. This is not a video, but instead a frame-by-frame simulation of all events that occurred, such as keyboard and mouse input.
Turns out that this bug hunt unearthed a bug in recorded times values in these game recordings, which has now been fixed. Should you encounter this "bouncing for 10 seconds" bug, your recording will hopefully capture in perfectly now.
A lot of coding this week. I'm aiming to get a larger content update out next week.
This graph shows the average life expectancy of everyone who died younger than 14 in the game---all the players who did not make it through childhood.
This is a more interesting dataset than the overall life expectancy, because the presence of Eves in that data, who spawn at age 14 and therefore at least live 14 years, muddies the water. At some point, I will run a more complicated analysis that removes Eves from the data, but that will take a bit of extra scripting on my part.
The above graph is a good indicator of the prevalence of baby abandonment and baby suicide. You can see how dire this situation had become before the lineage ban, and it looks like the lineage ban has had a positive impact.
The biggest change this week is the addition of an online family tree browser, which you can view here:
http://lineage.onehouronelife.mythiclai … front_page
You can search by your email address or any character name that you can remember, and if you click on faces, you can browse up and down through the generations in the tree.
There are also a few changes to the way that families work. First of all, the client now displays Big and Little status for your siblings, and also detects the rare case of twins and identical twins for you and your siblings.
Second, babies now inherit the last monument bell that their mother heard before they were born. This bell will "echo" through the genetic mother-baby connection when the baby is 0.5 years old. Thus, trans-generational pilgrimages to distant monuments is now possible (journeys that are too long to make in one lifetime).
The way locks are displayed has been improved, with loose locks and keys labeled with A, B, C, etc., so you can keep track of what you're making. After a lock is installed, however, this label becomes invisible, so an attacker won't be able to know which key to try. I took this one step further: The server now doesn't even send the true lock object ID to the client (instead sending the ID for the generic lock), so even someone sniffing the protocol can't get unfair information about a lock. Trial and error (making all ten keys and trying each one) is still possible, of course. And if an attacker gets a hold of your key, they will be able to see which key it is. This is just like real life---take a look at your own keys, and you will see a number stamped on any master keys. My computer room door has a 43842, because it is a 5-pin lock with those pin lengths.
As you may have noticed, after a server update, all keys and locks revert to a base form. That is now displayed with a "?" in place of the letter label for clarity. Everyone who knew which lock was which is dead, and the next generation to discover the village is essentially handed some easy-to-open locks that they can re-key as they see fit.
Unlocked doors can be removed, and milkweed stumps can be removed in the same manner as berry bushes. Making the letter N no longer eats you knife, and U and C no longer fill your bowl with water.

There are signs. But what good are signs without letters? Think you can just type out your message with your computer keyboard? What keyboard? You're in the wilderness, friend. Letters don't just grow on trees.
When I was a kid, my father had one of those black plastic sign boards with removable white letters in the lobby of his business. When he wasn't looking, I re-arranged the letters to make the sign say something much more interesting.
Actually, this happened when I was an adult, not when I was a kid....
But how long do you really think your precious little message is going to last, knowing the kids these days? My father was not thrilled, and you will not be thrilled either.
So you gotta lock that sign. My father never thought of that. Apparently, in 35 years of running his business, he never fathomed that a bad seed like me would come waltzing through his lobby.
But there are no bad seeds in this game, so you probably don't have to worry about it. Try putting a second sign next to your first sign that says, "Please do not change the sign." Or was that "Inspect Neonatal Hedgehogs"?
Yeah, so, lock your sign, daddy-o.
And hey, since signs are containers, that means we can lock some other containers now too.
This week's update involves a lot of maintenance and tweaking.
Decay times have been increased dramatically along with tool usage counts, but the tool usage engine has also been overhauled to fix some bugs and inconsistencies, and also to switch to a semi-random breakage model.
For example, an ax can be used 100 times on average, and goes through four use states, with an average of 25 uses per state (1/25 chance of advancing to the next state). Worst case, which would occur once in about 400,000 axes, would be an ax that can only be used 4 times. Contrast this with a purely random usage model where the ax has a 1/100 chance of breaking. We'd still expect 100 uses on average, but we'd also expect an ax that breaks on the first use to happen once in 100 axes, which would be a frustratingly high rate.
Various natural resources have been tweaked, and a new way to deep mine exhaustible iron ore has been added.
Also, for those of you who might have missed it, a new Eve placement algorithm is live, which you can read about here:
http://onehouronelife.mythiclair.com/fo … .php?id=18
The plan for next week is solid content creation. I'm hoping to take a break from programming and tweaking next week. And signs are coming.

The way Eves are placed has a substantial impact on the feeling of the game. Whenever a player joins the server when there is no suitable mother for that player, that player spawns as a full-grown Eve instead of as a baby. Eve serves as the potential root of a new family tree, and her placement determines the opportunities that are available to that family.
Originally, Eves were placed at random inside an arbitrary radius around the world location (0,0).
This worked fine for a while, until that area began to fill up with civilization. Eve is supposed to feel like a fresh start, with maybe a small chance of stumbling into the ruins of a past civilization, or eventually bumping up against a living, neighboring civilization. As the center of the map got full, Eve was always just a stone's throw away from a village. Furthermore, with everyone so close together, there was no danger of losing a village if it died out. Thus, keeping a village alive meant nothing. We could always find our way back to revive the ghost town tomorrow. Even worse, as these areas got ravaged by human activities, the resources that a new Eve needs to bootstrap became more and more scarce. Eve does need a somewhat green pasture to found a new civilization.
The next Eve placement algorithm involved a random walk across the map, looking at the last Eve location and making a random jump 2000 tiles away to place the next Eve. There can be some randomly-occurring back-tracking with this method, which means that Eve can sometimes end up near the ruins of old civilizations, but we expect such a random walk to eventually explore the entire map, so we will also get farther and farther from center over time. And with many Eves dying without founding new civilizations, and also perhaps due to biases in the random coordinate generator, we quickly walked our way from (0,0) out into the 50,000's. This meant that villages were generally too far apart to interact with each other. Still, Eve was usually in an untouched area full of natural resources.
The next Eve placement algorithm was radial, placing Eves randomly at a radius of 1000 from a fixed center point. This put all villages within trading distance of each other, and offered plenty of untouched space for Eve---for a while. But soon, the "rim" of the wheel filled up with civilization, and we were back to where we started---Eves placed in a crowded area that was stripped bare of natural resources.
The latest Eve placement algorithm was suggested a long ago by Joriom and maybe a few other people, and involves an ever-growing spiral around a fixed center point. This guarantees that Eve is always in an untouched area, but also that she is never too far from some recent civilizations, so trade can happen.
While a server is running, the placements look like this:

You can see the three initial Eve placements at the center, which the server permits at startup to ensure that the first few Eves can have a chance to bootstrap a village in that spot. After that, the spiral ensues, and would keep going as long as the server was running.
What happens when a server shuts down though, as it does every week during updates?
First, the death location of the longest-lineage person during shutdown is remembered. This is used as the "center" of the spiral at the next startup, and after startup, the first three Eves are placed near there. After that, a new spiral grows around that new center point, like this:

As this new spiral grows, it will cross through the previous spiral like so:

That is okay, because any of the other civilizations that were active at shutdown will potentially be rediscovered by Eves, which makes for an interesting Eve variation. Still, future Eves will not be trapped in these already-developed areas, as the spiral will continue further out into untouched areas again.
Also, some of the older, long forgotten villages in the old spiral will be wiped when the server restarts due to the 24-hour abandonment cut-off. Thus, the new spiral will cross through many now-wild areas, even as it overlaps the old spiral.
As the new spiral grows bigger, it will eventually engulf the old spiral and move beyond it, but the overlapping area will always be substantially less than half of the new spiral. Thus, even if 100% of the old spiral contained active villages that were not wiped, more than half of the Eves in the new spiral will be placed in untouched wilderness.


75 new things. Mostly broken things. Rotting things. Fragile things.
And stone walls, which are the opposite of all of that. And locking doors.
A whole new web of interdependence for farming.
A new mother selection method (temperature, not food).

If you build it...
We crossed one million lives lived inside the game this week. It's kind of mind boggling. And a group of well-coordinated players also trounced the previous lineage record of 32 generations, making it all the way up to 111 generations with the Lee family. I've posted the 111 names from the matriarch chain here.
I've tied all these trends together in this update, which includes a monument, along with quite a few other changes.
In light of the recent server performance updates, the per-server player cap has been raised.
The experience of being murdered has been dramatically improved. (Yes, that is a peculiar sentence.) It has never actually happened to me in game yet, and I hope it will never happen to you. But if it does, you'll have a small bit of time to get your affairs in order...
Long term food sustainability has been made much harder. Getting up to 30+ generations in one spot should be a pretty substantial challenge, and you won't be able to do it on carrots alone. The top has been hardened.
Short term food availability has been made a bit easier, with the addition of two more edible wild plants. But they don't grow back, and they can't be domesticated, so they don't affect the long term challenge. Being an Eve in the wilderness should be a little bit less stressful. The bottom has been softened.
And there may be one little tiny surprise in there too... the idea came to me while I was falling asleep last night... I just had to put it in.
Also, monument logging is in place server-side, but the processing and display of those logs is just a counter for now. A better monument roster will be implemented next week, assuming that it's needed. And yes, that is supposed to be a challenge.
I spent quite a bit of time this week on server performance.
The old database engine, the amazingly fast and compact KISSDB, was not designed for an ever-growing data set where the newest data are accessed more than the oldest.
As players continue exploring new areas of the map, the data from older areas becomes less relevant, but that is the data that is the fastest to access in KISSDB. In fact, we were constantly wading through that old data to get to the latest stuff, which essentially ended up at the end of the list in KISSDB's append-only data structure. It got slower and slower as the data got bigger and bigger.
This drop in performance is expected when a hash table fills up, and thus KISSDB documentation recommends a table that's "large enough" for the expected data.
But the expected data in this case is unbounded. We cannot pick an appropriate size, because the data will keep growing, and we don't want performance to degrade as that happens.
A stack-based hash table is much better suited for this usage pattern. The latest and most important stuff can remain at the top for fast access. So I wrote a new database engine from scratch on Monday and Tuesday. It helped a lot.
The stack-based implementation that I came up with (thanks Chard for all the thoughtful discussion along the way) is 7x faster on average and even uses a bit less disk space (6% less). But more interestingly, it's entirely disk based, using almost no RAM. 13,000x less RAM than KISSDB on a test data set, in fact. KISSDB holds part of the data structure in RAM for performance, and that RAM usage grows as the data grows, but the stack is so much faster for accessing recent data that it doesn't matter---we can do it all via disk accesses.
The stack database actually has a flat RAM profile regardless of how big the data grows, and CPU usage on recently-used data is flat as well, regardless of how big the entire data set (including old, less-used data) gets.
The impact on server CPU usage is quite remarkable, as can be seen in this before-and-after graph (with the same 40 players on server1 the whole time). The new database went live at the 10:00 mark:

I also did some live profiling with Valgrind and found a few more hotspots that could benefit from RAM-based caching of procedurally-generated map data. And since the database now uses almost no RAM, we have RAM to spare for this kind of caching.
Where the server RAM usage used to grow to 300 MiB or more as the map data grew, it now sits steady at only 17 MB. Yes, that's 17 MiB of RAM total for hosting 40 active players.
What does this mean? First of all, it means the servers are finally lag-free, assuming that you're not experiencing true network lag.
Second, it means we can finally have more players on each server. I'll be upping the number gradually over time and keeping an eye on lag and performance. I expect we can easily get at least 80 on each server, and maybe quite a few more than that.
Most important: Main website down at 10pm PST tonight (Wednesday) for maintenance.
I've finally been able to find and fix that troublesome "read-only game folder" issue on Windows. If you're having problems with this, downloading v65b for Windows from your original download link will fix it.
The problem in v65 is triggered whenever the update process includes two binary updates to the client EXE. This can happen if you take a break from the game and return to a backlog of updates. Thus, just because the update process always worked for you in the past does not mean it won't fail for you in the future. This is why the bug was so hard to find and confirm, amid thousands of "hey, it works for me," reports.
So if you ever run into a read-only issue during a future update, installing fresh from v65b should fix it for you.
Next issue: Scheduled down-time, 10pm PST today (Wednesday)
My server provider Linode has been working to patch the recently discovered Spectre vulnerability in modern CPUs. The patch requires a reboot of each server.
For the most part, this is fine for this game, because I'm running 15 game servers anyway, and I can easily take them down in batches while people continue to play.
However, the main web server, onehouronelife.com, needs to be rebooted too. Unfortunately, the home page, forums, purchase system, and client reflector are all hosted on this server. The reflector is the most mission-critical part of all this, because it's what clients talk to first to find out what game server they should go to.
And this important piece needs to go down so Linode can install the update.
The game servers will keep running, and your current lives won't be disrupted, but if you try to get reborn, you won't be able to find a new server to connect to. You can work around this outage temporarily with the "customServerAddress.ini" setting. Take a look in the forums or ask in Discord for help with this.
I plan to trigger the down-time at 10pm PST today. I'm not sure how long the patch process will take, but it could be up to two hours.
Game purchase will be unavailable during the downtime.
Hopefully, it will be way shorter than two hours.
Thanks for understanding!
Jason
Boy, did that wake everyone up or what?
For those of you who have played 100+ hours and are so mad after one day of change that you're thinking about asking for a refund....
Remember: this is a game that is being actively developed. By one person. Working alone. Doing everything. 12-16 hour days. It's Saturday. My family needs me. But here I am.
So, think for a minute before you jump on the review button and call me LAZY in all caps, please.
I must have the freedom to try things, dangerous things, game-breaking things, in my endless quest to make the game better and more interesting.
I appreciate that you love the game as-is and don't want it to change. But the numbers that I see on my end tell a different story. Yes, there are an impressive number of concurrent players at peak times (150 - 200). But that number has started to slide, and is nowhere near where it was a few weeks ago. In the mean time, 14,000 people own the game. They are not playing. For a reason.
And it has nothing to do with the apocalypse.
It has to do with the game not being quite good enough yet. The game is interesting and compelling up to the point where established villages achieve a steady, perpetual state. If you have limitless food, there is no challenge, no danger, no drama. Griefers are a symptom, not a cause. If you are struggling to survive, you have no time for griefing.
And this game should always be about struggling to survive, at some level. It should always be possible to fail, both at the individual and village level.
But villages were everywhere. You could always wander into a deserted one and pick right back up. Failure meant nothing.
Thus, the game sorely needed a hard reset. I decided it would be more interesting to put that power into your hands and see what you did with it. I also wanted to create a shared collective event.
Those who witnessed the apocalypse waves first-hand will never forget them. It's over now, but the reset happened.
And the result, for the time being, is a game that is much more interesting again.
Building a village from scratch is the interesting part, and making a contribution that really matters is the most meaningful way to leave a legacy. Making another bearskin rug in a village that already has 20 rugs, because there's nothing else to do, is far less interesting.
In the place of the apocalypse, I have added a new placement algorithm for Eves that will have a similar periodic cleansing effect. Not server-wide, but at the lineage level. Your chance to continue living and working in a given village will end when the lineage in that village dies out. No more wandering back later and starting over in the same spot with everything already done/built for you. Each new line will start in the wilderness.
That said, pilgrimages to the old village locations are still possible, but they will require a concerted group effort to pull off, Oregon-Trail style.
But after I implemented this new Eve placement, which involved only a few lines of code, a strange thing happened.
Server CPU and disk usage rose steadily over the next 16 hours, eventually getting to the point where the servers were so bogged down and laggy that the game was almost unplayable.
If you experienced this today, I'm sorry about that. I've fixed it now, but the source of the problem was surprising.
The underlying databases are hash table based. As more entries are added to these tables, collisions occur, effectively creating a chain of "pages" in the hash table. Lookups for these later entries thus have to step through several pages before finding the matching item.
The general pattern here is that as more of the map is explored and modified, the servers become slower and slower, as hash table collisions become more common, and multi-page lookups are needed.
That has always been the case, throughout the history of the game.
But now suddenly, with the new far-flung Eve placement, it became a serious problem.
It turns out that all those far-flung Eves were exploring more and more of the world than ever before (whereas previous Eves were in the same area, so they kept wandering through already-visited places on the map). This made the underlying databases grow and fill with collisions.
As an example, one of the databases had such long collision chains than the average lookup would need to hop through 175 hash table pages. Not good.
Even worse, the newer entries in the hash table go at the end of these chains. As Eves were placed farther and farther away, this meant that the quickest-to-access entries in the table (the oldest entries) were never being needed again, while the latest entries---the tiles we were looking at around the latest Eves---were at the end of very long chains.
The game uses an existing database module called KissDB that is very fast, but probably not designed with this usage pattern in mind.
The long-term solution is to re-write the database from scratch as a stack, so that the most recently-accessed elements are the fastest to access, while the forgotten parts of the map slide to the ends of the chain. I'll be doing that work next week.
In the mean time, I changed the usage patterns for some of the largest databases, resulting in a huge performance increase and reduced RAM footprint.
The servers are lag-free again.
And once I write a new database engine, performance should be even better, allowing me to raise the player caps per server.
So I hope you'll stick with me as I continue working to improve the game.
It's not over yet. We have years to go, together.
Jason

The end is coming.
Or maybe it's not coming.
It's up to you.
Long term carrot farming has a limit now. A few content fixes (you can't wear saddles as big fuzzy shoes anymore, sorry).
A bunch of little client fixes. The client will now complain if its version mismatches with the server (to help customServer folks notice that an update is available). Speech no longer disappears off the top of the screen. Mac fullscreen mode should be working (try it and see... let me know if it works).

Hot desert. Wild horses.
Murder evidence is now more flagrant and more long-lasting. Bows can't be used to kill from off-screen.
A bunch of blocking things that could be used for wall-grief can now be destroyed.
Seeding carrots can now re-seed 7 rows instead of 10.
I spent way too much time on that desert ground texture.

An update just went live on the client and the server that does several important things.
First of all, there is a new naming system. If you are Eve, you get to pick a last name (family name) that will be used by all of your future descendants. You can't pick your first name though---you're Eve. If you are a mother, you get to pick a first name for your baby.
Names are set by saying "I am _______" if you are Eve and "You are _______" if you are a mother, when you are holding your baby. You can only name your own baby, and you must be holding it.
For those of you with a mischievous twinkle in your eye, don't worry, I thought of that. The names that you pick are vetted on the server against a list of real first and last names, and the closest match is chosen if you don't pick a real name. You can check out the lists here (careful, they are huge lists):
https://raw.githubusercontent.com/jason … tNames.txt
https://raw.githubusercontent.com/jason … tNames.txt
And once you set a name, that's it. It never changes. So chose wisely.
The names are being logged server-side too, and I will likely do something interesting with those logs in the future, like show the name chain in the longest family line, or generate family trees, etc.
Next, a few "bouncing forever" stalled action bugs have been fixed, and a work-around has been put in place so that you'll hopefully never be stuck and die from this bug in the future (a 4-second timeout has been added to the client). Also, extra server logging has been added so that I can catch and fix the remaining cause of this bug.
And one invisible-self-as-baby bug was fixed. There are still likely some invisible-person bugs lingering, however.

[center]By sandara[/center]
Summary: It worked.

Profiling has long shown that map reads consume the majority of CPU resources on the server, especially in areas of the map that have a lot of full containers (each container acts as a multiplier on the amount of information that needs to be fetched for a given tile). As people walk around the map, they look at big chunks of the map all at once, and this produces dramatically more load than map writes (which only happen when a player does something). A player usually changes (writes) about one tile per second on average, but as they walk around, they might be looking at hundreds of tiles every few seconds.
I added a hash table for caching recently-read tiles from the map to make reads much less expensive. Since writes are way less frequent, they can still be expensive: changed tiles are both written to the hash table and instantly pushed into the disk-based database. Thus, the map on the disk never lags behind reality.
Additional profiling also found a few more places where I could squeeze out a few redundancies. For example, substantial load was coming from checking whether each item in a container had decayed. But most things in most containers currently don't decay at all. Might as well remember whether a container holds any decaying items or not, so we don't have to keep checking every item every time we look at the container.
The impact on CPU load can be seen above, with the whole graph representing 40 concurrent players on a cluttered map.
I've heard it many times, from both friends and strangers alike (and even a bit from my spouse): "Jason, don't you think you're nuts for not releasing this game on Steam?" Steam has changed a lot over the years, though.

Back in 2011 when my game Inside a Star-filled Sky launched on Steam, Valve worked with me directly to pick a release date that had no major conflicts. My game was the only game that came out that day on Steam. I'll repeat that for emphasis: my game was the only game that came out that day on Steam. It remained on the new release list for almost an entire week, sitting there on the front page of Steam for everyone to see. That exposure helped this otherwise-unknown game sell 649 units on the first day and 704 on the second day, and achieve a peak of 43 simultaneous players on day two. For me, at the time, those sales number were huge and career changing. Of course, the normal drop-off and long tail followed, with occasional spikes during the sales that I participated in. But the biggest influx of players and revenue came during launch.
Fast-forward almost seven years. On Tuesday, February 27, 2018, I counted 83 games launching on Steam that day, the same day that I launched One Hour One Life off Steam.
Steam still has a lot to offer: a huge install-base of dedicated players, a channel for games to spread virally (because you see what your Steam friends are currently playing), and a top-notch player-submitted review system. And of course, some players "just don't buy games that aren't on Steam."
Some people even claim that no game released off-Steam could ever be successful. Such games, it would seem, are doomed to failure.
However, we have to keep in mind that the very most successful games of all time on PC have never been on Steam and will never be on Steam: Minecraft, League of Legends, Overwatch, and Hearthstone.
Minecraft is a great example: the order form, as I originally encountered it back in the day, was worded in Swedish, and the price was only listed in Euros. The point is, if a game is good enough and attractive enough, players will overcome their hang-ups and find a way to buy it, even if it's not on Steam. My goal is to make a game that's so good that it won't matter. Shouldn't I be trying to make a game that is just that good?
Finally, I certainly might have doubled or even tripled my first-week sales numbers if I had launched on Steam. But, as a solo developer, I'm barely able to keep up with the demand and influx of players as it is. I'm doing personal tech support and community management. There were a few show-stopping bugs on certain platforms that I didn't catch before launch. The servers are already half-full, and it will be time to get more up and running soon. This kind of game---a super-complicated multi-server, multi-platform, multiplayer game---pretty much requires a slow roll-out.
Another big difference is the nature of the "games press" these days compared to seven years ago. Back then, every news and review outlet covered Inside a Star-filled Sky at launch. I had an even bigger press response to The Castle Doctrine a few years later.
But in the mean time, the game press essentially vanished. Some websites don't exist anymore. Others are helmed by skeleton crews. Still others have shifted focus and pretty much don't talk about new games anymore.
Thus, to get the word out about my launch, I was really depending on Twitter and my 19K-member mailing list. However, email, as you're probably aware, is riddled with delivery issues. I'm paying for services that supposedly ensure inbox delivery, but they don't work very well.
All these factors conspired to make my launch numbers pretty sad:

Oh crap, look at that! The exponential decay curve was already kicking in just a few days in. Was it all down-hill from here? If so, the future of the game was bleak, because the top of the hill wasn't very high at all, relatively speaking. 484 units.
But if the games press isn't relevant anymore, how do people find out about new games? There are two ways: word of mouth, and YouTube videos. Word of mouth has always been the most important factor for any game, I think. When your friends keep playing a game and keep talking to you about it week after week, you are much more likely to buy the game yourself.
YouTube is a comparatively new factor, but it's a bit like crowd-sourced word of mouth, and also a form of try-before-you-buy. You watch someone else kick the tires so that you know what you're getting into.
But here's the thing: some games are way better at generating word of mouth and YouTube videos than others.
What kind of game generates the most word of mouth? A game that players tend to play long-term, week after week, month after month. Your friend will talk about it this week, and next week, and the week after that. Your friend will just not shut up about this game.
If your friend is still playing months later, it's likely that the game is somehow generating an endless supply of unique and interesting emergent situations. And guess what? That kind of game also makes for great videos. Each video can show people something from the game that they've never seen before.
A game that doesn't have these properties depends on buzz at launch to sell. It also depends on the critical mass that Steam can bring, to give it a chance to go viral during the brief window that people are collectively playing it.
But the press is gone, so buzz is much harder to generate, and Steam is crowded, so going viral there is much more uncertain.
The new world of video game success seems to be happening mostly outside the game press and independently from the impact of Steam's crowded new release list.
I designed One Hour One Life intentionally to operate well in this new paradigm. It is, hopefully, a unique-situation-generator, down to its core, and it's endlessly replayable. It also generates unique situations at a kind of meta level, because civilization collectively advances even when you're not playing. If you make another video next week, it will show something quite different from the video that you made last week.
But these things take time to cook and build. Word of mouth isn't instantaneous. YouTube videos take time to make. To my shock and happy surprise, the downward trend started reversing a few days after launch:

Until finally, today, I had my best sales day ever, by a large margin, a full week after launch.
The Castle Doctrine was a pretty huge hit for me, relatively speaking. It generated a lot of press buzz and word of mouth, and it managed to bring in something like $70,000 in the 11 months that I sold the alpha through my own website, before launching on Steam. But yeah, that was over eleven months.
I realized today that in just over a week, One Hour One Life has brought in nearly as much as what The Castle Doctrine brought in over 44 weeks. And The Castle Doctrine's graphs, both on and off Steam, always had the classic exponential fall-off after the launch spike.
So what's happening here?
Well, YouTube has been a huge factor, as several 100K+ view videos started getting posted a few days after launch. The comments on these videos are telling, with many people begging the YouTuber to make more videos about the game. And some of those YouTubers have. Some are on their third video at this point, with each video thrusting them into new and interesting situations.
But the other factor is that the players who started playing the game around launch are still playing the game and talking about it a week later. They are not "finished' with the game. They haven't moved on.
I'm getting ready to put out the second of my weekly content updates since launch, but even without my input, the game world is changing as civilization advances, making it worth coming back to. Thus, the critical mass of hourly active players is growing:

Given that I've been working on this game for three years already and have at least two more years of work to go, the revenue generated by this game during launch week has not come at all close to making it a financial success. However, it does look like it might be operating in a new paradigm of public interest in games, which is a slow build up to steady growth over the long haul.
A friend of mine summed up a design theory for this game as "evolve or die."
Essentially, there should be no steady state, where you finally break free from the survival struggle and can be fat, dumb, and happy for the rest of your life. The garden of Eden can never be returned to. No living off the fat of the land. The land is too thin for that.

On a larger scale, the same is true for a village. Maybe it can start to feel like a steady state for a few generations, but in reality, those generations are making a grave mistake by living that way. If they're not developing the next level of survival technology, they are dooming their village in the future.
The graph of progress should look like saw teeth, with catastrophes every so often when we realize that what we thought we figured out isn't working long-term.
As I was playtesting yesterday, testing some server fixes, I was noticing how infinite anything makes that particular thing robotic and uninteresting. I don't need to care about it or think about it or consider it or spend it wisely. I just go to the known spot and get more of it, as needed. I was keeping a fire going, and like a robot, every so often I'd walk back to the branchy trees, pick a new branch (respawn time for branches is something like 60 seconds, and yew branches are infinite), chop it into kindling, and feed my fire. It was tedious. The computer might as well have done this action for me, each time my fire ran out. I never had to make a decision. Should I use this wood for fuel?
So.... what if each tree only has one branch to give? Each yew tree only one yew branch? What if the clay node only gives 4 clay before running out? What if the fertile soil node only gives 4 tilled rows before running out? What if each tule reed patch can only be harvested once? What if the ponds run dry (and geese leave) after enough water trips? What if rabbits don't respawn after snaring?
As Eve, you are literally plopped down in Eden, with all of these wild resources in their best possible, full state. Every tree has a dead branch waiting. Fertile soil nodes just brimming. Berry bushes full.

It could even "feel" easy at first, but that feeling is an illusion. You won't make it past age 30 unless you kick it into gear and carefully shepherd these actually-limited resources toward better survival tech before they run out.
And, this pattern should continue, all the way up the tech tree. You are planting berries and carrots, which helps you survive when the wild bushes and rabbits run out, but eventually you run out of water. You are developing the steel ax to harvest more firewood and building wood after the branches run out, but you eventually run out of trees. You develop a pump to pull water out of the ground, but eventually you run out of fuel for the pump. You are developing fertilizer that lets you make your own fertile soil, but eventually you run out of the base ingredients for the fertilizer.
It seems like all of this engenders difficult decisions every step of the way. If I have a bit of grain, do I plant more wheat with it, feed it to my horse so I can travel distances, or feed it to my cows so they produce milk? If I have a bit of fuel, do I put it in the plow to till some rows, put it in the pump to get some more water, or put it in the mill to grind some grain into usable flour?
One question that arises: when I say, "run out," do I really mean it? I'm not sure. Like, if one population strips the wild world bare in some radius, and then time passes before a new Eve, she could actually be stuck with no means to re-bootstrap if nothing comes back, ever. If branches and berries are permanently exhaustible, there's no starting over, for anyone, without moving elsewhere. And wandering around looking for greener pastures isn't very interesting. Salvaging progress from the last failed civilization is much more interesting.
So, I'm currently thinking that everything is "lifetime exhaustible." As far as a player is concerned, each tree only gives a branch once. Each berry bush can be emptied once. But they replentish every hour, so the next Eve has a chance. Wild stuff is always there, slowly building in the background, as a possibility if needed, but it can't be depended on for more than a short bootstrapping phase. After you've got a farm or whatever, a trip out into the forest to pick berries can still happen from time to time.
But some things are perma-exhaustible. Like if you chop down a tree and don't plant a new one, that's it. If you dig a wild carrot up, that's it. And a few trivial things, like tinder and leaves, are still infinite, because it would feel too weird to make them limited.
I do worry that this encourages an Eve strategy of "quit playing and come back in an hour." Like if the wilderness feels too lean, or you mess up too much, waiting an hour will bring it all back and give you a new start.
I could also refresh everything on each new Eve, but again, that seems to make Eve suicide a viable strategy.
If it refreshes on Eve, but only if she's different than the last Eve, then it encourages multiple accounts.
The only way around this seems to be to make everything perma-exhaustible. There's no timing trick that you can use to work around it. If you, or the person before you, exhausted the wild resources, your only choice is to find greener pastures to re-bootstrap. You can find you way back to the old city later.
This reminds me of the book Ishmael. There's an analogy in there about civilizations being like flying contraptions, and it's easy to confuse falling with flying for a while, when we jump off the cliff with our flapping wing suit or whatever. The ground seems to be getting closer, so we flap the wings harder. We look down on the ground below and see an array of other crashed flying contraptions. Why did they crash? We'll never know. But we're not going to crash like them! We have it figured out.

Like every time we find the ruins of an abandoned civilization, we scratch our heads. Why would they ever leave all of THIS? Well, we're never leaving ours, that's for sure.

Just to prevent the map from forever expanding into greener pastures, maybe wild resources could respawn on some kind of glacial time scale.... like every 24 hours, or every week, or something.
Three weeks of 10+ hour days have paid off in a gigantic update that addresses every major issue that arose in playtesting. There are only a few new bits of content in there, but some big changes in the way that the existing content functions.
The biggest change is the new recipe hint system, which shows you what's possible with what you're holding or what you just clicked on. It's a local step in the tech tree that helps you figure out what you can do next. Did you know you can do 26 different things with that sharp stone you're holding?
Food has been changed to stack in your food meter, like it does in most games, but food has also been changed so that wild food sources run out in the short term. No more infinite berry bushes. This is supposed to be a hard survival game, but the tedium of having to live constantly on an almost-empty stomach is gone. You can fill up on any wild food source to buy time, but every time you do, you come closer to long-term starvation as the wild supplies run out.
You now get a message when you die explaining what killed you.
Oh, and something sane happens now if you ever reach the edge of the world.... in 17 real-life years of continuous walking.
Behind the scenes, there are major changes to what's possible in the editor in terms of abstract object categories and objects that can be used a certain number of times before running out (the new berry bush is an example).
If you've been waiting to dive back into playtesting, now's the time.
Full list of changes here:
One Hour One Life is about growing a new civilization from scratch, starting naked in the wilderness, across many human generations. You start the game by being born as a baby, and obviously you are born naked. People can make clothing over time and put it on, but they can also take it off.
The question: how should nudity be depicted in the game?
My creative partner Tom and I parted ways about 3 months ago. Before that, we were all-in on the depiction of nudity in the game, with a character style that looked like this:

I thought it looked interesting and funny. But the detailed nudity seemed like the elephant in the living room for a lot of people. It had the potential to overshadow everything else, and recurrently popped up in discussions about the game (Kotaku comments). For me, an anti-Victorian stance is part of my makeup, and I do want that to shine through my work. But it's not really what this game is about (it's not a statement on nudity). And then there are commercial issues as well. Nudity could make or break the game either way. I could stir up interest and boost sales, or it could turn off the vast majority of people.
I've re-done all the drawings myself since Tom left the project, and I made an early decision in the new character design to keep the nudity totally abstract. After all, these characters don't even have noses or ears, so why show nipples or genitals? They're cartoons. But they're still obviously naked, because they're flesh colored, and they can put on clothing and take it off. (This is just a sample... there will be 100 different characters from a full spectrum of skin tones.)

But is this too tame? Some of my local game design friends say that I'm chickening out. They also say that I'm cutting out something that will make people curious about the game.
And we have Naked and Afraid on the Discovery Channel as a hit show, albeit censored. But people are interested in that premise.
And of course Rust. Maybe there's a difference with 3D vs 2D nudity, though. 2D leaves more room for the imagination (see Scott McCloud), making it more salacious? 3D nudity looks like mannequins, and we can distance ourselves from them a bit.
On the other hand, Rust had nothing but naked MEN for years, and they only recently added women, amid great controversy. Maybe depicting naked men is funny and okay, but not naked women. Like the game Icycle:
https://www.youtube.com/watch?v=u357mY1c2o8
My wife's reaction to Tom's characters was always that they were "creepy" and that they made her feel uncomfortable in they way that they depicted female nudity. Maybe too R. Crumb-ish or something.
So is there some middle ground? Some kind of more abstract nudity that would be less creepy without chickening out?
Someone pointed out the manga character Shin Chan:

And there's the classic "inverted black triangle" for women, though even that has a somewhat creepy history, like the Playboy Femlin cartoon character (NSFW):

Obviously, the Femlin is meant to be erotic, but is there a way to depict cartoon female nudity without that effect? We have so few examples to reference.
A Google search for "cartoon nudity" results in quite an eyeful. So people are right to associate cartoon depictions of female nudity with salacious intent, given the history of dirty cartoons. Maybe there's no way to transcend that association.
Still, I want there to be absolutely no doubt that these characters are naked when they're not wearing clothing. That idea is very important to the heart of the game, while the specific way that nudity is represented is not.
Friends and family testing has been going well. We're right on the verge of being ready for some early, small-scale public alpha testing. The game is in a pretty stable state with a comprehensive batch of starter content (from rocks all the way to forging steel---each game system has an example piece of content in place).
The art collective where we have office space is losing its lease, so we're in the middle of an upheaval as we prepare to move to a new office. As soon as we're settled there, we'll be working on another few weeks of solid content creation. At that point, we'll be contacting our early alpha testers and delivering builds to people.
The development process for this game is intricate with a lot of moving parts. That's been true for some of my other games in the past, but keeping people up to date on what's going on with development has always been a manual, tedious process.
I've been doing a lot of scripting work on the website to turn it into an automated information hub for documenting our development process. The latest news---like this post---is pulled out of the forums automatically and displayed here. There's a log of concept art, and a very straight-forward scanner-to-website pipeline, so we can keep the flow of website visuals coming. And the Update Log automatically catalogs the new objects in each game update. We plan for hundreds of updates, and thousands of objects, over the next few years---there's no way we were going to be posting manual updates about all of that stuff.
Finally, the homepage automatically presents a sampling of the latest information from each source.