.[ ČeskéHry.cz ].
Vyjimky (Exceptions) v hernim prumyslu
Jdi na stránku Předchozí  1, 2, 3, 4, 5  Další
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 16. červen 2013, 18:07:43    Předmět: Odpovědět s citátem

Tak některá ADT si člověk napsat musí, ale psát např. vector nebo list mi přijde dost na hlavu Smile
_________________
Perry.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Mem



Založen: 28. 07. 2007
Příspěvky: 1959
Bydliště: Olomouc

PříspěvekZaslal: 16. červen 2013, 18:08:00    Předmět: Odpovědět s citátem

OT: Vilém, Lemik: fakt se to píše výjimka, ne vyjímka

V C++ jsem výjimky moc nepoužíval (nechal jsem si prohledat zdrojáky her a jediné Try mám v názvu metod Wink). V C# už docela jo, zejména v UI kde je výkon šumák je to často elegantní řešení, v herní smyčce samozřejmě ne. Javu bych z diskuze vynechal, tam to nutí překladač u každé prkotiny tak stejně není moc co řešit a využití exceptions konzistentně se nabízí.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
LukeMak



Založen: 08. 02. 2013
Příspěvky: 16

PříspěvekZaslal: 16. červen 2013, 18:41:57    Předmět: Odpovědět s citátem

Dik za nazory a tipy... Smile Mimochodem, cetl jsem to v knize Game Engine Architecture od Jasona Gregoryho (2009).

http://www.gameenginebook.com/
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



Založen: 28. 07. 2007
Příspěvky: 1047

PříspěvekZaslal: 16. červen 2013, 21:13:35    Předmět: Odpovědět s citátem

ono hlavna vyhoda C++ je ze vas nic nenuti cokolvek pouzivat pricom ak nieco nepouzivate tak vas to ani nebrzdi rychlostne alebo pametovo.
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
pcmaster



Založen: 28. 07. 2007
Příspěvky: 1821

PříspěvekZaslal: 16. červen 2013, 23:16:04    Předmět: Odpovědět s citátem

OndraSej: Niekde v etere, z neovereneho zdroja a rozhodne uplne anonymne som zachytil, ze nove "systemy domacej zabavy", ktore boli nedavno predstavene, maju jedna, ktora na nas cumi cez "obloky" (pouzite slovnik, kto nerozumiete Very Happy), i ked dobre schovane, celkom ocakavane a neprekvapive C++ z vlastnej dielne niekde na zapadnom pobrezi a druha, z takej velikanskej, prestarnutej a ostrovnej monarchie niekde skoro az pred casovou hranicou nejaky ten Clang (ale back-end si nejako uz nepamatam Sad ). A, samozrejme, pouzivat STL je velmi vhodne. RTTI alebo vynimky, naopak, urcite nie Wink Tak ja len tolko, uplne off the record a nemate to odo mna... Very Happy
_________________
Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
TeaTime



Založen: 17. 06. 2011
Příspěvky: 264

PříspěvekZaslal: 16. červen 2013, 23:33:52    Předmět: Odpovědět s citátem

Proč není vhodné používat RTTI?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
OndraSej



Založen: 28. 07. 2007
Příspěvky: 765
Bydliště: Brandýs nad Labem

PříspěvekZaslal: 16. červen 2013, 23:39:29    Předmět: Odpovědět s citátem

pcmaster napsal:
druha, z takej velikanskej, prestarnutej a ostrovnej monarchie niekde skoro az pred casovou hranicou


Zde predpokladam mluvis o Velke Britanii, siru Sinclairovi a ZX Spectrum Wink

Jinak clang se obvykle pouziva s LLVM, jestli podporuje i jiny backend si nejsem jisty. Vim, ze existuje gcc jako frontend k LLVM, ale opacne AFAIK nic neni (vetsinou s u toho rika neco, kde figuruji autori GCC a prasata v te same vete).
_________________
http://trionteam.net
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Tringi



Založen: 28. 07. 2007
Příspěvky: 289

PříspěvekZaslal: 16. červen 2013, 23:48:47    Předmět: Odpovědět s citátem

TeaTime napsal:
Proč není vhodné používat RTTI?

RTTI neboli dynamic_cast a typeid jsou berličky pomocí kterých se lze vypořádat s nedokonalým designem systému.
V reálném světě není nic dokonalé a tak mohou pomoci s ptakopysky, nečekanými směry vývoje, a quick-and-dirty fixy, zvláště u legacy systémů, které mnohonásobně přerostly původní účel a původní limity. Počítat s nimi ale už na začátku návrhu je velmi špatné znamení.
_________________
WWW | GitHub | TW
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
TeaTime



Založen: 17. 06. 2011
Příspěvky: 264

PříspěvekZaslal: 17. červen 2013, 00:44:57    Předmět: Odpovědět s citátem

Tringi napsal:
TeaTime napsal:
Proč není vhodné používat RTTI?

RTTI neboli dynamic_cast a typeid jsou berličky pomocí kterých se lze vypořádat s nedokonalým designem systému.
V reálném světě není nic dokonalé a tak mohou pomoci s ptakopysky, nečekanými směry vývoje, a quick-and-dirty fixy, zvláště u legacy systémů, které mnohonásobně přerostly původní účel a původní limity. Počítat s nimi ale už na začátku návrhu je velmi špatné znamení.


Ono dynamic_casty hodně svádí k prasáckému použití, ale netvrdil bych, že se nedají použít správně.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
quas4



Založen: 18. 10. 2007
Příspěvky: 199

PříspěvekZaslal: 17. červen 2013, 07:52:12    Předmět: Odpovědět s citátem

OndraSej napsal:

Jinak clang se obvykle pouziva s LLVM, jestli podporuje i jiny backend si nejsem jisty.


Nepodporuje. Clang je vlajkova lod llvm. Zajimavosti je ze sami autori pak nedoporucuji pouzivani vyjimek a rtti (prvni verze clang je dokonce vubec neumely):

citace:

In an effort to reduce code and executable size, LLVM does not use RTTI (e.g. dynamic_cast<>;) or exceptions. These two language features violate the general C++ principle of ?you only pay for what you use?, causing executable bloat even if exceptions are never used in the code base, or if RTTI is never used for a class. Because of this, we turn them off globally in the code.

That said, LLVM does make extensive use of a hand-rolled form of RTTI that use templates like isa<>, cast<>, and dyn_cast<>. This form of RTTI is opt-in and can be added to any class. It is also substantially more efficient than dynamic_cast<>.


OndraSej napsal:
Vim, ze existuje gcc jako frontend k LLVM, ale opacne AFAIK nic neni (vetsinou s u toho rika neco, kde figuruji autori GCC a prasata v te same vete).


znam jen plugin dragonegg pro novejsi gcc, ale vylozene o frontentu nevim. O co jde?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 17. červen 2013, 08:39:21    Předmět: Odpovědět s citátem

dynamic_casty používám běžně při inicializaci enginu, kdy mám metodu s proměnným počtem parametrů typu Rodič a sypu tam potomky v různém pořadí. Pomocí dynamic_castu pak registruji do jednotlivých správců co je co. Možná to jde jinak, ale tohle funguje a že to brzdí mi při inicializaci nevadí Wink
_________________
Perry.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
]semo[



Založen: 29. 07. 2007
Příspěvky: 1525
Bydliště: Telč

PříspěvekZaslal: 17. červen 2013, 09:02:12    Předmět: Odpovědět s citátem

perry: a to je právě dost divný :-)

Vilem Otte: taky nepoužívám výjimky, ale na druhou stranu, ošetřovat assertem i vstup, neni vhodný řešení. V releasu většinou vypneš asserty, jak si sám zmínil, ale vstup tim pádem zůstane bez ošetření chyb. To je blbě. Je lepší ještě definovat makro CHECK(cond), který se na releasu nevypíná a který neshazuje program. Dokonce je fajn, když ten CHECK vrací bool, abys mohl nějak reagovat. Jinak samozřejmě ASSERT i CHECK mají mít logování a nějaké pěkné vypsání hlášky.

(Mimochodem, tohle moc nechápu: http://pastebin.com/BGJ6EgZw . Co to je AssertExit? Jakým kouzlem kontrouje string line?)
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory


Naposledy upravil ]semo[ dne 17. červen 2013, 09:09:39, celkově upraveno 2 krát
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 17. červen 2013, 09:07:10    Předmět: Odpovědět s citátem

citace:
perry: a to je právě dost divný Smile


Co je divný ? Že to funguje ? Very Happy
_________________
Perry.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
]semo[



Založen: 29. 07. 2007
Příspěvky: 1525
Bydliště: Telč

PříspěvekZaslal: 17. červen 2013, 09:11:19    Předmět: Odpovědět s citátem

No ta konstrukce, co popisuješ. V žádným enginu jsem nic takovýho neviděl, připadá mi to, jak bys jel z Brna do Prahy oklikou přes České Budějovice. Ale třeba tam chceš navštívit babičku :-).
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 17. červen 2013, 09:24:47    Předmět: Odpovědět s citátem

Já to taky neviděl, já si to vymyslel Cool Very Happy
_________________
Perry.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++ Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2, 3, 4, 5  Další
Strana 2 z 5

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna