Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Proposition] Tutoriel sur Box2D

Utilisé dans une appli SFML

19 octobre 2010 à 15:14:25

Bien le bonjour !

Les tuto sur les moteurs physiques se font rare et en ce qui concerne Box2D, c'est encore pire. Un petit tuto sur developpez.com existe bien sur l'utilisation de Box2D dans une appli Qt, mais hélas ce tuto ne parle que de quelques % de ce qui est possible de faire avec ce moteur et en plus, il parle d'une ancienne version de Box2D.

Voilà ce que je propose :

Rédiger pour vous les amis zér0 un tuto sur l'utilisation complète de Box2D dans une application SFML. Dans ce tuto, je ne m'attarderai pas du tout sur la SFML, le big tuto de mr.xyz étant fait pour. Par contre j'essayerai d'expliquer un maximum de choses sur Box2D.

Voici pour le moment l'idée du plan dans le cas d'un mini-tuto :
(A ce propos, je ne sais pas si un big tuto serait plus approprié ...)

1) Introduction et installation
--> Introduction
----> Box2D
----> SFML
-->Installation
----> Box2D
----> SFML

2) Notre premier objet
--> Création du monde
--> Création d'un objet statique
----> Les shapes
----> Les fixtures
--> Création d'un objet dynamique

3) Lumière sur ... votre première simulation !
--> Affichage
----> Box2D to SFML
--> Simulation
----> Le temps, c'est important !
----> Précision de votre simulation

4) Faites bouger vos corps !
--> Les forces
--> Les impulsions

5) Détectez les collisions
--> A l'écoute des collisions

6) Liez vos corps
--> Liaisons distantes
--> Liaisons de révolution
--> Liaisons prismatiques
--> Liaisons par poulies
--> Liaisons par engrenage
--> Se lier à la souris


Certains éléments seront abordés mais non présent dans ce plan, comme les kinematic bodies ou les sensors ainsi que des méthodes de mon cru pour la création facile d'un monde à partir d'un fichier externe par exemple. (peu être en annexe).

Voici donc l'ébauche de mon plan. Il n'est pas complet mais je pense contient déjà beaucoup de choses intéressantes.

Ce qui peut être ajouté :
- Des méthodes / techniques / autres petits tuto sur les choses concrètes faites avec Box2D. (comment créer un effet d'explosion / d'implosion, ...)



J'attends donc vos avis avec impatience.

Souhaitez vous que ce tuto soit réalisé ?
Ou pensez vous qu'il est inutile ?
Que voudriez vous voir en plus dans ce tuto ?

Voilou, bonne journée =)
  • Partager sur Facebook
  • Partager sur Twitter
20 octobre 2010 à 19:32:31

Très bonne idée, je suis pour, je commence à développer un jeu utilisant box2d sur iPhone, cela me sera très utile ;)
  • Partager sur Facebook
  • Partager sur Twitter
21 octobre 2010 à 14:36:15

Oh que oui que ça m'intéresse !
Box2d m'a l'air d'être une bonne bibliothèque mais sur qui il manque cruellement de tutoriels.
  • Partager sur Facebook
  • Partager sur Twitter
22 octobre 2010 à 15:03:50

Ouf, content de voir que ça intéresse quand même du monde. J'ai faillis abandonner l'idée :p

Je suis en grand questionnement personnel sur : est-ce que je fais un mini ou un big tuto ?

Le fait est que le plan que j'ai présenté correspond tout à fait au panel de fonctions de Box2D. Représentant donc une explication assez complète de son usage.

Mais il serait peut être intéressant par la suite de pousser la chose avec du contenu relatif à des "techniques" d'utilisation de Box2D pour arriver à certains résultat.

Tant qu'à faire, même avoir un petit tp sympathique.

Je me tâte ... (oui c'est dégueulasse :P)
  • Partager sur Facebook
  • Partager sur Twitter
26 octobre 2010 à 13:35:52

Salut,

personnellement, si tu suis le plan que tu as proposé, que ce soit un gros ou un petit tutoriel je serais aux anges.

  • Partager sur Facebook
  • Partager sur Twitter
2 novembre 2010 à 16:56:26

Le tuto avance doucement. Les parties 1 et 2 sont terminées à 90% (entendez par là, qu'il faut fignoler un peu, c'est tout).

Je ne vais pas pouvoir y retoucher cette semaine mais j'espère pouvoir rendre ce tuto avant la fin de l'année :D
  • Partager sur Facebook
  • Partager sur Twitter
9 novembre 2010 à 22:09:34

Ça c'est une bonne nouvelle, j'avais peur que tu ais abandonné l'idée.

Bon courage !
  • Partager sur Facebook
  • Partager sur Twitter
12 novembre 2010 à 21:10:21

OH que oui je suis trop intéresser!
  • Partager sur Facebook
  • Partager sur Twitter
11 décembre 2010 à 12:06:41

je veux le lire avec impatiente

trés bonne initiative
  • Partager sur Facebook
  • Partager sur Twitter
21 décembre 2010 à 0:09:03

Omygod !
C'est exactement ce que je suis en train de chercher !! Je suis en train de développer un jeu vidéo en SFML, et quand je me suis demandé comment gérer la gravité et la physique correctement, on m'a indiqué Box2D. J'ai cru rêvé quand j'ai vu de quoi c'était capable, j'en demandais pas tant :D !

Et là BIM, un projet de tutoriel SFML/Box2D qui s'apprêterait à naître sur le Siteduzéro ? Dieu soit loué, je n'en demandais pas tant ! Je ne l'aurais pas imaginé, même dans mes rêves les plus fous (et ça place la barre très haut, cette nuit j'ai rêvé de la bande à picsou survivant dans un monde post-apocalyptique peuplé de zombies o_O je vous dis pas le réveil en mode "WTF??") !

Merci... merci !
[EDIT: ouais bon jveux dire... c'est pas encore fait mais MERCI d'avoir lancé l'idée, c'est déjà beaucoup !]
  • Partager sur Facebook
  • Partager sur Twitter
21 décembre 2010 à 10:47:25

Tout ceci est très encourageant. J'ai hélas du stoper la rédaction quelques temps mais je suis en train de m'y remettre.

S'il y a des points particuliers dont je n'ai pas parlé dans le plan qui vous intéresse, n'hésitez pas à m'en faire part. Dans tous les cas, suite à ce tuto, je compte faire d'autres mini tuto sur des utilisations concrètes de Box2D.
  • Partager sur Facebook
  • Partager sur Twitter
21 décembre 2010 à 11:37:53

Ce tuto m'interesse énormement !
Je ommence à faire des petits jeux 2D et ton tuto me sera d'une grande utilisté.
Bonne rédaction !
  • Partager sur Facebook
  • Partager sur Twitter
21 décembre 2010 à 11:53:27

Dans la création du monde, on parlera je suppose de la gravité ?
J'ai lu qu'il était possible en Box2D d'importer un monde dessiné en SVG, afin de représenter le sol.
Est-ce que ce serait possible d'avoir une partie expliquant cela, ou quelque chose de semblable (il faut dire que sur le siteduzero, on a du tuto pour gérer les collisions, mais on a rien de vraiment concret sur comment gérer la physique et surtout rien de vraiment concret sur comment gérer un sol constitué de courbes).

EDIT:
Question aussi, il s'agira bien de Box2D 2.1 et pas 2.0 ?
Parce que des tutos pour la 2.1 on en trouve vraiment zéro (à part la docu officielle). Et la 2.1 est trop différente de la 2.0, trop d'objets n'existent plus, de méthodes ne prennent plus les même paramètres... ça facilite pas la tâche du débutant ^^' !
  • Partager sur Facebook
  • Partager sur Twitter
21 décembre 2010 à 14:15:20

Oui tout à fait, c'est la 2.1. C'est d'ailleurs aussi pour ça que je rédige ce tuto. Certains ont certainement pu voir sur developpez.com un tuto sur Box2D et Qt. Celui ci est extrêmement pauvre et ne traite que de la version 2.0 qui en plus d'être bien différente de la 2.1 est bien moins pratique à utiliser.

Pour ce qui est de l'import SVG, j'avoue ne jamais avoir eu besoin de l'utiliser. Malgré l'écriture de ce tuto, je ne connais bien sur pas tout à propos de Box2D. Voilà un nouveau sujet que je vais devoir étudier, mais je doute de pouvoir en faire une explication rapidement :p

EDIT : J'ai de plus en plus envie de faire un big tuto plutôt qu'un mini. S'agirait de se décider maintenant.
  • Partager sur Facebook
  • Partager sur Twitter
21 décembre 2010 à 22:47:10

C'est vrai que ça vaudrait le coup de se lancer sur un big-tuto : aujourd'hui j'ai fait le tour du web (non mais vraiment) à la recherche de tutoriels expliquant comment utiliser Box2D dans des jeux vidéos.
Il n'y a RIEN. Vraiment, vraiment rien : au mieux des ébauches de tutoriels prometteurs qui n'ont jamais été terminés, au pire des tutoriels minuscules apprenant à peine à créer sa première scène (et encore, avec de vieilles versions de Box2D).

Du coup j'ai essayé tout seul, et... c'est dur. Faire une simulation en Box2D+SFML, ok, ça peut aller. Mais ça fait déjà une heure que je bataille rien que pour avoir un déplacement réaliste de mon personnage (même pas la peine d'essayer d'appliquer des force et des impulse, c'est pas fait pour ça - je pense, et si c'est fait pour ça, ça nécessite un dosage pas fait au pifomètre).

Et je parle même pas de doser tout ce qui est densité, gravité, gérer l'échelle, les dimensions, etc...
C'est d'un compliqué ! Le monde a vraiment besoin de ce tutoriel !

Ceci dit, le plan de ton mini-tuto semble déjà assez "big". Au niveau de l'interaction entre le world Box2D et le rendu SFML, je pense que ça ne représente une partie assez mince des explications...
Et côté Box2D, les forces, impulsions, collisions et liaisons c'est déjà sacrément bien (j'ose même pas penser qu'un jour je saurais faire des liaisons entre plusieurs corps dans un jeu 2D... c'est trop beau pour être vrai).

Après, je connais pas toutes les possibilités de Box2D ^^ ! Si ce n'est qu'une partie de la magie que l'on peut faire avec...
  • Partager sur Facebook
  • Partager sur Twitter
22 décembre 2010 à 0:42:30

J'en avais trouver un, mais avec Java.
  • Partager sur Facebook
  • Partager sur Twitter
22 décembre 2010 à 10:59:12

C'est vrai que dans le plan exposé, la partie de "liaison" avec la SFML est assez mince. Elle définit juste les principes de base pour récupérer les bonnes valeurs aux bons endroits pour que les affichages suivent la simulation.

Il serait par contre intéressant de faire une partie supplémentaire (et là du coup, le big tuto devient bien plus logique) concernant le dosage de tout ce bazar. La création par le biais d'un TP d'une petite application complète utilisant la SFML et Box2D serait aussi envisageable.

Il y a tellement de choses à dire sur Box2D. Je pense par exemple à la création d'objets "cassables" pouvant être créés à l'aide de deux petites classes créées par un utilisateur de Box2D (super sympa ça).

Allez hop ! On se remet au boulot.
  • Partager sur Facebook
  • Partager sur Twitter
22 décembre 2010 à 15:41:45

Voilà un cours qui pourrait être très intéressant car il est vrai que trouver comment cela fonctionne n'est pas si facile.

Évidemment sur un tuto comme ça il faut s'accrocher car il devra y avoir beaucoup d'exemple pour essayer de faire un peu le tour des possibilités. L'interfaçage avec la SFML est un bon choix, mais attention à pas tomber dans le piège de trop orienter le tuto sur la SFML.

En tout cas bonne chance =)
  • Partager sur Facebook
  • Partager sur Twitter
22 décembre 2010 à 15:52:01

Merci Saffir ;)

@Sexymimi64 : J'ai regardé de plus près le SVG. J'avoue n'avoir jamais utilisé ce format auparavant et c'est clairement quelque chose de super pratique. J'ai regardé de plus près les parser existant à son propos. Hélas je n'ai trouvé que des parser fait en Flash.

Toujours est il qu'un parser SVG -> Box2D ressemble énormément à un parser que j'ai fais pour mon projet Bamboclash. Celui-ci allant chercher dans un XML des objets dont la forme, la position, la taille et toutes les composantes physiques étaient répertoriées pour ensuite créer des corps physique utilisables par Box2D.

Il serait probablement intéressant d'essayer de faire donc un parser SVG -> Box2D en C++ cette fois. Je m'y essayerai, du moins partiellement lorsque j'atteindrai la partie "avancée" de mon tuto (oui car du coup, vu que j'opte pour un big tuto, il sera composé d'une partie sur les "bases" et une partie "avancée").

Et je dis "partiellement" parce que je pense que les SVG peuvent être composés d'une multitudes de choses. J'ai par exemple remarqué les Path ou les courbes de Bézier qui ne sont surement pas aussi évidente qu'un vulgaire rectangle à parser.
  • Partager sur Facebook
  • Partager sur Twitter
15 mars 2011 à 9:21:33

Excellent, je me met à Box2D pour un projet flash et c'est vrai que les tutos en la matière sur le web sont très rares.
Si ton big-tuto est mené à bien, je pense qu'il aidera un nombre incalculable de gens, moi le premier.

Car pour l'instant dur-dur de s'y mettre...

Je regarde et ton dernier message date de 2 mois, tu en est où maintenant ? ^^ (sans te presser, je suis simplement tous excité)


[Edit]: Un tuto que j'ai trouvé
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
15 mars 2011 à 20:13:25

Je trouve que c'est une excellente idée ! Je me suis souvent intéressé dans ce domaine, mais j'ai assez vite abandonné en raison des pauvres sources !
  • Partager sur Facebook
  • Partager sur Twitter
27 mars 2011 à 12:38:13

Sympa le tutoriel que tu cite Aerth :) !
Je vais pouvoir me relancer dans Box2D, mais... ça mérite quand même un tutoriel sur le site du zéro : parce que celui-ci, niveau pédagogie il est moyen (et l'orthographe aurait put tuer maître Capello s'il n'était pas déjà mort).
  • Partager sur Facebook
  • Partager sur Twitter
27 mars 2011 à 23:44:02

Au fond, ce qui serait bien c'est juste un tuto sur la physique, les relations mathématique sur le mouvement des corps.
  • Partager sur Facebook
  • Partager sur Twitter
14 avril 2011 à 0:19:28

Salut salut !

Le projet de réalisation de ce tutoriel n'est pas abandonné ! Bonne nouvelle pour vous donc. Hélas je n'ai absolument pas le temps nécessaire pour le faire avancer aussi que je voudrais. Je ne peux donc pas vous donner de date précise sur quoi que ce soit.

Etant donné que la première partie est déjà faite, je la posterai peut être pour vous donner un avant goût et aussi pour que vous puissiez me faire quelques retours sur ma façon d'écrire un tuto. Après tout, c'est pour que ça vous plaise que je le fais :p
  • Partager sur Facebook
  • Partager sur Twitter
14 avril 2011 à 20:14:05

Oui ça serait bien si tu mettais ce que tu as commencé en beta ! ^^
  • Partager sur Facebook
  • Partager sur Twitter
15 avril 2011 à 10:52:21

Oui, vas-y poste, on demande que ça nous ! Tu fais les efforts et nous on profite de ton travaille... :p

Citation : Bigz_Yeah

1) Introduction et installation
--> Introduction
----> Box2D
----> SFML
-->Installation
----> Box2D
----> SFML



Ce serait cette partie donc ? ;)
  • Partager sur Facebook
  • Partager sur Twitter
19 avril 2011 à 23:43:33

Disons plutôt partie 1 et 2 alors :p
  • Partager sur Facebook
  • Partager sur Twitter
28 avril 2011 à 23:02:13

Désolé du détérrage, mais a-t-on des nouvelles de ton tuto ?
  • Partager sur Facebook
  • Partager sur Twitter
2 mai 2011 à 14:08:19

Hello,
Oui, si tu peux poster le début du tuto, ça serait un grand plaisir de le lire :).

ça m’intéresse énormément!
  • Partager sur Facebook
  • Partager sur Twitter
12 mai 2011 à 15:58:44

Super intéressé aussi par le début aussi sachant que je galère rien que pour l'installer avec la SFML...

Merci !!
  • Partager sur Facebook
  • Partager sur Twitter