dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

Penumbra: Overture kods
Goto page 1, 2, 3  Next
 
dev.gamez.lv Forum Index -> Programmēšana
View previous topic :: View next topic  
Author Message
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Sat May 15, 2010 9:59 pm    Post subject: Penumbra: Overture kods

Manuprāt ir vērts apskatīties - nav tik šausmīgs, kā citām spēlēm...
http://frictionalgames.blogspot.com/2010/05/penumbra-overture-goes-open-source.html
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: 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
View user's profile Send e-mail
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: 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
View user's profile Visit poster's website
spicausis



Joined: 23 Jan 2006
Posts: 85
Location: Teika

PostPosted: 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
View user's profile Visit poster's website
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: 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.. Very Happy
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: 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
View user's profile Send e-mail
nai



Joined: 20 Dec 2006
Posts: 48

PostPosted: 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
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: 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). Razz Protams - pēdējos 2 gados, ne jau vienmēr.. Very Happy
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
View user's profile Visit poster's website
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: 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
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: 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
View user's profile Send e-mail
nai



Joined: 20 Dec 2006
Posts: 48

PostPosted: 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
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: 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. Very Happy Kad pats pamēģināju kādu laiku uzturēt šādu kodu Gunplay'ā (tur man jau koda stili no puspasaules Very Happy ), 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
View user's profile Visit poster's website
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: 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
View user's profile Visit poster's website
nai



Joined: 20 Dec 2006
Posts: 48

PostPosted: 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
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: 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
View user's profile Send e-mail
Display posts from previous:   
dev.gamez.lv Forum Index -> Programmēšana All times are GMT + 2 Hours
Goto page 1, 2, 3  Next
Page 1 of 3

 
Jump to:  
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