Async Multiplayer Stub
Posted: Sun May 15, 2022 12:10 pm
I was starting to work on my fork of a PyGame multiplayer stub program (a program that you may extend into an actual multiplayer game, which in my case would be (irrelevantly) an detective game similar to the popular Among Us game but is free software and hopefully more flexible) hosted at git://git.andrewyu.org/pygame-multiplayer.git. Discussion with some people from #libregamenight on LiberaChat convinced me to use LÖVE as Lua tables are in my opinion easier to handle than Python dataclasses.dataclass and LÖVE has a cleaner programming interface.
The goal is to be able to scalably have players see each other move with a reasonably low amount of latency and minimal overhead. Both 'every player connects to a non-playing server' and 'every player connects to a host's game' are acceptable, though the former is preferred as this ensures that no player has special permissions over the game's movement traffic, which makes future anti-cheat extensions easier.
I have used Lua before, mainly in general playing-around and Minetest modhacking. However, I have no experience with concurrency and networking in Lua. Though it is likely that I will eventually dive into these topics, I am looking for an example program that fulfills part or all of what I described as it may vastly speed up my learning process and can speed up the development of the actual game.
The goal is to be able to scalably have players see each other move with a reasonably low amount of latency and minimal overhead. Both 'every player connects to a non-playing server' and 'every player connects to a host's game' are acceptable, though the former is preferred as this ensures that no player has special permissions over the game's movement traffic, which makes future anti-cheat extensions easier.
I have used Lua before, mainly in general playing-around and Minetest modhacking. However, I have no experience with concurrency and networking in Lua. Though it is likely that I will eventually dive into these topics, I am looking for an example program that fulfills part or all of what I described as it may vastly speed up my learning process and can speed up the development of the actual game.