yet another hearthstone recreation
  • Rust 68.7%
  • GDScript 26.8%
  • TypeScript 3.7%
  • Lua 0.8%
Find a file
2026-10-16 23:02:33 +02:00
client Properly send randomly generated usernames to clients 2026-10-16 23:02:33 +02:00
docs Add server docs 2026-10-14 21:33:32 +02:00
js-client Add server docs 2026-10-14 21:33:32 +02:00
packs/@steelburn/epsilon Add drawing cards 2026-10-13 21:24:18 +02:00
server Properly send randomly generated usernames to clients 2026-10-16 23:02:33 +02:00
LICENSE Add license and readme 2026-10-09 01:03:56 +02:00
README.md Begin adding proper godot client 2026-10-16 21:08:08 +02:00

steelburn

yet another hearthstone recreation. this time, the idea is a bit more refined. a combination of efforts and what i've learned from hearthstone.js, hearthstone.gd, hearthstone.py, and oakdom

rough idea

all calculations handled in rust server. server sends json card objects to client. client is just ui interface / packet sender. client does no calculations.

server handles multiple games at the same time.

cards made in Lua. only handled server-side.

on client attack: send packet to server -> server accepts -> client plays animation. -> cards updated (through ids)

packs

first party support for packs

packs have a server and a client component (client companion located in /client of pack)

server component can send packets to activate its client companion. this only works if the pack is installed on both the server and client, since the client needs to have the client companion installed. should minimize security risks.

rough todo list

  • begin work on proper client made in godot
  • add test deckcode (30 sheep)
  • add card logic using lua (see oakdom)
  • add first-party pack support
  • add server config
  • packs should have client companions (/client/) that only install on the client
  • pack negotiation screen in queue for when two peers with different packs installed. mark packs as must have, etc