Stonehearth

Stonehearth

Starkium 9 apr, 2024 @ 10:04
Remake in Unreal Engine 5?
I'd say all the tools are available to work on a spiritual successor to Stonehearth in UE5. I'm interested in pursuing this goal, I have almost all the plugins / stuff I'd need for it, but I'm just one dude. Are there any other devs out there who would be interested in joining me to tackle this endeavor? We'd be able to solve all the performance related problems that Stonehearth suffered from that ACE couldn't really get around.
< >
Visar 16-30 av 84 kommentarer
Bu11rider 3 jun, 2024 @ 4:33 
Would Unreal be the ideal engine for a game like stonehearth?
YetiChow 3 jun, 2024 @ 20:46 
Ursprungligen skrivet av Bu11rider:
Would Unreal be the ideal engine for a game like stonehearth?

Not in the slightest. The devs said themselves from day 1 that if any existing engine had been able to do the job, they wouldn't have bothered making their own engine. Part of the genesis of Stonehearth was the proof-of-concept for new technology (at least, completely new at the time) that the founders worked into their custom engine right from the start.

And in the end, RIOT games ended up buying the whole Team Radiant studio to get hold of their tech innovations (admittedly, more on the fighting game engine for Rising Thunder than Stonehearth) -- Radiant's DIY work was simply that impressive.

Not that it stopped ill-educated "gaming commentators" from suggesting a switch to Unreal or other "professional" game engines from equally early on. Marketing pitches (aimed at game developers) leaking out into the consumer/gamer market have become basically the death-knell of any kind of respect for craft among devs -- every capital-G Gamer has heard about whatever BS tech demo lit up the last big trade show (e.g. in Unreal's case it was Nanite), and is fully confident that it's the tech which will make The Perfect Game and any failure to live up to that ideal is simply a skill issue on the development team's part.

Given the 10+ years of innovations and additions to Unreal since the Stonehearth devs first began work, and the fact that Stonehearth exists already as a point to aim for, it would probably be possible to make a passable imitation of Stonehearth as a fresh project in unreal. On the surface, it could look the same and sound the same and feel at least familiar. Underneath, it would be nothing like the original Stonehearth and would need to have a lot of limitations that the original doesn't; since the whole point of the original was to not be restricted by the limitations of existing engines at the time.
Starkium 5 jun, 2024 @ 14:22 
Ursprungligen skrivet av Bu11rider:
Would Unreal be the ideal engine for a game like stonehearth?
To be honest it's not as easy to mod unless you plan it in ahead of time, but it is the most powerful for number of things you can render at once and great for multiplayer performance.
Starkium 5 jun, 2024 @ 14:25 
Ursprungligen skrivet av YetiChow:
Ursprungligen skrivet av Bu11rider:
Would Unreal be the ideal engine for a game like stonehearth?

Not in the slightest. The devs said themselves from day 1 that if any existing engine had been able to do the job, they wouldn't have bothered making their own engine. Part of the genesis of Stonehearth was the proof-of-concept for new technology (at least, completely new at the time) that the founders worked into their custom engine right from the start.

And in the end, RIOT games ended up buying the whole Team Radiant studio to get hold of their tech innovations (admittedly, more on the fighting game engine for Rising Thunder than Stonehearth) -- Radiant's DIY work was simply that impressive.

Not that it stopped ill-educated "gaming commentators" from suggesting a switch to Unreal or other "professional" game engines from equally early on. Marketing pitches (aimed at game developers) leaking out into the consumer/gamer market have become basically the death-knell of any kind of respect for craft among devs -- every capital-G Gamer has heard about whatever BS tech demo lit up the last big trade show (e.g. in Unreal's case it was Nanite), and is fully confident that it's the tech which will make The Perfect Game and any failure to live up to that ideal is simply a skill issue on the development team's part.

Given the 10+ years of innovations and additions to Unreal since the Stonehearth devs first began work, and the fact that Stonehearth exists already as a point to aim for, it would probably be possible to make a passable imitation of Stonehearth as a fresh project in unreal. On the surface, it could look the same and sound the same and feel at least familiar. Underneath, it would be nothing like the original Stonehearth and would need to have a lot of limitations that the original doesn't; since the whole point of the original was to not be restricted by the limitations of existing engines at the time.
You don't really know what you're talking about as far as unreal limitations dude. I have a friend who can sim 250,000 workers on his project. Unreal is perfect for moving this much data and rendering, but it's not so easy to add mods later without having planned around it.
YetiChow 5 jun, 2024 @ 21:47 
Ursprungligen skrivet av Starkium:
Ursprungligen skrivet av YetiChow:

Not in the slightest. The devs said themselves from day 1 that if any existing engine had been able to do the job, they wouldn't have bothered making their own engine. Part of the genesis of Stonehearth was the proof-of-concept for new technology (at least, completely new at the time) that the founders worked into their custom engine right from the start.

And in the end, RIOT games ended up buying the whole Team Radiant studio to get hold of their tech innovations (admittedly, more on the fighting game engine for Rising Thunder than Stonehearth) -- Radiant's DIY work was simply that impressive.

Not that it stopped ill-educated "gaming commentators" from suggesting a switch to Unreal or other "professional" game engines from equally early on. Marketing pitches (aimed at game developers) leaking out into the consumer/gamer market have become basically the death-knell of any kind of respect for craft among devs -- every capital-G Gamer has heard about whatever BS tech demo lit up the last big trade show (e.g. in Unreal's case it was Nanite), and is fully confident that it's the tech which will make The Perfect Game and any failure to live up to that ideal is simply a skill issue on the development team's part.

Given the 10+ years of innovations and additions to Unreal since the Stonehearth devs first began work, and the fact that Stonehearth exists already as a point to aim for, it would probably be possible to make a passable imitation of Stonehearth as a fresh project in unreal. On the surface, it could look the same and sound the same and feel at least familiar. Underneath, it would be nothing like the original Stonehearth and would need to have a lot of limitations that the original doesn't; since the whole point of the original was to not be restricted by the limitations of existing engines at the time.
You don't really know what you're talking about as far as unreal limitations dude. I have a friend who can sim 250,000 workers on his project. Unreal is perfect for moving this much data and rendering, but it's not so easy to add mods later without having planned around it.

Bruh you might want to go back and watch some of the Desktop Tuesdays and try to understand how immediately (and immensely) ignorant that statement shows you to be.

The challenge in creating a game like Stonehearth isn't "simply" simulating a whole lot of agents -- you can do that easily with tech from 20 years ago. The difficulty comes from making those agents reactive and interactive. Stonehearth's hearthlings aren't just "set and forget" monotask workers, the entire time that they're working on a task there's a risk that the task parameters (pathfinding, availability of materials, access to a workbench, etc etc) might change. When one of those parameters does change, the entire task queue needs to be updated -- even with all the tricks being used to simplify tasks (such as hearthlings "claiming" resources and workbenches that they'll need later, not just immediately), there's still potential for things to go awry (e.g. a claimed resource being stolen by goblins, spoiling, etc), and so the game can't assume that any pre-planned tasks will happen according to the plan. It has to refresh and update those tasks at every step. That creates magnitudes more data flow than you imagine -- and worse, the data is not static; even as one task is checking through available resources to claim another task may already be claiming one of those resources. Managing that, and preventing conflicts and race conditions, is a hell of a lot more complicated than just throwing 250k tasks out into a queue.

I've seen the tech demo you're describing, and I can tell you from a glance that none of those tasks involved any communication between agents -- it was simple one-way information flow, with no interdependency of task order. In other words: the demo picked 250k jobs to assign to 250k agents, and never looked at the task list again. That doesn't work for an actual game.

Unreal is a game engine built for high-graphics first -- it's very good at crunching lots of pretty polygons; everything added more recently with the aim of improving its compute power is bolted on. It's not an engine built from the ground up with the express goal of accurately simulating a lot of agents in a complex dynamic world -- at the end of the day, Unreal was still originally built to support fancy looking corridor shooter games. That's always going to be its DNA. Bolt on as many systems and addons as you like; it doesn't change the fact that Unreal works in a fundamentally different way to how Stonehearth's engine does.
BrunoSupremo 6 jun, 2024 @ 5:38 
Those demos with high amount of entities are not useful data.
They usually about the "new" ECS that unlocks these potentials. Well... Better late than never i guess. One of the (many) reasons radiant did their own engine was because they created it using ECS, like 10 years before Unity and Unreal implemented it.
It is one of the reasons why it is easy to mod it too.

That all said, game jams have prototypes in like a weekend. With your skills, and this friend which seemed to be even more skilled, a quick prototype would not be a hard task, probably a few days only. Until there, not much point in arguing about it.
Senast ändrad av BrunoSupremo; 6 jun, 2024 @ 5:41
mrxak 8 jun, 2024 @ 15:05 
A couple guys made Stonehearth 11 years ago. No one is denying they were very smart guys. But their techniques aren't new in 2024. Computer hardware is a lot better. It's utterly laughable to me that people think it's some kind of supernatural feat that can't be replicated today.

I dislike the idea of tying this particular project to Unreal (or any other proprietary engine) because of the serious dependencies that imposes on the project. Stonehearth ultimately died because of a large commercial entity snatching it away from us players. I think it would be a mistake to risk that again by getting in bed with another large commercial entity, and my preference would be for an open source community-driven project that anyone can build on and fork to their heart's content without getting mixed up in any sketchy licenses.
YetiChow 9 jun, 2024 @ 23:50 
Ursprungligen skrivet av mrxak:
A couple guys made Stonehearth 11 years ago. No one is denying they were very smart guys. But their techniques aren't new in 2024. Computer hardware is a lot better. It's utterly laughable to me that people think it's some kind of supernatural feat that can't be replicated today.

I dislike the idea of tying this particular project to Unreal (or any other proprietary engine) because of the serious dependencies that imposes on the project. Stonehearth ultimately died because of a large commercial entity snatching it away from us players. I think it would be a mistake to risk that again by getting in bed with another large commercial entity, and my preference would be for an open source community-driven project that anyone can build on and fork to their heart's content without getting mixed up in any sketchy licenses.

Ah, but it was never about the techniques alone -- yes, the techniques could be replicated more easily with modern technology. In exactly the same way that a digital artist can easily replicate the Mona Lisa these days.

So why do none of those re-creations hang in the Louvre?

It's because the technique is only part of the story. Having access to the technique or tool doesn't mean knowing how to use it effectively, or being able to even understand how it really works. That's why simply saying "oh, ECS or U5 or [insert magical wonder-tech here] is so much better now, that would make Stonehearth better!" so obviously misses the point -- engine limitations were only ever part of the story. The challenges that Stonehearth overcame ranged from some purely technical ones at one extreme of the scale, to some purely player-facing/UX challenges that frankly could have been solved with MS Paint and Notepad.

Plenty of the challenges fell in the middle though, where it was part technical limitation and partly a player-facing concern. A perfect example: enemy camps vs town walls, and how that wastes game memory because there are all these camps of enemies that can't get into your town. That issue isn't really a technical issue, the devs figured out early on exactly what was happening and why... the problem becomes: how do you solve that and deal with the enemies building up without making the game un-fun? The enemies could break down walls, but that ruins the fun for people who like building big pretty walls. The enemies could just leave soon after finding there's no path... but then all you need to do to trivialise enemies is dig a 2-block-deep moat around your town and call it a day. The devs tried both approaches and neither was satisfying; which is why they went with the visitors system instead -- that's an incentive to keep your town accessible. Saying "just use [insert latest and greatest game engine here] to allow more enemies at once" misses the point -- you still end up with the exact same breaking point, it just happens at let's say 30 camps instead of 10 now.

Nobody is saying that Tom or Tony or any of the other Radiant devs (remember that in the end the team got kinda big) are some kinds of wizards; all they had to work with was the deep understanding of their own tools which they built themselves. But that's kinda the point -- because they made some of those tools themselves, they knew things about the creative process that can't be recreated except through a hell of a lot of trial and error.
Panzerechse 10 jun, 2024 @ 14:44 
@Starkium

If you manage to produce a Stonehearth 2, that can deal with large populations...then you would be my hero!

@YetiChow

"enemy camps vs town walls, and how that wastes game memory because there are all these camps of enemies that can't get into your town."

Make them build a ladder or rope at the wall/into a trench and slowly climb.
Make them swim, if there is a moat with water.

All of this is already in the game.
KoB89 10 jun, 2024 @ 17:02 
I would love to be part of bringing this game back. I feel as though I never got to play it to its full potential. Unfortunately I don't know how to code or anything. I know website development and marketing though if that could be at all helpful.

I always told myself that someday if I had the money this would be a game I would invest in to be remade. Maybe someday that will still be a possibility.
BrunoSupremo 11 jun, 2024 @ 5:42 
Ursprungligen skrivet av Panzerechse:
@Starkium

Make them build a ladder or rope at the wall/into a trench and slowly climb.
Make them swim, if there is a moat with water.

All of this is already in the game.

Now you have to calculate the pathfind plus this new algo for walls and water. You just exponentially increased the lag. They will need to calculate a path, and when failed, recalculate it but now considering climbing a wall (and then going down later), ok where the ladder go? You can't just say something like the first wall they meet, cause there is no such thing, the whole path is a single thing. You can't guarantee that the ladder up (then another down) will even lead to a path being completed, so you have to recursively check this all again other times, for other places too
Panzerechse 11 jun, 2024 @ 10:30 
But the npcs already do that in the game...just watch them building a house or gathering algue inside the water....

You really want to tell me these codes can´t be used for an attacker?
BrunoSupremo 11 jun, 2024 @ 19:24 
They are different.
Items can be interacted at adjacent blocks, so there is a 1 block radius around them. If not on the ground (not even this reachable 1 extra block region), the item itself will automatically request a ladder right next to it, going down until it reaches a block, probably ground. The same for roofs. Walls will simple check the current highest block and order scaffold at that same height.
Imagine you are pathing around the terrain, the pathfinder find a wall as its next step. Do you just mark it as a ladder spot and continue searching above, or do you try to go around? Ok, you decide for the ladder, and after doing a bunch of calculations, it results in a failed path. Now what? do you try the same thing but moving the ladder one block to the side? If it fails again, will you keep testing every next block until something is valid?
Now you have way more stuff to check and combinations, you get way more lag.
Senast ändrad av BrunoSupremo; 11 jun, 2024 @ 19:40
YetiChow 11 jun, 2024 @ 19:40 
Ursprungligen skrivet av BrunoSupremo:
It is possible, i never said it wasn't, but it has a cost.
See, every block they place, changes what paths are possible and what are not, you can build a wall and suddenly cut off their only way to reach something, now go and recalculate it. Items will simple request a ladder when too tall, that is how they place ladders to reach the lamps or other stuff, same with roofs. You can't have the terrain do that. Well, you can, but where?
Imagine you are pathing around, the algo find a wall as the next step. Do you just mark it as a ladder spot and continue searching above, or do you try to go around? Ok, you decide for the ladder, and after doing a bunch of calculations, it results in a failed path. Now what? do you try the same thing one block to the side? If it fails again, will you keep testing every block until something is valid?
See, now you have more stuff to check and you get way more lag, not linearly.

This.

To put it a shorter and more simplistic way for those who think it's as simple as re-using code from hearthlings: that just results in goblins building ladders all over the place, without any "smart planning", until literally the whole map is connected again. Then you get swarmed by everything all at once, and the wall becomes worse than useless -- it's now a liability that just causes everything to stack up into one mega-wave, assuming your game hasn't crashed under the pathfinding costs first.

the Team Radiant devs already came up with a better solution -- "locking out" sectors that the game recognised had no path through them so that the game wouldn't waste time looking for paths in them. Unfortunately, because the player is able to create paths at any time, locked-out sectors can't stay locked forever -- any time a player interacts with something in that sector, the sector has to be unlocked and checked again the next time a path is required. Of course, if the locked out sector is inside the wall (or any area that's accessible from the town but not the outside), and the player is constantly interacting with it (building, planting/chopping trees, mining) then it's just going to keep checking, failing to find a path, re-locking and unlocking again the next time a change happens to the terrain.

When you understand the systems that underly the "town land claiming" and the map chunks, it's very easy to use them to lock out sections of the map "for later", or to make large no-man's-land areas to force enemy camps to spawn in areas you want them to. It's also very easy to create limited access points that give you plenty of opportunity to deal with enemies without blocking access to the town.

Unfortunately, most players won't explore this -- it's so much easier to just wall the town off and trivialise the attackers. Which is why this "performance problem" really boils down to a game design problem -- you need to encourage the player to keep their town accessible, and then the performance issue largely just goes away instead. There will always be some mountains/rocky areas that cause issues, but as long as the player doesn't interact with those areas frequently, the game will quickly mark them as inaccessible and stop spawning camps there.

Hence the previous comment about "having access to newer and better tools doesn't necessarily mean knowing how to use them effectively." Building Stonehearth 2 is not simply a matter of throwing more processing power at Stonehearth 1 -- if that would have worked, the original devs would have done so already. They knew about this tech as it was being developed, and a couple of times they even addressed how/why a new tech being announced at the time was exciting but they couldn't just bolt it into Stonehearth.
Senast ändrad av YetiChow; 11 jun, 2024 @ 19:44
mrxak 11 jun, 2024 @ 20:20 
I'll let you in on a little secret: the player doesn't actually expect the pathfinding to be flawless or update itself a thousand times every second for every entity just in case something in the world has changed. We're talking about simulating the movements of humans, or at least humanoids. Humans don't choose the absolute best path whenever they're going someplace. They pretty much take things one step at a time, going from waypoint to waypoint in a not especially efficient way, and sometimes get lost or run into obstacles requiring rethinking and adaptation. This is okay.

The problems of a required object or ingredient not being available by the time a character gets there is a gameplay challenge, not a programming challenge. The player should manage and defend their resources better so the character doesn't end up arriving at a stockpile and scratching their head wondering where that thing has gone. Characters should probably reserve things so they aren't all trying to grab the same block at the same time, but that should be the extent of it. If the game plays out in a way that involves some lost time from characters getting confused, that's okay, balance the game around that.
< >
Visar 16-30 av 84 kommentarer
Per sida: 1530 50