Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
McMagic
Založen: 06. 08. 2012 Příspěvky: 615
|
Zaslal: 26. březen 2015, 12:56:29 Předmět: Novus Inceptio AI SERVER |
|
|
Zdravím,
potřebuji se ujistit, že nedělám blbost
--------------------------------------
Pro svůj projekt jsem musel vytvořit (věděl jsem že jednou budu muset s ohledem na projekt) SERVER AI aplikaci.
Jedná se s ohledem na použité technologie o samostatnou Unity aplikaci, která slouží jako server ai + gm utilita pro obsluhu serveru atd.
V této aplikaci mám celý svět - reprezentovaný pouze low poly terénem.
Při startu se načtou z DB všechny entity co potřebuji řídit AI (a mají svůj vlastní život bez ohledu na hráče) - creatury, dělníci apod.)
Všechny tyto entity se v základu nikde nereplikuji a fungují pouze na straně serveru.
Creatury mají nastaven time limit 10minut mezi provedením další akce (někam, dojít, zajistit si potravu apod.) - LATE STATUS.
Pokud se do hry připojí hráč - tak ho zde logicky taky vidím a mohu ho "buzerovat"
V momentě kdy je hráč v dosahu nějaké creatury - tak ji server začne replikovat klientovi + se změní STATUS na REALTIME a v tento moment jede potvora v reálném čase - zaútočí, uteče, dělá si co chce. Pokud se potvora dostane z dosahu hráče - server zlikviduje její entitu na straně klienta a zase se přepne do LATE.
Takto mám na serveru 1000 potvor co si dělají co chtějí (v davkovacích intervalech) - dokud nenarazí na hráče a nezačne realtime process.
Zkoušel jsem i jiné metody, ale tato mě přijde výkonnostně vyvážená + nemusím v jednu dobu přenášet tolik dat - pouze ty co jsou v dosahu hráče/ů.
Má to nějakou logiku? Není to blbost?
Nemohu použít klasiku - spawn potvor u jeskyně či v lese a min. dosah pohybu (jako je v normálních MMO hrách - WoW,GW2 apod.) - zrušil bych pak to , že svět si žije svým životem.
Teď taky záleží zdali 1000 potvor je dostatečných na 64km2 (což je jeden svět).
(logicky potvory se množí a umírají i bez aktivity hráče - takže musí být stanoven start limit a max limit apod.)
Na druhou stranu obtížnost bude HC - takže potkat na každém rohu vlka = nehratelné![Wink](images/smiles/icon_wink.gif) _________________
http://www.mcmagic-productions.com/ |
|
Návrat nahoru |
|
![](templates/subSilver/images/spacer.gif) |
nem0
Založen: 23. 03. 2009 Příspěvky: 31
|
Zaslal: 26. březen 2015, 19:25:01 Předmět: |
|
|
U nas to priblizne takto robime, az na to, ze entity, ktore su daleko od hracov (u teba LATE status) su uplne zamrznute a nesimuluju sa vobec. Naviac este sa mozu simulovat na dvoch roznych frekvenciach (5 a 10 Hz), tiez v zavislosti od vzdialenosti. V plane mame vzdialene entity simulovat na nejakej vyssej urovni, ale to zavisi od designu hry, ci je nieco take treba. Momentalne to zvlada radovo tisice entit na mape, tento limit by imho siel zvysit, lebo bottleneck je niekde uplne inde |
|
Návrat nahoru |
|
![](templates/subSilver/images/spacer.gif) |
McMagic
Založen: 06. 08. 2012 Příspěvky: 615
|
Zaslal: 26. březen 2015, 20:13:21 Předmět: |
|
|
Tak to jsem rád, že netvořím blbost;)
-------------
Kolik zvládnete aktivních entit / hráčů v jednu dobu +- ?
Pokud se mohu zeptat (abych se případně něčemu zavčas vyvaroval).
Díky. _________________
http://www.mcmagic-productions.com/ |
|
Návrat nahoru |
|
![](templates/subSilver/images/spacer.gif) |
nem0
Založen: 23. 03. 2009 Příspěvky: 31
|
Zaslal: 27. březen 2015, 00:15:15 Předmět: |
|
|
Limit hracov mame 50, ak si dobre pamatam, ale to nevypoveda skoro o nicom, nakolko su vacsinou sustredeni na urcitych miestach a castokrat tvoria skupiny. Takze aj ked na jedneho hraca pripada cca 20 aktivnych AI, celkovo tych AI nie je 50*20 ale mozno 100-200.
Najdolezitejsia vec, na ktoru by som si daval pozor, je velmi dobre si rozmysliet, co sa bude pocitat na klientovi. Hackeri zneuziju aj to, co by ma na prvy pohlad nenapadlo. |
|
Návrat nahoru |
|
![](templates/subSilver/images/spacer.gif) |
McMagic
Založen: 06. 08. 2012 Příspěvky: 615
|
Zaslal: 27. březen 2015, 09:20:27 Předmět: |
|
|
50 je dost málo ve srovnání s mým projektem. Takže to mě moc nepomůže (až vlastní testy tedy).
Jinak tomu že 50 hráčů != 50*20 rozumím - záleží na rozložení hráčů a entit.
---------
Hackeři - no to je věčný problém. Kolikrát si říkám zdali to není stejný problém jako piráti. A v podstatě je neřešit - kazí si hru sami sobě, ale v MMO už to není tak moc pravda právě že - tam to mohou kazit i ostatním:/
A bude to ještě hodně rozhodování co nechat na straně klienta a co ne. _________________
http://www.mcmagic-productions.com/ |
|
Návrat nahoru |
|
![](templates/subSilver/images/spacer.gif) |
|