Gute 3D -Python -Spielmotoren

Gute 3D -Python -Spielmotoren

Einführung

Ein Rahmen für 3D -Game -Engines zu finden, die für und mit Python hergestellt wurden, kann sich als sehr schwierig erweisen. Der Grund dafür ist, dass Python bei zunehmender Komplexität schnell auf Leistungsprobleme geht. Schnelles Grafikrendern ist nicht das, was Python am besten kann. Da Python jedoch sehr gut für die Erstellung der Logik ist und sehr beliebt ist, haben Sie viele Möglichkeiten, Frameworks in C auszuführen++.

Um diese Arbeit für 3D -Game -Engines zu machen, können Sie nicht alles tun, wie Sie es normalerweise in Python tun könnten. Die meisten Frameworks erstellen einen Wrapper für ihre C ++ - Bibliotheken. Sie müssen herausfinden, wie man kompiliert, damit Python diesen Wrapper erinnern kann. Sie behandeln in der Dokumentation, wie man mit der Python -Wrapper kompiliert wird.

Spielstil und Sprachauswahl

Beachten Sie, bevor Sie beginnen, ob Ihr Spiel ein Plattformer, First Person Shooter oder Dialog basiert ist. Vielleicht erstellen Sie ein Spiel, das intellektuelle Fähigkeiten in Frage stellt. Dies erfordert keine Hochleistungsgrafiken. Der Punkt ist, dass Sie wissen müssen, was Sie erreichen möchten, bevor Sie anfangen. Sie können es gewohnt sein, Python zum Programmieren zu python. Wenn Sie jedoch Spiele mit vielen Effekten erstellen möchten, sollten Sie andere Programmiersprachen in Betracht ziehen. Es ist eine große Anstrengung, eine neue Sprache zu lernen, aber es ist auch äußerst befriedigend, sobald Sie diese anfängliche Hürde der Grundlagen bestanden haben. Die Zeit, in der die reguläre Dokumentation sinnvoll ist, auch auf einen schnellen Blick.

Bindungen, Bibliotheken zu berücksichtigen

Um Spiele zu machen, müssen Sie Grafiken, Menüs und Audio erstellen. Es gibt mehrere Bibliotheken und Python -Bindungen, um diese Fälle zu bewältigen. Einer der häufigsten dieser Bibliotheken ist SDL2, mit dem Programmierer direkten Zugriff auf Video FrameBuffer, Audioausgabe, Maus und Tastatur erhalten können. Ohne diese muss Ihr Spiel regelmäßige Routinen verwenden, was manchmal langsam sein kann. Die erste Version ist noch da, aber SDL2 hat alle notwendigen Geräte.

SFML2 spielt eine ähnliche Rolle wie die meisten Multimedia -Funktionen und setzt alle Funktionen zusammen. Im Gegensatz dazu enthält SDL2 viele kleinere Teile, die Sie einzeln in Ihren Code ziehen müssen.

Für Python benötigen Sie die PYSDL2- und PYSFML2 -Pakete.

Pyogre

Die Designer von Pyogre haben das Oger -Framework in C ++ mit einem Wrapper für Python geschrieben. Die Wrapper ist eine eingebaute Wrapper. Das alte Projekt ist noch im Web verfügbar. Das Befolgen der Tutorials kann nützlich sein, aber seien Sie vorsichtig, da nicht alles online verfügbar ist. Oger hat Kurse für viele Weltobjekte, die Ihnen eine Ebene über OpenGL und Direct3D geben.

Ogre arbeitet mit Szenen und kann alle Grafiken erstellen, die Sie möglicherweise für Ihr Spiel benötigen. Die Pyogre -Module funktionieren für Versionen vor Ogre Version V1.05. Danach stehen andere Module zur Verfügung. Die Oger -Software enthält Python -Skripte zum Importieren von Daten von Blender nach Oger. Dies ermöglicht es, Ihre Ressourcen für Ihr Spiel in Blender zu erstellen. Andere Exporteure sind ebenfalls verfügbar.

http: // wiki.Ogre3d.org/

Allegro

Allegro kümmert sich um das schwere Anheben von Fenstern, das Akzeptieren von Benutzereingaben, das Zeichnen von Bildern und das Abspielen von Sound. Die Designer von Allegro behaupten nicht, dass dieses Programm eine Game Engine ist, aber es ist nützlich, um Spiele zu machen.

Da Allegro in C ++ eingebaut wurde, müssen Sie den Wrapper erstellen, um dieses Programm in Python zu verwenden. Sie können diesen Schritt ausführen, indem Sie aus der Quelle kompilieren. Der Prozess erstellt die Klassen in einer Datei namens Allegro.py. Sobald Sie diesen Schritt abgeschlossen haben, können Sie die Klassen aus dieser Datei auswählen. Es wird jedoch empfohlen, die reguläre Dokumentation zu lesen, wie dieses Programm funktioniert. Dies kann den Prozess erschweren, aber das Lernen von C ++ ist auch eine Aufgabe.

https: // github.com/liballeg/Allegro5

Waffenkammer 3D - Mixererweiterung

Dieses Paket verwendet Blender als Entwicklungsplattform und Haxe als Programmiersprache. Ja, Sie müssen zu Haxe wechseln, aber Sie können eine vorhandene Spiellogik von Python konvertieren. Armory3d arbeitet als Erweiterung im Blender, wo Sie alle Ihre Ressourcen für das Spiel erstellen können.

Obwohl Armory 3D nicht auf Python läuft, sollten Sie dieses Programm trotzdem sorgfältig betrachten, da Sie mit diesem Tool sehr schnell beginnen können. https: // walorory3d.org/

Urho3d

Dieses Paket verwendet Blender als Entwicklungsplattform und verwendet Haxe als Programmiersprache. Auch hier müssen Sie zu Haxe wechseln, aber Sie können eine vorhandene Spiellogik von Python konvertieren. Armory3d arbeitet als Erweiterung im Blender, wo Sie alle Ihre Ressourcen für das Spiel erstellen können.

Obwohl Urho3d nicht auf Python läuft, sollten Sie dieses Programm auch sorgfältig berücksichtigen, da Sie mit diesem Tool sehr schnell beginnen können. https: // walorory3d.org/

Ursina

Ursina ist in Python geschrieben und auf Panda3d gebaut. Dieses Tool soll viele Primitive, wie z. B. einen Würfel, Kugel usw., damit Sie so schnell wie möglich zum Spiel selbst übergehen können. Panda3d leistet die tiefe Arbeit und Ursina gibt Ihnen bereit gebackene Programmfunktionen. Eine Spielerklasse bietet Ihnen die Optionen zum Registrieren von gedrückten Schlüssel und Mausbewegungen.

Die meisten Funktionen sind intuitiv mit klaren Namen und leicht verständlichen Funktionen zu verwenden. Sie können schnell mit Ihrem Spiel beginnen, wenn Sie dieses Spielwerkzeug verwenden. Ursina verfügt auch über Tools zum Konvertieren von Misch- und PSD -Dateien.

https: // github.com/pokepetter/ursina

Blender Game Engine (?)

Vor Version 2.79, Blender ließ eine Game -Engine eingebaut. In späteren Versionen entschieden sich die Designer jedoch dafür, die Game Engine aus dem Standardbau zu entfernen und sich auf Animationen zu konzentrieren. Also beschlossen die Menschen bei Uppge, ihre eigene Erweiterung zu erstellen, die in Mixer arbeitet. Sie können daher Blender verwenden, um das gesamte Spiel zu erstellen. Wie verbindet sich dies mit der Entwicklung von Python -Spielen??

BPGE verfügt über eine API, mit der Sie auf alle Daten zugreifen können, die Sie erstellen, während Sie in Blender arbeiten. Sie können die Konsole im Mixer verwenden, um auf die API zuzugreifen und zu testen. In der Tat könnten Sie das gesamte Programm auf diese Weise schreiben, aber das ist möglicherweise nicht die beste Wahl für Ihre Bedürfnisse. Zumindest haben Sie alle Ressourcen bereit und die Art und Weise, wie Sie sie von dem Moment an wollen, in dem Sie sie erstellen.

Godot - Gdscript, nicht Python

Wenn Sie ein Spiel schreiben möchten und sich mit Python wohl fühlen, können Sie auch Godot verwenden. Diese Sprache ist Python sehr ähnlich, nur insbesondere für das Schreiben von Spielen.

Abschluss

Es gibt viele Frameworks zum Schreiben von Spielen in Python. Wenn Sie Hochleistungs -3D -Spiele erstellen möchten, sollten Sie ernsthaft in Betracht ziehen, andere Sprachen für diese Spiele zu lernen. Stellen Sie sicher, dass Sie mit Ihrer Programmauswahl Ihrer ursprünglichen Spielidee folgen können. Passen Sie gegebenenfalls Ihre Programmiersprache an Ihre persönliche Vision an.