total descendants::1 total children::1 1 ❤️ |
zdravim vsetkych kybcanov, tento post pojde viac do webovych backendov a IT a gamingu. Kedysi sa objavila na internete dnes uz neexistujuca hra fantasy online. Niekto oklonoval world of warcraft, ale urobil ho v 2D pixelovanej grafike a najjednoduchsim sposobom ako vedel s najmenej efektami a robotou. Ale podarilo sa mu vytvorit hru, ktora vyvolava silnu zavislost napriek tomu aku monotonnu cinnost hrac robi a na to ako bol ten obsah hry slaby. Vacsina casu tam bol grinding generickych priser, ktore sa objavovali na jednom spawn pointe. Ten sa striedal questami a porazenim nejakej prisery alebo dosiahnutim levelu, ktorym sa umoznil vstup do dalsej hernej oblasti. Utoky hracov medzi sebou neboli spociatku mozne a robili sa skupiny po 3 hracov, ktore grindovali silnejsie prisery spolu. dostal som taky napad, ze by som si spravil nejaku najjednoduchsiu online RPGcku, kde by sa levelovala postava a... zase grindovala nejake AI npc. Aby bola hra menej narocna na server, a aby sa mozno dala implementovat cez REST API urcene pre ovladanie postavy, tak si predstavujem, ze postava hraca bude robit auto-attacky po zvoleni cielu utoku. Vdaka tomu moze byt medzi serverom a klientom velka latencia pretoze hrac posle akciu raz za par sekund. A tiez bude reagovat na prikazy ako je presunutie na miesto, upravy v inventari atd... GUI by bolo html a na nom canvas do ktoreho sa kresli,css, javascript, ktory komunikuje so serverom. Server by mohol byt napisany v pythone. (ide ozaj iba o taky hobby pokus, zatial ma performance netrapi) Akcie hraca su poziadavky REST na server, ktory ich preveri a moze ich zamietnut. Server spracuje nejake poziadavky z REST a tie co stihne spracovat zahrnie do dalsieho simulacneho frame, ktore pohne s postavami na mape. Napr. hybuca sa postava dostane kazdy frame novu poziciu, prepocitaju sa prebehnute udery mecom, zasahy sipom, pribudanie expov, levelovanie a podobne veci) Nemam vsak vymyslene, ako by som asynchronne posielal informacie o okoli hraca zo servera. Mam urobit nejaky REST API request, ktory natiahne novinky ktore hrac zmeskal od naposledy? (kam sa pohli NPC, kolko ma prave HP, xp, ci uz umrel atd...) Alebo to mam riesit nejakym inym sposobom? napr. nejakym websocketom do toho pythonoveho serveru? Celkovo by bezal webserver co hostuje GUI spolu s pythonovym enginom v jednej VPSke. Pre zaciatok by ta hra nemala ziadnu pamat a potom co sa zatvori webstranka sa zabudne postava hraca aj stats. Casom by sa tie veci ukladali do nejakej databazy. Asi by som skusil nieco na styl mongodb. Zaujimali by ma nazory ze ako by ste to robili vy, ake technologie by ste pouzili a ako by ste riesili to updatovanie GUI hraca roznymi udalostami? GUI bude mat na starosti renderovanie takych veci ako pohyb nejakeho NPC zo suradnic x=200,y=200 do x=220,y=220, pretoze server bude raz ja neviem za 200ms posielat skokove zmeny poloh postav a GUI si bude tie presuny animovat. Samozrejme postupom casu pribudnu dalsie starosti ako registracia hraca, bezpecne prihlasenie a ukladanie stats do db, zalohovanie db. A ak by sa mi s tym chcelo babrat dalej nakoniec aj portaly medzi hernymi oblastami a teda presun hraca z jedneho servera na druhy. Dalsia vec, ako by mala vyzerat RPGcka, ktora obsahuje zabavnejsie prvky ako monotonne sekanie generickych priser? |
| |||||||||||||||||||||||||