Things We Recommend be Built on Top of Nu's API (Networking, AI, etc) - bryanedds/Nu GitHub Wiki
Nu probably won't need any more subsystems built into it. As of writing this, we probably already have all the subsystems we need. Of course, we'll continue to expand the features offered by existing subsystems. It makes more sense for user space code to implement non-intrinsic functionality like procedural foliage generation since these things tend to be either too game-specific or of too large scope to want lowered into the engine.
It is possible for a game engine to have too much functionality built directly into it. When a game engine does, it takes too much control / agency away from the game developer and ends up demanding everything the user does conform to a prescribed implementation path, even potentially warping a game's design. A generalized game engine should have user control as a first class priority. If a generalized game engine tries to do everything, the first trade-off is user control.
So a list of things we are recommending be built on top of Nu's API rather than lowered into Nu directly -
- Networking
- AI
- Procedural Generation
- Custom Animation Systems
- Analytics
Now, implementing these in certain ways may result in user requests to expose new functionality from the engine's existing subsystems, which we absolutely will prioritize and provide. However, the bulk of the work for these concerns needs to be driven by user space code (IE, code written on top of Nu's API) rather than being by developing a new subsystem integrated directly into Nu.
The above feature that might be surprising for being driven from user space code is networking, since most mainstream engines try to provide this via an integrated subsystem. However, with Nu's unprecedentedly powerful functional event model, there's a lot more room for user space code to implement this than in a typical game engine. That said, there may be a case for lowering common parts of networking functionality directly into the engine as we learn more about the specifics of networking for Nu. So we're flexible enough to handle new understandings as they take shape.