Przejdź do głównej zawartości

Novactorio

🧪 Zobacz animowane bramki jakości — typecheck · build · lint →

Przeglądarkowa gra o automatyzacji fabryk w duchu Factorio, napisana od zera w TypeScript z ręcznie zbudowanym silnikiem Canvas 2D.

Novactorio (repozytorium: Factorio-web-game) to kompletna gra przeglądarkowa: oryginalny silnik 2D, chunkowa generacja nieskończonego świata, łańcuchy dostaw, taśmociągi, sieci rur, AI wrogów, zanieczyszczenie, multiplayer co-op, 23 lokalizacje i płatny poziom premium przez Stripe.

Stos: TypeScript 5.5 (strict), React 18, Vite 6, Supabase (Auth, Realtime, storage), Stripe, Deno Edge Functions, Cloudflare Pages/Wrangler.

Najważniejsze cechy

  • Ręcznie pisany silnik — ~2 500 linii renderowania Canvas 2D bez frameworków gier (bez Phasera, bez Pixi).
  • Głębia w stylu Factorio — taśmociągi, inserters, sieci rur, drzewo badań, zanieczyszczenie, ewolucja wrogów.
  • Nieskończony świat — chunkowy teren z szumem Perlina, płynne przewijanie.
  • Multiplayer co-op — Supabase Realtime rozgłasza pozycje graczy i akcje budowania (place/remove).
  • 23 języki — i18n przełączany w runtime; polski i angielski w pełni przetłumaczone.
  • Zapis w chmurze — snapshoty świata w Supabase (world_snapshots.save_data).
  • Monetyzacja premium — subskrypcje Stripe Checkout (Starter/Premium) przez Deno Edge Functions; webhooki aktualizują profiles.premium_tier.

Stos technologiczny

WarstwaTechnologia
JęzykTypeScript 5.5, strict: true
UIReact 18 (overlay), TailwindCSS
BuildVite 6
RenderowanieRęcznie pisany silnik Canvas 2D
BackendSupabase (Auth, Realtime, Postgres, Storage)
PłatnościStripe Checkout + webhooki (Deno Edge Functions)
Edge functionsDeno (supabase/functions/)
WdrożenieCloudflare (Wrangler)

Struktura repozytorium (najważniejsze)

Factorio-web-game/
├── src/
│ ├── game/ # engine.ts, renderer.ts, systems.ts, world.ts, noise.ts, ...
│ ├── render/ # moduły pipeline'u renderowania
│ ├── core/ # silnik/systemy/typy
│ ├── components/ # UI React: AuthScreen, BuildMenu, ChatPanel, ...
│ ├── services/ # auth, coop, trade
│ ├── config/ # env, flagi admina
│ └── i18n.ts # lokalizacja w 23 językach
├── supabase/
│ ├── functions/ # stripe-checkout, stripe-webhook, trade-fee-checkout, trade-webhook
│ └── migrations/
├── docs/ # dokumenty planistyczne (np. plan-NETWORK.md)
├── tools/ # skrypt easter-egg, slicer.html
└── package.json

Powiązane strony