Salut,<br><br>Chiar e o problem cu partea de move. Cred ca cel mai bine <br>ar fi sa existe un task separat care sa determine reactulizarea modelului<br>inainte de randare. Ar fi destul de usor de implementat.&nbsp;<br><br>Task-ul de randare trebuie sa se declanseze&nbsp;doar&nbsp;in&nbsp;functie&nbsp;de&nbsp;un&nbsp;interval&nbsp;
<br>de&nbsp;timp&nbsp;specificat&nbsp;(&nbsp;odata&nbsp;la&nbsp;1/30&nbsp;sec&nbsp;&nbsp;sau&nbsp;mai&nbsp;repede&nbsp;)&nbsp;pentru&nbsp;a&nbsp;lasa&nbsp;<br>restul&nbsp;task-urilor&nbsp;sa&nbsp;functioneze&nbsp;pentru&nbsp;a&nbsp;putea&nbsp;simula&nbsp;ok&nbsp;procese&nbsp;continue&nbsp;<br>si&nbsp;interactiuni&nbsp;complexe.&nbsp;&nbsp;<br><br>O sa incerc sa rescriu codul cat de curand. O sa incerc sa implementez o
<br>coada&nbsp;de&nbsp;prioritati&nbsp;pentru&nbsp;ordonarea&nbsp;task-urile si un sistem de comunicare intre <br>task-uri mai bun.&nbsp;Cred ca este necesara si o clasa de baza pentru model.<br>  <br>As vrea sa fac un test si cu OpenGL. Am avut o problema cu initializarea prima 
<br>data. Cred ca o sa gasesc o solutie acum.<br><br><span class="gmail_quote">On 1/20/08, <b class="gmail_sendername">Alex Eftimie</b> &lt;<a href="mailto:alex@rosedu.org">alex@rosedu.org</a>&gt; wrote:</span><blockquote class="gmail_quote" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; margin-left: 0.80ex; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; padding-left: 1ex">
2008/1/20 Andrei Savu &lt;<a href="mailto:savu.andrei@gmail.com">savu.andrei@gmail.com</a>&gt;:<br>&gt; Salut,<br>&gt;<br>&gt; Asa cum discutasem la ultima intalnire am implementat o versiune a buclei<br>&gt; principale asa cum o vad eu.
<br>&gt; Cred ca o arhitectura MVC se potriveste perfect in aceasta situatie pentru<br>&gt; ca permita separarea foarte<br>&gt; buna intre codul de logica a jocului, codul de tratare de intrari si codul<br>&gt; de randare.
<br>&gt;<br>&gt; Implementarea mea se bazeaza pe ideea ca un joc este o aplicatie care poate<br>&gt; fi impartita intr-o<br>&gt; serie de task-uri care trebuie sa isi desfasoarea activitatea repetitiv si<br>&gt; intr-o anumita ordine.
<br>&gt;<br>&gt; Daca privim lucrurile din aceasta perspectiva atunci devine clar ca bucla<br>&gt; principala trebuie sa implementeze<br>&gt; doar partea de comutare de task-uri. Separarea face posibila dezvoltarea in<br>
&gt; mod independent a componentelor.<br>&gt;<br>&gt; Codul trimis este experimental si trebuie mult imbunatatit in ceea ce<br>&gt; priveste lista de task-urilor si modul cum<br>&gt; acestea pot interactiona intre ele ( trebuie implementat un sistem de mesaje
<br>&gt; ).<br>&gt;<br>&gt; Pentru demonstrarea conceptului am adaptat codul scris de Alex Eftimie<br>&gt; pentru jocul de snake.<br>&gt;<br>&gt; Pentru construirea engine-ului o sa fie in continuare nevoie de o baza<br>&gt; solida de clase pentru:
<br>&gt; - definirea unui set de clase pentru stocarea primitivelor din joc<br>&gt;&nbsp;&nbsp;- definirea unui set de clase pentru gestionarea spatiului virtual (<br>&gt; partitionarea spatiului, LOD, incarcare dinamica de obiecte etc. )
<br>&gt;&nbsp;&nbsp;- definirea unui set de clase pentru cinematica ( matematica si pattern<br>&gt; based )<br>&gt; - definirea unui set de clase pentru elemente de interfata cu utilizatorul<br>&gt; - definirea nivelelor de abstractizare necesare peste pyopengl
<br>&gt; - definirea unui set de clase pentru gestionarea input-ului ( tastatura<br>&gt; mouse, file based - pentru demo, poate si networking )<br>&gt; - sistem de logging ( ar fi super cu facilitati remote pentru depanare
<br>&gt; realtime )<br>&gt; - si multe altele ...<br>&gt;<br>&gt; Asta sunt cateva dintre ideile care imi vin la ora asta. Evident ca toate<br>&gt; astea si multe altele trebuie trecute pe hartie ( sau pe wiki )<br>&gt; dezbatute si eliminate cat de mult se poate pana cand se ajunge la cerintele
<br>&gt; pentru versiunea 1.0.<br>&gt;<br>&gt; Astept sa aud parerea voastra.<br>&gt;<br>&gt; Bafta in sesiune.<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><br>Prea tare. Totusi, ce mi se pare mai putin intuitiv este ca &quot;logica<br>jocului&quot;, adica SnakeGame.move se face in SnakeInput.
<br>In rest e genial... se vad clar avantajele limbajului: definirea unui<br>nucleu cu taskuri care sunt chiar threaduri. Imi place.<br><br>Alex<br><br>--<br>Alex Eftimie<br><a href="http://anaconda.cs.pub.ro/~alexef/">http://anaconda.cs.pub.ro/~alexef/
</a><br>_______________________________________________<br>hfall-dev mailing list<br><a href="mailto:hfall-dev@lists.rosedu.org">hfall-dev@lists.rosedu.org</a><br><a href="http://lists.rosedu.org/cgi-bin/mailman/listinfo/hfall-dev">
http://lists.rosedu.org/cgi-bin/mailman/listinfo/hfall-dev</a><br></blockquote><br><br clear="all"><br>-- <br><a href="http://www.youmago.ro/">http://www.youmago.ro/</a> - Descopera. Adauga. Compara.<br>&quot;Set your goals high, and don&#39;t stop till you get there.&quot; Bo Jackson