NOVA-Team / NOVA-Monorepo

The core API of the NOVA voxel game modding system
https://nova-team.github.io
GNU Lesser General Public License v3.0
66 stars 23 forks source link

[RFC] "SuperNOVA" #225

Closed SoniEx2 closed 7 years ago

SoniEx2 commented 7 years ago

I believe NOVA-Core should be split into a library called "SuperNOVA". This library should be a library rather than a framework and it should provide things such as:

But NOT:

This library should have no external dependencies. This library would be designed for use by split mods.

Split mods are mods which are split into "library" and "implementation". SuperNOVA would be geared at the "library" part.

Unlike NOVA, SuperNOVA would be lightweight, self-contained (i.e. can run in a sandbox, doesn't load mods, etc) and it'd leave implementation details up to the user (for shadowed jars) and/or engine. SuperNOVA would not have "wrappers".

SoniEx2 commented 7 years ago

Unresolved questions:

asiekierka commented 7 years ago

I'm afraid the answer to "a project died because it was too overcomplicated" is not "let's make it more complicated". Sorry.

SoniEx2 commented 7 years ago

I don't wanna make it more complicated. I wanna simplify it.

I need that "small set of abstractions" library, but I don't want a "fully-featured modding API". With the former, you use the game's normal modding API, but your code can be easily ported between games, which is the feature I want. With the latter, you're doing Java all over again ("write once, run anywhere").

RX14 commented 7 years ago

@SoniEx2 If you don't want to use NOVA, don't use NOVA.

SoniEx2 commented 7 years ago

@RX14 I do want to use NOVA, just... in a sandbox...

RX14 commented 7 years ago

You can use NOVA in a sandbox, and your wrapper can choose not to use most of the features in core. NOVA core doesn't do classpath introspection or mod loading without a wrapper.

SoniEx2 commented 7 years ago

I can have NOVA-Core without NOVA-Core?