M-am uitat și pe cod și pe ce ai zis și totul sună bine și frumos toată treaba<br>e că trebuie să luăm totul cu încetul, până după EEA nu mă bag să fac o<br>evaluare. Am mai vorbit cu Mihai și ne-am decis să renunțăm la engine 
<br>fizic pentru că mi-am dat seama că nu e nevoie de așa ceva. Și vreau să<br>pornim de la un core foarte simplu și foarte bine scris la care să legăm<br>module pe parcurs, deci da o să fie pe modelul MVC sigur. Din lista ta
<br>mai tot o să fie pus într-un modul și legat la un moment dat, dar trebuie<br>tot luat cu încetul, să văd ce mai faci tu și ce mai face Mihai și după<br>dacă merge totul bine cred că o să băgăm consola de debug real-time.
<br>(Care da inițial nu o să facă mai nimic pentru că nu are cu ce lucra <br>dar e bine să ne apucăm de ea și o facem bine structurată chiar dacă<br>o să mai fie modificată de n ori pe parcurs, pentru valori suficient de 
<br>mari ale lui n)<br><br>Andrei<br><br>2008/1/22 Andrei Savu &lt;<a href="mailto:savu.andrei@gmail.com">savu.andrei@gmail.com</a>&gt;:<br>&gt; Salut,<br>&gt; <br>&gt; Chiar e o problem cu partea de move. Cred ca cel mai bine 
<br>&gt; ar fi sa existe un task separat care sa determine reactulizarea modelului<br>&gt; inainte de randare. Ar fi destul de usor de implementat. <br>&gt; <br>&gt; Task-ul de randare trebuie sa se declanseze doar in functie de un interval &nbsp;
<br>&gt; de timp specificat ( odata la 1/30 sec &nbsp;sau mai repede ) pentru a lasa <br>&gt; restul task-urilor sa functioneze pentru a putea simula ok procese continue <br>&gt; si interactiuni complexe. &nbsp;<br>&gt; <br>&gt; O sa incerc sa rescriu codul cat de curand. O sa incerc sa implementez o 
<br>&gt; coada de prioritati pentru ordonarea task-urile si un sistem de comunicare intre <br>&gt; task-uri mai bun. Cred ca este necesara si o clasa de baza pentru model.<br>&gt; <br>&gt; As vrea sa fac un test si cu OpenGL. Am avut o problema cu initializarea prima 
<br>&gt; data. Cred ca o sa gasesc o solutie acum.<br>&gt; <br>&gt; <br>&gt; <br>&gt; <br>&gt; On 1/20/08, Alex Eftimie &lt;<a href="mailto:alex@rosedu.org">alex@rosedu.org</a>&gt; wrote:<br>&gt; &gt; 2008/1/20 Andrei Savu &lt;
<a href="mailto:savu.andrei@gmail.com">savu.andrei@gmail.com</a>&gt;:<br>&gt; &gt; &gt; Salut,<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Asa cum discutasem la ultima intalnire am implementat o versiune a buclei<br>&gt; &gt; &gt; principale asa cum o vad eu. 
<br>&gt; &gt; &gt; Cred ca o arhitectura MVC se potriveste perfect in aceasta situatie pentru<br>&gt; &gt; &gt; ca permita separarea foarte<br>&gt; &gt; &gt; buna intre codul de logica a jocului, codul de tratare de intrari si codul
<br>&gt; &gt; &gt; de randare. <br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Implementarea mea se bazeaza pe ideea ca un joc este o aplicatie care poate<br>&gt; &gt; &gt; fi impartita intr-o<br>&gt; &gt; &gt; serie de task-uri care trebuie sa isi desfasoarea activitatea repetitiv si
<br>&gt; &gt; &gt; intr-o anumita ordine. <br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Daca privim lucrurile din aceasta perspectiva atunci devine clar ca bucla<br>&gt; &gt; &gt; principala trebuie sa implementeze<br>&gt; &gt; &gt; doar partea de comutare de task-uri. Separarea face posibila dezvoltarea in
<br>&gt; &gt; &gt; mod independent a componentelor.<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Codul trimis este experimental si trebuie mult imbunatatit in ceea ce<br>&gt; &gt; &gt; priveste lista de task-urilor si modul cum<br>
&gt; &gt; &gt; acestea pot interactiona intre ele ( trebuie implementat un sistem de mesaje <br>&gt; &gt; &gt; ).<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Pentru demonstrarea conceptului am adaptat codul scris de Alex Eftimie<br>
&gt; &gt; &gt; pentru jocul de snake.<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Pentru construirea engine-ului o sa fie in continuare nevoie de o baza<br>&gt; &gt; &gt; solida de clase pentru: <br>&gt; &gt; &gt; - definirea unui set de clase pentru stocarea primitivelor din joc
<br>&gt; &gt; &gt; &nbsp;- definirea unui set de clase pentru gestionarea spatiului virtual (<br>&gt; &gt; &gt; partitionarea spatiului, LOD, incarcare dinamica de obiecte etc. ) <br>&gt; &gt; &gt; &nbsp;- definirea unui set de clase pentru cinematica ( matematica si pattern
<br>&gt; &gt; &gt; based )<br>&gt; &gt; &gt; - definirea unui set de clase pentru elemente de interfata cu utilizatorul<br>&gt; &gt; &gt; - definirea nivelelor de abstractizare necesare peste pyopengl <br>&gt; &gt; &gt; - definirea unui set de clase pentru gestionarea input-ului ( tastatura
<br>&gt; &gt; &gt; mouse, file based - pentru demo, poate si networking )<br>&gt; &gt; &gt; - sistem de logging ( ar fi super cu facilitati remote pentru depanare <br>&gt; &gt; &gt; realtime )<br>&gt; &gt; &gt; - si multe altele ...
<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Asta sunt cateva dintre ideile care imi vin la ora asta. Evident ca toate<br>&gt; &gt; &gt; astea si multe altele trebuie trecute pe hartie ( sau pe wiki )<br>&gt; &gt; &gt; dezbatute si eliminate cat de mult se poate pana cand se ajunge la cerintele 
<br>&gt; &gt; &gt; pentru versiunea 1.0.<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Astept sa aud parerea voastra.<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Bafta in sesiune.<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; --<br>&gt; &gt; &gt; <a href="http://www.youmago.ro/">
http://www.youmago.ro/</a> - Descopera. Adauga. Compara. <br>&gt; &gt; &gt; &quot;Set your goals high, and don&#39;t stop till you get there.&quot; Bo Jackson<br>&gt; &gt; <br>&gt; &gt; Prea tare. Totusi, ce mi se pare mai putin intuitiv este ca &quot;logica
<br>&gt; &gt; jocului&quot;, adica SnakeGame.move se face in SnakeInput. <br>&gt; &gt; In rest e genial... se vad clar avantajele limbajului: definirea unui<br>&gt; &gt; nucleu cu taskuri care sunt chiar threaduri. Imi place.
<br>&gt; &gt; <br>&gt; &gt; Alex<br>&gt; &gt; <br>&gt; &gt; --<br>&gt; &gt; Alex Eftimie<br>&gt; &gt; <a href="http://anaconda.cs.pub.ro/~alexef/">http://anaconda.cs.pub.ro/~alexef/</a> <br>&gt; &gt; _______________________________________________
<br>&gt; &gt; hfall-dev mailing list<br>&gt; &gt; <a href="mailto:hfall-dev@lists.rosedu.org">hfall-dev@lists.rosedu.org</a><br>&gt; &gt; <a href="http://lists.rosedu.org/cgi-bin/mailman/listinfo/hfall-dev">http://lists.rosedu.org/cgi-bin/mailman/listinfo/hfall-dev
</a><br>&gt; &gt; <br>&gt; <br>&gt; <br>&gt; <br>&gt; -- <br>&gt; <br>&gt; <br>&gt; <br>&gt; <a href="http://www.youmago.ro/">http://www.youmago.ro/</a> - Descopera. Adauga. Compara.<br>&gt; &quot;Set your goals high, and don&#39;t stop till you get there.&quot; Bo Jackson 
<br>&gt; _______________________________________________<br>&gt; hfall-dev mailing list<br>&gt; <a href="mailto:hfall-dev@lists.rosedu.org">hfall-dev@lists.rosedu.org</a><br>&gt; <a href="http://lists.rosedu.org/cgi-bin/mailman/listinfo/hfall-dev">
http://lists.rosedu.org/cgi-bin/mailman/listinfo/hfall-dev</a><br>&gt; <br><br>