View previous topic :: View next topic |
Author |
Message |
Inf3rnal
![](http://sg-team.clan.su/avatar/SkullKnight.jpg)
Joined: 15 Jun 2006 Posts: 118 Location: Neverland
|
Posted: Mon Apr 27, 2009 6:02 pm Post subject: Spēles objektu glabāšana un manipulācija |
|
Ar laiku attīstoties un palielinoties mans RPG, ja to var apzīmēt ar tik spēcīgu vārdu, projekts ir nonācis pie robežas, kad spēles objektus glabāt teksta failā vairs nav ērti. Šim nolūkam apsveru izmantot kādu datubāzi. Datu bāze pati par sevi nav problēma. Mani interesē princips pēc kāda vadīties ielādējot priekšmetus no tās. Ielādēt visus priekšmetus spēles sākumā saglabājot tos speciāli izveidotās struktūrās, ielādēt tikai, kad dotais objekts ir nepieciešams. Ļoti negribas izvēlēties nepiemēru variantu un pēc kāda laika atkal visu pārtaisīt... Skaids, ka katrai spēlei ir vajadzīga individuāla pieeja, taču trūkst pieredzes šajā jautājumā :)
Ja par to var kur palasīt, tad būtu ļoti jauki redzāt kādus atslēgas vārdus ko iedot tantei Gūglei. _________________ while(!asleep()) sheep++; |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
snake5 Indago dalībnieks
![Indago dalībnieks Indago dalībnieks](https://forums.gamedev.lv/images/ranks/cup2.gif)
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Mon Apr 27, 2009 6:16 pm Post subject: |
|
Ko tur daudz domāt? Ja karte liela un atmiņā visa datoram neglabājas, tad lādē pa daļām, ja nav arī tuvu tai atmiņas pārsniegšanas robežai, tad var lādēt visu uzreiz. |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Inf3rnal
![](http://sg-team.clan.su/avatar/SkullKnight.jpg)
Joined: 15 Jun 2006 Posts: 118 Location: Neverland
|
Posted: Mon Apr 27, 2009 6:20 pm Post subject: |
|
Karte pagaidam ir viena liela, kura glabājas teksta failā :) Es biju domājis tādus objektus kā ieročus, bruņas, maģijas, NPC un kvestus... _________________ while(!asleep()) sheep++; |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
elvman Indago Uzvarētājs
![Indago Uzvarētājs Indago Uzvarētājs](https://forums.gamedev.lv/images/ranks/cup1.gif)
Joined: 09 Apr 2003 Posts: 1278 Location: Kuldiga
|
Posted: Mon Apr 27, 2009 6:35 pm Post subject: |
|
Njaa, gadījums diezgan individuāls. Bet nu ja tieshaam "RPG, ja to var apzīmēt ar tik spēcīgu vārdu" tad būs vien jalādē pa daļām t.i. kad ieraugi priekšmetu, ielādē tā attēlu atmiņā. Kad ilgaku laiku to vairs neizmanto, vari izdzēst. _________________ long time; /* know C */ |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Tenjou
![](http://img40.imageshack.us/img40/1708/painhf.jpg)
Joined: 22 Nov 2005 Posts: 275
|
Posted: Mon Apr 27, 2009 7:34 pm Post subject: |
|
Datubāzi izmantot, gan nebūtu korekti, ja domāts kā vienspēlētāja variants.
Iesaku izveidot tādus kā "skriptus" katram objektam un kvestam. Tad izveidot resursu failu, kurā būtu id(vai veidot tos vadoties pēc faila nsoaukuma) un failā atrašanās vieta.
Sākot spēli ielādē šo resursu failu un pēc ID arī ielādē objektu pēc pieprasījuma. |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Inf3rnal
![](http://sg-team.clan.su/avatar/SkullKnight.jpg)
Joined: 15 Jun 2006 Posts: 118 Location: Neverland
|
Posted: Mon Apr 27, 2009 7:44 pm Post subject: |
|
Tenjou wrote: | Datubāzi izmantot, gan nebūtu korekti, ja domāts kā vienspēlētāja variants.
Iesaku izveidot tādus kā "skriptus" katram objektam un kvestam. Tad izveidot resursu failu, kurā būtu id(vai veidot tos vadoties pēc faila nsoaukuma) un failā atrašanās vieta.
Sākot spēli ielādē šo resursu failu un pēc ID arī ielādē objektu pēc pieprasījuma. |
Ar ko tad atšķiras "resursu fails" no kādas MS Access DB? Tik un tā viss sakujts tabulās un sakārtots pēc ID... _________________ while(!asleep()) sheep++; |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Tenjou
![](http://img40.imageshack.us/img40/1708/painhf.jpg)
Joined: 22 Nov 2005 Posts: 275
|
Posted: Mon Apr 27, 2009 7:50 pm Post subject: |
|
Nu jā, depends, kādu DB gribi izmantot. Man pirma asocācija ir kāda nopietnā datubāze ar serveri .
Bet arī atkarīgs inviduāli, vienkāršu infu turēt ir ļoti okey. Citos gadījumos, atsevišķi faili katram objektam ir vienkāršāk un pārskatāmāk. |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Storm
![](http://img58.imageshack.us/img58/4467/akucha25ua.gif)
Joined: 11 Apr 2006 Posts: 742
|
Posted: Mon Apr 27, 2009 8:52 pm Post subject: |
|
Pilniigi garaam, jaaizveido savs speeles kartes formats un tad tur arii jaaglabaa visa informaacija, ti db taisi pats, un katrai zonai teiksim buus savs db failins kuru ielaadees utt. Loti vienkaarsi un saprotami. _________________ Izraadaas ka dazu dev.gamez.lv lietotaaju absurdaa ignorance meedz eksisteet arii augstaakas paakaapees : http://www.gamedev.net/community/forums/topic.asp?topic_id=411552 |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
snake5 Indago dalībnieks
![Indago dalībnieks Indago dalībnieks](https://forums.gamedev.lv/images/ranks/cup2.gif)
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Mon Apr 27, 2009 9:10 pm Post subject: |
|
Inf3rnal wrote: | Karte pagaidam ir viena liela, kura glabājas teksta failā Es biju domājis tādus objektus kā ieročus, bruņas, maģijas, NPC un kvestus... |
Es arī. Karte jau norāda, kuri objekti lietoti.
Nu jebkurā gadījumā es ieteiktu kontrolēt ielādēšanu ar bounding box'iem.
P.S. Vari ielādēt kartes failu un iekšēji glabāt ērtākā formātā. Tur jau nav īsti atšķirības tad tajā, kā to glabā ārēji, kamēr to var konvertēt uz nepieciešamo formātu. |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Tenjou
![](http://img40.imageshack.us/img40/1708/painhf.jpg)
Joined: 22 Nov 2005 Posts: 275
|
Posted: Mon Apr 27, 2009 9:53 pm Post subject: |
|
Storm: Autors manuprāt domāja objektus(ieročus, kvestus)..vai arī to Tu iesaki glabāt kartes formātā? ![Very Happy](images/smiles/icon_biggrin.gif) |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
gazz
Joined: 03 Jan 2004 Posts: 355 Location: Teika
|
Posted: Tue Apr 28, 2009 1:20 pm Post subject: |
|
kaadaa formaataa to visu veelies glabaat ir atkariigs cik daudz tu vari un veelies sadaliit starp preprocessing un runtime daljaam. preproceseejot resursus tos saglabaajot aatri ielaadeejamaas un inicializeejamaas struktuuraas dos priekshroku gala lietotaajam, jo speeles ielaade notiks aatraak, un kas ir ljoti svariigi ja dinamiski tiek laadeeti resursi. savukaart ja veelies glabaat datus vienkaarshi teksta vai jebkuraa citaa plashi izplatiitaa eerti redigjeejamaa formaataa, tad atceries ka pie ielaades tev veel tie buus jaainizializee(jaanoparsee teksta/xml fails, jaakonvertee tekstuuras uz videokartes surfaceem), kas lielaakoties var tikt veikts preproceseeshnas faazee un saglabaats aatri ielasaamaa binaaraa formaataa. tas protams ir arii relatiivi no resursu apjoma/sarezhgjiitiibas, un iespeejams maziem proejktiem shii preproceseeshana un binaaru strukturuu izveide prasa vairaak liidzekljus nekaa ir reaals ieguvums. |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Storm
![](http://img58.imageshack.us/img58/4467/akucha25ua.gif)
Joined: 11 Apr 2006 Posts: 742
|
Posted: Tue Apr 28, 2009 4:11 pm Post subject: |
|
Maacies no wow- vinjiem mpq failos ir dazaada veida db failinji kuri arii glabaa visas lietas. Itemu db buus viens, questu arii viens. Tad karte ir sadaliita apgabalos, kuros eksistee NPC. Ja npc piedaavaa kaadu kvestu tad vins vienkaarsi tur pie sevis taa kvesta ID un briidii kad NPC iekljuust tavaa redzamiibas zonaa NPC ielaadee no db atieciigi visus kvestus un paraada atieciigi savu kvesta ikonu - ti kvests pieejams, izpildiits, var panjemt jaunu etc. Pilniigs idiotisms buutu izmantot kautkaadu mySQL tur kur tu vari uztaisiit failu pats - piemeeram kaadu hashtable ar kvestiem. Ti buus taa ka NPC klase satur vienkaarsi savu objekta ID. Kad NPC ir redzamiibas lokaa no db tiek ielaadeets kvesti kas pieder atieciigajam quest giver ID un NPC atieciigi reagee ar savaam ikonaam or whaterver. Speeleetaaja failaa jaasaraksta tikai kaadi kvesti ir izpildiiti un progress neizpildiitajiem kvestiem, ko NPC nems veeraa kad piedaavaas kvestu, kvestam jaabuut arii taadam kaa conditions aprakstosam elementam, piemeeram:
enum QuestState : uint
{
COMPLETED,
FAILED,
}
int MinLevel;
int MaxLevel;
Dictionary<QuestID, QuestState> questStates;
blablabla, jaapraksta viss iespeejamais ko vien veelies
Un kad kvests tiek apskatiits, tad arii paarbauda vai viss ir piemerots speeletaajam, ti vai vins var tikt tam kvestam klaat. _________________ Izraadaas ka dazu dev.gamez.lv lietotaaju absurdaa ignorance meedz eksisteet arii augstaakas paakaapees : http://www.gamedev.net/community/forums/topic.asp?topic_id=411552 |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Inf3rnal
![](http://sg-team.clan.su/avatar/SkullKnight.jpg)
Joined: 15 Jun 2006 Posts: 118 Location: Neverland
|
Posted: Tue Apr 28, 2009 6:19 pm Post subject: |
|
Paldies par idejām! Šis tas noteikti noderēs.
Savietoju datus MS Access bāzē pa tabulām. Informāciajs iegūšana no DB, laikam, mazliet greizi sataisīta, taču viss darbojas Tagad jāizdomā skaidra sistēma ko, kā un kur... _________________ while(!asleep()) sheep++; |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
bubu Indago Uzvarētājs
![Indago Uzvarētājs Indago Uzvarētājs](https://forums.gamedev.lv/images/ranks/cup1.gif)
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Tue Apr 28, 2009 7:37 pm Post subject: |
|
SQL relāciju DB izmantot ir ok. Taču Access? Tas nu gan būtu viena no pēdējām DBPS, kuru es tādam mērķim izvēlētos.
Es pirmām kārtām skatītos uz SQLite datubāzi. Maza, ātra, embedēta, un ar vienkāršu API.
Last edited by bubu on Tue Apr 28, 2009 8:08 pm; edited 1 time in total |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Vecais_Dumais_Laacis Guru
![Guru Guru](https://forums.gamedev.lv/images/ranks/guru.gif)
![](http://3priedez.net/files/vdl.gif)
Joined: 29 Jan 2004 Posts: 800
|
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
|