kompote / sbrts

GNU General Public License v3.0
1 stars 0 forks source link

[PHY] Choix d'un moteur physique #36

Open foxinthestack opened 10 years ago

foxinthestack commented 10 years ago

Choix possibles:

A priori le plus simple et approprié serait Box2d.

kompote commented 10 years ago

A-t-on besoin d'un moteur physique? Si c'est juste pour une simulacre d’accélération et de collisions, je pense que ça n'en vaut pas la peine. :) @Ijatsu ?

Ijatsu commented 10 years ago

J'ai regardé à quoi correspondait Box2d.

C'est intéréssant car ça propose tout un tas de calculs et d'algorithme pour décrire/détecter/simuler des phénomènes physiques. La seule chose qui nous intéresserait serait la collision. Les seules choses qu'on pourrait éventuellement avoir à calculer seraient des calculs d'accélération et d’énergie cinétique ( trivial ) .

Je pense également que ça n'en vaut pas la peine et que ce serait plus enrichissant sur le plan perso d'implémenter cela nous même. Après peut-être que Box2d est ultra modulaire et permet de ne garder que ce que l'on souhaite.

Après s'il faut choisir un moteur graphique, car on peut vouloir faire d'autres jeux à partir du wrapper qu'on est en train d'écrire, je pense que Box2d est le meilleurs, Bullet physics semble s'adresser à de la 3D de base donc bon...

foxinthestack commented 10 years ago

Rien que pour les collisions l'usage de box2d se justifie. Quasiment tous les algos fournis par box2d tournent en complexité N (N étant le nombre d'entités que le moteur physique maintien). De plus box2d gère le problème du tunnel ce qui est bien pratique.

Maintenant si tu penses pouvoir faire juste la détection toi même avec une complexité N ... Honnêtement ça a pas l'air trivial du tout.

Si vous voulez vous faire une idée plus précise de comment fonctionne et se que permet de faire box2d: cf. http://box2d.org/manual.pdf

Ijatsu commented 10 years ago

C'est en effet intéressant pour le "time of impact", j'ai déjà eu ce problème et c'est difficile à résoudre de manière simple. La bibli présente d'autres outils utiles dans son module de gestion des collisions.

En ce qui concerne la complexité des détections, sachant que nous avons une carte déjà segmentée, nous pouvons déjà restreindre les tests sur les objets présents sur les mêmes tiles ( principe de certaines méthodes comme le quadtree ). Quand un objet sensible aux collision bouge, il faut tester son intersection avec les tiles environnantes ( on peut là aussi réduire le nombre de tests en prenant en compte la distance parcouru et l'angle ). En y réfléchissant on se rend vite compte que c'est compliqué...

Quoi que nous fassions il est vrai que nous ne pourrons probablement jamais faire mieux qu'une bibli déjà faite et rependue. Je pense du coup comme alex que ce serait bien de l'utiliser rien que pour son module de collision.

kompote commented 10 years ago

Ok je comprends. Je posais simplement le question ^^ Du coup, go pour tester l'integration, mais ça va peut-être impliquer de revoir ton modèle @Ijatsu non?

Je pense que tu es le mieux placer pour commencer à t'en occuper. Enfin, si t'es envie hein! :p :smile:

Ijatsu commented 10 years ago

Je regarderai ^^

kompote commented 10 years ago

Et @ThiuT il se touche la teub en 2D ?