[hfall-list] Fwd: Limbajul in care programam "caderea ciocanului"

Andrei Buhaiu andreibuhaiu at gmail.com
Tue Nov 27 21:39:38 EET 2007


---------- Forwarded message ----------
From: Andrei Buhaiu <andreibuhaiu at gmail.com>
Date: Nov 26, 2007 9:50 PM
Subject: Re: [hfall-list] Limbajul in care programam "caderea ciocanului"
To: mihai maruseac <mmaruseacph2 at yahoo.com>


On Nov 26, 2007 9:30 PM, mihai maruseac <mmaruseacph2 at yahoo.com> wrote:
>
> M-am gandit perioada asta si am ajuns la o intrebare: "Ce limbaj de
> programare vom folosi ca sa facem jocul?"
>
> Dupa o perioada lunga de cugetare am ajuns la urmatoarele aspecte:
>
> 1.Ne trebuie neaparat un limbaj de programare in care sa putem lucra pe
> clase.
> Astfel avem variantele C++, Java sau C#. Tinand cont ca Java = C# din
> majoritatea aspectelor putem elimina Java mai ales ca C# devine tot mai
> popular si ca putini vor sa-si instaleze masina virtuala Java dar mediul
> .NET se instaleaza de cat mai multi oameni. Avem .NET si pe Linux deci nu
> putem spune ca a folosi C# e ceva not open source: DotGNU
> (http://www.gnu.org/projects/dotgnu/) sau
> Mono(http://www.mono-project.com/Main_Page).

Nu e defapt un avantaj, e doar o anulare de dezavantaj. :P

> 2.Ne trebuie un limbaj care sa permita scrierea de cod modular si usor de
> documentat. Aici cred ca facilitatea /// a C#-ului este foarte utila (daca
> functioneaza si in Mono sau DotGNU) pentru ca permite generarea documentitei
> foarte rapid si real-time uneori. Plus ca in C# nu trebuie sa ne batem capul
> cu de-alocarea pointerilor si modul cum ii folosim pentru ca se poate lucra
> in C# fara a-i utiliza.

Fără să fiu prea bine în cunoştinţă de cauză cred totuşi şi C++ e
destul de modul
pentru cât ne trebuie nouă cel puţin.

> 3.Nu as vrea sa ne complicam cu cate doua fisiere pentru acelasi obiect. Ma
> refer aici la organizarea fisierelor clasa din C++: .h si .cpp. In C# totul
> e simplu, in acelasi fisier sunt si declaratii si cod.

Header-ele sunt destul de utile uneori, nu sunt neapărat un
dezavantaj. Asta dacă
nu ne apucăm şi le încurcăm prea tare.

> 4.In C++ cu OpenGL s-au mai scris jocuri, lumea evolueaza si se va ajunge in
> curand la C#. Hai sa incepem si noi cu ceva nou.

Jocurile se scriu în C++ pentru că are aproape viteza de C şi elemente
de proiectare
orientată pe obiect. Şi aşa e greu pentru noi, nu are sens să fim noi
primii în domeniu. :P

> Cam atat am avut de spus despre limbajul in care vom programa engine-ul si
> main-frame-ul jocului. Haskell nu stiu inca (daca exista vreo sugestie
> pentru asa ceva), C++ pare depasit desi e instrumentul de dezvoltare folosit
> traditional. Si pentru C# exista totusi dezavantaje:
>
> 1.Daca vom scrie in C# numai cei care vor avea .NET, Mono sau DotGNU vor
> putea rula jocul. Cred ca aici nu e o problema din moment ce Vista chiar
> vine cu .NET preinstalat (daca stiu bine)

Trebuie probabil doar .NET framework-ul. Şi la jocul meu de atestat trebuia, ăla
se integrează uşor într-un installer.

> 2.C# nu genereaza cod direct ci cod intermediar care e usor de spart. Va
> trebui sa lucram putin si in codul intermediar ca sa blocam orice reverse
> engineering (daca va fi nevoie). Daca e nevoie de asa ceva, e mult mai usor
> de lucrat in cod intermediar decat in asembly.

Nu cred că reverse engineering-ul e un inamic potenţial.

> 3.Cu C# cam nu ne putem atinge de asembly.

Nu ştiu încă dar e posibil să fie o potenţială problemă asta.

> 4.Exista zvonuri potrivita carora C# e mai putin performant ca timp de
> executie. Am teta asta recent cu urmatorul program simplu: am generat in 3
> cicluri for numere pana la 100000, le-am inmultit si apoi am folosit cate o
> rutina sa le descompuna in factori primi si sa calculeze radacina patrata a
> numarului utilizand metoda newton. Diferenta intre C# si standard C++ (not
> managed) a fost (in windows) de mai putin de 0,1% in favoarea lui C#.
> Nu stiu de ce dar C++-ul a ramas in urma pe acest test.
>
> Deci, eu as prefera C#.
>
> Un alt aspect care va veni mai tarziu dar trebuie luat acum in seama este
> acesta: vom avea nevoie si de un fel de exteriorizare a codului ca sa putem
> face profiling sau sa dezvoltam mai multe module de AI. Aici va trebui sa
> folosim Python sau Lua dar nici unul din ele nu are inca exemple in C#. La
> chestia cu exemplele nici cartile de game design sau opengl nu au exemple in
> C#. Daca ramanem pe C# va trebui sa le portam. Eu totusi prefer un mic
> overhead cauzat de portare decat zile si nopti pierdute cautand o eroare
> mica din cauza unui pointer neinitializat cum trebuie.
>
> Concluzia: Prefer C# dar daca doriti altceva nu-i nici o problema. Cat nu se
> ajunge la Fortran sau altele mai vechi accept orice. Voi invata si Haskell
> daca vreti sa programati in asta.
>
>  ________________________________
> Get easy, one-click access to your favorites. Make Yahoo! your homepage.
> _______________________________________________
> hfall-list mailing list
> hfall-list at anaconda.cs.pub.ro
> http://anaconda.cs.pub.ro/cgi-bin/mailman/listinfo/hfall-list
>
>

Eu aş merge pe varianta clasică de C++, avem şi o documentaţie bună acolo,
şi ştim sigur că merge. :P Dar mai aştept alte păreri şi eu sunt dechis la orice
opinie bine argumentată cum a fost şi asta.


More information about the hfall-dev mailing list