Question

Je cherche de bonnes références pour apprendre à modéliser la physique en 2D dans les jeux. Je ne pas chercher une bibliothèque pour le faire à ma place. Je veux réfléchir et apprendre, et non utiliser aveuglément le travail de quelqu'un d'autre.

J'ai fait pas mal de recherches sur Google, et même si j'ai trouvé quelques tutoriels sur GameDev, etc., je trouve leurs tutoriels difficiles à comprendre car ils sont soit mal écrits, soit supposés avoir un niveau de compréhension mathématique Je ne possède pas encore.

Pour plus de précisions - je cherche comment modéliser un jeu 2d de haut en bas, un peu comme un jeu de combat en blindé - et je souhaite modéliser avec précision (entre autres choses) l'accélération et la vitesse, l'accumulation de chaleur de composants, «Collisions entre modèles et limites de niveau, et armes de type missiles.

Les sites Web, les livres recommandés, les blogs, les exemples de code - sont les bienvenus s'ils facilitent la compréhension. J'envisage d'utiliser C # et F # pour créer mon jeu. Des exemples de code dans l'une de ces langues seraient donc intéressants, mais ne laissez pas la langue vous empêcher de publier un bon lien. =)

Modifier : je ne veux pas dire que je ne comprends pas les mathématiques, mais plutôt que je ne sais pas ce que je dois savoir pour comprendre les systèmes en jeu. 'sais pas vraiment comment trouver les ressources qui m'apprendront de manière compréhensible.

Était-ce utile?

La solution

Voici quelques ressources que j'ai rassemblées il y a quelques années. Il convient de noter l'intégration Verlet. J'inclus également des liens vers des moteurs de physique open source et commerciaux que j'ai trouvés à cette époque. Vous trouverez ici un article sur stackoverflow à ce sujet: Physique du jeu en 2D?

Méthodes de physique

Livres

  • & "Développement du moteur de jeu" & "; , Ian Millington - Je possède ce livre et le recommande vivement. Le livre construit un moteur physique en C ++ à partir de zéro. L'auteur commence par la physique des particules de base, puis ajoute & «Lois du mouvement», contraintes, physique des corps rigides, etc. Il inclut un code source bien documenté tout au long.

Moteurs physiques

Autres conseils

Parlant d'expérience, la mise en œuvre d'un moteur physique 2D est assez difficile. Je vais détailler les différentes étapes que j'ai effectuées lors de la création de mon moteur.

  1. Détection de collision. La détection de collision peut être un problème difficile, même lorsque vous ne travaillez pas avec des mondes 3D ou des simulations en réseau. Pour la physique 2D, vous souhaitez absolument utiliser le Théorème des axes de séparation . Une fois que vous avez implémenté SAT, vous avez presque terminé la partie dynamique de votre moteur.

  2. Cinématique / Dynamique. Chris Hecker a écrit une excellente ressource en ligne qui m'a guidé pas à pas dans la réponse au conflit.

  3. Tout le reste. Une fois la détection / réponse de collision terminée, vous devez mettre en œuvre tout ce que vous voulez dans le moteur. Cela peut inclure des frictions, des forces de contact, des joints, ainsi que tout ce dont vous pouvez penser.

Amusez-vous! Créer votre propre simulation physique est une expérience incroyablement enrichissante.

Il s'agit d'un excellent didacticiel qui présente les concepts de physique 2D à l'aide de Flash et qui n'est pas spécifique à Flash. http://www.rodedev.com/tutorials/gamephysics/game_physics.swf

Même si vous voulez tout apprendre du début à la fin, une bibliothèque de physique open source bien codée et documentée contient beaucoup plus d'informations qu'un livre. Comment gérer la situation x ... La recherche dans les fichiers peut être plus rapide qu'un index papier.

Réponse originale:

Quoi, aucune mention de Box2D ? C’est un projet secondaire open source d’un employé de Blizzard, il a une bonne communauté et fonctionne très bien.

Lors de ma (brève) expérience avec Box2D, en l’intégrant à Torque Game Builder, j’ai trouvé l’API propre à utiliser, la documentation était claire, elle supportait tous les objets de physique que j’attendais (les joints étaient en particulier une exigence) la communauté avait l’air amical et actif (vers le début de l’année 2010).

À en juger par les affiches du forum, il est également apparu que les gestionnaires étaient réceptifs aux contributions des sources (sans bagage de licence).

Son solutionneur d’île paraissait assez rapide, comme je l’attendais de sa réputation, et non comme un test de performance majeur.

F # possède une fonctionnalité appelée Unités de mesure qui effectue une analyse dimensionnelle pour vous, en fournissant des erreurs si vous vous trompez. Par exemple, si vous dites:

let distance : float<meters> = gravity * 3.0<seconds>

Cela produirait une erreur de compilation, puisque la gravité est < mètres / secondes ^ 2 > et pas < mètres > ;. De plus, puisque F # n’est que .NET, vous pouvez écrire votre code mathématique / physique dans une bibliothèque de classe et le référencer à partir de votre C #.

Je vous recommande de consulter ces articles de blog pour plus d'informations:

Il s'agit d'une excellente ressource pour écrire votre premier moteur. C'est en 3D mais il est très facile de convertir en 2D. Je connais au moins une grande entreprise qui a suivi ce didacticiel pour son moteur interne, et j'ai personnellement suivi ses pas pour mon propre moteur. Il explique tous les concepts de base de la physique dans la physique du printemps / impulsion et vous explique comment écrire votre propre intégrateur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top