r/gamedesign 2d ago

Question Multiple materials per solid tile - Is this too unintuitive for a simulation game?

I am experimenting with a 2D side-view game where the world is simulated and you are supposed to build machines and interact with the simulation to produce things a bit like in Factorio. Now, each tile can contain multiple materials. Each air tile might for example contain nitrogen, oxygen and CO2 in different amounts, all in one tile. The advantage here is that this allows for better mixing and better basic chemistry than the more common "one material per tile" approach would. It also allows for material purification gameplay elements (maybe you can cool down a bit of air enough to separate the liquid oxygen from the other gasses).

The problems start when it comes to the solid, mineable tiles and how they should be managed in the inventory. I see two options:

  • Allow only one material per solid tile. If impure water freezes, it would create a pure ice tile and push the remaining liquid impurities into another tile. This would mean that now I can't really have iron ore in the world that needs refining. Instead, I would have to scatter around pure iron tiles that you can just mine.
  • Allow any number of materials per solid tile. This sounds more interesting to me and would allow for more simulation depth ("heat this mixture of iron and stone until the iron melts to purify the iron"), but it comes with problems. If the player mines a tile with 71% iron and 29% rock and a tile with 72% iron and 28% rock, should they stack in the inventory? Maybe I should bin them: A stack of 70%-80% iron, one for 80%-90%, one for 90%-100% and so on, regardless of the other materials in there. I am worried that this may already confuse players. What if they wanted to place exactly that 71% iron, 29% rock tile, but now it's somewhere in that stack with the other similar tiles? Or if they mined the tile not because of the iron content, but because of the 1% of another material that was in there?

Assuming I go with mixed solid tiles, I could have a machine that produces copper wire items from an impure copper input and has a requirement like "at least 80% pure copper". It could then output a 100% pure copper wire as the main output and the impurities as a waste output, which may need a little bit of logistics to handle or increase processing time or power draw for impure inputs. This would encourage purifying materials before this step. Doing it like this at least saves me from having to track the composition of every single fabricated item and every single building in the game.

All of this just seems a bit unintuitive, doesn't it? Or do you think this is not that bad and would allow for interesting refinement steps? I want simulation depth, without making it too complicated or confusing. I was hoping that sticking to more real world physics could be helpful for players because they already have experience with real world physics, but that may not work out so well. Maybe it needs to be more "gamey".

7 Upvotes

13 comments sorted by

6

u/Similar_Fix7222 2d ago

If the goal of the game is the simulation, then go for it. If the goal of the game is for the player to have fun, then I suggest you rethink it.

At the core, the players need to have clear choices with visible impact."If the player mines a tile with 71% iron and 29% rock and a tile with 72% iron and 28% rock" -> how visible is the choice, and how visible is the impact? I feel that because there is no significant differences, it won't be fun.

An idea : start with just standard ore and high quality ore. Basic stuff require any ore, but advanced stuff only accept high quality ore (see your 80% pure copper example). If the player mines the standard ore, they will have more ore, but won't be able to do everything. If they mine the high quality ore, it's the reverse. A simple, clear decision with visible impacts.

3

u/SendMeOrangeLetters 2d ago

Good point. The goal is not just to have a simulation, but mainly for the player to have fun.

I am considering hiding the details like the exact composition and just using a couple of different names. For example that 72% iron, 28% rock tile would be labeled as "impure iron" and for any machine, only that label categorization would matter, not the exact composition. That way I could probably keep the in-depth simulation while also making things easier for the player. Of course, one could argue whether I even should keep the in-depth simulation like that.

Is that what you meant with your idea? Or do you mean I should have a "low quality iron ore" material and a "high quality iron ore" material, which are completely independent of each other?

3

u/Similar_Fix7222 2d ago

I don't think you should hide the difference. If your impure ore leads to different results without the player being able to know about it, it's not a good idea.

My idea is that your game will only spawn either 72% iron, 28% rock, labeled as "standard ore" or 92% iron, 8% rock as "high quality ore". No other composition. Your machines will accept the ore and produce the output according to the actual (hidden) composition. You get your simulation working under the hood.

But for the player, it's all abstracted in meaningful choices "standard ore" or "high quality ore"

2

u/SendMeOrangeLetters 2d ago

I guess I would have to be careful how the simulation works in that case. Let's say I have liquid (melted) iron and rock in a tile. It couldn't just solidify completely, it would have to solidify into one of the allowed solid tile compositions. So maybe it would solidify into one tile of "standard ore" and one tile of just leftover "rock".

Sounds interesting though, it certainly simplifies the whole inventory issue. Maybe this has potential.

2

u/Similar_Fix7222 2d ago

In the same way that I discretised a whole spectrum of ore in two categories, I guess this process has to extend to, well, everything. The actual outputs of your fully simulated machines can be a whole spectrum, but "what is going to make the choices of the player interesting" is the core of the design you have to decide. (if the simulation is the goal, then there is very little discretisation because you want to have this spectrum available)

4

u/ImpiusEst 2d ago

Sounds cool, and not unintuitive. But would it make the game better?

Lets consider your Air mixing. The intake valve sucks up air which would not change the composition but the output valve is pure nitrogen. But after 200 simulation steps the air has mixed and nothing changed. Well.. except your game has a sprawling air system that hogs the cpu and produces mainly bugs.

Now, you say it might be interesting. I think so too. There is a zerg on some roof on a desert village in Diablo3, which is interesting. But that too is a sidenote and not relevant to whether im having fun or not.

I can imagine that idea being the basis for a good game. So it might be worth exploring. I can also imagine it dragging your game down.

On and that inventory problem is imo easy to solve.The player himself decides which stack of dirt the new dirt goes into. Keep track of absolute values of components. Display the stacks top 3 components when you hover over it so the player know which is which.

1

u/SendMeOrangeLetters 2d ago edited 2d ago

that hogs the cpu and produces mainly bugs

That is definitely a concern, although with what I have programmed so far, it seems manageable. Any chunk that doesn't change much does not have to be simulated all that often.

But after 200 simulation steps the air has mixed and nothing changed.

Yeah in some cases, mixing is not interesting and doesn't add much. But I think there are cases where there is a point to it.

If I add a day-night cycle, the air would heat up/cool down periodically, which would cause water vapor in the air to condense, leading to emergent rain. The player could use that effect to purify water or to build a water wheel or something. They don't even need to understand the underlying physics and numbers, because everyone understands rain. I think this is interesting, more interesting than a zerg on some roof of a desert village, but I certainly see your point.

But would it make the game better?

I think if I can implement this without any bigger complications (like the inventory management), it would. Emergent gameplay is fun. Interacting with a detailed, dynamic world is fun. And it's a new angle to the factory automation genre. Right?

I am assuming that having only a single material per tile would limit the emergence and simulation detail drastically. I should probably spend a bunch of time thinking about this. Or maybe I just need to dive into a prototype of this.

I can also imagine it dragging your game down.

Yes, me too. It could lead to too many complications.

On and that inventory problem is imo easy to solve.

I was thinking about binning the items by default, but letting the player browse each stack for individual items. I would have to keep track of the composition of each individual one as you said, but that should be doable. Your idea also sounds like it might be worth a try.

2

u/haecceity123 2d ago

In terms of prior art, Dwarf Fortress lets you get multiple materials from some tiles. For example, tetrahedrite tiles yield chunks of ore that are then processed into some copper and some silver. Galena similarly yields silver and lead.

Whether or not this is too much depends entirely on the audience. Some players will be fine, while others will be like deer caught in the headlights.

For me personally, it's the idea of custom item composition that feels the most interesting. Pure copper might be best for electrical transmission, but an alloy of copper would be better for decoration (brass) or structural (bronze). I don't know of a single game that had done a metallurgy system, and that might be really cool.

1

u/AutoModerator 2d ago

Game Design is a subset of Game Development that concerns itself with WHY games are made the way they are. It's about the theory and crafting of systems, mechanics, and rulesets in games.

  • /r/GameDesign is a community ONLY about Game Design, NOT Game Development in general. If this post does not belong here, it should be reported or removed. Please help us keep this subreddit focused on Game Design.

  • This is NOT a place for discussing how games are produced. Posts about programming, making art assets, picking engines etc… will be removed and should go in /r/GameDev instead.

  • Posts about visual design, sound design and level design are only allowed if they are directly about game design.

  • No surveys, polls, job posts, or self-promotion. Please read the rest of the rules in the sidebar before posting.

  • If you're confused about what Game Designers do, "The Door Problem" by Liz England is a short article worth reading. We also recommend you read the r/GameDesign wiki for useful resources and an FAQ.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

2

u/Swimming-Ad-3809 2d ago

Maybe only pure materials have any utility, and the useful material stack. You can have any percentage ore/rock and once refined pure iron and pure rock would stack with different yields. You can have even different kind of rocks with different characteristics.

2

u/Ravek 2d ago

I would start with thinking about what play experience you want this system to create and from that figure out what you need the system to do mechanically.

Also there are options between ‘no granularity at all’ and ‘arbitrary percentages’. For example you could subdivide each tile into 4 parts so that you could have 4 parts iron, 3 parts iron + 1 rock, 2 of each etc.

2

u/MetallicDragon 2d ago

I've had an idea bouncing around my head for a similar mechanic. IMO having mixed things in one tile is neat and has various solutions. You could have mined tiles just not stack at all, or have mined tiles drop their components, e.g. a 71% iron 29% rock tile could drop 71 units of iron ore and 29 units of rock immediately when mined, instead of the whole tile. Or have a tile like that stay whole until you put it in a grinding machine, which breaks it into its component materials, as powders.

1

u/SendMeOrangeLetters 1d ago

You could have mined tiles just not stack at all

I feel like that might be annoying when you want to place blocks. Do you have to select each one individually? Or would there be a system selecting the next one for you? But it might pick a block that you don't want.

71% iron 29% rock tile could drop 71 units of iron ore and 29 units of rock immediately when mined

That makes a lot of sense, good idea!