@joeyjojo, For rendering I just use WebGL with no libraries. I made a simple atlas texture with all the Liero sprites and I batch them when rendering to reduce drawcalls.
The Netcode is fairly complex and is the thing I’m most proud of, it makes use of the simulation determinism so the only thing that is ever sent over the net are the player inputs. Making sure that everything is deterministic adds quite a bit of difficulty to the development of the game, debugging a desynchronization bug can be quite painful.
I’m using WebRTC to make p2p connections between the players and the room host, this means that when you make a room you effectively become the server for that room.
This has the upside of being really scalable for me, since I don’t have to pay for the bandwidth of the room’s data. It also allows people in remote locations to play with each other with very low latency, since I live in a remote location that latter point is very important to me.
It has it’s downsides too, WebRTC p2p connections often fail if the routers between peers don’t cooperate, just like it happened to Confidant. It also means that when a player leaves the room he created himself everyone in the room will disconnect.