- First, remove the multiplayer layer from SmoothStep2D core and develop it as a separate project/plug-in, that can even be used with other frameworks. This way a lot of unused code will be removed from the framework, not only for non-multiplayer games, there is a default implementation for serialization, unserialization and state interpolation in some Built-in game entities (Quad, Sprite, Container), and in a 99% of cases, you will override this default implementation by your own to optimize the information you send in each package. More important, in a 100% of cases, you will hate to send large JSON strings thru the WebSocket, and that’s another change in the multiplayer protocol, it must use Binary data (ArrayBuffer) instead of JSON strings. Providing this functionality in various ways other than the current “real time scene state snapshot interpolation”, will be also good for example, in turn based games, where user actions and scene state doesn’t need to be updated continuously thru the WebSocket.
- Continuing with the topic of removing unused code, the entire box2d library is embedded into SmoothStep2D, and this functionality claims to be in a plug-in, cause not every game need those realistic physics. There are no dependencies between SmoothStep2D collision detection utilities and box2d, so it can be completely removed and the classes that use it, can be presented as a plug-in. An addition to this change could be provide an interface to hook box2d events, right now the ss2d wrappers for box2d only let you emulate realistic rigid body physics and create a single joint to move it with the mouse or the finger. You need to extend or even override those wrappers with box2d if you want callbacks for collisions or other box2d events, so, an interface to facilitate this task or make it easy to extend and create those event listeners will be a good feature for sure.
For sure I will not be able to do all this changes in Holidays, and as I said, I expect to find people interested in actively contribute to the project. I’m focused on the game project and the needed improvements in SmoothStep2D to make it run as smooth as possible, so, the framework will be updated and improved anyway.
For the ones interested in what other people is doing with the framework, there is a Japanese guy that has been doing things with SmoothStep2D, you can find a demo of a space ships game in his repository here and the blog entry about his experience with SmoothStep2D here.
Thanks to the people that are talking about the framework in his blogs, and that are making suggestions and reporting bugs via mail, remember that you can also report those things via GitHub Issues panel, letting others know about your ideas and contributions.