Diskuze: Webová fantasy hra na hrdinov
Na začiatok možno niečo málo o mojej motivácii, teda prečo to vlastne
robím a prečo to robím takým sposobom.
K „vývoji“ hier som sa dostal asi ako dosť veľa iných ľudí, keď som
ako vášnivý hráč rpg hier začal rozmýšľať o tom, aké by to bolo
urobiť vlastnú hru. Samozrejme že moje naivné predstavy sa dosť líšily od
skutočnosti, ale časom som sa dostal k projektu jedného českého Ultima
Online serveru, na ktorom som asi 2 roky pracoval. Na začiatku ako analytik,
neskor hlavný analytik, nakoniec vedúci projektu. Samozrejme že mojím
výstupom neboli žiadne doménové modely, ani class diagramy, ale len textové
dokumenty, ako by mali fungovať jednotlivé časti systému. Aj tak mi ale tie
2 roky dali dosť veľa a získal som predstavu o tom, čo asi prináša vývoj
hry. Snažili sme sa o klasické projektové riadenie, s určenými úlohami
jednotlivých členov týmu.
Keď som na tomto projekte skončil, tak som chcel „podniknúť“ niečo dalšie, nejakú inú hru. Tak som začal tvoriť dokumentáciu k novej hre. Keďže som ale z práce na predchádzajúcom projekte vedel čo vývoj hry obnáša a nemal som (stále nemám) žiadny vývojový tým, musel som postupne zjednodušovať koncept, až som sa dostal od klasickej online rpg hry (ktorú by som fakt nemal šancu sám vytvoriť v takej podobe akú som chcel) až k povodnej verzii, teda webovej rpg. V priebehu toho ako som tvoril dokumentáciu k novej hre sa webové hry začali stávať čím ďalej tým viac obľúbené, ale hlavne sa o dosť zlepšila ich kvalita a možnosti toho čo ide urobiť.
Takže celý projekt je robený tak (so zámerom), aby som ho zvládol pokiaľ možno celý sám, i keď sa budem musieť veľa vecí naučiť skoro od nuly (hlavne samotné kódovanie). S tým ale počítam. Nemám žiadne pevne stanovené termíny a robím to hlavne pre seba, aby som si dokázal, že to dokážem dotiahnuť do konca. Keď tak sa potom možno vrhnem na niečo technicky vyspelejšie, ale to je fakt ešte veľmi vzdialená budúcnosť.
Predstavenie hry.
Jedná sa o hru, ktorá sa celá hraje v prehliadači. Hráč ovláda jednoho
hrdinu, ktorého postupne rozvíja, teda zlepšuje mu vlastnosti a učí ho
nových schopnostiam. Hlavné činnosti v hre sú boj, výroba, správa budov a
prieskum.
Boj je najviac akčná činnosť v hre. Na rozdiel od drtivej vetšiny
dnešných webových hier, kde boje prebiehajú automaticky a hráč do boja
nemože veľmi zasahovať, tak boje v mojej hre sú úplne pod kontrolou
hráča.
Boje prebiehajú na špeciálnych bojových mapách a sú v ťahovom režime
(jednotliví účastníci boja vykonávajú svoje akcie v určitom poradí na
základe ich iniciativy). Hráč ovláda každú akciu hernej postavy, ako
pohyb, útok, použitie schopnosti, použitie predmetu, zoslanie kúzla a pod.
Pre lepšiu predstavu by boje mali byť niečo ako kombinácia bojov v sérii
Heroes of might and magic a kartičkovej hry Magic the Gathering.
Ďalšími doležitými činnosťami sú ťažba surovín a výroba predmetov. Skoro všetko čo sa nachádza v hernom svete je možné vyrobiť. Najlepšie predmety ktoré bude možno získať, budú pochádzať z výroby. Samotná činnosť surovín a výroby predmetov prebieha cez rozne menu hry, tak ako je to možné poznať z iných „budovateľských“ webových hier. Moja predstava je, že všetky vyrobené predmety v hernom svete budú pochádzať od hráčov a ekonomika bude fungovať na klasike dopyt / ponuka. Uvidíme ako sa to podarí dosiahnuť.
Správa budov je ďalšou zo zaujímavých možností v hre. Hráči majú možnosť spravovať jednu, alebo aj viac budov v hre (ťažobné, výrobné, logistické, ...). napr. Vo výrobných budovách je možné nastaviť pre seba, ale aj iných hráčov, čo sa bude vyrábať, v akom množstve, aká bude odmena za výrobu pre iných hráčov a pod. Budov je pomerne veľké množstvo a sú vždy súčasťou mesta. Nikdy ale nebude možné postaviť všetky typy budov v jednom meste a je teda priestor na taktizovanie, napr. vzhľadom k polohe mesta na mape herného sveta a okolitým mestám.
Preskúmavanie mapy herného sveta je ďalšou zo zaujímavých činností a slúži k tomu niekoľko schopností, ktoré može hráč svojej hernej postave zvoliť. Mapa herného sveta nieje totiž až na niekoľko významných objektov známa a hráči si musia sami zistiť (alebo si to nechať zistiť), kde na mape sa čo nachádza. Schopný prieskumník može objaviť čásť mapy s dobrým výskytom vzácnejším surovín (teda napr. miesto vhodné pre postavenie ťažobnej budovy), ale nájsť rozne NPC objekty, kde sa dá podniknúť bojová výprava.
Samotná tvorba postavy a jej vývoj je takmer ľubovoľne na hráčovi. Niesú teda žiadne povolania, ani presne nalinkované „buildy“. Na výber je 5 rás. Každá sa mierne líši v piatich štartovných vlastnostiach. Potom ale už je len na hráčovi, ako bude svoju postavu smerovať a aké schopnosti ju bude učiť. Jediným obmedzením je počet učebných bodov, ktoré dostáva herná postava za každú úroveň. Samozrejme ale niektoré pokročilejšie schopností budú vyžadovať, aby mala herná postava naučené iné menej zložité schopnosti. Napr. pokiaľ bude chcieť herná postava používať špeciálne schopnosti naviazané na zbrane, musí sa najprv naučiť zbrane ovládať.
Technická stránka hry.
Toto je časť, v ktorej som si zatiaľ nie 100% istý, pretože sa skoro
všetko len učím od nuly.
Základ hry bude prakticky klasický html dokument, pretože podstatnú časť
hry budú tvoriť rozne štatistiky a zoznamy. Aj veľa (čo najviac)
interakcií v hre chcem urobiť pomocou roznych menu, formulárov a klikacích
máp.
Obsluhu formulárov by som chcel v Javascripte (na strane klienta) a asi aj
niečo v PHP (na strane serveru).
Boje by som chcel riešiť tiež cez Javascript. Vetšina súčasných weboviek
to má riešené cez flash, ale nechcem sa učiť naviac ďalší systém, už
tak toho mám dosť.
Samozrejme budem potrebovať nejaké databáze, minimálne na ukladanie údajov
o hráčoch a herných postavách, ale asi aj iné databáze, napr. zoznam
predmetov a NPC, ktoré sa v hre vyskytujú.
Toto je asi moja predstava technického riešenia hry, ktorú som nadobudol po prechádzaní kopy tutoriálov a štúdiu ďalšej kopy článkov venujúcej sa problematike vývoja hier.
Pre lepšiu predstavu postujem odkaz na hru, ktorej by sa to malo technicky
podobať (ovládaním).
www.heroeswm.ru
Stav hry.
Mám hotovú skoro kompletnú dokumentáciu. Je toho necelých 5 MB textu.
Prakticky je hotová celá mechanika (tvorba postavy, jej vývoj, bojový
systém, ťažba a výroba, zoznamy predmetov, beštiár a pod.).
Chýba mi herná mapa a herné texty (popisy questov, popisy NPC, podrobnejšie
popisy predmetov a pod.). Toto sú ale veci (s výnimkou mapy), ktoré sa dajú
riešiť v priebehu alfatestu.
Samozrejme mi chýbajú scripty a grafiku som tiež ešte neriešil. Najprv sa
ale chcem naučiť vytvoriť dobrú stránku a aspoň základy Javascriptu.
Myslím, že grafika pojde ľahšie.
Dokumentáciu nemám kompletnú hlavne z dovodu, že som už nemal chuť (resp. som ztrácal motiváciu) písať len tak do „šuplíku“. Tak som sa rozhodol už aj niečo vytvoriť, aby bolo vidieť, že už „niečo je hotové“ a mňa to zase nakoplo k ďalšej intenzívnej práci.
Momentálne sa teda snažím vytvoriť stránku (html dokument) ako základ (resp. aby som mal aspoň niečo . Keďže sa to ešte len učím, tak to ide dosť pomaly. Postupne ako to ale robím, tak si potrebujem niektoré veci ujasniť, prípadne poradiť s realizáciou. Aj to je dovod, prečo som založil toto téma. Rád by som v ňom riešil veci spojenné s mojím projektom a pripadá mi to lepšie, ako sa vkuse pýtať v kope iných témat.
Takže aký je váš názor na navrhované technické riešenie hry, prípadne celý koncept ?
David Hartinger:6.12.2012 17:05
No nemáš na sebe malé nároky Možná by bylo lepší udělat si nějaký návrh velmi zjednodušené alfaverze a uskutečnit nejprve tu, myslím, že ani to nebude legrace. A to jak po stránce programování, tak po stránce grafiky.
valgard:7.12.2012 8:40
No ono to už je celkom zjednodušené (si myslím . Celý návrh som neustále upravoval do podoby, aby to bolo čo najjednoduchšie a aby som si vedel predstaviť realizáciu návrhu aj ako človek, ktorý prakticky nikdy neprogramoval.
Keď to mierne preženiem, tak po malej úprave by som k tomu mohol nakreskliť na kus papiera mapu a vydať to ako deskovku (myslím stolnú hru). Ja chcem ale webovku. Z realizácie vetšiny herných mechaník obavu nemám, pretože si viem predstaviť ako to urobím. Obavy mám ale z častí (hlavne všetko čo sa týka zobrazenia boja), pretože to si zatiaľ s mojimi súčasnými vedomosťami predstaviť nedokážem.
Zaujímal by ma ale tvoj názor na mnou navrhované "technológie", teda html stránka ako kostra hry + Javascript. Alebo by si to radšej nahradil Javascript za Flash (myslím boj) ? Prípadne máš návrh na nejakú inú technológiu ?
David Hartinger:7.12.2012 11:06
Flash je umírající technologie, JS je vhodnější.
TomBen:7.12.2012 12:12
Je to docela zajímavé téma. Už nějakou dobu ( řádově roky )
procházím různé RPG systémy a všechny mají chyb jako máku.
Od AD&D se vyvinuly jen málo a většinou jen všichni opisovali jako
školáci.
Málokde se rozlišují vlastnosti a dovednosti, málokde je zakomponovaná
do soubojů rozumně např. Rychlost, která je přitom reálně
důležitější
než Síla, zanedbává se často plocha dopadu, vliv prostředí nebo se
špatně
zachází s vlastností Inteligence, která sice nějakou hodnotu vlastnosti
má,
ale vesele se obchází tím, že problémy za postavu řeší hráč, takže to
má
pak vliv jen na učení kouzel a podobně.
Každopádně implementovat opravdový RPG systém v jakémkoli jazyce je
těžké.
Samozřejmě lze zjednodušovat až na kost. Např. předdefinováním
hodnot,
které sice pak nemají smysl, ale ve výsledku to vypadá věrohodně.
Když
třeba zadám natvrdo, že Démon má sílu útoku 12 plus random faktor 3 a
rytíř
hrdina sílu útoku 10 plus random faktor 6 bude souboj vypadat celkem
dobře,
pokud hodnoty zůstanou skryty. To tedy v případě, že by šlo o
oblíbený
způsob - tluč, dokud nedojde Konstituce čili Životy. Což je ovšem taky
jenom standardní RPG klišé.
No, jsem zvědav, jestli z toho něco bude.
valgard:7.12.2012 12:59
To neviem posúdiť. Drtivá vetšina hier čo som videl je robená práve vo flashi. V JS som videl akurát Angry Birds a ešte jednu novo vznikajúcu webovku. Takže ak to posudzujem z tohoto pohľadu, vidím čo je možné vo flashi, ale dosť dobre som ešte nevidel plné možnosti JS. Angry Birds pre mňa nieje najlepší príklad toho čo je možné ...
Dám si ale poradiť a zamerám sa na JS. Snáď do toho časom preniknem .
valgard:7.12.2012 13:47
Ja som tiež prešiel kopu systémov, ale tvrdiť že majú kopu chýb si nedovolím. Ono je otázne čo chápeš ako chybu. Možu sa ti páčiť, alebo nepáčiť, každý može byť inak vhodný na použitie v roznych situáciách, ale to ešte neznamená, že musia byť chybné. Ich vývojári mali určitý pohľad na vec, ktorý sa nemusí zhodovať s tvojím. Mimochodom, pre mňa je práve AD&D jeden z tých menej podarených systémov a vhodnejší skor pre stolnú hru, ako pre tú počítačovú.
Niesom si úplne istý, čo myslíš pod implementáciou RPG systému (alebo ako si predstavuješ jeho realizáciu). Ak zoberieme napr. to AD&D, tak tam tiež je nejaký základný herný systém, ktorý popisuje mechaniky a potom sú campaign settingy, ktoré popisujú už konkrétne svety v ktorých sa príbeh odohráva. Tam sa už hráči možu "vžiť" do toho sveta a hrať nejakú rolu. Stále ale potrebujú určité číselné vyjadrenie ich postavy, ktoré im dáva práve tá základná mechanika. Bez nejakého čísleného vyjadrenia postavy sa dajú hrať adventúry, ale neviem si predstaviť rpg, kde jedným z pilierov je práve vývoj postavy. Ako by si chcel inak rozhodnúť výsledok v súboji, než porovnaním určitých hodnot u účastníkov boja ?
Určite by bolo možné vymyslieť systém, kde by sa dala zohľadniť kopa roznych vplyvov prostredia na boj, postava by mala 50 vlastností, 100+ schopností a pod. Otázka ale je, či to stojí za to a čo všetko by to obnášalo. Nie vždy platí, že čím zložitejšia a detailnejšia hra, tým je lepšia. Skor je to naopak.
Ja keď som začínal s vývojom hier, tak som tiež chcel čo najdokonalejšiu hru, s kopou detailov. Čím sa tomu ale dlhšie venujem, tak tým viac sú moje systémy jednoduchšie. To ale neznamená, že poskytujú hráčom čím ďalej tým menej možností. Dobrý systém nemusí mať zložitú mechaniku.
TomBen:7.12.2012 22:56
S tím vším plně souhlasím. Skoro.
Nevadí mi, když je systém jednoduchý a ani mi nevadí bodový způsob
zlepšování.
Množství detailů není vůbec třeba.
Vadí mi nejčastěji kritické meze hodnot. Jako když se elf lučištník
trefí klíčovou dírkou do špičky levého malíčku nebo téměř
nekonečný počet
životů u bojovníka s vysokým levelem. U počítačových provedení
bývá
obvyklé, že se postava vycvičí v běhu, když se postaví proti zdi,
zatíží
se na klávesnici tlačítko běhu vpřed a jde se spát. Ráno je postava
na maximálním levelu. Mohl bych jmenovat dál, ale jako příklad to snad
stačí.
Jinak musím říct, že se mi stejně většina systémů líbila, i když
měly chyby.
V každém je vždycky i něco dobrého. Např. GURPS je hodně pěkně
vymyšlený.
Zdravím. Tak som trochu postúpil vpred. Urobil som základný layout stránky s navigačným menu, logovacím menu (príprava pre registráciu a príhlásenie hráčov do hry). Zatiaľ teda stránka bez grafiky a nahrubo stylovaná, ale v tejto fázi to stačí.
Začal som robiť na systéme vytvárania hernej postavy. Momentálne mám urobenú stránku pre výber rasy. Je to urobené tak, že je 5x pod sebou article, v každou je popis jednej rasy, so štartovnými hodnotami vlastností. U každej rasy bude tématický obrázok a tiež sú u každej rasy 2 tlačítka. Jeden je na výber mužského charakteru danej rasy, iný na výber ženského charakteru. Viem si to predstaviť urobiť aj lepšie (aby to vyzeralo lepšie na stránke), ale zatiaľ na to nemám vedomosti a myslím, že pre prvnú fázu to stačí (aby to bolo funkčné).
Narazil som ale na prvý problém, ktorý neviem rozumne vyriešiť. Ako ďalší krok pri tvorbe hernej postavy má byť modifikácia základných vlastností a výber nejakých základných dovedností. Tu už ale musím pracovať s konkrétnou vybranou postavou, teda tú kombináciu rasa->pohlavie, ktorú si hráč zvolil v prechádzajúcej fázi (stlačením tlačítka na stránke voľby rasy).
Vedel by som to vyriešiť tak, že si urobím 10 stránok, teda pre každú kombináciu rasa->pohlavie jednu a urobiť odkazy na tlačítka. To ale asi nebude to pravé riešenie ...
Tuším, že tu už bude potreba nejaký script, ktorý to bude obstarávať (JS, alebo PHP). Ide mi ale skor o nejakú prípravu pre ten script. Niekde si musí načítať, že má zobraziť práve tú kombináciu rasa->pohlavie, ktoré si hráč zvolil. Neviem ale odkiaľ to bude načítávať a ako mám tie data pripraviť. Urobiť jeden dokument, kde su vypísané všetky možnosti a script si bude vždy vyberať tú časť ktorú potrebuje. Alebo je to potreba riešiť nejako inak ?
Prosím o radu ako ďalej postupovať. Mám sa už začať učiť PHP/JS, pretože sa bez toho ďalej neposuniem, alebo si ešte možem urobiť nejaké základy systému ako html stránky a s učením PHP/JS počkať ?
Určitě se nauč PHP, bez toho se dál neposuneš. Pomocí PHP si můžeš mezi stránkami předávat hodnoty a dále s nimi pracovat. Také tím ovlivníš co se na stránce zobrazí atd. Pokud si svou stránku udělal jako formulář, ve kterém si zakliknu rasu a pohlaví, pak stačí už jen jedno tlačítko s odkazem na stránku, která mi tyto hodnoty zpracuje a vygeneruje mi podle toho stránku s parametry mé postavy.
Kit:15.12.2012 9:02
Bez PHP a JS se teoreticky RPG dá udělat, ale bylo by to zbytečně košaté, protože by musely být podchyceny všechny možné stavy hry. Vždyť i knížky D&D vyžadují skriptování na straně klienta. Jde to i bez PHP s využitím JS. Nedávno jsem něco podobného zkoušel a fungovalo mi to. AJAX jede i bez PHP. Dokonce HTML5 umožňuje přímou komunikaci klientů, server by mohl sloužit jen jako úložiště herní mapy.
Jenže bez skriptování na straně serveru je zde velký prostor pro podvádění. Proto PHP. Dala by se využít i hromada jiných jazyků (Java, Lisp, Python, ASP, C++ apod), ale PHP je asi nejdostupnější.
Když už PHP, tak potřebuješ nějakou databázi na ukládání dat. Dokonce bych ti poradil, abys nějakou použil hned v počátku. Když hráč udělá tohle, do DB se zapíše tohle. Když se hráč podívá někam, vytáhne se z DB to "někam" a zobrazí se mu. PHP pak funguje jen jako lepidlo mezi databází a klientem.
valgard:17.1.2013 15:48
Tak momentálne som si prešiel nejaké tutoriály na JS a jQuery a chcem chviľu robiť v tom, aby som do toho viac prenikol a dostal to "do krvi". Neskor začnem s PHP, ale vetšinu chcem mať v JS.
Zmenil som menu na výber rasy u postavy. Je to 5 obrázkov vedľa seba, každý predstavuje jednu rasu. Chcem, aby sa vždy po kliknutí na obrázok danej rasy zobrazil jej popis na stránke pod obrázkami (pod menu), k tomu popisu základne (štartovné vlastnosti) a tlačítko pre výber pohlavia a tým aj voľbu rasy.
Skúšam to urobiť pomocou jQuery:
$("#test").append("Text");
test - element, do ktorého chcem vložiť text
Text - samotný text, ktorý by sa mal po kliknutí na obrázok rasy
vypisovať
Mám ale ten problém, že ten popis je celkom dlhý a nechcem ho mať v PSPad-e v jednom riadku. Keď ale zalomím riadok, tak to nefunguje = nevypisuje nič. Ak nechám text v jednom dlhom riadku, tak to vypisuje do elementu "test" v pohode a hodí to do bloku (text je upraveny cez css). Dá sa to nejako vyriešiť ?
Skúšal som aj toto:
$("#test").load("popis_rasy.html");
Nefunguje mi to ale. Myslím si, že je chyba v tom url, ale neviem ako to inak urobiť. Všetky súbory mám v jednom adresári. Teda html pre výber rasy (do toho chcem zapisovať), html s popisom rasy (z toho chcem text "nahrať") a js súbor so scriptami.
Zobrazeno 16 zpráv z 16.