21. září bude sraz! Od 18.00 v restauraci Tradice v Praze u Anděla
Autor Zpráva
argonisius
Profil *
Dobrý den,
chtěl bych vás poprosit o radu s designem databáze pro webovou hru.

Ve hře bude mapa, na ní země. V každé zemi budou postavené určité budovy a budou tam vojenské jednotky. Problém je v tom, že ve hře bude cca 11 ras a každá rasa bude mít svoje jednotky a budovy. Potřebuji nějak "přiřadit" k zemím odpovídající počty budov a jednotek.

Napadlo mě udělat 4 tabulky - země, budovy, vojaci a tabulku, která bude přiřazovat id země k id budov (vojáků) a jejich počty.

Nevíte o nějakém lepším řešení? (v přiřazovací tabulce pro 1000 zemí by potom bylo třeba 12 000 záznamů a ty by se musely všechny přečíst, aby bylo možné vypsat mapu)

Díky za pomoc.
t4nn3r
Profil
No ono to asi jinak nepude, akorát to nahravej do cache, s aktualizací třeba po 30s. (nebo kolik bude tady reálně potřeba)
argonisius
Profil *
Promiň mou blbou otázku, ale když to budu mít ne nějakém free hostingu, budu mít práva pro nastavení nahrávání do cache, resp. obnovu po 30s ?
Nox
Profil
t4nn3r:
Zajímalo by mě co myslíš "nahrát do cache"? Cache je obecný termín označující rychleji přístupné úložiště, jestli myslíš MySQL cache, tak ta se pokud vím nedá ovládat manuálně.
Leda bys myslel (ikdyž nevim jak to z toho odvodit) ty speciální cachovací systémy jako APC nebo memcached a to potom rozhodně ano (tam se ale pokud vím nenastavuje žádná aktualizace)

argonisius:
Podle toho jak se rychle mění zobrazení mapy můžeš načíst jen viditelnou část, pokud je vidět 5x5 a pro posun je třeba načíst stránku, pak stačí načíst 25 polí místo 12000

Jinak využiješ sdružený index, tzn. index(x,y) (což je něco jiného jako index zvlášť na x a y)

http://community.bbgamezone.net/index.php
tady je o mapách celkem dost topiců

Mj. nevím jestli ti takovouto legraci povolí na freehostingu, dokud si tam tak bych to s rozměry a počty nepřeháněl

Jinak návrh DB mi přijde správný, jestli jsem ho pochopil dobře
t4nn3r
Profil
no nox, do file cache bych aspon ukladam html kod ty mapy .. aby se kvuli kazdemu uzivateli nemusela sestavovat z databaze. Casovani ty cache je jednoduchy .. pokud nebude pouzivat zadnou class,nebo framework .. tak tam vlozi do jednoho zaznamu timestamp. Zalezi na tom jak casto se bude ta mapa muset menit ..
t4nn3r
Profil
ADD: je pravda ze ten popis problemu neni moc zrovna podrobne popsany ... jde o to nesestavovat mapu pro kazdeho uzivatele .. (Za predpokladu ze vsichni vidi stejnou, nebo hodne podobnou)
argonisius
Profil *
Omlouvám se za špatný popis problému. Nejedná se o "***************" 5x5 mapu, je to jeden velký obrázek, na kterém jsou klikací oblasti - 1 oblast = 1 země. V těch oblastech se zobrazují obrázky staveb atd. podle toho, jak se vyhodnotí data z databáze (je li postavena ta a ta budova). Na té mapě může být cca 1000 zemí, takže by se musela databáze prohledávat 1000x. tato mapa by se měnila jen 1x denně, takže mě napadlo, že by se vždycky v noci vygeneroval statický html soubor z databáze a potom by se zobrazoval hráčům bez nutnosti komunikovat s databází. Co si myslíte o této možnosti? Jak se dá udělat, aby se do html souboru uložil scriptem vygenerovaný html kód, ne script samotný?
argonisius
Profil *
to ************ je t/r/a/v/i/a/n/o/v/s/k/o/u

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0