I’ve been working on a two-player mahjong game for a while now, and I wanted to
post something that isn’t really a devlog — more a thank-you note to whoever
worked on the GL Compatibility renderer.
The short pitch: mahjong, but you only need one human. Solo against an AI with
8 difficulty levels, 64-tile wall, no dead wall. There’s a free browser trial up
on itch.io.
Link: 欢乐二人麻将 | Chinese Two-Player Mahjong (Web Trial) by OldyoungCN
Here’s the part I actually wanted to write about.
I picked GL Compatibility early and honestly didn’t think much about it at the
time. I just wanted the game to run on cheap Android phones and in a browser
without me babysitting a fallback path. What I didn’t expect was how much of a
non-issue rendering would turn out to be. Two and a half years of tile layouts,
hover states, animated panels, a 3D table layer that I later disabled, and I
basically never had to think about the renderer again. It just kept working on
everything I threw at it.
The other thing is exports. Windows, Android AAB, and Web all come out of the
same project with nothing but preset differences. For a solo dev that’s the
difference between shipping three builds and shipping one. Same story with ENet
— the LAN mode is built on ENetMultiplayerPeer and the three-RPC setup was
enough for a host-authoritative match. I never needed to reach for anything
fancier.
Two honest notes, both my fault, not the engine’s:
-
I built the entire UI procedurally in GDScript instead of using scenes. It
works, and it made tweaking tile spacing fast, but the file is now well past
10k lines and I regret it. If you’re starting something similar: use scenes,
or at least split your UI builders into their own scripts before it’s too
late. Godot gave me the rope, I used it. -
GDScript is quick to iterate in, which is exactly why I let one script grow
to that size. The engine isn’t the bottleneck there — my own discipline was.
Anyway. No real question here, just wanted to say thanks to the engine folks.
If anyone wants to try the browser build, it’s WebGL so it needs a real browser
(Chrome/Safari/Firefox) — in-app browsers tend to choke on it. Feedback on the
AI difficulty curve is very welcome.



