Ich würde gerne meine PC-Spieleentwicklung ausprobieren. Ich höre immer wieder, dass Python im Vergleich zu C ++ langsam ist. Ist das etwas, worüber ich besorgt sein sollte?
Ich bin mit Python besser vertraut als mit C ++. Wenn ich nach einigen Spielen suche, sollte ich mir die Zeit nehmen, C ++ zu lernen oder einfach bei Python zu bleiben?
Es besteht ein Unterschied darin, dass die Entwicklung langsam und die Laufzeit langsam ist. Achten Sie darauf, die beiden nicht zu verwirren.
Viele Spiele verbringen die meiste Zeit damit, auf Benutzereingaben zu warten oder darauf zu warten, dass ein Timer tickt. In diesen Fällen ist die Laufgeschwindigkeit in der Regel von geringer Bedeutung und wichtiger ist die Entwicklungsgeschwindigkeit - dein Spiel so schnell wie möglich und so billig wie möglich auf den Markt zu bringen und das Spiel mit deinem Budget so gut wie möglich zu machen. Für diese Art von Spiel sind Hochsprachen eine geeignete Wahl.
Für Spiele, die eine hohe Performance erfordern, ist die Engine in der Regel in einer Sprache wie C ++ geschrieben, aber das Scripting kann immer noch in einer höheren Programmiersprache erfolgen. Python ist nicht die einzige Wahl. Lua ist wahrscheinlich die beliebteste Wahl für eine Skriptsprache in Spielen.
Elebenty-seven.
Nein, wirklich, es ist schnell genug für die meisten Dinge und kann auf C fallen, wenn Sie wirklich Geschwindigkeit brauchen. Profil zweimal, einmal optimieren.
Die Art des Spiels zählt immens. Hochleistungsspiele wie der große Name PC oder Konsolenspiele sind fast ausschließlich die Domäne von C ++.
Casual Games können in fast jeder Sprache geschrieben werden, einschließlich langsamer Sprachen wie Python.
Wenn du ein Garagentyp-Entwickler bist, der seine Hände mit einer einfachen Spielentwicklung für dieses erste Mal nass macht, wäre Python mehr als genug. Wenn Sie jedoch den Ehrgeiz haben, für ein Spieleentwicklungsstudio zu arbeiten, würde ich definitiv C ++ lernen.
Viele, wenn nicht die meisten kommerziellen Top-End-Spiele enthalten heutzutage eine Art Skript-Engine für die Spiellogik. Spiellogikentscheidungen sind zum größten Teil nicht besonders leistungsempfindlich in der Art, dass z. Die Rendering-Engine ist.
Übrigens: Ich beanspruche kein Insider-Wissen über Spieleentwicklung - das ist außerhalb der Branche ziemlich gut bekannt. Einige Spiele-Publisher haben sogar Benutzern Zugriff auf die Skripting-Tools und andere Tools zum Modifizieren von Spielen gewährt - für Jahre.
Wenn Sie eine Game-Engine finden, die für die Verwendung in Python verpackt ist, haben Sie dieselben grundlegenden Prinzipien. Schreiben Sie die Spiellogik in Python und Sie werden wahrscheinlich in Ordnung sein.
PyGame ist im Grunde SDL für Python, unterstützt die meisten grundlegenden 2D-Spiele (obwohl OpenGL für 3D in SDL verwendet werden kann - nicht sicher für PyGame).
Es ist ein guter Ausgangspunkt. Sie könnten ein Performance-Problem bei der Verwaltung Ihrer Spielobjekte und beim Ausführen Ihrer Blit-Schleife haben, da SDL nur sehr einfache Grafikdateien verarbeitet, aber Sie sollten feststellen, dass es für die meisten Dinge in Ordnung ist.
Wie Ignacio impliziert - sorgen Sie sich um Leistungsprobleme, wenn Sie wissen, dass Sie Leistungsprobleme haben, nicht vorher. Einige Leistungsprobleme sind im Voraus vorhersehbar, aber wenn Sie nicht die eigentliche Spielengine in Python schreiben, sollten Sie in Ordnung sein - nicht in die vorzeitige Optimierungsfalle, IOW, fallen.
C ++ ist viel einfacher für die Objektorientierung. Wenn Sie etwas erledigen, ist es einfacher, den Überblick zu behalten, da die meisten IDEs für C ++ mehr auf Projekten basieren, während IDLE mehr auf einzelnen Dateien basiert.
Die Quintessenz ist für die Entwicklung des Spiels, benutze das, was du mit der Verwendung des Spiels gut findest. Ich meine, bei der Spieleentwicklung geht es darum, was du machen willst, nicht was besser wäre, denn besser == was du willst.
Tags und Links python performance