Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Patarimai C++ orentuota į žaidimų kūrimą.


Amxxl

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 1728 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Tiesiog taip neturėjau ką veikti tai sugalvojau parašyt 10 patarimų C++ orentuotą į žaidimų kūrimą.
Gal kam pravėrs:
 
1. Naudokite pre-compiled headerius dažnai naudojamas bibliotekas kurių nežadat keitinėt įtraukite juose.
Jūsų kodas atrodys geriau nereikės kiekvienam faile įtraukinėt tų pačių bibliotekų ir sutaupysite
kompiliavimo laiko kai precompiled headeris jau bus sukompiliuotas nereikės perkompiliuot tų pačių
bibliotekų kiekvieną kartą kai keičiate kažką savo projekte.

2. Niekada nenaudokite using namespace header failuose griežtai niekada!
Išvengsite kompiliavimo klaidų, duplikuotų funkcijų, klasių ar struktūrų su tokiais pačiais pavadinimais.

3. Kai tik įmanomą grąžinkite reikšmes su atminties adresu & o ne reikšme,
jei nežadate reikšmės keisti naudokite const pvz:

std::string const& GetName() const { return m_name; }


Aiškų nereikia persistengti visur pvz funckijų argumentuose kai kur tiesiog nelogiška su atminties adresu.
Jei funkcijoje reikšme keičias o argumentu paduoto kintamojo keisti nereikia tada naudokit su reikšme.
Esmė viso šito ta kad su atminties adresu greičiau negu reikšme, nes reikšme daro kintamojo kopija
o adresu tiesiog paduoda adresą tai gali pagreitinti programos darba aišku nereikia tikėtis kad mažame
projekte bus kažkoks skirtumas. Visualiai tai atrodo taip:
pass-by-reference-vs-pass-by-value-animation.gif.9532f45d0b94db137c24b72ff4a2f85d.gif

4. Jei kuriate didesni projekta viską dėkite į namespace šito tikslas toks pats kaip ir nr 2.

5. Jeigu jums svarbus "performance"
Skaičiuokite įvygdimo laiką Susikurkite klase kur konstruktorius išsaugo laika prieš vygdimą,
o destruktorius išsaugo laiką po vykdimo ir (po - prieš) duos laiką kiek truko vykdimas.
Galima iškarto destruktorijuje jį ir atvazduoti. Ir tiesiog norint patikrint kiek laiko truko
funkcijos vykdimas tereikes sukurti klases objekta tos funkcijos pradžioje kurios vykdimo laiką
norime patikrinti. Taip galima išsiaiškinti kas suvalgo laiką ir tai optimizuoti. Video.

6. Šitas pradedantiesiems niekada nekurkite funkcijų, kintamųjų header failuose tik deklaruokite.
Išvenksite duplikacijų kai headeris įtraukiamas ne viena kartą. Kintamuosius galima deklaruoti taip:

extern int number;


Aišku kad tada jis kažkur turi būti sukurtas. Aišku venkite globalių kintamųjų kiek įmanoma.

7. Nenaudokite klasių kintamųjų duomenims saugoti naudokite strukturas.
Kanagi strukūrose nutylint priėjimas yra viešas o klasese privatus nereikės rašyti public:.
Kad gauti priejima prie kintamųjų. Nors skirtumas tarp klasės ir struktūros yra tik šis vienas.
Klases geriau naudoti sudėtingesniems procesams. (Aišku čia asmeninis pasirinkimas).
Iš esmės tai nieko nekeičia programos vykdimui ar apskritai.

8. Išmokite rašyti taisyklinga sintakse aišku dauguma mano kad tai asmeninis pasirinkimas
bet aš manau kad gražiai parašytas kodas lengviau skaitomas ir suprantamas tiek patiems
tiek kitiems.

9. Naudokite smart pointerius apie kiekvieną iš jų nerašysių galima susirasti internete.
Nereikės rūpintis dėl atminties ištrynimo "delete ptr;". Išvengsite atminties nutekėjimo.
Nors ir su "raw" pointeriais jei tvarkingai darant nėra jokių nutekėjimų. Tačiau
Smart pointeriai turi papildomu privalumu pvz: std::shared_ptr<> Galima sužinoti
kiek pointeriu turi tą patį atminties adresą.

10. Teisingai pasirinkite kintamųjų duomenų tipus pavyzdžiui jei jums reikia reikšmės nuo 0 iki 255.
Naudokite unsigned char. Apie kiekvieną duomenų tipą informacijos pilna internete iš esmės jie tik
išskiria tam tikra atminties dydį. Patariu pasimokyti kas yra mašininis kodas tada labiau
suprasite apie šiuos atminties dydžius.

Redaguota , nario Amxxl
Bold numeration.
Nuoroda į komentarą
Dalintis per kitą puslapį

(redaguota)
prieš 3 valandas(-ų), pesh parašė:

Nu su rašyba bei gramatika siūlau pasistengti labiau, daug nerišlių bei netvarkingų sakinių.

Pavyzdžiui? Aš nematau nei vieno sakinio nerišlaus. Dėl gramatikos nieko nesakau gali būti.

Redaguota , nario -amxxL-
Nuoroda į komentarą
Dalintis per kitą puslapį

2018-12-18 04:47, -amxxL- parašė:

1. Naudokite pre-compiled headerius dažnai naudojamas bibliotekas kurių nežadat keitinėt įtraukite juose.
Jūsų kodas atrodys geriau nereikės kiekvienam faile įtraukinėt tų pačių bibliotekų ir sutaupysite
kompiliavimo laiko kai precompiled headeris jau bus sukompiliuotas nereikės perkompiliuot tų pačių
biblioteku kiekviena kartą kai keičiate kažką savo projekte.

2. Niekada nenaudokite using namespace header failuose grieštai niekada!.
Išvengsite kompiliavimo klaidų, duplikuotų funkcijų, klasių ar struktūrų su tokiais pačiais pavadinimais.

3. Kai tik įmanomą gražinkite reikšmes su atminties adresu & o ne reikšme,
jei nežadate reikšmės keisti naudokite const pvz:

Pats pisi prota kazkokioj temoj del rasybos , o  paemus kelis punktus klaidu galima rasti dahuja :DDDDD Elementarios rasybos klaidos, apie skyryba net nekalbu. Pirma save susitvarkyk , kai kitus kritikuosi , vaikeli.

Redaguota , nario mhhm
Nuoroda į komentarą
Dalintis per kitą puslapį

2018-12-23 14:04, mhhm parašė:

Pats pisi prota kazkokioj temoj del rasybos , o  paemus kelis punktus klaidu galima rasti dahuja :DDDDD Elementarios rasybos klaidos, apie skyryba net nekalbu. Pirma save susitvarkyk , kai kitus kritikuosi , vaikeli.

Aš apie skyrybos ženklus ir nekalbu, bet kai žmogus net raidžių nesudeda į vietas tai jau reikia kažką sakyt. Nieko nesakau dėl lietuviškų raidžių, arba skyrybos klaidų. Ir aš kritikuoju ne žmogų, taip kad su tokiais pasisakymais "vaikeli" gali nekelt bangų.

Nuoroda į komentarą
Dalintis per kitą puslapį

prieš 5 valandas(-ų), Tomas parašė:

kodėl šie patarimai skirti būtent žaidimų kūrimui?

Na iš esmės nebūtinai žaidimų kūrimui. Labiau efektyvumui išgauti. Žaidimams jis reikalingas (ypač 3D), dėl to taip ir užvadinau temą.

Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 7 mėnesių...

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 1728 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

Skelbimai


×
×
  • Sukurti naują...