Jump to content

ukázka [Alfa verze] Projekt Orion: OGame klon v moderním kabátě s kulovým vesmírem


Ewwe

Recommended Posts

  • Administrátor

Ahoj všichni,

chci se s vámi podělit o projekt, na kterém v poslední době pracuju. Vždycky mě bavily klasické vesmírné textovky typu OGame, ale říkal jsem si, že by si tenhle koncept zasloužil modernější technologický základ a trochu jiný přístup k samotné mapě vesmíru.

Rozhodl jsem se proto postavit vlastní klon, který staví na nejnovějších technologiích a mění zajetá pravidla lineárních souřadnic.

🚀 V čem je to jiné? (Hlavní rozdíl oproti OGame)

Zapomeňte na klasický systém Galaxie [1-9] -> Systém [1-499] -> Pozice [1-15]. Vesmír v mém podání je plně trojrozměrný a kulový:

  • Kulové galaxie: Celý vesmír je generován v kulovém prostoru, kde mají galaxie náhodné 3D souřadnice.

  • Kulové systémy: Jednotlivé solární systémy jsou náhodně rozmístěny uvnitř těchto kulových galaxií.

  • Náhodné systémy planet: Samotné planety obíhají v náhodném počtu v kulovém prostoru daného systému.

Díky tomu má vzdálenost a poloha úplně jinou dynamiku a vizuální rozměr, což se promítá i do samotného létání a plánování.

 

🛠️ Technologický Stack

Chtěl jsem, aby hra byla bleskově rychlá, běžela v reálném čase bez nutnosti neustálého mačkání F5 a stála na moderním webovém ekosystému:

  • Backend: Laravel 13 & PHP 8.5

  • Databáze: MySQL 8.4

  • Frontend: Inertia.js + Vue.js (hladký SPA zážitek bez přeblikávání stránek)

  • Reálný čas: Laravel Echo + Laravel Reverb (WebSocket server pro instantní aktualizace)

⚙️ Co už aktuálně funguje (Alfa status)

Projekt je v rané fázi, ale "core loop" hry už stojí a dá se klikat:

  • Generování: Generuju náhodný vesmír s rozložením systémů. Hráč pak dostane náhodnou volnou planetu
  • Ekonomika: Kompletní produkce surovin a jejich přepočty.

  • Budovy & Výzkum: Funkční továrny a hotový nástřel technologického stromu (výzkumů).

  • Stavební fronta (Building Queue): Klasické řazení budov za sebe, které se procesuje na pozadí.

  • Vesmírná mapa: Plně interaktivní mapa vesmíru (díky Vue a 3D logice generování).

  • Komunikace: Chat běžící v reálném čase přes WebSockets (Reverb).

  • Monetizace: Integrovaný systém prémiové měny.

🛠️ Na čem se dělá dál?

Dalším velkým krokem je kompletní implementace letové mechaniky (flotily), bojového enginu a obrany, aby se z toho stala plnohodnotná strategie. Určitě mě čeká rebalance produkce, například solární elektrárna na levelu 25 generuje 10 miliard jednotek energie :D Každopádně je toho ještě spousta co dělat. 

Hledám zpětnou vazbu! Zajímá mě, co říkáte na nápad s kulovým generováním vesmíru místo klasických tabulkových souřadnic? 

Díky za názory!

image.png

image.png

image.png

image.png

image.png
image.png

 

  • Paráda! (+1) 1
Link to comment
Share on other sites

  • Globální moderátor

az to bude venku, tak to budu hrat. Kazdopadne tohle

On 5. 7. 2026 at 11:13, Ewwe said:

že by si tenhle koncept zasloužil modernější technologický základ

a tohle

On 5. 7. 2026 at 11:13, Ewwe said:

Backend: Laravel 13 & PHP 8.5

mi teda fakt nejde do hlavy, od kdy je v dnesni dobe php moderni a uz vubec od kdy je php moderni pro takovouhle hru.

  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

  • Administrátor

PHP mělo dlouho (a celkem zaslouženě) špatnou pověst. Ale doba, kdy to byl pomalý skriptovací jazyk na dynamické weby, je už tak 10 let pryč.

Od verze 8.0+ je PHP úplně jiná liga a verze PHP 8.5 s plnou typovostí, JIT kompilací (Just-In-Time) a brutálním výkonnostním posunem z něj dělá dospělý a extrémně rychlý backendový jazyk.

Proč je to ideální volba pro tuhle hru?

  1. Reálný čas bez Node.js: Díky Laravel Reverb, což je přímo v PHP napsaný high-performance WebSocket server, běží veškerý real-time stav (chat, interaktivní mapa, okamžité updaty fronty) bez nutnosti lepit k aplikaci Node.js, Socket.io nebo externí cloudové služby. Všechno držíš v jednom ekosystému.

  2. Rychlost vývoje: Jako solo vývojář potřebuju stack, kde nebudu polovinu času psát boilerplate kód. Spojení Inertia.js + Vue + Laravel mi dává to nejlepší z obou světů. Nemusím psát žádné API (REST/GraphQL) jen kvůli tomu, abych nakrmil frontend. Inertia předává data z PHP kontroleru přímo do Vue komponent jako props. Vývoj je tak 3x rychlejší než v kombinaci např. Node.js + React.

  3. Výkon na matematiku: Výpočty souřadnic v kulovém vesmíru nebo tiky produkce surovin jsou s moderním PHP procesovány v řádu jednotek milisekund. Úzké hrdlo moderních aplikací je skoro vždycky databáze, ne samotný jazyk.

PHP 13 (respektive Laravel 13) už dávno není "ten starej webovej skript". Je to robustní ekosystém, ve kterém dneska startupy staví masivní real-time platformy. 


Sám dělám v PHP přes 10 let. Za tu dobu jsem zažil portování obřích monolitů z verze 5.4 na 7, viděl jsem obrovské systémy, na kterých dodnes stojí banky, operátoři nebo státní správa, a spravoval systémy s terabajtovými databázemi. Stavěl jsem robustní CRMka nebo algoritmy na plánování rozvrhů, které musely počítat dojezdové doby lektorů k desítkám studentů. A víš co? Ani jednou jsem nenarazil na limit, kde by PHP nestačilo a bylo potřeba utíkat k jiné technologii. Bottleneck je v 99 % případů databáze a architektura, ne jazyk samotný. 

Link to comment
Share on other sites

  • Globální moderátor
před 9hodinami, Ewwe said:

Od verze 8.0+ je PHP úplně jiná liga a verze PHP 8.5 s plnou typovostí, JIT kompilací (Just-In-Time) a brutálním výkonnostním posunem z něj dělá dospělý a extrémně rychlý backendový jazyk.

Proč je to ideální volba pro tuhle hru?

  1. Reálný čas bez Node.js: Díky Laravel Reverb, což je přímo v PHP napsaný high-performance WebSocket server, běží veškerý real-time stav (chat, interaktivní mapa, okamžité updaty fronty) bez nutnosti lepit k aplikaci Node.js, Socket.io nebo externí cloudové služby. Všechno držíš v jednom ekosystému.

  2. Rychlost vývoje: Jako solo vývojář potřebuju stack, kde nebudu polovinu času psát boilerplate kód. Spojení Inertia.js + Vue + Laravel mi dává to nejlepší z obou světů. Nemusím psát žádné API (REST/GraphQL) jen kvůli tomu, abych nakrmil frontend. Inertia předává data z PHP kontroleru přímo do Vue komponent jako props. Vývoj je tak 3x rychlejší než v kombinaci např. Node.js + React.

  3. Výkon na matematiku: Výpočty souřadnic v kulovém vesmíru nebo tiky produkce surovin jsou s moderním PHP procesovány v řádu jednotek milisekund. Úzké hrdlo moderních aplikací je skoro vždycky databáze, ne samotný jazyk.

PHP 13 (respektive Laravel 13) už dávno není "ten starej webovej skript". Je to robustní ekosystém, ve kterém dneska startupy staví masivní real-time platformy. 

dik, ale priste by mi to stacilo napsat 5 slovy bez generovani pres ai...

před 9hodinami, Ewwe said:

Sám dělám v PHP přes 10 let. Za tu dobu jsem zažil portování obřích monolitů z verze 5.4 na 7, viděl jsem obrovské systémy, na kterých dodnes stojí banky, operátoři nebo státní správa, a spravoval systémy s terabajtovými databázemi. Stavěl jsem robustní CRMka nebo algoritmy na plánování rozvrhů, které musely počítat dojezdové doby lektorů k desítkám studentů. A víš co? Ani jednou jsem nenarazil na limit, kde by PHP nestačilo a bylo potřeba utíkat k jiné technologii. Bottleneck je v 99 % případů databáze a architektura, ne jazyk samotný. 

okey, fair enough. Podle me to ale stejne nikdy nepujded s dobou dlouhodobe. V zakladu je to poraad php a ten pristup je proste jinej nez treba API ve springu. A kdyz to vezmu z hlediska budoucnosti, pokud na to budeds shanet dalsi vyvojare, tak si myslim, ze na php se nebudou shanet tak jednoduse.

Link to comment
Share on other sites

Olala, offtopic.

A co napr. multi threading, async/await (green threads), mikro servisky, distribovane stateful servisky (actor pattern), event queue (kafka, rabbitmq), optimalizacie ako L1 cache fit, SIMD vektorizacia?

Neviem, ci si robil niekedy s modernym .NETom, prip. Javou, ale ak si iba PHPkar tak mozno si to obhajujes iba preto, ze to nemas s cim porovnat?

 

před 17hodinami, Ewwe said:

Výkon na matematiku: Výpočty souřadnic v kulovém vesmíru nebo tiky produkce surovin jsou s moderním PHP procesovány v řádu jednotek milisekund. Úzké hrdlo moderních aplikací je skoro vždycky databáze, ne samotný jazyk.

Ehm, tolko mi zabere vypocet neutronovej difuznej simulacie cca 50 000 parametrov v .NETu.

 

před 17hodinami, Ewwe said:

Vývoj je tak 3x rychlejší než v kombinaci např. Node.js + React.

Hey claude, create API endpoints and Angular service to consume it, make no mistakes.

  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

Měl bych dotaz, když říkáš, že si chtěl použít moderní technologie a vidím, že používáš Vue.js, tak proč si nešel cestou třeba Nuxt.js? Nebylo by lepší mít FE + BE v jednom a moci tak využívat typování pro obojí?

Jak si odpovídal výše, že nechceš lepit služby třetích stran, tak to je přeci volitelné, vše si můžeš vytvořit sám nebo použít odpovídající knihovnu, určitě alespoň jedna bude existovat.

Citace
  1. Rychlost vývoje: Jako solo vývojář potřebuju stack, kde nebudu polovinu času psát boilerplate kód. Spojení Inertia.js + Vue + Laravel mi dává to nejlepší z obou světů. Nemusím psát žádné API (REST/GraphQL) jen kvůli tomu, abych nakrmil frontend. Inertia předává data z PHP kontroleru přímo do Vue komponent jako props. Vývoj je tak 3x rychlejší než v kombinaci např. Node.js + React.

Tohle je přesně jeden z účelů NodeJS meta-frameworků. Nemusíš si psát API, abys nakrmil FE, ale rovnou BE funkce voláš na serveru (SSR) nebo na FE skrze SSA. Když bys pak v budoucnu potřeboval API, například pro komunitní nástroje, tak tu samou funkci jen obalíš do API endpointu + přidáš RL aj.

Naopak mi přijde, že Laravel + Vue.js + Inertia.js bude mít větší boilerplate, než meta-frameworky (Next.js, Nuxt.js, SvelteKit aj.)

Přeci jen, NodeJS je rychlejší jak PHP.

Edited by Fakerko_
Link to comment
Share on other sites

  • Administrátor

 

před 3hodinami, Fakerko_ said:

Měl bych dotaz, když říkáš, že si chtěl použít moderní technologie a vidím, že používáš Vue.js, tak proč si nešel cestou třeba Nuxt.js? Nebylo by lepší mít FE + BE v jednom a moci tak využívat typování pro obojí?

Částečně protože Nuxt nemám moc rád. A primárně šlo i o to si ten stack vyzkoušet. Čeká mě projekt kde je innertia laravel a vue vyžadovaný.  Každopádně u kódu pro api jsem skončil tak jako tak protože z toho dělám mobilní apku. 

 

On 7. 7. 2026 at 23:52, Jiu said:

Neviem, ci si robil niekedy s modernym .NETom, prip. Javou, ale ak si iba PHPkar tak mozno si to obhajujes iba preto, ze to nemas s cim porovnat?

 

Dělám SwiftUI, Flutter, PHP. S .NET ani s Javou jsem dělal jen hodně minimálně. 

 

On 7. 7. 2026 at 23:52, Jiu said:

Ehm, tolko mi zabere vypocet neutronovej difuznej simulacie cca 50 000 parametrov v .NETu.

Piča netuším co to je :D 

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...