Frage

Ich bin auf der Suche für ein paar gute Referenzen für das Lernen, wie 2D-Physik in Spielen zu modellieren. Ich bin nicht für eine Bibliothek suchen, um es für mich zu tun. - Mich denken und zu lernen, nicht blind jemand andere Arbeit verwenden

Ich habe ein gutes Stück von googeln getan, und während ich ein paar Tutorials auf GameDev gefunden habe, usw., finde ich ihre Tutorials schwer zu verstehen, weil sie entweder schlecht geschrieben sind, oder ein Maß an mathematischem Verständnis davon aus, dass ich weiß es noch besitzen.

Für Spezifika - Ich suche wie ein Top-down-2d Spiel zu modellieren, irgendwie wie ein Panzer-Kampfspiel - und ich mag genau Modell (unter anderem) Beschleunigung und Geschwindigkeit, die Wärmeentwicklung von ‚Komponenten, "Kollisionen zwischen Modellen und Ebene Grenzen und Raketentyp Waffen.

Websites, empfohlenen Bücher, Blogs, Codebeispiele - alle sind willkommen, wenn sie Verständnis helfen werden. Ich erwäge C # und F # mein Spiel zu bauen, so Codebeispiele in eine dieser Sprachen wäre toll - aber lassen Sie sich nicht die Sprache verhindert, dass Sie einen guten Link veröffentlichen. =)

Bearbeiten : Ich will damit nicht sagen, dass ich Mathematik nicht verstehen - es ist mehr der Fall, dass ich nicht weiß, was ich, um zu wissen, muß die beteiligten Systeme und don zu verstehen ‚t wirklich wissen, wie die Ressourcen zu finden, die mich in einer verständlichen Art und Weise lehren.

War es hilfreich?

Lösung

Hier sind einige Ressourcen, die ich vor ein paar Jahren zusammengebaut. Bemerkenswert ist die Verlet Integration. Ich schließe auch Links zu einigen Open Source und kommerziellen Physik-Engines ich damals gefunden. Es gibt einen Stackoverflow Artikel zu diesem Thema hier: 2d Spiel-Physik

Physik Methoden

Bücher

  • "Game Physik-Engine Development" , Ian Millington - ich besitze dieses Buch und kann es nur empfehlen. Das Buch baut eine Physik-Engine in C ++ von Grund auf neu. Der Autor beginnt mit grundlegender Teilchenphysik und fügt dann „Bewegungsgesetze“, Zwänge, Starrkörperphysik und so weiter. Er umfasst auch Quellcode den ganzen Weg durch dokumentiert.

Physik Engines

Andere Tipps

aus Erfahrung, eine 2D-Physik-Engine Implementierung ist ziemlich schwierig. Ich werde ausführlich die verschiedenen Schritte, die ich nahm, als mein Motor zu schaffen.

  1. Kollisionserkennung. Kollisionserkennung kann ein schwieriges Problem sein, auch wenn Sie nicht mit 3D-Welten oder vernetzte Simulationen beschäftigen. Für 2D-Physik, möchten Sie auf jeden Fall die Trennung Achsensatz verwenden. Sobald Sie SAT haben zu implementieren, sind Sie auf halbem Weg die Dynamik Teil Ihres Motors getan zu machen.

  2. Kinematics / Dynamics. Chris Hecker hat eine ausgezeichnete Online-Ressource geschrieben, die mich durch Kollision Reaktion ging Schritt-für-Schritt.

  3. Alles andere. Sobald Sie die Kollisionserkennung / Reaktion beendet haben, es ist eine Sache alles umzusetzen sonst wollen Sie in den Motor. Dazu kann auch die Reibung, Kontaktkräfte, Gelenke, zusammen mit dem, was Sie sonst noch denken kann.

Viel Spaß! Ihre eigene Physik-Simulation zu schaffen, ist eine unglaublich lohnende Erfahrung.

Dies ist ein großes Tutorial, die 2D-Physik-Konzepte unter Verwendung von Flash demonstriert und ist nicht spezifisch zu blinken. http://www.rodedev.com/tutorials/gamephysics/game_physics.swf

Auch wenn Sie alles von unten nach oben, eine Open-Source-Physik-Bibliothek lernen wollen, die gut codiert und dokumentiert enthält weit mehr Informationen als ein Buch. Wie gehe ich mit Situation umgehen x ... in Dateien finden kann schneller sein als ein Papierindex.

Original Antwort:

Was, keine Erwähnung von Box2D ? Es ist ein Open-Source-Nebenprojekt von Blizzard Mitarbeitern, hat eine gute Gemeinschaft, und gut, funktioniert super.

In meiner (kurzen) Erfahrung mit Box2D, es mit Torque Game Builder Integration ich die API sauber gefunden zu verwenden, Dokumentation war klar, es unterstützte all Physik Objekte ich erwartet habe (Gelenk insbesondere eine Voraussetzung war) und die Gemeinschaft sah freundlich und aktiv (irgendwann um Anfang 2010).

nach zu urteilen Forum Plakate, es schien auch, dass die Manager-Source-Beiträge empfänglich waren (die nicht Lizenz Gepäck haben tragen).

Es ist Insel basierte Solver schienen recht schnell, als ich von seinem Ruf erwartet, nicht, dass ich keine größeren Performance-Tests hat.

F # hat eine Funktion namens Maßeinheiten , welche für Sie dimensionale Analyse der Fall ist, die Bereitstellung Fehler, wenn Sie es falsch ist. Wenn Sie zum Beispiel sagen:

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

Das würde einen Compiler-Fehler ergeben, da die Schwerkraft ist und nicht . Auch, weil F # gerade ist .NET Sie Ihre Mathe / Physik-Code in einer Klassenbibliothek und Referenz schreiben können, dass von Ihrer C #.

Ich würde Sie diese Blog-Beiträge für weitere Informationen überprüfen reccomend:

Dies ist eine großartige Ressource Ihren ersten Motor für das Schreiben. Es ist in 3D, aber es ist sehr einfach zu 2D konvertieren unten. Ich weiß, dass zumindest ein großes Unternehmen, das dieses Tutorial für ihren internen Motor gefolgt, und ich habe persönlich seine Schritten für meinen eigenen Motor gefolgt. Er erklärt, alle grundlegenden Physik Konzepte im Frühjahr / Impuls basierten Physik und zeigt Ihnen, wie Sie Ihre eigene intergrater schreiben zu können.

The F # .NET Journal zwei Artikel über diese veröffentlicht hat:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top