<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman, new york, times, serif;font-size:12pt"><div>Ieri (miercuri 28) in timpul orei de filosofie, cum ma plictiseam m-am gandit ca n-ar strica sa fac un brainstorm despre ce<br>componente avem nevoie in joc. Nu a durat prea mult sa gasesc o intreaga lista de componente de care cred ca vom avea<br>nevoie. Majoritatea sunt inspirate si din scurta mea experienta in domeniu si din ce am citit prin carti si tutoriale de game <br>programming. So here it is:<br><br>1.Ne trebuie clar o clasa care sa incapsuleze citirea si scrierea intr-un fisier. Aici avem nevoie si de modalitati de scriere - citire<br>in fisiere text dar si in fisiere binare. Plus, ne mai trebuie si o modalitate de criptare a continutului fisierelor daca nu vrem ca jucatorul<br>sa modifice o singura linie si sa ajunga direct la ultimul level.<br><br>2.Ne trebuie implementat inca
 de la inceput un timer pe care-l vom folosi atat pentru un fps counter cat si pentru un profiler pentru a vedea<br>care componente si care bucati din cod ne mananca mult timp de executie (ambele componente vor putea fi pornite si oprite la cerere <br>cel putin in perioada de debug, la release le putem elimina)<br><br>3.O consola prin care sa putem da comenzi in real time (precum cele de schimbare a fundalului, incarcare a unor elemente, pornirea cetii<br>si a altor efecte speciale, pornirea fps counter-ului sau a profiler-ului; e ceva asemenator cu consola din cs). Tot asa vom putea sa eliminam<br>tasta de mapare a consolei la versiunea final daca dorim.<br><br>Pana acum au fost componente auxiliare engine-ului. Acum urmeaza partea cea mai interesanta: componentele fara de care nu putem face<br>motorul grafic:<br><br>4.Un set de rutine care sa se ocupe cu operatiile de baza pe vectori.<br>5.Un set de rutine care sa obtina ecuatiile unor drepte sau
 planuri cunoscand diferite configuratii de puncte si drepte<br>6.Un set de rutine pentru collision detection<br>7.Un set de rutine pentru clipping (eliminarea din lista obiectelor ce vor fi prelucrate grafic a acelor obiecte care nu intra in campul vizual al<br>camerei si pot fi determinate destul de rapid)<br>8.Un set de rutine pentru culling (eliminarea tuturor poligoanelor care sunt ascunse de alte poligoane)<br><br>9.Incapsulari pentru procese precum incarcarea unui obiect3d din fisier (trebuie sa ne gandim cate si care sunt formatele pe care le vom<br>suporta), incarcarea texturilor, procesarea umbrelor (atat pe plane cat si pe alte suprafete), efecte de lumina, efecte atmosferice, particle<br>systems, ...<br><br>Si cam atat am reusit sa determin in ora respectiva. In functie de cum va arata jocul unele din aceste componente s-ar putea sa nu fie folosite<br>dar nu strica sa le avem, poate facem 2 jocuri utilizand acelasi engine grafic (daca mai
 avem timp, al doilea oricum va lua mai putin).<br><br>Mi-am adus de acasa o carte care prezinta grafica 3d utilizand opengl si are aplicatii simple in C standard sau C++. Caut pe net si sper sa gasesc<br>un pdf in care aveam un tutorial complet despre game engine si grafic engine, nu mai stiu cum am reusit sa-l pierd.<br><br>Cam atat. Nu e prea bine organizat dar nu vroiam sa trimit mai multe mail-uri pentru chestii mai mici.<br> </div></div><br>

      <hr size=1>Never miss a thing.  <a href="http://us.rd.yahoo.com/evt=51438/*http://www.yahoo.com/r/hs"> Make Yahoo your homepage.</a>

</body></html>