Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 21. říjen 2009, 11:21:04 Předmět: |
|
|
MD napsal: |
A kdy sablony? a stl? A radeji zacit pracovat s char* nebo std::string? Nemyslim ted co je pohodlnejsi, ale co je pro vyuku vhodnejsi |
V knížce Rozumíme C++ se s tím rozhodnutím poprali dobře. Není to ani moc tlustá knížka, která by odrazovala už svým rozsahem. Doporučuji. Pro začátečníka k nezaplacení.
Jak jsem už psal, je lepší postupovat stylem dát si dva tři měsíce na čisté C++ (s touto knížkou se toho dá zvládnout dost) bez externích knihoven. Je to lepší, než si říct, že už zítra začnu programovat svou hru. Ano, možná akorát tak začneš, ale těžko ji dokončíš. Toto ukazuje praxe a je to tak minimálně v 90 % případů. _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
if.then
Založen: 13. 04. 2008 Příspěvky: 579
|
Zaslal: 21. říjen 2009, 12:40:04 Předmět: |
|
|
Dnes podle mě není žádný problém v nedostupnosti C++ apod., přičemž v překladači C++ jde zkompilovat skoro každý program v C (případně s malými změnami). Mně se zdá, že OOP je na tvorbu her ideální (samostatné objekty v herním světě), čímž ale nepopírám, že ukazatele jsou také velmi VELMI důležité.
Eosie> Stačí někde prohodit číslo a hned zapisuješ kam nemáš... Když vidíš segmentation fault, tak je jasné, čím to je  _________________ For guns and glory, go to www.ceske-hry.cz.
For work and worry, execute VC++. |
|
Návrat nahoru |
|
 |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 21. říjen 2009, 16:04:13 Předmět: |
|
|
Segfault je ještě hodně v pohodě, to se dá vychytat brzo. Memory leaky jsou taky v pohodě, ty se dají vychytat a opravit ještě rychleji a snadněji než segfault. Horší jsou chyby, které způsobí, že algoritmus není korektní. Na tohle už žádný jazyk nepomůže. _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
 |
if.then
Založen: 13. 04. 2008 Příspěvky: 579
|
Zaslal: 21. říjen 2009, 20:14:52 Předmět: |
|
|
Už umístění tohoto tématu mluví za vše Nevím, proč by měla být Java kvůli garbage collectoru tak opěvovaná. Já tedy rozhodně radši jazyk, kde vím, že jsem chybu způsobil já špatným užíváním, než nevědět nic a bláhově se spoléhat na collector. _________________ For guns and glory, go to www.ceske-hry.cz.
For work and worry, execute VC++. |
|
Návrat nahoru |
|
 |
OndraSej

Založen: 28. 07. 2007 Příspěvky: 767 Bydliště: Brandýs nad Labem
|
Zaslal: 21. říjen 2009, 20:40:50 Předmět: |
|
|
if.then: pokud jde o umístění, tak souhlas. ještě chvíli a přesunu to aspoň z části do popelnice.
Pokud jde o Javu, tak tam (stejně jako v jiných jazycích) chybu způsobíš pouze špatným užíváním a pokud nějakou způsobíš, tak to zcela jistě poznáš. _________________ http://trionteam.net |
|
Návrat nahoru |
|
 |
Augi

Založen: 28. 07. 2007 Příspěvky: 782 Bydliště: Čerčany
|
Zaslal: 21. říjen 2009, 21:33:44 Předmět: |
|
|
No ale kvůli jisté nedeterminističnosti tu chybu poznáš v té nejméně vhodné chvíli
Jinak volbu GC vs. neGC, resp. managed vs. nativní kód, vidím v požadavcích na efektivitu a časovou náročnost programování. Pokud něco musí být efektivně nebo na to mám hafo času, tak využiji nativní kód. |
|
Návrat nahoru |
|
 |
OndraSej

Založen: 28. 07. 2007 Příspěvky: 767 Bydliště: Brandýs nad Labem
|
Zaslal: 21. říjen 2009, 21:56:46 Předmět: |
|
|
Augi: no ale jaké nedeterminističnosti? Memory leaky (které jdou udělat i s GC) poznáš po podobné době jako bez něj. Chyby spočívající v přístupu ke špatnému kusu paměti neexistují (až na NullPointerException, kterou poznáš okamžitě). A ostatní chyby se GC netýkají, takže se projeví asi tak stejně rychle jako bez něj.
Ale jinak souhlas s tím, že když něco programuju, tak chci se chci soustředit na řešený problém a ne hlídat paměť.
Jinak pokud jde o správu paměti, tak současné GC (přinejmenším ten v Javě) jsou hodně efektivní, včetně toho, že aktuální Java detekuje, jestli objekty může nechat na stacku, takže při rozumném stylu programování spousta dat přes GC vůbec neprojde). _________________ http://trionteam.net |
|
Návrat nahoru |
|
 |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 21. říjen 2009, 22:25:49 Předmět: |
|
|
PanVetvicka napsal: |
Nechci být moc OT, ale budoucnost směřuje k jazykům typu JAVA/C#
Mimo jiné k vůli správě paměti.... |
Historie ukázala, že ve skutečnosti ani moc ne. Budoucnost je spíš částečně v objektově-funkcionálních jazycích se závislými typy a jazycích s implicitně paralelním kódem (jazyky na shadery jsou dobrej příklad). Aktuální jazyky jako C++ a Java selhávají na mnoha úrovních EDIT: a jsou mimojiné cache-unfriendly, což právě v souvislosti s paralelismem bude hrát velkou roli.
Správa paměti pomocí garbage collectoru je v některých případech spíš zbytečná nebo na obtíž, př.: numerické výpočty. Někdy se zase může dost hodit, ale jazyk by mi garbage collector neměl nutit všude. _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
 |
Augi

Založen: 28. 07. 2007 Příspěvky: 782 Bydliště: Čerčany
|
Zaslal: 22. říjen 2009, 08:27:18 Předmět: |
|
|
OndraSej napsal: |
Augi: no ale jaké nedeterminističnosti? Memory leaky (které jdou udělat i s GC) poznáš po podobné době jako bez něj. |
Jo, přesně na tohle jsme narážel. Hodně lidí si totiž myslí, že GC je všespásný a nemůže tam dojít k memory leakům. Ale když si tam udělají nějaké ošklivé cykly... |
|
Návrat nahoru |
|
 |
Quiark

Založen: 29. 07. 2007 Příspěvky: 816 Bydliště: Chlívek 401
|
Zaslal: 22. říjen 2009, 09:24:25 Předmět: |
|
|
Ani nemusíš mít ošklivé cykly, stačí, když ti někde zůstane pointer na celý strom obektů třeba z minulého levelu a je to v pytli
Jinak Eo možná mluvil o této přednášce Tima Sweeneyho (architekt Unreal Engine), kde dependent typy prosazuje. Mimo jiné ale taky říká, že GC by mělo být i pro hry jedinou volbou. Můj názor je ten, že pokud nejste v sektoru AAA, nebo na nějaké pamětí omezené konzoli (to se týká tak 99% lidí tady , tak s GC hru klidně uděláte, stejně jako ji zvládnete udělat bez GC. _________________ Mám strach |
|
Návrat nahoru |
|
 |
OndraSej

Založen: 28. 07. 2007 Příspěvky: 767 Bydliště: Brandýs nad Labem
|
Zaslal: 22. říjen 2009, 09:30:55 Předmět: |
|
|
Augi: pokud mluvime o GC a ne o pseudoGC (jako pocitani referenci), tak cykly nehraji roli. Hraje ji napriklad kolekce "neaktivnich" objektu, ktera je dostupne odnekud ze stacku a nikdo ji nevyprazdnuje. _________________ http://trionteam.net |
|
Návrat nahoru |
|
 |
Augi

Založen: 28. 07. 2007 Příspěvky: 782 Bydliště: Čerčany
|
Zaslal: 22. říjen 2009, 10:32:40 Předmět: |
|
|
Jojo, to měl bejt jen takovej příklad. Chtěl jsem tím jen říct, že GC neřeší vše - pořád je třeba používat mozek... |
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 22. říjen 2009, 11:47:40 Předmět: |
|
|
Slyšeli jste někdy o valgrindu?  _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 22. říjen 2009, 15:48:27 Předmět: |
|
|
Myslíš ten debugovací software, co řeší všechny problémy s pamětí v C/C++ ve vlastním virtuálním stroji? Kdo by ho neznal.  _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1051
|
Zaslal: 22. říjen 2009, 19:01:06 Předmět: |
|
|
no myslim ze vvelmi vela ludi. kedze je linux only. len ma jednu pre mna neprijemnu vlastnost. vypisuje tony memory leakov z cudzich kniznic. neviete ako to odfiltrovat? _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
|