You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently with the manifest/apworld spec, things work off of the assumption that .apworlds will contain exactly one World in them, which is what the fields all refer to. This has caused some friction for both non-world tools released as an .apworld (which is probably a good way to release these otherwise) and also multiple world classes within one .apworld package with Pokemon for instance. I think both of these cases are worth addressing, and to me these seem like good ways without having to change too much of the current system:
For non-Worlds, they can put "game": null into the manifest to indicate this. This already seemingly works okay (and got some agreement as a way to handle this case when it's been discussed in the discord before), but this should be given explicit mention in the docs and the APWorld builder tool should be reworked so that it can package these since currently it just goes through world_types (and so you have to manually put what I'm pretty sure are meaningless version/compatible_version given they're not actually APWorldContainers). Potentially they could also be given a separate extension like .aptool if that seems desirable.
For multi-Worlds, as an alternative to Core: Allow multiple games per APWorld #6233, I think it may be better to stick to keeping a single World allowed and instead introduce a separate "world" type that the common parts can be separated out to as a dependency of the .apworlds (feasible from Core: Do not process datapackage attributes for abstract world subclasses #5468 improving support for "abstract" worlds with no game set). I think this one should get its own extension, say something like .apdep. This keeps the manifest handling for worlds simpler and also more flexible since worlds shipped this way can also have separate fields like authors without having to also add some way to indicate which belongs to which world. It also means that updates for either the core or the dependent worlds can be made separately if wanted, and if there's a nontrivial amount of per-world information, users using only one of them don't have to download it. I also think that keeping to a one world per .apworld system might be simpler for players/hosts as well (although there might be some issues with players handling the dependencies themselves). Core has also mentioned something similar as a possible way to handle common external dependencies for custom worlds, and this could be a better way to ensure things needed by worlds are loaded first, like _bizhawk or generic.
What feature would you like to see?
Currently with the manifest/apworld spec, things work off of the assumption that
.apworlds will contain exactly oneWorldin them, which is what the fields all refer to. This has caused some friction for both non-world tools released as an.apworld(which is probably a good way to release these otherwise) and also multiple world classes within one.apworldpackage with Pokemon for instance. I think both of these cases are worth addressing, and to me these seem like good ways without having to change too much of the current system:Worlds, they can put"game": nullinto the manifest to indicate this. This already seemingly works okay (and got some agreement as a way to handle this case when it's been discussed in the discord before), but this should be given explicit mention in the docs and the APWorld builder tool should be reworked so that it can package these since currently it just goes throughworld_types(and so you have to manually put what I'm pretty sure are meaninglessversion/compatible_versiongiven they're not actuallyAPWorldContainers). Potentially they could also be given a separate extension like.aptoolif that seems desirable.Worlds, as an alternative to Core: Allow multiple games per APWorld #6233, I think it may be better to stick to keeping a singleWorldallowed and instead introduce a separate "world" type that the common parts can be separated out to as a dependency of the.apworlds (feasible from Core: Do not process datapackage attributes for abstract world subclasses #5468 improving support for "abstract" worlds with no game set). I think this one should get its own extension, say something like.apdep. This keeps the manifest handling for worlds simpler and also more flexible since worlds shipped this way can also have separate fields likeauthorswithout having to also add some way to indicate which belongs to which world. It also means that updates for either the core or the dependent worlds can be made separately if wanted, and if there's a nontrivial amount of per-world information, users using only one of them don't have to download it. I also think that keeping to a one world per.apworldsystem might be simpler for players/hosts as well (although there might be some issues with players handling the dependencies themselves). Core has also mentioned something similar as a possible way to handle common external dependencies for custom worlds, and this could be a better way to ensure things needed by worlds are loaded first, like_bizhawkorgeneric.