~/projects/batomon-pvp-mod
Batomon PvP Mod
I added online & LAN multiplayer to a single-player Steam auto-battler.Dodao sam online i LAN multiplayer u Steam auto-battler za jednog igrača.
Batomon PvP Mod turns Batomon Showdown — a single-player auto-battler on Steam (built in Godot) — into a private multiplayer game you can play against friends. The catch: the base game has no networking code at all, so I added multiplayer entirely from the outside.
Instead of hacking netcode into the engine, the mod synchronises matches through a file-exchange state machine: clients read and write shared state, and a state machine coordinates the lobby and battles. It ships in two flavours with identical logic — an online Friend Versus on Supabase and an offline LAN Versus on a custom C# server — packaged by a PowerShell pipeline that handles the encrypted `.pck` (AES key recovery) and builds self-extracting installers. It's a shipped, actively-used mod (v4.3). Screenshots and the download are on itch.io.
Batomon PvP Mod pretvara Batomon Showdown — auto-battler za jednog igrača na Steamu (izrađen u Godotu) — u privatnu multiplayer igru protiv prijatelja. Kvaka: osnovna igra uopće nema mrežni kod, pa sam multiplayer dodao u potpunosti izvana.
Umjesto da ubacujem netcode u engine, mod sinkronizira mečeve kroz state machine sa razmjenom datoteka: klijenti čitaju i pišu zajedničko stanje, a state machine koordinira lobby i bitke. Dolazi u dvije izvedbe s istom logikom — online Friend Versus na Supabaseu i offline LAN Versus na vlastitom C# serveru — zapakiran PowerShell pipelineom koji obrađuje enkriptirani `.pck` (oporavak AES ključa) i gradi samoraspakirajuće instalere. Riječ je o objavljenom, aktivno korištenom modu (v4.3). Slike i preuzimanje su na itch.io.
HighlightsIstaknuto
Two backends, identical game logic: a Supabase-backed online 'Friend Versus' and an offline LAN variant running a custom C# server.
Adds multiplayer with zero in-game networking — battles sync through a file-exchange state machine, keeping it low-latency and abuse-resistant.
Three modes: a Casual live lobby, a daily-champion Ranked ladder, and an endless Infinite mode.
A resilient lobby state machine: lock-in grace windows, cooperative cancel with an ack handshake, force-start, and drop-kick recovery.
Automated build & installer pipeline in PowerShell, plus encrypted Godot .pck packaging with AES key recovery.
Dva backenda, ista logika igre: online 'Friend Versus' na Supabaseu i offline LAN varijanta s vlastitim C# serverom.
Dodaje multiplayer bez ikakvog mrežnog koda u igri — bitke se sinkroniziraju kroz state machine sa razmjenom datoteka, što daje nisku latenciju i otpornost na zlouporabu.
Tri načina: Casual lobby uživo, Ranked ljestvica s dnevnim prvakom i beskonačni Infinite način.
Otporan lobby state machine: razdoblja zaključavanja, zajedničko otkazivanje s ack rukovanjem, prisilni start i oporavak nakon ispadanja.
Automatizirani build & installer u PowerShellu, uz enkriptirano Godot .pck pakiranje s oporavkom AES ključa.



