Jump to content
Geekforum.cz
Sign in to follow this  
Kubjena

Browser Game - I. Díl

Recommended Posts

Co se naučíme?

  • Vytvoření plnohodnotné strategické prohlížečové hry!
  • Tvorbu VIP systému, automatické zakládání účtu na fóru při registraci do hry!
  • Tvorbu administračního systému pro administrátory (tutoriál, přidání budovy, přidání peněz atd.)

Co budeme potřebovat?

  • Webhosting podporující PHP ve verzi 5.3.
  • MySQL Databázi. 1 DB = 1 server.
  • Zálohovací prostor, pro zálohování dat alespoň 2x denně.
  • phpmyAdmin (nemusí být pokud znáte SQL).

Struktura DB

 

Jednou z věcí, kterou si hned na začátku ujasníme bude struktura DB. Ta se bude postupem času měnit a narůstat, protože budeme přidávat další a další věci. Dále bych vám chtěl podotknout, že pokud využíváte MYSQL na sdíleném hostingu, nemusí vaše DB stíhat. Pokud to tedy, myslíte s tvorbou webové hry vážně doporučuji si koupit VPS. Ale zpátky k tématu.

 

V MySQL databázi budeme mít vytvořenou tabulku members. V této tabulce budeme mít následující sloupce.

  • username
  • password
  • email
  • money
  • vip

V těchto sloupcích budeme deklarovat informace o uživateli. Výrazně doporučuji použít nějaký šifrovací algoritmus pro heslo. Je to kvůli bezpečnosti, ale o tom až někdy jindy.

 

Struktura aplikace

 

Nyní si uděláme souborovou strukturu naší hry. Tuto strukturu nijak neměňte, v dalších dílech tohoto tutoriálů s ní budeme pracovat. Níže se podívejte jak to má vypadat.

 

 

post-1349-0-24530400-1371364869_thumb.png

 

 

To je zatím pro dnešek vše. Vím, že toho nebylo nějak moc hodně, ale měl to být jakýsi úvodní tutoriál, který by vás měl zanést do tajů webových her. V příšťím díle budeme pokračovat. Vytvoříme si přihlášení, registraci, zapomenuté heslo a zobrazení peněz.

 

// Edit: pravopisné chyby, struktura aplikace, opavení názvu MySQL.

Share this post


Link to post
Share on other sites

Pokud má tvůj tutoriál k něčemu být, piš ho pořádně a přemýšlej nad tím, co píšeš.

  • Mezera v názvu složky, která je součástí jakéhokoliv programu, je pěkná prasárna.
  • Většina webserverů běží na linuxu (který je obvykle plně case sensitive) a proto je dobrým zvykem psát názvy složek malými písmeny (už jen proto, že programátor, který se hrabe ve tvé aplikaci nemusí řešit velikosti písmen a ví, že jsou všude malá).
  • Sloupce tabulek v DB by měly začínat malým písmenem.
  • Je vhodné u uživatelů používat identifikátor ID nebo nějaký sessionhash (až budeš posílat ajaxová data, není dobré posílat přímo jméno uživatele).
  • Není to MYSQL ale MySQL.
  • Věta "pokud využíváte MYSQL na sdíleném hostingu, nemusí vaše DB stíhat. Pokud to tedy, myslíte s tvorbou webové hry vážně doporučuji si koupit VPS" je blbost. Je to případ od případu a stejně jako existují absolutně stupidní webhostingy (station), tak existují úplně stupidní vps hostingy (angel-hosting). Nezáleží ani tak na tom, jak je co sdílené, ale jak je co vytěžované tebou a ostatními uživateli.

Neber to jakože rýpu, ale pokud neplánuješ jen farmit posty, vem si to k srdci. :)

Share this post


Link to post
Share on other sites

Ano, ty názvy souborů by měli být malé nějak sem se preklik. Ty sloupce v DB byli vybrány jen pro ukázku. Samozřejmě pak budou malým.

To s tou MySQL, máš plně pravdu, ale předpokládám, že si to každý vyvodí. Jinak s těmi ID to tam samozřejmě bude, ale nechtěl jsem to rozebírat všechno v prvním díle. Velice si vážím kritiky.

Share this post


Link to post
Share on other sites

Chudák. Po pár letech tady někdo něco napíše a hned dostane "vynadáno" :D.

 

Rozhodně piš dál, jen bych se odprostil od těch informací o potřebném výkonu serveru atp. To patří spíš do tutoriálu "jak provozovat browser hru" než do "jak vytvořit browser hru"...

Share this post


Link to post
Share on other sites

Chudák. Po pár letech tady někdo něco napíše a hned dostane "vynadáno" :D.

 

Rozhodně piš dál, jen bych se odprostil od těch informací o potřebném výkonu serveru atp. To patří spíš do tutoriálu "jak provozovat browser hru" než do "jak vytvořit browser hru"...

 

Souhlasím, ale bylo to spíš jen takové várování na čtyři rádky :D. Když si vemeš, že každých 5 sekund ti někdo bude pracovat s DB, tak je to celkem velký vytížení pro server. Webhosting se pro browser hru 2x nehodí, ne, že by DB nestíhala, ale kvůli velkému provozu tě poskytovatel vyhodí.

Share this post


Link to post
Share on other sites

Když si vemeš, že každých 5 sekund ti někdo bude pracovat s DB, tak je to celkem velký vytížení pro server.

Ty pocházet z doby mamut? :huh:

 

 

Jen pro zajímavost, mám 5 let starý server, 32bit. Průměrné vytížení procesoru 4%, průměrný počet dotazů do na MySQL za 1 sekundu: 2470 :-)

Share this post


Link to post
Share on other sites

Počet dotazů za sekundu je hodně zavádějící údaj.

 

Pokud budeš mít 5000 selectů, které budou využívat indexy, tak to není problém (všechno se může kešovat) ale pokud budeš mít 5000 insertů, anebo 5000 složitých dotazů (nebo špatně použité indexy), tak je náročnost úplně ale úplně jinde.

 

A samozřejmě záleží na velikosti tabulek. Pokud budeš pracovat s tisícem záznamů, tak je to sranda. Zkus si ale pracovat s tabulkama, který maj pár giga a jsme zase úplně jinde.

 

Není dotaz jako dotaz.

Share this post


Link to post
Share on other sites

To ano, ale u browserovky prohlásit, že jeden dotaz za pět sekund je vysoká zátěž je prostě ať už jsou okolnosti jakékoliv pěkná hloupost, o tom fakt netřeba spekulovat. Jasne, pokud bude při každém reloadu stránky mergovat do sebe deset tabulek... :D

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...