22-05-2013, 11:28 AM
Pareil que Maks, pour asm et pour l'optimisation.
Tous les concepts des moteurs 3D actuels (et passés) sont bons à prendre pour l'optimisation (car ce sont des problèmes déjà rencontrés par ces moteurs, et déjà résolus):
Les octrees (je compte réutiliser ce principe en 2+N et 3+N dimensions, c'est à dire 2D/3D + N paramètres comme le n° de caméra, la timeline, le n° du joueur...)
La clique SpatialGraph/Scenegraph/RenderQueue
L'exemple de Quake, assez vieux, bien documenté, devrait permettre de débroussailler les optimisations à faire.
La pré-compilation (lumières par exemple), les options de q3map peuvent guider.
Les tutos de NeonHelium (menu à droite au milieu) peuvent aussi aider. C'est du OpenGL: inutile de le "faire", mais le lire permet au moins de comprendre deux-trois techniques.
Et, oui, 55FPS en basique, 20 FPS en mode "élargi" pleine page, le bouton avec les flêches vertes). Firefox 20, Windows XP.
60FPS en fenetre sur Chrome v25, 38FPS en élargi (Chrome a boosté à mort canvas).
A la limite, le FPS n'est pas dérangeant. Ce sur quoi il te faut t'attarder au plus vite, c'est la synchronisation! :o
A 60FPS, il me faut 7 secondes pour aller de la case [2;0] à la case [0;2] (en considérant que [0;0] est la case avec d'angle, avec les arbres, visibles quand on apparait). A 20FPS, il me faut 16 secondes ! Normalement, il est nécessaire que tu sépares ton "contrôleur" (celui qui dit où le personnage est à tout instant) et ton afficheur (le canvas qui dessine). Car là, je pense que les deux sont mélangés (ok, pour un tuto de début, c'est bien, mais là, je vois que tu commences à complexifier et si tu complexifies une mauvaise base, non-synchrone, alors tu auras d'énormes difficultés à la rendre correcte et synchrone).
Tous les concepts des moteurs 3D actuels (et passés) sont bons à prendre pour l'optimisation (car ce sont des problèmes déjà rencontrés par ces moteurs, et déjà résolus):
Les octrees (je compte réutiliser ce principe en 2+N et 3+N dimensions, c'est à dire 2D/3D + N paramètres comme le n° de caméra, la timeline, le n° du joueur...)
La clique SpatialGraph/Scenegraph/RenderQueue
L'exemple de Quake, assez vieux, bien documenté, devrait permettre de débroussailler les optimisations à faire.
La pré-compilation (lumières par exemple), les options de q3map peuvent guider.
Les tutos de NeonHelium (menu à droite au milieu) peuvent aussi aider. C'est du OpenGL: inutile de le "faire", mais le lire permet au moins de comprendre deux-trois techniques.
Et, oui, 55FPS en basique, 20 FPS en mode "élargi" pleine page, le bouton avec les flêches vertes). Firefox 20, Windows XP.
60FPS en fenetre sur Chrome v25, 38FPS en élargi (Chrome a boosté à mort canvas).
A la limite, le FPS n'est pas dérangeant. Ce sur quoi il te faut t'attarder au plus vite, c'est la synchronisation! :o
A 60FPS, il me faut 7 secondes pour aller de la case [2;0] à la case [0;2] (en considérant que [0;0] est la case avec d'angle, avec les arbres, visibles quand on apparait). A 20FPS, il me faut 16 secondes ! Normalement, il est nécessaire que tu sépares ton "contrôleur" (celui qui dit où le personnage est à tout instant) et ton afficheur (le canvas qui dessine). Car là, je pense que les deux sont mélangés (ok, pour un tuto de début, c'est bien, mais là, je vois que tu commences à complexifier et si tu complexifies une mauvaise base, non-synchrone, alors tu auras d'énormes difficultés à la rendre correcte et synchrone).