Add list of world generators as module extension #1795

Open
msteiger opened this Issue Jun 25, 2015 · 14 comments

Projects

None yet

4 participants

@msteiger
Contributor
msteiger commented Jun 25, 2015 edited

Currently, a module must be loaded in order to discover all world generators. There is an extension that defines the default world gen, but the others are unknown. As a result, players do not know which world gens. are available and in which modules.

I therefore suggest adding the list of world gens. as a (standard) module extension (probably together with a list of gameplay modes). Thus, required modules for a gameplay or a world generator can be activated automatically.

@MarcinSc
Member

I have a feeling this is what I've been talking about recently. I believe the "isGameplay=true" modules should define a list of world generators they are compatible with and only those should be allowed to be chosen to start a game with, if this gameplay module is chosen.

@immortius
Member

I think we've had this discussion before. My thoughts:

  • Having a gametype specify supported world generators would prevent mods adding new generators
  • Having generators specify supported gametypes would prevent mods adding new gametypes that can use them
  • Probably need an additive combination of the two
  • Maybe make the restriction optional too
@MarcinSc
Member

If you had "gametype" module specify world generators, and you wanted to add a new generator - just create a module with that generator and have the previous "gametype" module as a dependency and set the flag for the new module to be "gametype" as well.

@immortius
Member

But it isn't a gametype.

@MarcinSc
Member

Then maybe introduce a "setting" module type that defines "gametype" module and "worldgenerator" type and allow only choosing a "setting" module.

@MarcinSc
Member

Alternatively, add 2 new flags to "gameplay" module:

  • allow non-compatible modules,
  • allow non-compatible world generators

And then modules can also define what "gameplay"s they are compatible with, the same for generators.

So, if a "gameplay" module allows only compatible modules, only those that mark as being specifically compatible with that gameplay module and version can be enabled in addition to those that are dependencies of that "gameplay" module. The same applies for world generators.

That will allow strict approach to "gameplay" types defining what is being included, as well as a free-form if someone wishes to create a "Minecraft" experience.

@Cervator
Member

This is getting into "optional" / "supporting" module territory IMHO :-)

Maybe use "soft" systems on either side plus disclaimers. A module can declare a default world it expects, in which case any other choice would provoke a disclaimer / confirmation prompt. Yet then another module could declare itself to override / augment something specific which would either remove or alter the disclaimer.

At no point do we then explicitly block anything or need an action taken elsewhere to make a change in a new module available.

@MarcinSc
Member

I'm fine with that, as long as the disclaimer is clearly visible to the user and specifies that this might make the game unplayable.

@immortius
Member

Hmm, what I would like to see is less world generators and more things that introduce additional facets and rasterizer steps. What I had in mind was that rather than all-or-nothing world generators to choose between, a mod would be able to provide additions on top of a base world generator. This would help avoid these sorts of problems.

@immortius
Member

That aside, I'm happy with whatever solution as long as it doesn't block support for mods.

@Cervator
Member

So kinda like how the Caves module could be enabled with Perlin and expose additional world config options for it. I like that.

@MarcinSc
Member

Caves is probably a bad example, as it causes trees growing midair and requires changing all the other facets to stop that.

@Cervator
Member

Hehe. But it is an example :-) We just need to make it better :D

Maybe we should have @Josharias tackle a new tutorial episode on clean integration of a new facet attaching to an existing world gen. Doooo eeeeet!

@Cervator
Member

Related topic I wanted to put somewhere: we should flag world preview options better and maybe default to off. TTA currently does technically try to produce a preview but it is empty and takes maybe 20-30 seconds with a stalled game. Then crashes the game if you try to return to the main menu :-)

In that case it may just be easier to flag it as un-previewable until effort is put in to making it.

If better cooperation between world generators / facets is introduced where preview won't be as brittle that could be another option too. Needs hardening in general like we've talked about on occasion.

@Cervator Cervator added this to the v1.0.0 milestone Oct 12, 2015
@Cervator Cervator removed this from the Alpha 1 - v1.0.0 milestone Oct 25, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment