Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Jak fungují browser hry s produkcí surovin - travian, divoké kmeny

Ahoj všem nadšencům do programování.

Léta hraji travian/divoké kmeny a dostal sem nápad, udělat si podobnou hru jen tak pro radost (já to prodávat nehodlám :-D).

Na úvod, programovat zvládám.

K otázce:
Ve výše zmíněných hrách má hráč produkci surovin, příklad 1000dřeva za hodinu.

Každou vteřinu tikne nějaký timer a přičte hráči podíl surovin.

Tedy každou vteřinu reálně hráč dostane hodinový podíl.

Příklad:
hodina: 1000 dřeva
minuta: 1000 / 60 = 16,66 dřeva
vteřina: 1000 / (60*60) = dřeva 0.27777777777 dřeva

Jak by jste réálně tohle programovali?
To na serveru tikne každou vteřinu reálně timer a do databáze přičte pro daného hráče počet surovin? To musí být neúnosný...

To jak taková hra funguje reálně ví pouze programátor hry, ale jak by ste k tomuto problému přistupovali vy, jako programátor?

Díky za pokec a třeba návrhy jak na to!

Předmět Autor Datum
Třeba tak, že bych si ukládal, kdy naposled došlo k načtení surovin. A teprve v okamžiku, kdy chci z…
Wikan 28.02.2021 18:14
Wikan
Plus samozrejme se vsechny obchody/stavby/... overuji a provadeji na serveru z jeho dat a z toho se…
gilhad 28.02.2021 21:27
gilhad
OT: Léta hraji travian Spousta lidí odsud byla na úplném začátku, na prvním českém serveru někdy p…
L-Core 28.02.2021 20:04
L-Core
multihunteri uz nejsou ;-) ale tech 15 let jsi skoro trefil, je to 14 :-)
merlouska 28.02.2021 23:44
merlouska
Takovéto věci se nedělají v reálném čase. Předměty mají ve svých atributech (v nějaké tabulce) kolik…
Rce 28.02.2021 22:24
Rce
Ne by jste, ale byste. Omlouvám se, ale na to se nedá koukat. poslední
Rce 01.03.2021 01:25
Rce

Plus samozrejme se vsechny obchody/stavby/... overuji a provadeji na serveru z jeho dat a z toho se posila vysledek klientovi k synchronizaci. A taky synchronizace "jednou za cas" ze serveru na klienta.
Klient si nezavazne dopocitava a zobrazuje hodnoty sam, ale synchro ze serveru mu to natrvdo prepise (protoze cokoli klient spocte a cokoli posle serveru lze zfalsovat a tak to nema zadnou vahu).

Stejne tak smlouvy/FoW/pozice jednotek ....

Takovéto věci se nedělají v reálném čase. Předměty mají ve svých atributech (v nějaké tabulce) kolik toho za (třeba) hodinu naroste na poli. Pak je jeden tásk, projde každý tik (třeba každou sekundu) tabulku předmětů a přepočte kolik se kde čeho urodilo. Když víš, že třeba za hodinu naroste 100 krav, tak je snadné jedním výrazem spočítat počet narostlých krav za tik. Další task to jen vykresluje. Metod je samozřejmě víc.

Zpět do poradny Odpovědět na původní otázku Nahoru