arjanfrans/realtime-multiplayer-in-html5

Remove React, HTML forms as dependencies

Opened this issue · 4 comments

Correct me if I'm wrong but right now it's not possible to install the game engine without installing React and other HTML related dependencies.
However, many games do not rely on HTML at all and prefer to implement all the GUI inside the canvas.

It would be great if there could more separation of these dependencies, by either moving the React/HTML game to another repo or into some sort of examples folder, if possible with it's own separate package.json that users would not be required to install unless they want to run the React code.

I use React just for the login and room joining. The login and room lobby is not really a part of the game itself. Having this part in HTML was easier to implement. The game logic itself is just the canvas.

I like the idea of an examples folder with different client implementations.

But still, even thou conceptually they are different parts, it all gets down to the fact that right now to use the game engine you have to install a bunch of unrelated stuff because there's only one package.json.

Ideally using the game engine would only require downloading the dependencies of the game engine itself.

This project is not a game engine. It is an example implementation.

It would be nice to turn it into an engine, but it would require some more work.

Thank you for your response.
I agree it can be overwhelming to create a fully re-usable engine that can be use as a drop-in component to many different games.

Having said that, I'm of the opinion that separation of concerns is paramount in all software projects, so what I call "engine" could be understood by just being the part of the code that is not related to game implementation and which , if isolated from the implementation it self, would make the refactoring of the game logic much easier and less phrone to bugs (see: #6 ).

So in that broad sense, any multiplayer game does have "engine" code in it, even thou the "engine code" is currently not separated from the game implementation itself.

Sidenote: I hope you take my comments mostly as friendly suggestions and naive observations and don't feel like you have to undertake any development related to of whatever I write on these issues. Thanks!.