Okay, so looking at my last dev log, a lot has changed.
It’s not a game anymore
The more I coded, the better I realized that it would be better to start chopping this one big project to separate pieces:
CardsGame libraries - both client and server side in one place as one big happy monorepo family.
Cards game “portal”, a thing which is using CardsGame libraries to provide some games for players.
CardsGame libraries are intended to be a set of tools initially for myself, but could also become a tool for other people in the future. Colyseus is still the main driver of network connectivity here (I even managed to contribute with some bug fixes for them 😇).
There’s some progress! Since I first started coding this thing it went through a lot of changes:
I ditched Redux and redux-like states on server-side. That was probably already mentioned in the last post. Generally I need to focus on mutations, not replacing the whole state with every tiny change (immutability).
I ditched React for client-side rendering. I wanted to have some nice animations which would move the cards from one place to another. That worked quite well until I then needed to position everything around the circle + around each player in a game screen, where you don’t know the exact number of players upfront.
Added pixi.js for the rendering. I’m somewhat familiar to this rendering as I played around with Phaser game engine for a tiny bit.