technique du jeu video

technique du jeu video - Algo - Programmation

Marsh Posté le 06-01-2004 à 03:23:30    

:hello:  
 
J'ai réalisé 2-3 jeux sur ma ti-89 mais toujours avec une méthode assez pénible surtout lors des animations.
prenons un exemple:
3 balles qui rebondissent dans un rectangle.
l'algo c'etait  
tant que vrai
 je deplace d'une unité la balle 1
 je deplace d'une unité la balle 2
 je deplace d'une unité la balle 3
fin tant que
mais ca deviens assez pénible si on ne déplace plus des balles mais des animations(et je pense qu'avec la 3D c'est pire). Car pour chaque animations on doit savoir où l'on en est de l'animation et afficher l'état suivant.
 
Maintenant vu la compléxité(au niveau des entités animées) des jeux d'aujourd'hui, je me demande si il n'existe pas d'autres méthodes beaucoup "mieux".
 
J'ai pensé à l'utilisation de threads mais bon prennons un jeu comme warcraft ou plusieurs dizaines d'unités sont animées et interagissent. Il faudrais forcément introduire la notion de sémaphore sur beaucoup de variable :/ Ca fais beaucoup de threads  et beaucoup de sémaphores sur beaucoup de variable(hp de l'unité, mana de l'unité, or des mines, bois, positions sur la map etc etc)
 
Donc voilà si y en a parmis vous qui ont d'autres idées :)
 
 
PS: Si ca a déjà été demandé je m'en excuse mais j'ai pas trouvé ...


---------------
«Le succès consiste à aller d'échecs en échecs sans jamais perdre son enthousiasme» - Churchill
Reply

Marsh Posté le 06-01-2004 à 03:23:30   

Reply

Marsh Posté le 06-01-2004 à 09:22:11    

nan, pas de thread,du bete sequentiel, et hop

Reply

Marsh Posté le 06-01-2004 à 09:24:52    

oué, de tout ce que j'ai vu c'était pareil : automate explicite, on calcule l'état suivant puis on l'affiche. Des fois c'est un poil plus fin, avec plusieurs granularité d'horloge, mais le principe reste le même.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 06-01-2004 à 09:30:28    

tu voudrais que lanimation soit independante du deplacement du perso c ca ? ou du moins pas a la meme vitesse  
bon imaginons que tu ait fait une structure pour ton perso (2d):
 
int x;
int y;
int noanim;   // no de l'anim en cours (chaque no correspondant a un sprite)
....
 
apres il te reste plus qua modifier noanim en fonction du nombre de frames qui on se sont ecoulees (genre 1 frame sur 5)
 
 
tu faisais allusion a plusieurs balles et au fait que ca devenanait difficile a gerer.... pourquoi ne pas faire un tableau regroupant tout les balles en question puis parcourir simplememnt le tableau
 
jvous vraiment pas ou est le probleme ou alors jai pas compris ta question....


Message édité par red faction le 06-01-2004 à 09:46:20
Reply

Marsh Posté le 06-01-2004 à 10:09:43    

@red faction : c'était un exemple ;) et deplus ca je sais faire .
Le problème c'est que je trouve que cette méthode difficil à gérer quand tu as des dizaines d'entités à animés.
 
@Tous : merci je pensais que de nouvelles techniques était apparue :/


---------------
«Le succès consiste à aller d'échecs en échecs sans jamais perdre son enthousiasme» - Churchill
Reply

Marsh Posté le 06-01-2004 à 17:11:52    

fFluFf a écrit :

@red faction : c'était un exemple ;) et deplus ca je sais faire .
Le problème c'est que je trouve que cette méthode difficil à gérer quand tu as des dizaines d'entités à animés.


Je doit avouer que je ne comprends pas ton probleme.
Qu'est ce que veut dire difficile a gerer pour toi?
Juste pour savoir quels sont les languages que tu connait?


Message édité par chagarou le 06-01-2004 à 17:12:03
Reply

Marsh Posté le 06-01-2004 à 17:31:12    

en fait difficile n'est pas le mots. C'est plutôt lourds que je voulais dire.


---------------
«Le succès consiste à aller d'échecs en échecs sans jamais perdre son enthousiasme» - Churchill
Reply

Marsh Posté le 06-01-2004 à 18:01:01    

fFluFf a écrit :

en fait difficile n'est pas le mots. C'est plutôt lourds que je voulais dire.


 
Ben si tu decompose bien les differents problemes c'est pas si lourd que ca (diviser pour mieux regner, tu connait? :) ).

Reply

Marsh Posté le 06-01-2004 à 18:12:44    

le déplacement d'une main au dessus de la tête pour l'unité 1  
et deplacer vers le bas la main pour l'unité 2:
tant que vrai
 deplacer le bras de l'unité 1
 deplacer le bras de l'unité 2
fin tant que
 
pour 50 unités ca deviens lourd.
Quand j'ai fais mes jeux, j'ai trouver ca super chiant comme méthode(bon okai c'était en assembleur mais bon)
 
Enfin bon la n'est pas le problème. Je voulais juste savoir si il y avait d'autre méthode.


---------------
«Le succès consiste à aller d'échecs en échecs sans jamais perdre son enthousiasme» - Churchill
Reply

Marsh Posté le 06-01-2004 à 19:11:59    

Ton proleme, je crois, c'est que ta vision de la prog est restreinte a ce que tu as fait sur calculatrice (dit moi si je me trompe).
 
Imaginons que tu est une liste d'unite.
 
L'algo que tu donne devient:
 
ajoute unite1 dans la liste
ajoute unite2 dans la liste
 
tant que vrai
    pour toutes les unitees dans la liste
         gestion de l'unite
fin tant que
 
Au niveau bien sur pour l'execution du programme ca changera pas grand chose, mais pour le programmeur ca simplifi enormement les choses :)

Reply

Marsh Posté le 06-01-2004 à 19:11:59   

Reply

Marsh Posté le 06-01-2004 à 19:23:05    

chagarou a écrit :

Ton proleme, je crois, c'est que ta vision de la prog est restreinte a ce que tu as fait sur calculatrice (dit moi si je me trompe).


euh oui tu te trompe :)
 
:o je n'ai pas dis que je savais pas le faire ni que j'avais des pb d'écritures des algo. Je cherche à savoir si il existe d'autre méthode.


---------------
«Le succès consiste à aller d'échecs en échecs sans jamais perdre son enthousiasme» - Churchill
Reply

Marsh Posté le 06-01-2004 à 19:25:32    

fFluFf a écrit :


euh oui tu te trompe :)
 
:o je n'ai pas dis que je savais pas le faire ni que j'avais des pb d'écritures des algo. Je cherche à savoir si il existe d'autre méthode.


 
ben pour ce qui est affichage, sequentiel roulaise (et d'autre part je pense pas que D3D/OGL apprecierait de se prendre deux rendus dans la tete en meme temps :D) Ptet pour l'IA que le multithread aurait un interet (multiagent) si il ne bouffait pas autant de perf

Reply

Marsh Posté le 06-01-2004 à 19:32:55    

fFluFf a écrit :


:o je n'ai pas dis que je savais pas le faire ni que j'avais des pb d'écritures des algo. Je cherche à savoir si il existe d'autre méthode.


Pas a ma connaissance.
Le coup du un par thread/entite, est mon avis: bien plus complexe pour le programmeur, bien plus lourd a gerer par le programme.
 
Apres du tes trucs du style un thread pour gerer la logique du jeu, un thread pour gerer l'affchage du jeu, meme si je ne l'ai jamais fait je sais que c'est qqchose de faisable.

Reply

Marsh Posté le 06-01-2004 à 19:50:20    

chrisbk a écrit :


 
ben pour ce qui est affichage, sequentiel roulaise (et d'autre part je pense pas que D3D/OGL apprecierait de se prendre deux rendus dans la tete en meme temps :D) Ptet pour l'IA que le multithread aurait un interet (multiagent) si il ne bouffait pas autant de perf


oui vu comme ca.
Y a pas d'autre méthode oki.
 
 
PS: c'est pas pour faire un jeu c'est que je n'arrivais pas à dormir car je me disais qu'il devait y avoir mieux :p


---------------
«Le succès consiste à aller d'échecs en échecs sans jamais perdre son enthousiasme» - Churchill
Reply

Marsh Posté le 06-01-2004 à 22:39:45    

fFluFf a écrit :


oui vu comme ca.
Y a pas d'autre méthode oki.
PS: c'est pas pour faire un jeu c'est que je n'arrivais pas à dormir car je me disais qu'il devait y avoir mieux :p


 
dans certains jeux (enfin bon je connais que quake3 qui le fasse [:kiki]) le calcul de géométrie hors carte graphique peut être réparti sur deux threads, ce qui accélère un peu le rendu sur un bi proc. Mais le gain n'est pas si terrible que ça pour que cette méthode ce généralise, sans compter que seuls des geeks utilisent un bi proc pour jouer (en attendant les fututres puces bi cpu dont l'hyperthreading est un avant gout douteux).


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 06-01-2004 à 22:44:47    

fFluFf a écrit :


Y a pas d'autre méthode oki.


 
Je vois pas trop ce qu'il pourrait y avoir d'autre comme méthode. Tu es bien obligé de mettre a jour au moins une fois chaque unité par frame, non?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed