|
dev.gamez.lv Latvian Game Developers Community
|
View previous topic :: View next topic |
Author |
Message |
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sun May 16, 2010 10:39 am Post subject: |
|
No C++ viedokļa tas gan nav īpaši labs skatīšanās nolūkos. (C++) iesācējiem neiesaku no tā neko mācīties. Kā spēles kodu jā - varbūt ir ok.
Vēl gluži nesen opensourcēts tika Ryzom MMORPG spēles dzinējs + visi asseti. Vietējiem wannabe-MMORPG taisītājiem vērts paskatīties cik milzonīgi daudz darba jāpieliek, lai ko tādu uztaisītu: http://dev.ryzom.com/ |
|
Back to top |
|
|
elvman Indago Uzvarētājs
Joined: 09 Apr 2003 Posts: 1278 Location: Kuldiga
|
Posted: Sun May 16, 2010 12:36 pm Post subject: |
|
Un cilvēki tomēr vēl joprojām izmanto Ungāru notāciju. Come on! Kods uzreiz izskatās tik drausmīgi, ka lasīt negribās... Iesācējiem noteikti neiesaku lasīt (raw pointeri, singletonu patterns(kaut kas līdzīgs) ). _________________ long time; /* know C */ |
|
Back to top |
|
|
spicausis
Joined: 23 Jan 2006 Posts: 85 Location: Teika
|
Posted: Sun May 16, 2010 12:43 pm Post subject: |
|
Backstory:
Paldies Wolfire organizētajam pus-eksperimentam, pus-labdarības akcijai. Tā piedāvāja iegādāties populāru indiju spēlīšu komplektu par paša izvēlētu samaksu. Par cik projekts sasniedza negaidītu veiksmi (~$1.3 mil ietirgoti), tad četri no dalībniekiem nolēma atvērt kodu saviem projektiem: Penumbra Overture, Lugaru, Aquaria un Gish. Penumbrai un Lugaru kods jau ir pieejams, Aquaria un Gish vēl tiek vērts.
http://www.wolfire.com/humble |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sun May 16, 2010 1:03 pm Post subject: |
|
Quote: | Kods uzreiz izskatās tik drausmīgi, ka lasīt negribās... |
Nez, palasīt jau var. Singleton'i lasīšanai arī netraucē (lai gan mācīties no singletonus lietojoša koda tiešām nav ieteicams). Bet C++iskā Ungāru rakstība tiešām ir šausmīga - likt priekšā visiem lokālajiem mainīgajiem zemo svītru ir traki.. :D
Quote: | Vietējiem wannabe-MMORPG taisītājiem vērts paskatīties.. |
Ceru, ka neskatīsies pēc "nezinu, kas tas ir, tātad nevajag" principa.. _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sun May 16, 2010 1:32 pm Post subject: |
|
spicausis wrote: | Paldies Wolfire organizētajam pus-eksperimentam, pus-labdarības akcijai. Tā piedāvāja iegādāties populāru indiju spēlīšu komplektu par paša izvēlētu samaksu. |
Jā, šis bija riktīgi interesants un labs gājiens (gan spēlētājiem, gan pašiem developeriem ienesīguma ziņā). Kautkad pagājušo gad bija līdzīga akcija - Worlf of Goo par cenu kādu pats gribi. Gan toreiz, gan šoreiz piedalījos un nopirku indie spēlītes.
Ķeksītim reku Lugaru kods + asseti: http://hg.icculus.org/icculus/lugaru/ |
|
Back to top |
|
|
nai
Joined: 20 Dec 2006 Posts: 48
|
Posted: Sun May 16, 2010 6:52 pm Post subject: |
|
bubu wrote: | No C++ viedokļa tas gan nav īpaši labs skatīšanās nolūkos. (C++) iesācējiem neiesaku no tā neko mācīties. Kā spēles kodu jā - varbūt ir ok. |
Kas tieši nav labs? Es labprāt uzklausītu, ko un kur tu rakstītu savādāk un kāpēc.
Manuprāt, izskatās ok, piekrītu, nav perfekts - sure, but production kods reti ir perfekts.
Singletoni - lai arī var būt problēmu avots(http://blogs.msdn.com/scottdensmore/archive/2004/05/25/140827.aspx), es viņus neuzskatu gluži 100% evil, ja man vajag textureloaderi, modelloaderi, etc, es mēdzu izmantot singletonu klasei, kas satur std::map<string,weakptr<resurss>>. Nav ideāli, bet tādā veidā es varu uzprogrammēt vajadzīgo krietni ātrāk. Teiksim tā - singletonu izmantošanas dēļ problēmu man nav bijis.
Raw pointer ir slikti, piekrītu.
System hungarian vairākums gadījumu nav nepieciešams.
Taču kopš kura laika elvmans ir C++ korifejs? |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sun May 16, 2010 7:57 pm Post subject: |
|
Quote: | Nav ideāli, bet tādā veidā es varu uzprogrammēt vajadzīgo krietni ātrāk. |
Vēl labāk ir izveidot tādu klasi, kuru nepieciešamības gadījumā var lietot kā normālu.
Quote: | Raw pointer ir slikti, piekrītu. |
Varbūt esmu traks, bet man atkal ar šiem nav bijušas vērā ņemamas problēmas (t.i. nekas tāds, ko varētu labot ar speciālajiem pointeru konteineriem). Protams - pēdējos 2 gados, ne jau vienmēr..
Tāpēc esmu nonācis pie 2 secinājumiem: Tas, kas strādā, ir labs. ..un.. Jācenšas saskatīt gadījumi, kad attiecīgā metode nestrādā. _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
elvman Indago Uzvarētājs
Joined: 09 Apr 2003 Posts: 1278 Location: Kuldiga
|
Posted: Sun May 16, 2010 8:55 pm Post subject: |
|
Quote: | Taču kopš kura laika elvmans ir C++ korifejs? |
Ja tu domā pēc definīcijas, Izcils (zinātnes, mākslas) darbinieks (http://www.latvianforyou.com/cgi-bin/find.pl?word=korifejs&pos=312532), tad ne korifejs, bet par sūdīgāko programmētāju sevi neuzskatu.
Tu paskaties uz to kodu! Mani neinteresē vai tas ir produkcijas kods, vai testa kods via vēl nez kāds kods, es savu kodu cenšos rakstīt perfekti (un saviem darbiniekiem esmu uzrakstījis vadlīnijas kādam kodam būtu jāizskatās, un izņēmumus laika dēļ cenšos nepieļaut). Ja man nav laika rakstīt perfektu kodu, tad labāk vispār to kodu nerakstu, jo vēlāk tāds kods sagādā tikai daudz vairāk problēmu.
Katrā ziņā, manām pedantiskajām acīm tas kods ir pilnīgi nelasāms. _________________ long time; /* know C */ |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sun May 16, 2010 8:59 pm Post subject: |
|
nai wrote: | Kas tieši nav labs? Es labprāt uzklausītu, ko un kur tu rakstītu savādāk un kāpēc. |
Tas pats, kas te jau vairumā nosaukts - raw pointeri, hungarian paveids, defaini konstanšu/funkciju vietā, Rule of Three neievērošana, using namespace std headeros.
Saproti, pieredzējoša C++ programmētāja rokās tas viss varbūt ir saprotams un labojams. Taču iesācējs ieraudzīs tādu C++ kodu un padomās - ā, pointeri, tas ir labi, ā par tString saucam visu stringu klasi, ok, utt..
Quote: | sure, but production kods reti ir perfekts. |
Tieši tā. Un kā gan lai C++ iesācējs tiek pie production koda, ja šis sāks pielietot sliktākās C++ fīčas? No tādiem kodiem nevajag mācīties programmēt. Paskatīties/palasīt/paurķēties - jā, ok. Bet ne mācīties. |
|
Back to top |
|
|
nai
Joined: 20 Dec 2006 Posts: 48
|
Posted: Sun May 16, 2010 10:47 pm Post subject: |
|
elvman wrote: | Tu paskaties uz to kodu! Mani neinteresē vai tas ir produkcijas kods, vai testa kods via vēl nez kāds kods, es savu kodu cenšos rakstīt perfekti |
Kas tev tieši tik sāpīgi acīs lec, system hungarian?
Lai arī mūsdienu IDEs ir pietiekoši advancētas, lai nebūtu vajadzība likt mainīgo nosaukumiem papildus informāciju, joprojām klases member mainīgos mēdz atzīmēt ar kādu no - mData m_Data _Data variantiem, un tas imho nav noziegums.
Quote: | un saviem darbiniekiem esmu uzrakstījis vadlīnijas kādam kodam būtu jāizskatās, un izņēmumus laika dēļ cenšos nepieļaut) | Padalies. :)
Quote: | Katrā ziņā, manām pedantiskajām acīm tas kods ir pilnīgi nelasāms. | Neskaitot jau minētos iebildumus, kas ir tieši tas, kas tev nepatīk?
Kods spēlei, kas ir veiksmīgi izlaists(un tagad jau veiksmīgi notirgots) automātiskie iegūst MILZĪGUS respekta punktus. Protams, mēdz būt tik briesmīgs retail kods, ka tu vari vien nobrīnīties, kā tas viss ir nonācis līdz plauktam. Taču šis ne tuvu ir tas gadījums.
Es atceros tavus indago projektus, kuri, maigi izsakoties, bija "šķidri".
Varbūt tur apakšā slēpās augstākās raudzes kods, taču tādā gadījumā tas tikai apstiprina, ka perfekcionisms kodā galīgi neko nenozīmē. (turklāt ROD crašoja - tas gan, protams, bija sen).
Kas man liek domāt, kas būtu tas "perfektais" projekts, kura sourci varētu rādīt iesācējam, kas gribētu redzēt, kā lielie spēļu projekti līmējas kopā?
bubu wrote: | defaini konstanšu/funkciju vietā, Rule of Three neievērošana, using namespace std headeros |
Defaini - var piekrist, ka tas nav labs stils
Koda atkārtošanās - root of all evil
using namespace std headeros - pilnīgi piekrītu |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sun May 16, 2010 10:58 pm Post subject: |
|
Quote: | un tas imho nav noziegums. |
Pārspīlēšana ar zemajām svītrām (__Variable) ir noziegums pret programmētāja pirkstiem. Kad pats pamēģināju kādu laiku uzturēt šādu kodu Gunplay'ā (tur man jau koda stili no puspasaules ), tad ātri vien sapratu, ka muļķīgi ir. Memberus gan var apzīmēt īpaši, lai gan retāk sanāk globālos mainīgos veidot, tāpēc tos būtu vislabāk atzīmēt citādāk. Piemēram - unreāldziņa stilā. GD3DDevice. _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
elvman Indago Uzvarētājs
Joined: 09 Apr 2003 Posts: 1278 Location: Kuldiga
|
Posted: Sun May 16, 2010 11:13 pm Post subject: |
|
Nemaz netaisos atbildēt uz tavām provokācijām, nai.
Tev visi mēģina iegalvot, ka kods ir slikti uzrakstīts, ko tu vēl te strīdies? _________________ long time; /* know C */ |
|
Back to top |
|
|
nai
Joined: 20 Dec 2006 Posts: 48
|
Posted: Mon May 17, 2010 12:30 am Post subject: |
|
elvman wrote: | Nemaz netaisos atbildēt uz tavām provokācijām, nai. | Valīdi jautājumi, manuprāt.
elvman wrote: | Tev visi mēģina iegalvot, ka kods ir slikti uzrakstīts, ko tu vēl te strīdies? | argumentum ad populum
Īsumā: ir grūti(nekorekti) nosaukt veiksmīga retail projekta kodu par sliktu. |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Mon May 17, 2010 9:17 am Post subject: |
|
nai wrote: | ir grūti(nekorekti) nosaukt veiksmīga retail projekta kodu par sliktu. |
Kāpēc nekorekti?
Mēs darba veiksmīgi rakstam C++'ā produktu, kurš ir vajadzīgs konkrētajiem klientiem un ir veiksmīgs savā pārdošanā. Bet kods, pie kura es pats esmu un joprojām strādāju, ir slikts (sliktāks nekā Penumbra kods). Un man nav nekādu vēlmes mānīties un izlikties, ka tas nav tāds. Tas tāds ir sanācis laika ierobežojumu un vadības salikto prioritāšu rezultātā. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|