dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

par masivam daudzrotlajbiedru lomu spelem :D
Goto page 1, 2, 3, 4  Next
 
dev.gamez.lv Forum Index -> Iesācējiem
View previous topic :: View next topic  
Author Message
martinezzz



Joined: 02 Feb 2010
Posts: 42

PostPosted: Fri Feb 05, 2010 10:40 am    Post subject: par masivam daudzrotlajbiedru lomu spelem :D

vai kads no forumieshiem ko tadu ir taisijis es vienkarshi taisu un velejos varbut ko iejautat kadam ar pieredzi lai nekaptu uz grabeklja kartejo reizi :)


pirmakie jautajumu kas man jau sen stav ir shie ...

1. izmantoju sql bet esmu dzirdejis briesmas ka taka neesot pratigaakais
varjants ka labak object db .... vaita tik traki ir ??? jo man jau diezgan sadrukats sql aa..

http://doublebuffered.com/2006/10/30/why-sql-sucks-for-mmorpgs/


2. man ir taa ka vis pa lielo shaibu notiek serverside clients tikai tads UI.

tobish man ir masivs kas satur visus rotaljnieku Very Happy datus kurus katraa lupa gremo pariet pari serveris...


vai shads risinajums nenovedis pie totala bremzes kad bus daudz lietu taja masiva ka rezuldtata geims updeitosies makten reti ....


vai tomer nevajag lai katrs klients rekjina savu dolju un serveris tikai kko tur apkopo korekte utt ...
Back to top
View user's profile Visit poster's website
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Fri Feb 05, 2010 10:58 am    Post subject:

1. SQL ir tikai valoda, ar kuru tu vari operēt ar datubāzi, pašai datubāzes tehnoloģijai ar to nav sakara. Ar "object db" tu droši vien domāji object orientētu valodu, tad tev būs jāizmanto Oracle (PL/SQL) vai kāda cita DB, kas izmanto Object-orientētu valodu.

2. Vari turēt visu serversaidā, atkarībā no tā, kāda tipa spēle tev ir. FPS spēlēm tas nederēs, jo tās ir tik ātras, ka tev daļa ir jārēķina arī uz klienta. Ja tu pastāstītu sīkāk par projektu, tad varētu pateikt sīkāk, ko tev labāk izmantot.

PS. par to, ka parasts SQL sucks priekš MMORPG varētu nedaudz piekrist. Man pašam arī servera pusē tas sagādā daudz problēmu. Tāpēc lēnām pāreju uz Oracle
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
Tenjou



Joined: 22 Nov 2005
Posts: 275

PostPosted: Fri Feb 05, 2010 11:18 am    Post subject:

Manuprāt, servera dizains spēlēm, kas piesauc datubāzi pei katras darbības ir vienkārši nepareizi un slinks risinājums arhitektūrai. Rekur no saita, ko meta, "The problem is that SQL databases are designed for high throughput, not low latency.", so secinājums ir, ka vajag vairāk pre-cache informāciju, kas tiešā veidā atbrīvo no daudz izsaukumiem. Sevišķi, kad mūsdienās atmiņa nav problēma.
Back to top
View user's profile
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Fri Feb 05, 2010 11:25 am    Post subject:

Te jau diskusija nav par daudz/maz izsaukumiem. Šobrīd runājam par tehnisko risinājumu. Tas, kā pēc tam to izmantot jau ir paša ziņā.
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
Tenjou



Joined: 22 Nov 2005
Posts: 275

PostPosted: Fri Feb 05, 2010 11:33 am    Post subject:

Doma, bija, ka neredzu iemeslu nelietot SQL, tā kā problēmu nav, ja jamo lieto atbilstoši. Es lietoju MySQL serverim un neesmu vēl saskāries problēmu ātrdarbībā, jo ļoti maz sazināšanās ar datubāzi ir nepeiciešama. Protams neesmu testējis tur 40+ cilvēkīem, bet nekam daudz nevajadzētu mainīties arī tad.
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Fri Feb 05, 2010 11:43 am    Post subject:

Es ar nepiekrītu, kas SQL neder MMORPG. Visa vaina noteikti ir tehniskajā realizācijā. Piemēram, tāds MMORPG kā Second Life laimīgi lieto MySQL un nesūdzas:
https://blogs.secondlife.com/community/technology/blog/2010/01/11/diary-of-a-paranoid-mysql-upgrade
http://conferences.oreillynet.com/presentations/mysql06/wilkes_ian.pdf (sākot no 25. slaida)
Savukārt EVE Online lieto MS SQL.
Tā ka SQL'am noteikti nav problēmu ar MMORPG. Viss ir tur kā tu pats uztaisīsi tur visu.
Back to top
View user's profile Send e-mail
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Fri Feb 05, 2010 1:26 pm    Post subject:

Nu es īsti nerunāju par ātrdarbību, bet lietošanas ērtumu un visām pārējām fīčām, ko piedāvā objektu glabāšana datubāzē.
Un taviem piemēriem bubu varu likt pretī World of Warcraft, kas izmanto Oracle.
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Fri Feb 05, 2010 1:58 pm    Post subject:

Cik man nācies darbojies ar Oracle - tur no lietošanas ērtuma ir 0. Parasti dabūju lielu pain-in-the-ass ņemšanos ar to. Un pēc tam nav ne mazākās vēlmes to lietot atkal. Pie tam bezmaksas versija ir dikti limitējoša, bet maksas versija indie developerim maksā drusku par daudz $$$.

Ar vienkāršiem wraperiem normālā valodā, kur ir reflekcija (C#, Python, Java, ...), var uzrakstīt visai ērtu interfeisu jebkuram SQL - vai tas MySQL, vai PostgreSQL, vai pat SQLite, ko ļoti rekomendēju iesākumam. Velāk vienmēr var db nomainīt.
Back to top
View user's profile Send e-mail
martinezzz



Joined: 02 Feb 2010
Posts: 42

PostPosted: Fri Feb 05, 2010 2:03 pm    Post subject:

man serveris sanak tagad nevis vienreiz lupa aistiek datubazi bet faktiski visas darbibas tiek veiktas sql aaa ... protams es varu ustaisiit luupa sakuma bazi panjem atminja tad visas darbibas veic tur un velak vienkarshi updeito db no atmijas . tobish serveris 2 reiz turna aistek bazi...


tachu ta man jaraksta pasham visas komandas un es zaudeju ertibas :D



tas object db cik saprotu ir datubazes kuras informacija glabajas tadapasha struktura kaa piemeram spele. sqla ir tab un rov. a ODB kope tavu struct ... un tad nevajag wraperi kas sql datus sagrupe tava velamaja forma.

tipa es visu savu player[] varetu glabat pa taisno nevis tur dalit itemi viena lista skili otra utt... man tagad ir 3 listes 1 general par visem objektiem kas atrodas spele 2 sho objektu skili 3 sho objektu itemliste.

tad man pie lupa sakuma no sql a nolasas visi objekti tad katram objektam itemliste un katram objektam skilliste ....

tad loops iet cauri jauniegutajam objects[] un if kautkas tad sql="update object bla bla"

lidzaro katram objektam tien n reizes tramdits db no servera puses...



aa jaa tieshi lietoju sqlite .... webam uSQLite tads vienkarsh serveritis un clients
Back to top
View user's profile Visit poster's website
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Fri Feb 05, 2010 2:39 pm    Post subject:

Doma tev pareiza. Oracle DB tu piereģistrē savu datu tipu. Piemēram:
Player
{
int ID
string name
string getPasswordHash();
blablabla...
}

Pēc tam izveido tabolu šim objektam, piemēram, Players. Tad vari no C++ saglabāt savu objektu DB un to arī izgūt. Taču pati labākā fīča, ka ar PL/SQL vari izgūt objektus arī pēc member funkcijām, piemēram WHERE player.getPasswordHash() = 'kautkadsMD5hash.'

Bet nu jā, kā jau bubu teica, pašā sākumā Oracle licence ir nedaudz par dārgu. Bet vēlāk tas atmaksājas ne tikai dēļ šīs objektu orientācis, bet arī dēļ dāžādiem tehniskajiem risinājumiem, piemēram, ar Oracle, atšķirībā no MySQL, tev nav jāuzstraucas, par load balansēšanu, proxijiem utt. Vismaz cik es esmu lasījis par MySQL, viņiem tādas lietas, kā klasteri, proxiji utt eksistē, bet šitām lietām nav pārāk laba dokumentācija.
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
martinezzz



Joined: 02 Feb 2010
Posts: 42

PostPosted: Fri Feb 05, 2010 3:00 pm    Post subject:

bet par to risinajumu ... vai ir ok ka serveris vislaik aistiek to db ?? vai labak kamer nav parvelu ustaisiit lai divreiz tikai aistiek to db per loop ??
Back to top
View user's profile Visit poster's website
Tenjou



Joined: 22 Nov 2005
Posts: 275

PostPosted: Fri Feb 05, 2010 3:35 pm    Post subject:

Kapēc vispār, tev, jaaiztiek datubāze tik bieži?
Back to top
View user's profile
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Fri Feb 05, 2010 3:58 pm    Post subject:

Nē, loopaa gan DB querijus nevajag likt. Ja peiprasījums ilgst ilgāk par loopa ilgumu, tad veidosies rinda, līdz beidzot tev viss nosprāgs. Ar datubāzi biežākais vajag komunicēt tad, ja kāds pieprasa informāciju vai arī pasaulē ir notikušas izmaiņas. Ja ir vajadzība rēķināt kaut kādus masīvus datus (piemēram useru topus utt.), tad ir vērts apdomāt kaut kādu shcedule'šanu, piemēram, to pašu topu rēķināt tikai reizi stundā (diezvai tas īpaši biežāk mainīsies).
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
VEGETABLE



Joined: 02 Feb 2010
Posts: 6

PostPosted: Fri Feb 05, 2010 4:30 pm    Post subject:

SQL nav ne vainas (ja visi indexi un tipi utt ir pareizi salikti (to parasti iemācās "grūtajā ceļā" Smile )), protams viena par sevi vina nenoturēsies itsevišķi ja esi iecerējis viņu tik daudz izmantot, te nāks palīgā kāda cash sistēma - piemēram MC.
Back to top
View user's profile
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Fri Feb 05, 2010 4:58 pm    Post subject:

Nejauc te iekšā memcached. Mēs nerunājam par web, bet gan par spēles serveri - persistentu aplikāciju, kas var operēt/glabāt RAMā visu kā vēlas.
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
Display posts from previous:   
dev.gamez.lv Forum Index -> Iesācējiem All times are GMT + 2 Hours
Goto page 1, 2, 3, 4  Next
Page 1 of 4

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group