• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    CYBERWOLFOn-line WebBased hry kreativně - udělejte si vlastní webovku!
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    CYBERWOLF: Nj, ale to co tu povidas jsou standardni algorimizacni ulohy. To neni nic specialniho pro hry. Na to ti staci vzit katalog resenejch algoritmu, projit si je, zjistit co kterej dela, v jakejch pripadech je vyhodnej (napr. pro pathfinding je velkej rozdil mez "bludistem" a "lesem") a ten pouzijes.

    A co se tech dat tyce ... kdyz pak treba resis snizeni objemu dat, kterej posilas, tak pak zjistis, ze jednu a tu samou vec muzes delat X zpusoby. A ze nektery zpusoby se nemaj rady s jinejma. Imho to je fakt o tom normalne premejslet hlavou a ne kolenem (a mit aspon tuseni, co je a neni resitelny).
    CYBERWOLF
    CYBERWOLF --- ---
    TRANCEWARP: No to zalezi na tom, jak to mas napsany :D

    Tak v principu: rekneme, ze mas engine ne izometricke zobrazovani (klobouk dolu). Pocitam, ze mu predas nejake asociativni pole souradnic, kde mas co na jake souradnici vykreslit a podobne a engine ti to vykresli. Pokud tam resis i veci jako pruchodnosti a pruhlednosti, hadam ze udaje o tom predavas stejnym zpusobem.

    No a jednoho dne si reknes, ze by bylo hezke tam mit viditelnost. Svuj engine rozsiris tak, aby pres policka, na ktera neni videt, hodil patricnou masku a je to. Co ted potrebujes je zjistit, kam videt je a neni.

    Je nejak zvlast pekelne upravit pole s daty o pruhlednosti tak, jak si zada nejaka komponenta pro vypocet viditelnosti a nasledne si upravit vystup z ni tak, aby tomu rozumel izometricky engine? :)
    TRANCEWARP
    TRANCEWARP --- ---
    CYBERWOLF: jen k ty znovupouzitelnosti kodu... ono ty graficky veci moc znovupouzitelny nejsou ... sem zkoumal nekolik mozna i desitek enginu na izometricke zobrazovani a zadnej nebyl to, co sem chtel... takze sem si napsal vlastni a do nej portovat cizi kod by bylo slusny peklo, to si to snad clovek i driv napise sam... ;D
    CYBERWOLF
    CYBERWOLF --- ---
    TENCOKACISTROMY:
    1) Tohle dle meho zavisi na tom, jak moc se chce do vyvoje tehle konkretni hry investovat, nebo jestli se radsi chce nechat vyvijet kohokoliv, komu se do toho chce (pod stejnou, nebo podobnou licenci) a bud se venovat necemu jinemu (zrovna zmineny monstergame se snad poslednich 5 let nezmenil) a po case treba jednoduse vyuzit zajimave veci nebo jen drobne upravit, co nekdo s tou hrou otevrene vyvinul.

    Samozrejme, model ktery popisujes ma svuj smysl a je bezny, ale v nekterych situacich nemusi byt idealni.

    2) jak je to s rentabilitou opensource her netusim - tak hluboko jsem to zatim neprozkoumal. Vyhodou je moznost "levne pracovni a kreativni sily", nevyhodou ztrata unikatnosti (coz by nevadilo v pripadech, kdy neni co ztratit) a vlastne si clovek zadelava na konkurenci.

    4) Pokud bych mel dat konkretni priklad, tak pokud pouzijes nekde google mapy, tak jakmile ti jednou zacnou fungovat, uz na to nemusis sahnout. Jejich API se stale vyviji, presto starsi verze zustavaji funkcni. Tohle je dle meho ideal bezudrzboveho provozu :)

    5) vsechno ale nemusi skoncit jako facebook :D

    Pokud by snipet repository byl opravdu jen na znovupouzitelne casti a ne na cele hry nebo specificke mechaniky, tak bych se nejake ztraty rozmanitosti nebal. Prvky jako pathfinding, inventar, random drop a podobne preci sami hru nedelaji. Hratelnost, atmosfera a napad jsou dle meho (v tomhle poradi) pro hru nejdulezitejsi, bez nich to nejde a to proste kreativitu vyzaduje - na tom se shodneme. Nebylo by ale proste supers misto patlani s pathfindingem, na kterem stejne nechci provadet nic objevneho, pouzit hotovou komponentu a zamerit se radsi na neco zajimavejsiho?

    Gamasutra ano, ale oproti tomu co mam na mysli ma prilis siroky a prilis uzky zaber :) Prilis siroky z toho pohledu, ze resi hry obecne - a proste nemala cast toho, co tam resi pro webove hry neplati nebo jednoduse neni mozne. Prilis uzky zas z toho pohledu, ze krom toho, ze tam vznikla jista komunita (coz rozhodne neni malo) nenabizi zadnou dalsi podporu. Z toho co jsem tu navrhoval je to vlastne akorat ta cast "vyvojarsky blog". Ale uznavam, ze timhle bodem jsem si asi ze vsech nejmin jisty.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    CYBERWOLF: Koukni se na to z pohledu studia/firmy, ktera chce vydelat.

    1) My jsme to museli udelat od piky, protoze jsme vymysleli A,B,C a jeste D. Jestlize to dame open source, tak konkurence to uz delat od piky nebude muset. Kdyz si to nechame, tak to konkurence sice taky udela, ale bude ji to trvat o neco dyl => my ziskame cas na vymysleni a realizaci E, F a mozna i G.

    2) Ano, vyvijeji to jako open source, ALE na necem vydelavaji. Vetsinou to bejvaj skoleni, support, upravy na miru atd... V drtivy vetsine (nemam presny cisla) se jedna o zakazky pro firmy - a to ne pro cesky firmy, ale vetsinou ty zapadni, ktery jsou schopny a ochotny platit "nechutny" mnozstvi penez za takovej zakazkovej vyvoj. Da se tohle aplikovat i pro hry? Myslim, ze ne. Tam bude potreba vydelavat na necem jinem.

    btw. spousta webovejch aplikaci maji free variantu a pak komercni. Nektery open source projekty se odladily jako open source a pak presly ke close source. Casto to bejvaj takovy, ktery nemaji jinou open source variantu v pozadovany kvalite a/nebo mnozstvi funkci. Ceny pak nebejvaj uplne nizky.

    Ale to je spis na flame open source vs. close source. To moc nechci rozebirat.

    3) Komunikacni rozhrani na marketing je myslim uplne mimo open source. Tam se proste prizpusobis tomu prostredi kam chces reklamu (bez ohledu na formu reklamy) dostat.

    4) Ve vyvoji softwaru a v oblasti internetu vytvorit neco, co je dlouhodobe bezudrzbovy je imho nepouzitelny pro nejaky komplexni zalezitosti v delsim casovym useku. Navic je kolikrat rychlejsi si napsat jednoduchou, neuplnou implementaci nejakyho protokolu, ktera ale zvlada to co potrebujes a to zpusobem, kterej potrebujes. Mam rad pouzivani frameworku napsanejch jinejma lidma. Ale kdyz jich do projektu musis pridat patnact, tak to pak lehce dela neplechu, nehlede na performance (frameworky se snazi byt univerzalni a resit co nejvic veci => performance jde dolu).

    5) Vymysleni spolecneho API a to pak pouzivani vsude => vlhky sen softwarovych architektu, ale nocni mura vyvojaru, kteri se snazi implementovat uplny novinky :).


    Jako me se ten napad taky libi. Bylo by uzasny mit server, kam bych si prisel a nasel priklad efektivniho pathfindingu naimplementovanej v SQL, ukazku jak spravne delat rule engine atd... Na druhou stranu - nedopadlo by to pak jako s lepicema kodu v javascriptu? Lavina novejch her, ktery by si byly vsechny podobny, protoze vsechny vychazej z toho samyho? U business aplikaci to myslim moc nevadi, tam je to mozna i spravne - pracovni sila si postupne zvyka na nejakej obecnej standard a jse +- schopna se adaptovat na ruzny aplikace od ruznejch firem. Ale hry jsou IMHO (klidne se muzu mylit) zrovna oblast, kde jde hodne o kreativitu, originalitu a bylo by hezky, kdyby i hratelnost. A to na nejakym spolecnym serveru nenajdes.

    btw. ted me napada - neexistuje to uz a nerika se tomu Gamasutra?
    CYBERWOLF
    CYBERWOLF --- ---
    TRANCEWARP: vezmu to po odstavcich:)

    Holt pokud na tom bude chtit vydelat, bude muset nejspis vytvorit nejakou pridanou hodnotu. Otazka je, jestli by to bylo narocnejsi, nez zacinat od piky a myslim si, ze ne. Kdyz se podivam na ruzne "profesionalni" hry, tak jsou si s konkurenci dost zasadne podobne - napriklad monstergame a bitefight - a obe museli udelat od piky, na obou vydelavaji a obe jsou prakticky stejne.

    Uprime receno, nevim. Kdyz vezmeme v uvahu, ze jsou lidi schopni jako open source vyvijet velice uzitecne, presto vsak ne zcela zabavne a na schopnosti narocne veci jako operacni systemy nebo graficke programy, nebo udelaji mody pro cizi hry, ze na kterych z principu nemohou vydelat nic, ale presto jsou ty mody casto rozsahlejsi a nekdy i lepsi, nez puvodni hra, rikam si, ze ta vule i schopnosti mezi lidmi jsou. Na webu jsou to pak miliony ruznych (avsak velmi podobnych) CMS a nakonec i par tech her. Jejich uspesnost tezko posoudit, pouzitelnost

    Zynga dokazala vyuzit komunikacni kanaly (facebook a myspace), kterymi nekomunikuje jen s hraci svych her, ale i s cizimi hraci a nehraci a primo je tak topi ve spamu taha do svych her. Touto jistou otevrenosti ziskava zasadni vyhodu oproti hram a spolecnostem, co si hrabou jen na vlastnim pisecku a hrace tahaji pomoci reklam a referalu.

    Prave proto by musela byt implementace co nejjednodussi a pokud mozno bezudrzbova - teoreticky, samozrejme :)

    Ano, ruzne API se obcas objevuji a kazdy si to resi nejak po svem. Nebylo by snazsi misto vymysleni vlastni API pouzit hotovou knihovnu, ktere treba pro zakladni veci jako zpravy bude stacit pouze zavolat funkci a predat par parametru?
    TRANCEWARP
    TRANCEWARP --- ---
    CYBERWOLF:
    add open source - open rule: no, ale pak to nekdo bude provozovat a uctovat za to prachy... a protoze tech games bude tisic kopii, tak nejspis nevydela dost na to, aby udelal team lidi, co se o to bude starat a bude to napytel...

    nebo myslis, ze se vsichni slozej jako na wikipedii? ;D tam mi muj prospevek prisel k necemu, ale na free gamesu neda nikdo nic imho...

    ad ta zynga, tomu jsem neporozumel... myslis to tak, ze zynga to vede jinak nez jsem psal? pls vysvetlit ;D

    hele, primarne se mi ta tvoje myslenka libi, jen mi prijde nerealna... jako vyrobce nejaky hry mas milion tun prace s tim neco naimplementovat a udelat pro hrace neco, co bude mist smysl a jeste pritom spolupracovat s podobnym webem je dost casove nestihatelny...

    ale popravde mi prijde, ze je asi dobry ty veci mit nejakou formou otevreny... treba mit protokol na zpravy open s mit na nej API, nebo podobny vychytavky, co si lidi sami budou moct nejak prizpusobit... je to sice polozka 45669 na mym seznamu, ale budu o tom premyslet ;D diky
    CYBERWOLF
    CYBERWOLF --- ---
    Priklad, jak se da spalit namet (Cerveny trpaslik) a udelat uplne pitoma hra:
    Červený trpaslík hra - Hlavni strana
    http://mysteriaserver.sk/rd/
    CYBERWOLF
    CYBERWOLF --- ---
    Pro případ, že ještě někoho zajímá průběh mého stohodinového experimentu:

    V tuto chvíli jsem se dostal něco přes 75 hodin. Kdybych nemusel zahodit sestavování družiny, protože jsem ho totálně zvrtal, tak by se hra dala považovat již za minimálně hratelnou... tedy stylem gamebooku, s tím že tam může být víc hlavních postav a do textu se dají vkládat jejich jména podle pořadí. Co ale mi dělá radost je, že mám pružné uživatelské rozhraní s obrázky postav a teploměrem ukazující stav životů (nebo čehokoliv, co se navolí v xml) a funguje i vypadá to výtečně :)

    Stále tedy zbývá (mimo sestavování družiny) udělat funkce složitější funkce pro práci s postavami (výběr podle hodnot, změny hodnot...), což by ale neměl být problém. Větší oříšek bude práce s inventářem a vylepšování postavy.

    Vzhledem k tomu už si nemyslím, že se do 100 hodin vejdu, ale zas o tolik bych to také přetáhnout neměl (odhadoval bych to teď na nějakých 120). Takže pokud to půjde alespoň tak jako doposud, v březnu by mohla být betaverze :)
    CYBERWOLF
    CYBERWOLF --- ---
    heh, tak tady jeden javascriptik :)

    Online Line of Sight Checker for Descent: Journeys in the Dark
    http://www.descentinthedark.com/_l_/line_of_sight_checker.php
    CYBERWOLF
    CYBERWOLF --- ---
    obavam se, ze php a js nenajdes nic, ale obecne bych hledal line of sight (LOS).

    Otazka je, jak moc verne to chces mit a jak moc daleko ma byt videt. Pokud ti staci, rekneme, 7x7 policek, pak celkem neni problem to pocitat v realnem case, na vetsi vzdalenosti uz bych se toho asi bal. Nejakou dobu zpatky jsem resil pohyb po mape (rovne a uhlopricne) pomoci A* a uz par desitek kroku se pocitalo osklive dlouho (tj. neslo by pouzit v realnem case).

    Ale zpet k viditelnosti. Rekneme ze mame nasledujici situaci:
    X - nepruchodene
    O - pruchodne
    F - figurka
    ? - neviditelne
    X X X X O O O
    X X X X O O O
    F O O O O O O
    X X X X O O O
    X X X X O O O
    X X X X O O O
    X X X X X X X
    
    Idealni by bylo modelovat viditelnost od pozice figurky pod uhlem, ktery jse z obou stran omezeny, coz ovsem asi nebude sranda. vysledek by pak mel vypadat asi takhle:
    ? ? ? ? ? ? ?
    X X X X ? ? O
    F O O O O O O
    X X X X ? ? O
    ? ? ? ? ? ? ?
    ? ? ? ? ? ? ?
    ? ? ? ? ? ? ?
    
    Jednodussi varianta je sirit viditelnost nejak trivialne a ne zcela presne. Treba 4 smery od F, pricemz se vzdy posuneme o jedno policko danym smerem, zkusime jestli je to na jeden i druhe strane pruchodne a pokud ano, tak se posunujeme i z techto policek. Vysledek by mel vypadat takhle:
    ? ? ? ? ? O O
    X X X X O O O
    F O O O O O O
    X X X X O O O
    ? ? ? ? ? O O
    ? ? ? ? ? ? O
    ? ? ? ? ? ? ?
    


    Prvni varianta je spis matematicky problem (a zkusil bych se na reseni optat matematiku), druha varianta je celkem jednoducha iterace.

    (mimochodem, treba je treba jedna z tech obecnych veci, na ktere by mohl byt ten snipet repository, o kterem jsem mluvil :) )
    KOC256
    KOC256 --- ---
    YAWGMOTH:
    Proto jsem tak vahave reagoval :)
    predstavoval jsem si zakladni primitivni bludiste bez mistonosti ale jen cesty. ale i tam muze vzniknout zadrhel verim...
    YAWGMOTH
    YAWGMOTH --- ---
    KOC256: ona ta viditelnost neni úplně triviální, když máš místnost 5x5, stojíš v rohu, tak protější roh po úhlopříčce vidíš .. ale už ne pokud to není místnost ale kruhová cesta třeba (tj z našeho pohledu místnost se zdí uprostřed). Úkol je zobrazit vše co je v "line of sight". Tedy je možné to udělat jako procházení grafem a pro každé políčko ještě zkoumat jestli na spojnici s počátkem není zeď. S tím jdou určitě vymýšlet zajímavé optimalizace :)
    KOC256
    KOC256 --- ---
    TOMAS3333:
    mozna si to predstavuji jak hurvinek valku ale co ti brani mit pole

    OOXOO
    OXXOO
    OXOOX
    OXXXX

    Kde cesta je reprezentovana pomoci X. Pak jen zjistujes zda v linearnim smeru dane policko vidis ci ne (pruchodem s inkrementaci X nebo Y souradnice) a stejne tak resis i moznost chozeni.

    Nebo na toto se neptas?
    TOMAS3333
    TOMAS3333 --- ---
    KOC256: aj aj + to svetlo by ma zaujimalo jak sa riesi, na generovanie bludiska/mapy by som mozno prisiel aj sam, ale chcem si o tom radsej nieco precitat, keby sa naslo
    KOC256
    KOC256 --- ---
    TOMAS3333:
    jde ti i o generovani nebo jen o půohyb a jak a cim to mit reprezentovane?
    TOMAS3333
    TOMAS3333 --- ---
    TENCOKACISTROMY: pathfinding nie je to co hladam, skor nejake tutorialy ako mapy "postavit" a ako urobit pohyb "hraca"
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    TOMAS3333: hledej PathFinding. Nejznamejsi je myslim A* (A-Star) algoritmus.
    TOMAS3333
    TOMAS3333 --- ---
    neviete o nejakom tutorialy na 2D mapu (konkretne bludisko), pohyb v nej a svetlo? (aby nebolo vidno za rohy apod.) php + javascript idealne, neviem pod cim a kde hladat
    CYBERWOLF
    CYBERWOLF --- ---
    TRANCEWARP: open source = open rule a hraci si mohou sahat do databaze a podvadet - neni pravda. Ze je to opensource neznamena, ze muzou menit kod za behu. Muzou proste stahnout posledni revizi, treba v ni i neco udelat (a kdyz to bude nejaka levarna, tak to nekdo zahodi nebo prepise), pripadne rozjet vlastni upraveny mod, ktery ale do puvodni hry nezasahuje.

    TRANCEWARP: Ja si myslim, ze pristup, ktery prezentujes (kazdopadne diky za ten nazor) je duvodem, proc Zynga a dalsi facebookove herni spolecnosti udelali oproti jinym "ostrovnim" webovkam diru do sveta. Prilisne obavy z toho, ze by nekdo mohl zacit hrat jinou hru, kdyby o ni nahodou nasel zminku a snaha udelat vsechno, vcetne komunikace, sve a proprietarni jsou podle me dost zasadni brzdy a duvod, proc FB hry maji radove vic hracu, nez ty ne-FB.

    Dovolim si u jednotlivych bodu oponovat:
    Katalog - ano, ale katalog specialne s webovymi hrami jsem na ceskem internetu nasel dohromady jeden. Katalog sam o sobe je preci dobra vec, protoze je to zpusob, jak hrac tvoji hru muze najit + zanedbatelny link :)
    Komunita - jenze tak se ti treba podari vytvorit hracskou komunitu tvoji hry. Neprijdou tam hraci od jinud a nereknou si "jee, to je super". Komunita hracu webovych her obecne by dle meho prinesla jak lepsi zazitky hracum, tak vic hracu jednotlivym hram. Samozrejme, spatne hry by rychleji ztracely sve hrace, kteri by treba nasli lepsi alternativy, ale to je jen urychleni neodvratneho.
    Achievementy - to s tim souvisi. Proc by se nemeli lide, co tvoji hru zrovna nehraji dozvedet, ze mas achivement "Ultimate Alien Ass Kicker" a rict si "To je mazec!" a regnout se?
    Komunikace - tady asi doslo k nepochopeni - nejde o pseudomail nebo ICQ, ale o propojeni interni komunikace jednotlivych her do jedne schranky, kde budesmit treba:
    Travian - vesnice je v plamenech
    Red dragon - posta od VelkyZelenyKrecopazout
    ...
    Agregace - tady vubec netusim, jak to myslis...ja to vidim tak, marketaci uvidi prezenaci, ze ktere se jim zatoci hlava a pujdou za vyvojari, kteri pak naimplementuji API
    Blog - kazda hra ma vlastni, ktery ctou jen jeji stavajici hraci...
    Statistiky - jelikoz to vlastne poskytnou sami uzivatele tim, ze si hry pridaji do profilu, tak ano, slo by to samo. Facebooku to funguje v mnohem sirsim meritku, proc by to nemelo fungovat tady?
    Kliknutím sem můžete změnit nastavení reklam