RTG2 Architecture, Structure & Scope
whichonespink44 opened this issue · 14 comments
From @whichonespink44 on April 9, 2016 12:11
Hey @Team-RTG/everyone ... just wanted to get your thoughts on RTG2 as I'd like to finalize some architectural decisions so we're all on the same page. Nothing's been absolutely set in stone, but this is where things are at currently. Feedback is most welcome, and I'll update this first post with the latest decisions.
The name
‘RTG2’ is a great way for us to refer to it internally, but the name isn’t going to change - it’s still going to be Realistic Terrain Generation (RTG).
The repo
I was very much in favour of creating a new repo for this, but having thought about it more, I think it would be best to just merge the RTG2 branch into the 1.9 repo and keep it in there. So ‘RTG1’ will have a 1.7.10 version and a 1.8.9 version, and I’ll try to keep them as in-sync as possible, but RTG2 will essentially be the 1.9 version of RTG.
The forum thread
All versions of RTG will live on the OP of the official RTG thread. Until RTG 1.0 is released, the OP will focus on the 1.7.10/1.8.9 versions. As soon as RTG 1.0 is released and stable, we’ll put the 1.9 version as the ‘current’ version, change the content of the OP around so that it’s focused on the 1.9 version, and show the 1.7.10/1.8.9 versions as ‘Older Downloads’ (or similar)
Mod structure
There have been a lot of discussions with regards to how RTG2 could be structured. At first, it seemed appropriate to split it up into a bunch of different mods. For example, maybe we have RTGCore (or RTGLib) which would be the realistic ‘engine’ so to speak, and then biome support would come in the form of modules or addon mods (BOP support would be its own addon mod called RTG|BOP, for example). But I think it would be best for the user (and probably best for RTG) if we didn’t split it up. So in terms of mod structure for RTG2, it’s essentially going to stay as one mod, but it will still be able to act as a ‘library’ for mods like Highlands.
Scope
RTG2’s scope will stay pretty much the same as it is (to generate realistic terrain for biomes in the Overworld without adding any new blocks, mobs, biomes, etc.), but the scope is being expanded a bit to include the following:
- RTG2 will have generic support for all biome adding mods out-of-the-box. This is now possible thanks to Topi’s ‘BGB’ system, and will be an awesome feature for RTG users who want to use their favourite, recently-updated-to-1.9 biome-adding mod without waiting for us to add realistic versions of the biomes.
- RTG2 can generate biomes in the Overworld that wouldn’t normally appear in the Overworld (e.g. Twilight Forest biomes, Nether biomes, etc). RTG2 isn’t responsible for actually getting those biomes into the Overworld - that’s another mod’s job - but if another mod can get TF biomes or Nether biomes into the Overworld, then they’re eligible for biome support from RTG.
- RTG2 can go outside of the Overworld, but it’s still not going to hijack dimensions built by Mojang or mod authors. So there will be no RTG2 in the Nether, The End, Twilight Forest, Betweenlands, Deep Dark, etc. However, dimensions built by users via RFTools or Mystcraft are fair game.
- Biome layouts - Still not sure about this one as I'm not sure how things work in 1.9, but from what I understand, it might be possible to have config options for which biome layout should be used, depending on what mods are installed. There's also Kdot's biome system that is probably out of scope for the 1.7.10/1.8.9 versions, but might live happily in 1.9. Again, I'm not sure what's best here, so feedback on this would most appreciated.
Copied from original issue: Team-RTG/1.9-Realistic-Terrain-Generation#68
From @ragify on April 10, 2016 10:17
The ability to add custom assets (trees, stones, boulders, fallen logs) in the form of schematic to generation and specify frequency and which biome they generate in would be an amazing addition, allowing users to customize the look of their world without any modding knowledge.
The ability to add custom assets (trees, stones, boulders, fallen logs) in the form of schematic to generation and specify frequency and which biome they generate in would be an amazing addition, allowing users to customize the look of their world without any modding knowledge.
Whilst true, that functionality is outside the scope of what RTG is trying to achieve and would be better suited for another mod. In fact, I believe the Ruins mod already does that sort of thing and is fully compatible with RTG.
From @srs-bsns on April 25, 2016 4:14
RE: Mod Structure.
We could always code RTG2 to be like BuildCraft and MineFactoryReloaded. Modular, but released in the same jar. It might help to keep mod support separate, and it will also make it easier to enable/disable support on a per mod basis. This type of setup could also (depending on how we do it) allow other people to easily write their own addons.
That might be a bit of a headache for versioning though.
From @topisani on April 25, 2016 12:27
Modular, but released in the same jar
That sounds really great, lets look into that!
That might be a bit of a headache for versioning though.
not if we just look at it as one thing for versioning. We can even keep it in one repo, just different packages
From @Zeno410 on April 25, 2016 17:31
I think biome layouts should stay with the basic Forge-compatible system: we take what comes out of the Forge calls.
Kdot's biome layout needs to be independent, because it will be used for non-RTG worldtypes. In particular, its gradient systems have a personality somewhat like the early temp/rainfall vanilla system which a lot of people want and which is currently unavailable for default or amplified worlds by any method AFAIK.
From @topisani on April 26, 2016 6:15
yep zeno, biome layouts need to use the forge compatible system, but that doesnt allow you to chose the BOP layout. Thats why it will be possible to chose the BOP layout, or the Highlands layout or whatever, and each of those inject the biomes from the forge registry.
Also, Kdots biome system will be its own seperate mod, which will probably be the recomended mod for placing both BOP and Highlands biome in one world, like CC should be currently
From @Zeno410 on April 26, 2016 16:51
Bop is serving the GenLayers, right? So if BoP is in your mod directory you'll get the BoP layers. Biome layout mods, in turn, override the biome mod layouts. That's very easy for players to understand - if they put in a biome mod, they want that, and get that over vanilla. If they put in a biome layout mod, they want that and get that over either a biome mod or vanilla.
From @topisani on April 26, 2016 17:31
oh yes of cause, but BOP gen layers only get added if you chose their world type. this is to use biome layouts that are normally specific to a world type in the RTG world type. CC or BiomeTweaker or any other mod like that should of cause allways override that
From @Zeno410 on April 26, 2016 18:4
I was hoping we could get the BoP people to serve their biome layers to RTG. I thought you got in a PR?
From @topisani on April 26, 2016 18:54
nope, just got access to the function for getting their genlayers. They arent doing anything RTG specific on their side. And that is probably all we can hope for with other mods like BOP on that regard. Therefore the option that chooses one of the genlayer stacks we have implemented (VANILLA, BOP, maybe VANILLA_LARGE_BIOMES)
So it might be possible for users to select the vanilla 'Large Biomes' layout, in the same way they can choose the BOP layout? If so, that gets a +1 from me!