Welcome to Sdružení ONLINE zábavy

Hledat   v  

  Vytvoř účetDomů | Vložit příspěvek | Tvůj účet | Obsah | Témata | Top 10  

Navigace
· Domů
· Ankety
· Archiv článků
· Diskuze SOZ
· Downloads
· Hledat
· NWN server status
· NWN2 server status
· Obsah
· Slovníček pojmů
· Statistiky
· Témata
· Webové odkazy

Obsah
NWN obecně
NWN World Building
Průvodce PW NWN
SOZ
SOZ Forum

NWN světy
Arkhalia
Demona
Dragon Hammer
Equilibrie
Gwain Tharr
Ilandria2
Kandelábrie1
Kandelábrie2
Mystake
Sferie
Thalie

NWN fora
Arkhalia
BG TSCC
Demona
Demona2
Dragon Hammer
Equilibrie
GamePark
Ilandria2
Kandelábrie1
Kandelábrie2
NWN 1
NWN 2
Thalie

NWN stránky
Čeština do NWN1
Bioware
BioWare Social Network
NWN GamePark
NWN Lexicon
NWN Speciál
NWN Vault (IGN)
NWN Vault (Nový)
NWN Wikipedia
NWN2 CZ překlad
NWN2 Blog
NWN2 scripting
NWN2 Toolset Guide
NWN2 Toolset manuál
Seznam NWN serverů
NWNWiki
NWN2Wiki

Subdomeny
Demona
DragonHammer
Gwain Tharr
NWNWiki

D&D stránky
D20 v kostce
Překladový klíč
WotC

Herní weby
Bonusweb.cz
Doupě.cz
gamerzines.com
mmogames.cz
mmorpg.com
mmorpgtoplist.com

  
Jak na BioWare databázi?





Aneb perzistence na Demone v akci! Pokud jste ostřílení WB jistě jste už narazili na problém jak ukládat některé hodnoty postav (například obsah trezoru nebo stav bankovního konta postavy). Jak jistě víte BioWare po velkém tlaku ze strany hráčů přidala do hry Database Access (patch 1.30), tedy jednoduchou databázi, kam se mohli ukládat perzistentní proměnné. Ale jak už to u BioWare bývá udělala nám to trochu složitější, možná proto aby otestovala naší inteligenci. WB na Demone brzo narazili při implementaci perzistence pomocí BioWare databáze na velké problémy, databáze nekontrolovaně rostla, přistup do databáze způsoboval lagy a data se záhadně ztrácela. George (WB na Demone) nedávno udělal důkladnou analýzu způsobu ukládání a čtení dat do BioWare databáze. Pokud jste zvědavý co objevil, přečtěte si jeho mnou trošku opravený text:

Standardní NWN používá Databázi (dále jen DB) na bázi starého FoxPro. Kromě standardních problémů Foxky má NWN varianta i tyto další nešvary:

  • - funkce DeleteCapmaignVariable () záznam nemaže pouze ho označí jako "smazaný"
  • - neexistuje funkce pack () která by tyto záznamy dokázala odstranit
  • - stejné záznamy (řádky se stejným jménem pole) )typu String nebo Object se nepřepisují ale "smažou se" a vytvoří nové.
  • - stejné záznamy (řádky se stejným jménem pole) )typu Int nebo Float se přepisují.

Příklad:

DB:

"ITEM1" "roba_maga"

"ITEM2" "roba_klerika"

spustím SetCampaignString ("DB","ITEM1","roba_zlodeje")

DB:

* "ITEM1" "roba_maga" - označený jako smazaný

"ITEM2" "roba_klerika"

"ITEM1" "roba_zlodeje"

Je zřejmé že při častém ukládání do DB se tato naprosto neuvěřitelně zvětšuje. Pokud mám DB která udržuje např. seznam itemu v persistentních obchodech či truhlách je po nedlouhé době velikost DB řádově desítky MB přitom platných informací je tam řádově desítky kB.

Řešení problému:

1. SQL databázový server + NWNX - Neverwinter Nights Extender. NWNX – spouští na počítači další aplikaci tentokráte SQL server, což vám umožní téměř cokoliv, ale v případě malého množství dat (řádově kB) je tohle monstrum dost nevyužitý.

2. Přechrochtávač (copyright gGeorg), nástroj který kopíruje platné řádky do nové databáze a starou maže. V události OnModuleLoad projedu DB a zkopíruji si do pracovní databáze (déle jen DB_T) platné řádky. Pak DB smažu, dále vše z DB_T zkopíruji do nově vytvořené DB.



Důvod proč se ptám na to jestli je DB_T kompletní je ten že když založí nový hráč postavu a leknutím že nemá postavy modul zavře. Tím by mohlo dojít ke ztrátě dat.

Přechrochtávač nyní běhá na Demone asi 2 měsíce. Velikosti DB souboru jsou řádově jednotky kB. Lagy způsobené kynutím jsou pryč. Problémy vznikající tím že přerostlé DB jednou za čas smažu jsou taky pryč.

Tento systém vyrobil gGeorg a několika cennými zkušenostmi přispěl Lopyk.

Doporučení a rady:

  • Databáze je pomalá pracujte v maximální možné míře s lokálními poměnými.
  • Některé perzistentní proměnné můžete ukládat do předmětů (například životy postav), ukládání dat je mnohem rychlejší, ale zas nedoporučujeme do předmětu ukládat velké množství proměnných.









Copyright © by Sdružení ONLINE zábavy Všechna práva vyhrazena.

Publikováno: 2005-12-17 (1155 čtenářů)

[ Zpět ]
Copyright © Sdružení Online zábavy, Všechna práva vyhrazena
Můžete šířit naše zprávy pomocí tohoto souboru backend.php
PHP-Nuke Copyright © 2005 by Francisco Burzi.
This is free software, and you may redistribute it under the GPL.
PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky: 0.05 sekund