[hfall-dev] Hammerfall main loop test 1

Alex Eftimie alex at rosedu.org
Sun Jan 20 15:51:35 EET 2008


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

Prea tare. Totusi, ce mi se pare mai putin intuitiv este ca "logica
jocului", adica SnakeGame.move se face in SnakeInput.
In rest e genial... se vad clar avantajele limbajului: definirea unui
nucleu cu taskuri care sunt chiar threaduri. Imi place.

Alex

-- 
Alex Eftimie
http://anaconda.cs.pub.ro/~alexef/


More information about the hfall-dev mailing list