DesktopTuesday: UX Building Prototypes

There is no such thing as a water block, that is just for minecraft stuff. Here we have just one “block”, that hold the information about its volume.

So the entire body of water is a single contiguous volume? I had assumed it would be broken up into individual voxels, but actually it makes sense to handle everything in one big shape…

Yes, well, more or less. It is neither small blocks nor a single giant object.

For example, checking the collision shapes of a L shaped lake would probably reveal two big boxes. The water is a single entity, like a mob (as two lakes = two entities), with multiple parts, mostly for rendering reasons.

There is a lot of math in the hydrology service to control the water volume, its flow, gravity, pressure, etc…

2 Likes

I was thinking to do it in the way Cities Skylines does it. There, you can make a lake by lowering the terrain to make a ‘bowl’ to put water in, and then place a water source inside of it. The water sources in Cities Skylines have a height variable, which determines when they stop spewing out water. In your scenario (if stonehearth worked this way), when the lake doesn’t evaporate enough water to prevent flooding, the source which keeps the lake intact stops producing water, and all is fine.

3 Likes

Exactly what I meant! :jubilant: Thanks @nikosthefan.

About the above, that wouldn’t work with a stream flowing from a higher level. Currently the physics would make the stream/river stop flowing and run dry if the source stops producing water. I wouldn’t want that. Water sources need to be matched with sinks, unless the requirement is that all flowing water must end at the end of the visible chunk that is being played upon. That could work too, the excess would just run off of the piece of the world we can see, into the “void”.

Well, no. The source only stops after the water-level has reached a certain height. If you drain away said water, by running it along a downwards river, the water will never reach that height, and the source keeps producing water. Or is this not what we are talking about (it’s late here).

1 Like

I think you guys are saying the same thing, the question is what happens to the water coming out of the source? It should theoretically evaporate or drain away, but because the evaporation and the source aren’t directly linked, there’s no way to be sure… so you’re still risking either an Atlantis situation or one where the water effectively runs out and the source provides a tiny trickle which goes nowhere before it evaporates.

I suppose that an explicit link between evaporation and water spawning – e.g. the game tallies evaporated water and causes it to fall as rain in semi-random intervals (depending on season) – would probably work. It would be exactly like the water cycle IRL, or something like a terrarium. If players then had a way to manually increase and decrease the amount of water in the map, we’d have pretty good control over playing with water. However, it would mean that evaporated water is distributed across the whole map, and then runs off into the lower areas (including natural bodies of water), so there’s a high chance that it will look artificial; and again there’s nothing to stop waterfalls from running dry.

If sources, sinks and evaporation in the natural terrain are balanced upon spawning the world, which could probably be done (water going in of body=water going out of body). What is the problem with waterfalls running dry. The fact that waterfalls are running dry would mean that the player messed with the stream in some way, or because entirely normal seasonal processes. Those are things I would expect from the game.

That sounds very sexy. Can we get this? Seeing the world impacted by Hearthling population would be pretty cool. Seems to solve the water fountain/drain problem as well. We’ll probably need an actual map as opposed to the “chunk” we start with to more accurately map weather.

First of all, I want to thank @SirAstrix. While he may seem to be “that guy”, he voiced many things I kept to myself.
To put things in order. First, to SirAstrix.
I’m no professional programmer but I like to tinker with the code every now and then. And because of that I have some intuitive feeling about some of SH’s core systems. Namely, water and building editor.
If I would write that yesterday in my usual grumpy mood, I would say they are “inherently broken”. Thankfully, today is not yesterday, and I’m significantly less… grumpy. So I say they are “inherently limited”. @Brackhar already explained it quite well with his analogy, I probably can’t do it better without knowing specifics. Once again, it’s not direct knowledge as much as intuition stemming from my own “trial and error” and repeated seeings of a single situation. The situation when the existing system has hit the ceiling during its expansion and further patching can’t fix its inherent flaws. So it’s either leaving things as they are, bugs and all, or remaking it from scratch on a completely new level with all the knowledge you obtained during the years.
Once again, I don’t know the specifics, but the “bugs” of both current building and water system speak of some design flaws that can’t be fixed by occasional patches. The problem is deeper than that and lies within the system itself. From what I’ve already seen I can assume that the model of the building is not homogeneous, i.e. different “parts” of it are stored in separate data structures designed based on human perception of what a building is, while from a machine standpoint every voxel is similar and should be treated, processed in a similar manner. And rewriting data structures leads to rewriting of all the “low-level” logic of processing them (depends on how good things are designed in the first place in terms of OOP principles and abstraction layers). This can potentially lead to a “snowball” or “chain reaction” effect where you should rework a huge chunk of code just to get things going again, before you can actually improve them. In terms of bridges, banging in the piles, pouring in the cement and waiting for it to solidify isn’t fast nor is it very entertaining to watch (individual experience may vary).

The thing I do not understand is SirAstrix’s concern in “Stonehearth becoming more RPG”. Note that I like RPGs, so I’m a little biased that way, but I don’t understand what he means by it. What is Stonehearth meant to be and what is it becoming instead?
(note that I also never played, not I plan to, the Legend of Zelda. Just… not my cup of tea)

Now about some of SirAstrix being “that guy”. As I’ve already said, I’m grateful he spoke first because now I feel less hesitant to do so. While I don’t entirely share his rather… dark… view of things, I share his concerns about the dev process seemingly slowing down, when with all the coverage that team expansion got one might expect in to actually speed up. While I understand reworking the code from the ground up is a time-consuming process, I feel like it is slow. SH hit Steam two years ago, and while I wasn’t there during the Kickstarter campaign, two years is still a rather big chunk of time, and two years later for many people SH remains a potential, not an experience.

@Brackhar’s hesitance to speak about things when they are not there yet, when it is unknown when exactly they will be there or even if they will be there at all, is understandable. Not fulfilling the promise is undoubtedly a bad thing. However. I’m sorry if I sound harsh, but folks can’t feed on expectations for too long. They burn out.
I felt that frustration when I heard the next unstable alpha planned “somewhere around the end of August”. I thought, “damn, it takes forever”.
Long story short, while speaking about something that may not make its way into the final game is questionable, leaving informational vacuum is also bad. I don’t know a ready solution for this. I’ve already said that, Radiant is probably the most open team I’ve seen so far. Maybe they can voice their own process of decision-making? Different paths they are considering right now? Maybe not even for the sake of feedback but for “that’s what’s happening right now” effect.

Also, yes, some of you may benefit from playing your own game >_>

3 Likes

This is exactly accurate.

Also fair. We’ll be talking more about some of the stuff I’ve been working on soon. Stephanie has started to allude to this in the recent Desktop Tuesdays.

We do regular playtests as a team, and do play outside of work. But we also recognize that we don’t have full coverage on the experience, which is part of why we host forums to have discussions just like this. Threads like this one help us understand what we may be missing.

3 Likes

That’s what both terrifies me and makes me happy. Minecraft’s system of “source blocks” and “spawned blocks” is made for a reason, but it doesn’t make it any less artificial and unnatural.
Making more “natural” water, however, creates many challenges. Terraria’s water has its own issues in terms of “naturality”: there is a strictly limited supply of it defined on world generation, it can be completely eliminated (by evaporating it on the Hell level) and it can be spawned solely with a “magic item” (yeah, that bucket) or an intentional oversight in coding (users’ water duplication mechanisms based on pumps or manual stream separation).

For Stonehearth I would probably like something even more… realistic. However it may be quite difficult to do. Now I’ve been thinking if the water should have spawning/despawning mechanisms, or should there be a limited amount of it on the entire map.
Does it make sense to model a water cycle in SH (simplified and limited to the map only, of course)?


PS. Also, Dig or Die is very cool about what it does with water. Infinitely spawning at the top, infinitely draining at the bottom, but in the middle you can do with it pretty much whatever you want. The ground is mostly not water-proof, so… many cool things happen.
On the other hand, it is half-built around using water. And you control only one player character, which greatly simplifies things. Also, it’s 2D. So while I may be eager to see water draining through the ground, it may be too much to ask here.

When I backed Stonehearth how many ever years ago on Kickstarter, I saw it as a city-builder with RPG elements. I was sold on the pitch of it being a “community builder where you are constructing Kakariko Village”, as @sdee has stated. When the talk of adding runes to level up your 'lings rather than the current system began, and continued into making it sounds like quests were going to become the center point of the game, this worried me that it was being pushed into an RPG aspect more than a City-Builder. To me, it really sounded like @Brackhar’s vision for this game was basically the experience you got from Dark Cloud 2.

That being said, he did state that he doesn’t have the interest to turn it into that experience, which does make me feel better. At the same time, we’ve still yet to get a good idea of the direction they fully want to take it, and if anything from the indirect talking on the matter, it seems like they don’t fully know either.


@MelOzone, @BrunoSupremo, @nikosthefan, and whoever else is in this debate on water. Why not just do it the same way as Cities Skylines? Y’all are arguing over a complex idea when Skylines has a simple solution.

On every map, there’s a water table/sea level. Anything below that level is underwater, and if the water is added to it or removed from it, then the edge of the map adds or removes from it respectfully. With this, there is also a spring tool, that depending on how large of a spring you put down, depends on how much water flows outward from that spot. If it’s say in a hole, it only provides the hole with water till the area directly around the spring is matched. If this water runs out of said area, it continues to feed water till the area around it is matched, to which the runoff then fills the surrounding area, or drains off the map.

So when your city has a pump taking water from the river, and dumping sludge in another part of it down stream, it may increase the table slightly (depending on flow) where the drain pipe is, but it doesn’t flood the map nor remove the source. Water falls work too because of this balance.

Sorry, didn’t play DC2. But I often compare SH to Dungeon Keeper 2, and after training some of my creatures in DK2 I get attached to them because I invested time and efforts to get them where they are. DK2 already kinda… did it. SH, however, tries to spin it in a slightly another direction: while in DK2 you were an evil Keeper, your creatures ultimately a tools to an end, in SH you are supposed to care about your little guys.
So I don’t see investing more time in particular hearthlings as “making a game more RPG”. How well the game currently manages you to care is another story.

Another thing I would like to see in SH, that is arguably “RPG”, is world exploration, something the game currently lacks. We have the whole map discovered, no underground caverns and buried treasures, no mysteries to solve and secrets to find. In Terraria or Mincraft you hunt collectables/treasures and discover for the sake of it. In DK you search for “map secrets” (even when you don’t need them any more in a practical sense, mission-wise).

Maybe I need to try playing Skylines, since I didn’t quite get this system.

1 Like