The-Architect-Crew / the-architect-game

Minetest subgame, for stability, consistency and fun
GNU Lesser General Public License v2.1
6 stars 0 forks source link

Rework oregen; Add variations frames; Add several decorative blocks #79

Closed theraven262 closed 2 years ago

theraven262 commented 2 years ago

Added new ores and ore generation. Detailed overview Main ideas behind these changes:

  1. Our plan is to make a semi-creative world. I have taken this to mean that ores should be made more common overall. So when needing a specific material for a build, the only requirement the player needs is to know exactly how deep the material generates (with some materials that are rarer being the exception to this), and then they are basically certain they will attain the material when they go mining. This is mostly inspired by my observation that trying to find a specific material (I believe it was basalt in my case) is so based on luck that it was basically like rolling a dice. With a catch that every time that I don't roll a high enough number, I lose 30 minutes of my time. That should explain everything regarding the changing of most ores to strata types.
  2. The chunks were added to prevent players from blindly just going w+m1. I know that people will still want to be able to turn their brain off when mining, but introducing the chunks should make players have to stop sometimes and craft the chunks into blocks. This should improve the overall pacing of the gameplay, but I can not determine exactly how many chunks should drop to make these breaks just right (needs testing). There are of course inventory space concerns to be addressed here as well, but since the addition of crates/barrels and their kind, these issues should be already solved.
  3. Randomness of ore drops is intentional (for example the rare drop of silver from copper ores), this should make the game more fun (especially if one keeps and eye on their inventory when a rare drop occurs).
  4. Addition of sandstone/desertstone version of ores should allow players to be able to play in any biome. There is still asymmetry present in these surface ores, coal still generates in stone for example. Oh, and there is sometimes gold in sandstone, cause I thought that would be cool.
  5. Perhaps the most important thing regarding the new ore layers is that they're meant to make players dig horizontally. This is because the previously stated reasons, as well as it being more fun not to be solely concerned with reaching the optimal depth before digging for ores. Also, vertical map limitation in order for the new worlds to be added later on.
  6. Vertical limitation is at -2000, it is not implemented as of yet. I have placed a placeholder obsidian layer where the edge of the world should be, but this should be changed into something that can not be dug by players.
  7. Yes, some ores generate more at different depths. For example amber is very common close to the surface, but absent deeper on. Actual changes: Strata:
    • Basalt strata at -24 and -32. These are not full layers but more like big ore sheets.
    • Coal layers at 128, 32 and -32. These are actual strata and generate basically everywhere, rich with coal and amber.
    • Huge marble layers at -256, -768 and -1024. Each of these is more vertically stretched than the previous one. Marble is the main source of gems and lapis.
    • Gigantic marble layer at -1538. Huge.
    • Granite surface ores. Cause it can look cool, granite generates as huge rocks occasionally on the surface. Granite is the only source of tin, deeper on it also contains rare metals such as gold, silver and the new addition, electrum (which just drops silver AND gold).
    • Granite strata are at -512 and at -1280. As with marble, huge.
    • Hell layer is around -2000. Basically a bunch of lava surrounded by two thick obsidian layers. Why would anyone want to visit this place is a good question, yet I have a feeling that its gonna be a popular spot for building. Blob ores:
    • Iron meteorites are generating close to the ground and above (in the rocks and surface materials). Should be fun to mine these. Also, yes there is a bunch of iron everywhere, but let me remind you that iron blocks are now an actual building material and not a meme any more.
    • Serpentine generates everywhere from 0 to the bottom of the world.
    • Porphyry is kinda rare, starting to generate at -1024.
    • Chalk generates a lot in sand underwater, also a bit in surface rocks.
    • Mud is kinda reminiscent of the original. Yet, I used blobs to generate it here to make things look a bit more interesting. Sheet ores: I kinda hate how these look, but the looks are not related to the gameplay. Hopefully.
    • Basalt generates in big sheets from 40 to -1024. Basalt is very common close to the surface.
    • Slate generates in smaller sheets -128 to -1024.
    • Obsidian generates in sheets from 0 to -2048. I kinda want to have it around everywhere to surprise people during the tool progression part of the gameplay.
    • Smaller sheet plates of iron generating in surface rocks 64 to -128.
    • Turquoise generating more until -512 where it falls off.
    • Malachite generating in big sheets from -1024 downward.
    • Serpentine also generating everywhere in smaller sheets.
    • Lapis generating a bit more rarely in medium sheets from -1536 downward. Scatter ores:
    • Coal as in mtg.
    • Tin only in granite as mentioned above.
    • Copper like in mtg, but also in malachite.
    • Iron in all surface rocks.
    • Gold mtg + also in sandstone cause its cool, but mostly in granite.
    • Electrum generates in stone, but is more common in granite.
    • Mese also generates in marble.
    • Diamonds in granite, obsidian, basalt and of course stone.
    • Amber is most common near the surface. In the coal layer, in shoreline sand, mud, dirt, in sandstone and rarely in surface stone.
    • Silver also in granite, more common.
    • Mithrill is now the meme.
    • Amethyst in granite and marble, slate and sandstones.
    • Garnet in marble, slate, obsidian, granite, basalt
    • Lapis in marble. This is basically everything that was added for now.
neinwhal commented 2 years ago

General:

Minor:

Ore drops:

Oregen:

Regarding oregen amount and quantity, that would require actual gameplay to determine, so ill slide all these concerns to push it in first, and then we can adjust accordingly. So far, from a quick overview, everything looks fine in this regard.

neinwhal commented 2 years ago

Everything sounds good to me, but since I consider it a major change in how oregen is managed and with the introduction of a hard boundary, I'll like to hear more opinions on it. @lisacvuk @lumberjackgames I'll leave this up till the end of this week. Once there's another approval before then or it reaches the deadline; this is clear for merging. ^ reminder if anyone is going ahead with the merge, do squash the commits and add descriptors accordingly for tidiness

EDIT: btw, the minor mtl comment refers to the fact that there's mtl data inside the obj file itself usemtl mtllib, not with regards to the already removed mtl file, but its just a minor thing as stated, just scratches my ocd a bit :p

lisacvuk commented 2 years ago

Zoomed over the code, seems alright, +1

mannijac commented 2 years ago

Overall I like the idea of stratification. I do think -2000 might be too shallow for a long running game map and that it is more efficient in terms of map size and cleanliness to have players be able to mine down below their general area for more of a material than to have to wander to new map for more materials, especially if players start protecting blocks of underground areas over time. This may also eventually lead to more surface degradation and open mine shafts over deep mining.

theraven262 commented 2 years ago

Overall I like the idea of stratification. I do think -2000 might be too shallow for a long running game map and that it is more efficient in terms of map size and cleanliness to have players be able to mine down below their general area for more of a material than to have to wander to new map for more materials, especially if players start protecting blocks of underground areas over time. This may also eventually lead to more surface degradation and open mine shafts over deep mining.

I don't have anything against adding more layers so that we can expand down to -6000 or so. I thought it would get too monotonous, essentially having an alternating layer of granite and a layer of marble. But the depths can be reworked so that we add more basalt layers closer to the surface and more obsidian ones closer to the bottom. Though I would probably have to rework the layer thickness for each so that there is still some progression in that regard.

The original idea didn't leave too much space (stone) in between layers, as the layers were meant to be a source of ore and fill in everything at their depth. Essentially, the depth is more dependent on how many more world layers we would like to add in the future. I would consider the surface/sky height to be around 2000, as carpathian mountains can generate well above 512, and some people might want to build high. Leaving us with a world of 8000 height with the new idea, twice as much as originally, yet I don't see us making that many worlds that the height of 2000 would be fully utilized.

I wanted to make people mine horizontally, rather than just straight down. This is why the ores are stratified and essentially very close to the surface. I wouldn't like having to mine down 4000 blocks only to know that then I'm able to search for the ore that I need. Of course this can still happen with very rare ores such as porphyry and mithril. Yet, I don't like having no certain way of knowing if the ore which I am looking for will show up at all during my mining session.

I also see that there is an opposite argument which I could also take, ore rarity increases the need of players to trade in these ores. So, while I support the presence of trading on the server, in this case the availability of the ore that I decided to build with is no longer only dependent on noise, but rather also on someone else finding the ore and setting up a shop. Which when I think about it, and consider that the shops should be easy to set up, I find contributes to the gameplay and therefore is beneficial to the overall experience.

The issue arises if no one sets up a shop, or if all the shops are bought out. Making the only source of the ore be noise. And this is why a balance in ore generation is required, if we want the players to both trade in ores and be able to mine enough of the ore in order to build. I would say that the amount of ores required for building in most cases is related to how the specific ore is used. And with more depth available comes the need for more balance.

For example, gold is used for details, it should therefore be more rare. Marble can be used for details, but with the addition of variations, very many things can now be built with marble (one can build most of a building using marble variations). I am of course not able to figure out all the uses of a material, and thus I can't balance this out by myself. Still, I did some changes in this direction when making granite, marble, coal, basalt and iron generate much more often than in mtg/darkage. As I mentioned before, I am considering iron to be a more common building material now, because I see many uses for it. I don't see as many uses for what is essentially recolored iron, copper, bronze, tin, silver etc.

You might notice that obsidian looks rather bad in the form of any variation. Actually I find it as useful for building as it was before the variations were added. I did add two giant strata of obsidian to the bottom of the world, but this was a more thematic thing, I don't find obsidian useful, but it fits the theme of hell and the whole thing was rather easy to implement, so why not. I'm open to the idea of retexturing obsidian so that its variations become more distinct, as I kept with the original look for the current textures.

Overall as we have to agree upon some of the things such as specific ore rarity and at which depth, I think the best way of making sure that everyone's ideas are considered is to post them on this thread or make a new issue. I'll be adding/changing the oregen as per any agreements we make, and if we don't manage to agree upon anything new I'll just increase the depth to -6000 and try to populate the underground with ores as well as I can.

neinwhal commented 2 years ago

Do start a new issue for more in-depth discussion if required and link back here. Having this discussion here might result in a buried thread.

mt-frontier commented 2 years ago

@theraven262, what you have laid out sounds good. -6000 should be plenty I think but we can always expand more and regenerate lower levels of map to clean up if needed.

Just to share some thoughts that popped in my mind was maybe a shallow/easier to mine section with a good mix of layers of all the most useful materials as you described and then a deeper section with wider bands of the most useful building materials to make a pseudo biome feel at different layers. Each section could have pockets of "premium" blocks, maybe with some light mining obstacles (obsidian pools?) deeper down and rare items peppered around to keep the large cavern exploring interesting.