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. <br><br>Task-ul de randare trebuie sa se declanseze doar in functie de un interval
<br>de timp specificat ( odata la 1/30 sec sau mai repede ) pentru a lasa <br>restul task-urilor sa functioneze pentru a putea simula ok procese continue <br>si interactiuni complexe. <br><br>O sa incerc sa rescriu codul cat de curand. O sa incerc sa implementez o
<br>coada de prioritati pentru ordonarea task-urile si un sistem de comunicare intre <br>task-uri mai bun. 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> <<a href="mailto:alex@rosedu.org">alex@rosedu.org</a>> 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 <<a href="mailto:savu.andrei@gmail.com">savu.andrei@gmail.com</a>>:<br>> Salut,<br>><br>> Asa cum discutasem la ultima intalnire am implementat o versiune a buclei<br>> principale asa cum o vad eu.
<br>> Cred ca o arhitectura MVC se potriveste perfect in aceasta situatie pentru<br>> ca permita separarea foarte<br>> buna intre codul de logica a jocului, codul de tratare de intrari si codul<br>> de randare.
<br>><br>> Implementarea mea se bazeaza pe ideea ca un joc este o aplicatie care poate<br>> fi impartita intr-o<br>> serie de task-uri care trebuie sa isi desfasoarea activitatea repetitiv si<br>> intr-o anumita ordine.
<br>><br>> Daca privim lucrurile din aceasta perspectiva atunci devine clar ca bucla<br>> principala trebuie sa implementeze<br>> doar partea de comutare de task-uri. Separarea face posibila dezvoltarea in<br>
> mod independent a componentelor.<br>><br>> Codul trimis este experimental si trebuie mult imbunatatit in ceea ce<br>> priveste lista de task-urilor si modul cum<br>> acestea pot interactiona intre ele ( trebuie implementat un sistem de mesaje
<br>> ).<br>><br>> Pentru demonstrarea conceptului am adaptat codul scris de Alex Eftimie<br>> pentru jocul de snake.<br>><br>> Pentru construirea engine-ului o sa fie in continuare nevoie de o baza<br>> solida de clase pentru:
<br>> - definirea unui set de clase pentru stocarea primitivelor din joc<br>> - definirea unui set de clase pentru gestionarea spatiului virtual (<br>> partitionarea spatiului, LOD, incarcare dinamica de obiecte etc. )
<br>> - definirea unui set de clase pentru cinematica ( matematica si pattern<br>> based )<br>> - definirea unui set de clase pentru elemente de interfata cu utilizatorul<br>> - definirea nivelelor de abstractizare necesare peste pyopengl
<br>> - definirea unui set de clase pentru gestionarea input-ului ( tastatura<br>> mouse, file based - pentru demo, poate si networking )<br>> - sistem de logging ( ar fi super cu facilitati remote pentru depanare
<br>> realtime )<br>> - si multe altele ...<br>><br>> Asta sunt cateva dintre ideile care imi vin la ora asta. Evident ca toate<br>> astea si multe altele trebuie trecute pe hartie ( sau pe wiki )<br>> dezbatute si eliminate cat de mult se poate pana cand se ajunge la cerintele
<br>> pentru versiunea 1.0.<br>><br>> Astept sa aud parerea voastra.<br>><br>> Bafta in sesiune.<br>><br>> --<br>> <a href="http://www.youmago.ro/">http://www.youmago.ro/</a> - Descopera. Adauga. Compara.
<br>> "Set your goals high, and don't stop till you get there." Bo Jackson<br><br>Prea tare. Totusi, ce mi se pare mai putin intuitiv este ca "logica<br>jocului", 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>"Set your goals high, and don't stop till you get there." Bo Jackson