Core
Features
- Load balancing (pouze monitoring toku dat a zateze cpu).
- Archive pack.
- Celociselny vektor.
- Data manager - update pres konzoli.
Archive & swap
- Archive - pridat kontrolni slova pri serializaci dat, pro detekci
chyb.
- Archivace - verifikace, ze vsechny objekty v jedne grupe
jsou archivable.
- Swapovani - zakaz swapovani nonarchivable objektu.
- Swap-in pri startu simulace z archivu - class attribut
"simulation_startup_notify" a notifikace objektu.
- Do archivu ukladat factory magic?
- Jak se vyresilo ukladani object version (replikace) do archivu
a obnoveni z archivu/swapu? Funguje to?
- Swap-out notifikace GC o zmene jmena. Problem pri unarchive, neni
pristup ke jmenum ve swapu.
- Zakaz archivace, pokud je objekt na stacku - k tomudle ale
nemuze nastat, pokud se provadi zanorovani next_tick() jen pomoci SRPC,
a ne rucne.
Migrace & lokalizace
- Verifikace migracnich zprav - cil migrace pouze account objekt,
premapovani object id (viz. docy), pouze jeden objekt v migraci
z klienta?
- Global search - ruseni search sessionu pri prijmu status zprav?
Viz. localization.txt.
Net
- Nejake funkcni testy v core/test?
IDL & factories & metaobjects
- Pointery na fwd tridy - vysoupnout
dynamic cast z pointeru a instanciovat ho pres factgen.
- (Ne)funkcnost friendu pro factory a metaobjecty.
- Zdokumentovat MASSIV_OBJECT macro.
- Rezervace kind == 0 & class_id == 0 pro potreby ObjectId.
- Value types (jen na zasobniku nebo v kontainerech) - aby kazdy
novy typ nemusel byt v core.
Mkgen
- Bug: Nefunguji jedno a dvoupismenne adresare (mkgen cache
je nedokaze zpracovat).
- Bug: Nefunguje do idl.list pripsat "my_file.idl # komentar",
hodi nesmyslnou chybu.
Fixes
- RPCObject se registruje do GC se sparnym archivable flazikem.
Zakomponovat zmenu archivable flaziku primo do vytvareni, a ne
dynamicky?
- Registry - misto std::fstreamu pouzivat volume manager (pozor
na pouziti registry (reba temporary na stacku) pred inicializaci
volume manageru).
- RPC - odchyt vyjimek hazenych pointerama (castovaci exceptions
hazeny i na release).
- Uprava PVector - dedeni z Vector23 + ctory pro konverze ze SVector
(kvuli MSVC).
- Chytani vyjimek z textread/textwrite/serialization/bitistream
(ExSerializationError, ...).
- Main loop - volat VolumeManager::flush().
Upravy zdrojaku
- Fwd na iostreamy (iosfwd).
- Zrusit static ze zdrojaku pro singletony.
- Gettery pro singletony z Global nahradit inline metodami
(vytvoreni vsech singletonu pri inicializaci, ne per request).
- PDictionary & logic - zrusit hiding & overloading virtualnich metod.
- Nahrazeni std::endl pouhym '\n' kvuli efektivite.
- Kompilace pod msvc s warning urovni 4 - opravit chyby.
- Zrusit exec flag ze zdrojaku na cvs.
- VLI - Kdyz uz se vi, ze vysledek bude vetsi nez hodnota co
se zapisuje, tak prestat zapisovat zacatek unarne) (ma smysl?).
- Mene restriktivni licence (LGPL).
Demo
Komunikace
- Navrh komunikace client -> server:
interakce s postavou, s inventorarem, chatovani.
- Navrh komunikace server -> client:
replikace, replica manager a updatovani interface, terenu apod.
Svet
- Jake druhy interakce bude mozno provadet ve svete.
- Zakladni entity - hero, jabko, slepice, npc.
- Hero - jake RPG attributy, jake akce bude provadet.
Login
- Kodovani login fajlu pomoci hesla (utilita na kodovani).
- Zadavat login i pres command lajnu (nezobrazeni login dialogu).
- Posilat account object id ve Welcome message, takze klient nemusi
znat object id sveho accountu (a nacitat ho z registry)
resp. pouzivat System::get_my_account_object().
Console
- Neztracet klapky, kdyz je konzole zrovna zablokovana.
Doc
- Kontaktovat marekuse.
- Jaky format? XSLT?
- Sepsat inicializaci nodu - kdy je co povoleno, kdy se startuje
data manager, kdy se prepina node database ze simple do full
modu, ...