• ú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!
    CYBERWOLF
    CYBERWOLF --- ---
    MICTECH: Tak tohle jsou veci, co se vzajeme nevylucuji:) Dotazy pisu rucne, ale prohanim skrz knihovnu (dibi) a pokud prijdu na pripad, kdy to bude vyhodne, budu resit ulozene procedury.
    MICTECH
    MICTECH --- ---
    CYBERWOLF: tohle neni moc o optimalizaci, tohle by jsi mel resit pri navrhu, jakym zpusobem bude resena DB vrstva

    jestli si budes psat vsechny SQL rucne, pouzijes nejakou DB knihovnu v php nebo treba budes pouzivat mnou zmineny procedury a jen je volat s danyma parametrama
    CYBERWOLF
    CYBERWOLF --- ---
    No, zatim bych to s tou optimalizaci moc neprehanel. Je tam toho jeste dost, co by se dalo poladit a ted to bezi pomerne snesitelne, takze jeste je kde to zrychlit a predcasna optimalizace je zdrojem vseho zla:)
    CYBERWOLF
    CYBERWOLF --- ---
    WEWERKA: Tak z toho, co tu pises, bych mel docela hruzu:) Nekonecny cyklus, ktery si to dela jak mu to zrovna jde... Co kdyz toho bude proste moc a pretece to do dalsiho tahu?
    MICTECH
    MICTECH --- ---
    CYBERWOLF: pokud chces usetrit komunikaci mezi php a db, tak to udelej pres storovane procedury
    CYBERWOLF
    CYBERWOLF --- ---
    CHARLEZ: drtivou vetsinu databaze. Puvodne jsem k tomu pristupoval tak, ze kazdy ukol je samostatny objekt se svymy metodami atd., takze jsem pro kazdy zvlast navysoval casy atd. takze pocet dotazu na DB narustal dost strme a s tim i cas co si vzala komunikace mezi PHP a databazi. Rikal jsem si, jak to bude narame prehledne, atomicke, snadno udrzovatelne...no ale cena ztraty vykonu byla prilis vysoka.

    Ted jsem to vyresil tak, ze navysovani tahu dela jeden dotaz, pak si vyberu jen ty ukoncene ukoly, z nich udelam objekty a provedu ukonceni a pripadne aktivaci dalsiho ukolu (v PHP).
    WEWERKA
    WEWERKA --- ---
    Zpracovani pouze pres php je cesta do pekel :( Po predchozich zkusenostech mam veskerou logiku v db (pgsql).
    CHARLEZ
    CHARLEZ --- ---
    CYBERWOLF: vetsinu toho casu ti zpracovava databaze nebo je to zpracovani na urovni php?
    WEWERKA
    WEWERKA --- ---
    CYBERWOLF: Taky jsem se potykala s timhle problemem :) Na zkusebni databazi jsem si vytvorila okolo 100 000 objektu, ktere delaji ruzne ukoly. Napr. starnou, pracuji, ji atd atd. a postupne jsem to zoptimalizovala tzn. inserty misto updatu, cachovani vseho mozneho atd. No a nakonec to bude tak, ze ta urcita akce se vykona v prubehu celeho tahu. Nebudu vedet kdy presne, ale nekdy se vykona. V podstate hrac bude mit moznost treba do pulky tahu jeste zmenit co se ma stat, jen protoze objekt se jeste neoznacil jako zpracovany.

    Takze proc by se treba tovarna nemohla dostavet uprostred tahu.

    S cronem urcite pocitej. Ja si to napsala tak, abych neblokovala transakce, takze se to pousti porad za sebou a vybira si prednostne typy akci, ktere se maji provest. Udela vzdy par veci a jde na dalsi cyklus (nekonecny cyklus, cron je tam jen pro jistotu).
    CYBERWOLF
    CYBERWOLF --- ---
    Tak jsem to udelal tak, ze se po urcitem casovem useku (tedy asi tech 10 min) pusti UPDATE na databazi, ktery vsechny aktivni ukoly posune o jeden tah. Potom vyberu vsechny aktivni ukoly, ktere maji naplneny pozadovany pocet tahu a ukoncim je.

    Co se tyka ukoncovani ukolu, tak to probiha zhruba stejne dlouho, jako predtim probihal kazdy tah (spis se to blizi k 12 vterinam, ale je to zhruba stejne). Pouhe navyseni tahu trvalo necelych 0.1 sec, takze ve vetsine pripadu se jedna o usporu 99% casu (zrychleni o vice nez 10 000% zni jeste lip :))
    CYBERWOLF
    CYBERWOLF --- ---
    TOMG: Proc stahovat kalhoty, kdyz brod je jeste daleko? Nejdriv udelam hru, pak forum a az se zacnou mnozit spameri, tak budu hledat adminy (nebo lepe receno mazace) :)
    TOMG
    TOMG --- ---
    CYBERWOLF: Pocitam, ze hra bude potrebovat i forum a tudiz nekdo to tam bude muset umravnovat. Ale forum tam mit nemusis ze.
    CYBERWOLF
    CYBERWOLF --- ---
    TOMG: Tak s optimalizacemi mam celkem dobre zkusenosti, jeden cas jsem delal na projektu, ktery ve spicce delal 15000 hitu za vterinu (samozrejme jsem na tom nedelal sam, bezelo to na farme atd, ale stejne jsem se naucil docela dost, jak co udelat maximalne efektivni).

    Co se tyka adminu, tak nejak mam pocit, ze nejsou tak moc potreba. Na multilogy se da udelat skript, ktery vetsinu z nich odhali, na dotazy hracu si odpovi sami mezi sebou no a jinak, co s adminy?
    TOMG
    TOMG --- ---
    CYBERWOLF: No i stovka hracu = potreba mit tam nejake adminy na dohled, ale zase je fakt, ze jsou lidi co za virtualni pocit moci ve hre makaji zadarmo :) U tisicu me fakt zajima jak to budes optimalizovat :)
    CYBERWOLF
    CYBERWOLF --- ---
    TOMG: S freehostingem nepocitam, nechtel bych aby mi to za tejden stopli:) Mam vyhlednuty hosting, ktery obsahuje vsechno co potrebuji a vim, ze pokud cokoliv nebude stacit, tak mi to poskytovatel za primereny poplatek navysi, takze neni problem. Vim, ze nic jako neomezeny hosting neexistuje:)

    Co se tyka poctu hracu - cim vic, tim lip:) Pocital bych tak radove stovky, kdyby to lezlo do tisicu, tak uz bych si na treba mohl zaridit i zivnost...
    CYBERWOLF
    CYBERWOLF --- ---
    Dalsi vec je, ze to samotne provadeni tahu neni ani tak moc vypocetne narocne, protoze vetsinou se jen nastavi pocitadlo hotovych tahu u toho ktereho ukolu a jenom kdyz se naplni pozadovana kvota, tak se teprve ukonci. Problem je v tom, ze je jich hodne.

    Ale dostal jsem napad, jak tohle trochu zjednodusit, tak vyzkousim a uvidime:)
    TOMG
    TOMG --- ---
    Na free hostingu budeš rád, když tam budeš mít možnost CRONu co minutu a limit na trvání skriptu. Velice brzo zjistíš, že ty různé sliby, že nejsou limity, nejsou tak úplně pravda v okamžiku, kdy některý z jejich limitů překročíš. Ti slušnější tě na to upozorní, před tím, než ti to sestřelí.
    TOMG
    TOMG --- ---
    CYBERWOLF: Pro kolik hráčů to plánuješ?
    CYBERWOLF
    CYBERWOLF --- ---
    sakra, jak jsem dokazal napasat mlatit misto platit? :)
    CYBERWOLF
    CYBERWOLF --- ---
    MICTECH: PHP + MySQL

    Ze by mi bezel skript, ktery by to chroustal s nejakym semaforem, to uz me taky napadlo, ale me prostredky na hosting jsou omezene a mlatit si managed server se mi nechce, no a kdybych na beznem hostingu mel skript, ktery by bezel treba 90% casu, tak to by ze me asi radost nemely:)

    Ale zas tak bohate zkusenosti s frontami taky nemam, takze pokud mas nejake tipy, budu rad kdyz se o ne podelis :)
    Kliknutím sem můžete změnit nastavení reklam