First game dev journal

June 15, 2025

My current progress

Game client (frontend)

Implemented with Godot. This is also my first time using Godot and so far I am liking it. It felt much more streamlined and lightweight than Unity. I like GDScript too. It isn't hard to gain momentum with it.

Before I settled on Godot, I tried Love2d and Bevy. I didn't pick Love2d because Love2d is too low-level and lacks a lot of features I need, and I don't want Lua for OOP heavy stuff. I didn't pick Bevy because I was constantly hitting roadblocks with it. I feel like one would have to first be familiar with the wgpu crate before using Bevy.

The reason I tried Love2d was all because of Balatro. I absolutely love its animation and sound effects.

Screenshot of BalatroScreenshot of Balatro

I semi-replicated the animation logic of Balatro's card hovering, dragging effects:

Screenshot of the card hovering, dragging effects

Game server (backend)

So far I have implemented the following:

  • Auth logic: user registration, login, authorization
  • Game room management: create as host, join as guest, leave, kick guest, list all rooms, etc.
  • Websocket / long-polling protocol for real-time communication between the client and the server. This is facilitated by Socket.io. If this teamclouday/GodotSocketIO repo works, then it could save me the hassle of implementing the Socket.io Godot client myself.
  • Tests - for the above
  • Game logic: Work-in-progress - This is the part I am working on. I haven't settled on the core game logic yet. But I want it to be a TCG (Trading Card Game) with less-than-usual unobservable information. I will go over this in details below.

Screenshot of the game server codeScreenshot of the game server code

Screenshot of test suite passingScreenshot of test suite passing

Game design

As I said, I want a TCG (Trading Card Game) with less-than-usual unobservable information. I want the players to be in-control of the game state. Some of the more well-known TCGs includes Magic the Gathering and Hearthstone. I was also a TCG player. I quitted ultimately because I didn't find them to be challenging enough. Here are some of the things I really dislike about the TCGs that I have played before:

  • Players have to learn the "meta"
  • Too many random elements / luck-based (e.g. rolling dice)
  • Always an obvious best action that a player can take given a certain game state (makes the game super boring and predictable)
  • Narrow meta - I wish players could always find their own unique strategies and gain success from them.