-
Notifications
You must be signed in to change notification settings - Fork 15
Description
I think we should consider using SpringBoard as a tool for making games as well. It is already possible to develop functionalities using the editor, but it is necessary to restructure them into game or map gadgets/widgets in order to actually use them. It would be better if instead we could simply use them directly when exported into a game or map.
Generally, the desired game creation procedure is as follows:
- Users start development of a new functionality in SB by creating a new
Extension - They add an
Editorin order to have data fields, but the editor itself doesn't contain any logic outside of data validation. - They create a
Commandwhich actually implements the desired functionality. - In case the functionality depends on events, such as IO or game world changes, they implement a
Statewhich is the event handler. - Finally,
Editorcan also export the data used to initialize theState.
Editor (SB-only data-preparation and export) + State (event IO) + Command (modifications) = Game functionality.
This idea would cover a lot of use cases, but would still miss some of them, most notably:
- Creation of game GUIs. Should GUIs be developed within the State?
- LUS unit mechanics. How can we make our states work as LUS event handlers?
- Unit/Feature Defs and similar. A def editor as a built-in functionality?
- Particle effects. Probably a particle effect editor or exposing an API to one such editor?
In addition, some changes are required to the State system. Currently, states won't get any events until they are set, and there can be only one State set at any time. We should allow registering additional listener states that can receive events. Still, only one state should(?) control the key and mouse, like it does in Spring.