Spieleentwicklung in Python


Eigentlich wollte ich von pygame auf PySFML umsteigen. Das gestaltet sich jedoch schwieriger als ursprünglich gedacht. Der Grund ist, dass SFML im C/C++ Umfeld zu Hause ist und für diese Sprachen gibt es die Tutorials. Man kann zwar mittels „dir(command)“ auch in Python herausfinden, wie das Python Äquivalent lautet aber das ist mühsam. Erschwerend kommt hinzu, dass nach dem Start der GUI pySFML mindstens genauso viel CPU schluckt wie pygame. Stolze 15% werden von der CPU abgezweigt und das für ein paar Linien und 30 fps.

Offenbar führt im Python Umfeld an pygame nichts vorbei. Unter C würde SFML die bessere Wahl sein, dort ist dier Performance überragend und dort passen auch die Codebeispiele von der Hilfe-Seite. Unter Python jedoch sind Game-Engines immer so eine Sache. Wirklich guten Code kann man mit pygame beispielsweise nicht produzieren. Das ist aber nicht schlimm, weil es letztlich um den Prototypen geht und nicht um die fertige Applikation. Der Vorteil bei Python ist eben, dass man nur sehr wenige Lines of Code benötigt und man schnell fertig ist mit dem Projekt. Das die Anwendung zäh reagiert und manchmal abstürzt kann man da verschmerzen.

Was genau soll die Software einmal können wenn sie fertig ist? Nun, angedacht ist, einen Motion Graph in Python zu implementieren, also eine Animationssequenz die sich interaktiv steuern lässt. Anders als bei Box2D wird die Animation nur auf den Bildschirm ausgegeben, ohne dass im Hintergrund eine Kollisionsüberprüfung durchgeführt wird. Der darauf aufbauende RRT Solver dürfte pfeilschnell sein. Roboter kann man dann zwar nicht mehr damit steuern, aber dafür kann man das Prinzip leichter verdeutlichen bei dem Motion Primitive mit einem RRT Solver kombiniert werden.

Was schon geklärt ist ist die Frage wie die Map im Speicher gehalten wird, nämlich so: http://stackoverflow.com/questions/23318440/2d-array-to-tiled-map-pygame-python Also einfach eine Array-artige Liste als Tiled map. Auf dieser Map werden dann Hindernisse wie Graben eingeblendet und über ein Menü kann eine Animationssequenz aktiviert werden. Das jedenfalls die Idee, wenn das Projekt mal fertig ist.

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s