login::  password::




cwbe coordinatez:
21
8541334

ABSOLUT
KYBERIA
permissions
you: r,
system: public
net: yes

neurons

stats|by_visit|by_K
source
tiamat
K|my_K|given_K
last
commanders
polls

total descendants::1
total children::1
show[ 2 | 3] flat


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?




000000210854133408546198
xrat
 xrat      20.09.2018 - 10:58:17 [1K] , level: 1, UP   NEW
nemam s tym vela praktickych skusenosti, takze len z toho co pasivne viem o danych technologiach:
- imho by som isiel do websockets pre takyto pripad ked potrebujes realtime, pride mi efektivnejsie, ked server informuje hraca ako naopak riesit nejaky polling a teda pravidelne pingat, tym vyriesis aj problem s urcenim intervalu - latencia bude taka nizka, ako je len technicky mozna
- GUI ako pises by mal byt dnes uz canvas, urcite pouzit nejaku libku, robit to uplne low-level je dnes asi trochu zbytocne

skus si najprv uplne primitivny prototyp - len pohyb postav po mape, kedze zatial sa tvoje otazky tykaju len toho. na tvojom mieste by som ale pouzil rovno nejake web game frameworky, pozeram ze je toho dnes kopa takze staci si len vybrat a urobit hentaky example by nemal byt problem:
https://github.com/collections/javascript-game-engines