frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

Show HN: TowerPanic – a family party game on a small FastAPI realtime engine

https://towerpanic.com/
2•ms209495•1h ago
I want to show you the game I created recently and tell you whole the story/experience - including backend/latency/scalability.

You can try it quickly without an account - I created game demo rooms (EU/US/JP) - links below - just be aware that anyone with a link can access join the game.

Let's start with short description of the game itself:

This is the TowerPanic game - you are standing on one of four towers, during each round some of towers crack, and some of these lean, and finally one of these colapse - you need to watch out to not be on the failing one. It's a multiplayer game for whole family. This can be also used as an icebreaking game - for people in any age. The game is safe for children - no violence, no strangers, no chat, no ads. Parent creates an account (free 14-day trial, then a paid pass) and starts the game - others join using a QR code or a link.

Behind the game there is an interesting backend engine - I willdescribe it in a moment.

Let's start with the history of this whole project: - I was playing with asyncio and fastapi - As an exercise I created a reliable chat application (multiple rooms, in each room each user can reliably broadcast a message to all other users) - I extracted communication to separate layer - creating network/application layer interfaces - 'reliable client' interface for client and 'state machine' interface for the service on server. - With these interfaces - I was able to create other service - an 'sgame' (simple game). With verified interfaces and created services (chat, sgame) I was able to ask AI to generate other tools/games - I was impressed by these results - the games/tools worked well - I deployed them on a remote server - I was surprised that the latency was very good - almost everything worked smoothly

I tested the tools and games with my children and one of the game was really great. I decided to make this game public - I chose 'TowerPanic' name for it.

I prepared an account/payment server for this game (as a separate FastAPI application). This was very good choice: - the game servers keep rooms only in memory - nothing persistent (rooms have expiration date) - the account server keeps all persistent data (it uses database)

Because of this split I was able to figure out how to upgrade and scale frontend and backend independently - without significantly impacting users.

I optimized the communication layer - so that it works in finite memory - only finite number of recent messages is kept, and I sent a full service snapshot (full state) to the lagging clients.

The backend process (FastAPI/python) is limited by python GIL (only one core can be utilized) - to utilize all server cores I used HAProxy with consistent hashing to distribute rooms - so that users can be redirected to proper backend process.

I tested how many rooms a single server can handle - it handles hundreds of active rooms in parallel with no significant latency drop.

Before making it public I noticed that latency in other region of world might be higher and this could influence UX - I confirmed this using artificial delay on my remote server.

I decided to deploy the application in three regions - EU, US, JP - to ensure low latency (below 150ms) in most of the world. The room is created in region closest to the user (best latency from the browser to backend).

I needed also to prepare some legal documents (terms, privacy, refunds) - thanks to AI this was much easier. I'm a backend engineer, frontend/UI/UX were designed by me but code was generated by AI.

To summerize all this work: - I'm happy that I was able to deliver complete game/complete product - I think the whole work took me about 20 evenings - I'm impressed that it was so short - I think this is because the technology I used is popular and all fits well - AI was great as a peer (to discuss the options for distributing the load, discuss were to locate servers, or discuss how auth/payments work under the hood, ... - based on this I could choose the best option) - AI was great for doing the non work which I'm doing ineffectively (frontend/UI/legal docs).

The game is available at https://towerpanic.com/?ref=hn

I will appreciate your comments/feedback:

Product: - did you meet any obstacles to play ? - how smoothly it worked ? - please specify your location if it didn't work well - most important thing/things to improve ? - anything else ... Solution/Engineering: - one thing you will change in the architecture / approach ? - anything else ...

If you don't want to register you can play directly using below links (2 rooms for each location, max 10 players in each room/board). Choose best location:

DEMO ROOMS (expire: 19 October 2026 at 22:00 UTC):

EU: https://engine.prod-de-1.towerpanic.com/b/hn1/join/AUB3lS3Y_... https://engine.prod-de-1.towerpanic.com/b/hn4/join/ASlA3J43U...

US: https://engine.prod-us-1.towerpanic.com/b/hn2/join/AUCCS_x9d... https://engine.prod-us-1.towerpanic.com/b/hn5/join/AVQbs_01N...

JP: https://engine.prod-jp-1.towerpanic.com/b/hn3/join/Afj600qp5... https://engine.prod-jp-1.towerpanic.com/b/hn6/join/AUpDUuB1W...

Comments

alparamo•1h ago
Works good, I noticed that edge towers are more likely to fall. Maybe just statistic insignificance, maybe the rand algorithm

Show HN: Petal, open-source CoScreen/ScreenHero finally free

https://petal.live/
126•thedracle•9h ago•33 comments

Show HN: I wrote an email app that accepts only one sender per inbox

https://clova.email/
93•edpin2000•10h ago•64 comments

Show HN: TowerPanic – a family party game on a small FastAPI realtime engine

https://towerpanic.com/
2•ms209495•1h ago•1 comments

Show HN: Give (low vRAM) local sLLMs codebase-wide context with SQLite (attempt)

https://github.com/govindgcoder/arcKode
2•iamgovindg•1h ago•0 comments

Show HN: Ask a technical question, get an animated explainer you can interrupt

https://openlume.com/examples/3f65f6ce-87bf-4c81-a34b-3a1ec82f0ed1
5•shadaba•4h ago•0 comments

Show HN: I'll Call You Later, an interactive 3D browser short film

https://film.jashtechno.com
3•Jashwanth_13•1h ago•0 comments

Show HN: Graphicle, a Rust port of Graphify with memory for coding agents

https://github.com/graphicle-ai/graphicle
42•KarLexAI•12h ago•11 comments

Show HN: A guided 3D Leonardo da Vinci museum, built in code

https://museumofages.org/w/vinci
85•micstradev•17h ago•34 comments

Show HN: GitVolt, open source fast Git GUI (Tauri/CEF)

https://gitvolt.com/
2•francislavoie•3h ago•0 comments

Show HN: I think Apple should have built this a long time ago

https://copytap.netlify.app/
2•zacattackjuice•3h ago•3 comments

Show HN: Timur's Chess – A 14th century chess variant with giraffes

https://timurschess.com
20•LarsDu88•3d ago•5 comments

Show HN: Guitoro, a virtual guitar you strum with your keyboard

https://guitoro.com/
553•talccc•1d ago•155 comments

Show HN: Pulse Local, a Mac budgeting app whose AI models run on your machine

https://pulseos.finance
115•niztk•1d ago•70 comments

Show HN: XY Music Notation

https://music.xy.dev/
81•jmole•1d ago•76 comments

Show HN: Spotatui, a Spotify TUI/GUI without web API rate limits

https://github.com/LargeModGames/spotatui
87•LargeModGames•1d ago•18 comments

Show HN: Use your OpenAI subscription to create audiobooks

https://pdftomp3.com/connect-ai/
170•janpmz•1d ago•90 comments

Show HN: Parsimony – an open-source benchmark for how much code AI models add

https://parsimony.lasu.dev/
77•lasu•1d ago•17 comments

Show HN: How random are you?

https://lab.specr.net/rigged-draw/
209•vunderba•1d ago•116 comments

Show HN: I built a tool to track what AI leaders say and how their views change

https://blumify.io/people
116•gcsydney•1d ago•76 comments

Show HN: Dub Anything – Dub videos in each actor's own voice

https://github.com/swax/dub-anything
5•swax•7h ago•3 comments

Show HN: Every open government tender in the world (Over 250k)

https://tenderportal.io/
10•interstellarish•13h ago•2 comments

Show HN: Code Like It's 198x

https://code198x.com/
5•stevehill1981•14h ago•1 comments

Show HN: SolidCraft – Open-Source Parametric CAD in Rust (With MCP Support)

https://github.com/bherbruck/solidcraft
140•bherbruck•2d ago•51 comments

Show HN: T0: We trained a 256M SOTA open-weights time-series forecasting model

https://github.com/theforecastingcompany/tfc-t0
12•LTMeyer•12h ago•0 comments

Show HN: Jevcrawl – A web crawler for AI agents with no LLM in the crawl loop

https://github.com/RayenMlayeh/jevcrawl
21•rayenmlayeh•1d ago•3 comments

Show HN: Atticus – Hold-to-talk voice assistant for macOS that runs on Claude -p

https://github.com/SaarthurR/atticus-mac
115•SaarthRanka•3d ago•30 comments

Show HN: Aside – Mac app that suggests what to say next during calls

https://asidehq.app/
4•yoelgal•10h ago•0 comments

Show HN: AxiomCode Graph, Reducing coding agent rework with formal methods

https://github.com/AxiomCodeAI/axiomcodegraph
10•HaoleiZ•10h ago•8 comments

Show HN: Mixdog – stretch your Claude/ChatGPT subscription with 63% fewer tokens

https://github.com/tribgames/mixdog
2•tempest1033•10h ago•0 comments

Show HN: Mosh-rs, Mosh rewritten in Rust with scrollback and Windows support

https://github.com/Arunjay4213/mosh-rs
20•Arunjay__•1d ago•9 comments