Wie mächtig ist Python wenn's um Spiele geht?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Karl
User
Beiträge: 252
Registriert: Freitag 29. Juni 2007, 17:49

Hiho.
Ich weiß ja mittlerweile, dass Python nicht einfach nur eine "kleine, süße Scriptsprache" ist, sondern eine ziemliche alles-könner Sprache. Und was es noch nicht gibt, wird eben irgendwann auch durch ein Modul ergänzt.
Ich bin zwar noch nicht so weit mit Python, dass ich mir die Spieleprogrammierung zutraun würde, aber ich würde gerne mal von vornherein wissen, wie viel da mit Python (theoretisch und praktisch) machbar ist.
Erstmal: Wie sieht's mit 2D aus?
Das, was ich da bisher gesehen hab, sah ziemlich nach Steinzeit aus :o
Naja ist auch klar, wenn man alleine n paar Wochen an einem Game arbeitet, dass es nicht mit den DirectX-10 Games mithalten kann :p
Aber wie viel ist da theoretisch machbar? Soweit ich weiß ist dafür dieses Pygame-Modul, was auf SDL basiert, gedacht? Könnte man damit jetzt auch zum Beispiel (ohne extremen Aufwand) Diablo2 ähnliches machen?
Und wie sieht's mit 3D aus? Da vermute ich, dass Python zu langsam für die extrem rechenlastigen Rechnungen ist ...
Naja ich würd halt einfach mal gerne wissen, wie weit Python in dem Bereich ist, vielleicht komm ich ja auch irgendwann mal zu solchen Projekten.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Karl hat geschrieben:Erstmal: Wie sieht's mit 2D aus?
Es gibt Pygame und Pyglet.
Karl hat geschrieben:Aber wie viel ist da theoretisch machbar? Soweit ich weiß ist dafür dieses Pygame-Modul, was auf SDL basiert, gedacht? Könnte man damit jetzt auch zum Beispiel (ohne extremen Aufwand) Diablo2 ähnliches machen?
Du willst also als einzelner Entwickler ohne extremen Aufwand ein ganzes Entwicklerstudio wie das von Blizzard ersetzen? Halte ich für unrealisitisch. Mit Python kann man so ziemlich alles hinbekommen, was mit der SDL unter C möglich ist, siehe etwa Teeworlds oder Solarwolf.
Karl hat geschrieben:Und wie sieht's mit 3D aus? Da vermute ich, dass Python zu langsam für die extrem rechenlastigen Rechnungen ist ...
Richtig. Aber erstens greift man da auf Libs in C (und Fortran) zu (PyOpenGL, Soya3D, Panda3D, Ogre, Numeric, numarray, NumPy) zweitens ist es auch möglich die rechenintensivsten Teile mit Cython zu kompilieren.

Ich würde jetzt nicht sagen, dass Python generell die optimale Sprache für Spiele ist, aber dennoch durchaus brauchbar.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Karl
User
Beiträge: 252
Registriert: Freitag 29. Juni 2007, 17:49

Leonidas hat geschrieben: Es gibt Pygame und Pyglet.
Okay, von Pyglet hab ich zwar noch nicht gehört, aber hab's mal kurz gegooglet ;)
Leonidas hat geschrieben: Du willst also als einzelner Entwickler ohne extremen Aufwand ein ganzes Entwicklerstudio wie das von Blizzard ersetzen? Halte ich für unrealisitisch.
Hab ich nicht behauptet. Die Frage zielte eher darauf ab, ob es mit Python (von mir aus auch mit einem erfahrenem Team) generell ein zu großer Aufwand wäre. Und ich hab mir gedacht, dass Diablo 2 schon ein wenig alt ist und dass es heutzutage eventuell leichter ist Spiele auf demselben Niveau wie vor einigen Jahren zu entwickeln.
Leonidas hat geschrieben: Richtig. Aber erstens greift man da auf Libs in C (und Fortran) zu (PyOpenGL, Soya3D, Panda3D, Ogre, Numeric, numarray, NumPy) zweitens ist es auch möglich die rechenintensivsten Teile mit Cython zu kompilieren.
Okay in dem Bereich kenn ich micht nicht aus. Aber hört sich vernünftig an, vorausgesetzt man schafft es die ganzen rechenlastigen Algorithmen auszulagern, ohne dass es die Programmlogik total durcheinander bringt. Aber wie gesagt, da kenn ich mich nicht aus und das wird wahrscheinlich schon irgendwie gehen :p
Leonidas hat geschrieben: Ich würde jetzt nicht sagen, dass Python generell die optimale Sprache für Spiele ist, aber dennoch durchaus brauchbar.
Dass es nicht die optimale Sprache ist, hab ich mir schon gedacht ;)
Dass sie brauchbar ist, war mir aufgrund der Screenshots, die ich geshen hab, auch klar, ich hab mich aber vorallem gefragt, wie viel man da mit Python noch rausholen kann, ohne dass es zu komplex wird.
Ich hab mir gedacht, wenn ich jemals ein Spiel programmiere, dann in Python oder einer ähnlichen Sprache, in C++ oder sonstigem wär das ja richtig grauenvoll. Es soll ja auch noch spaß machen :D
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Karl hat geschrieben:Hab ich nicht behauptet. Die Frage zielte eher darauf ab, ob es mit Python (von mir aus auch mit einem erfahrenem Team) generell ein zu großer Aufwand wäre. Und ich hab mir gedacht, dass Diablo 2 schon ein wenig alt ist und dass es heutzutage eventuell leichter ist Spiele auf demselben Niveau wie vor einigen Jahren zu entwickeln.
Wenn du nach einer Art Toolkit suchst, das für solche Spiele ausgelegt ist - nein, gibt es nicht. Für größere Spiele mit Pygame wäre es sowieso sinnvoll, sich ein Toolkit auf einer höheren Abstraktionsebene zu schreiben, da einige Dinge dort eher lästig sind.
Karl hat geschrieben:Okay in dem Bereich kenn ich micht nicht aus. Aber hört sich vernünftig an, vorausgesetzt man schafft es die ganzen rechenlastigen Algorithmen auszulagern, ohne dass es die Programmlogik total durcheinander bringt. Aber wie gesagt, da kenn ich mich nicht aus und das wird wahrscheinlich schon irgendwie gehen :p
So schwer ist eine Trennung ja nicht. Wer Module unf Funktionen nicht verstanden hat, der wird auch diverse andere Probleme haben, die nichts mit der Performance sondern mit der Struktur zu tun haben.

Letzteres ist eben auch noch ein Problem, denn um ein Spiel zu schreiben kann man nicht einfach drauf los hacken, sonst wird das irgendwann zu einen umverständlichen Fiasko. Ich denke, da muss man einfach mehrmals die Sachen neu schreiben um ein Gefühl zu bekommen, was man wie am besten strukturiert.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Karl
User
Beiträge: 252
Registriert: Freitag 29. Juni 2007, 17:49

Okay, danke für die Antworten, ich denke, das hat meine Fragen vorerst beseitigt :p
sechsrad
User
Beiträge: 173
Registriert: Montag 31. März 2008, 17:09

also mit panda3d , welches super in python(jetzt sogar in python 2.5.2) intrigriert ist, bleiben keine wünsche offen.

die ganzen 3d-routinen mit allen sich wünschenden kniffe und tricks sind in c++ geschrieben. das forum ist super.

es ist gedacht für den anfänger bis zum profi in sachen spieleprogrammierung.

wär sich nicht so ultratief in die spieleprogrammierung reinknieen möchte, für den ist soya3d etwas:
eine supersache.
ich probiere es gerade aus.

pygame ist auch nicht schlecht für den 2d-bereich ala diablo und konsorten:
mfg
Zuletzt geändert von sechsrad am Freitag 18. April 2008, 11:21, insgesamt 1-mal geändert.
Karl
User
Beiträge: 252
Registriert: Freitag 29. Juni 2007, 17:49

Die Screenshots sehen wirklich nice aus ;)
Ich bin grad echt beeindruckt, ich hätte nicht erwartet, dass man mit Python so richtig schöne 3D-Anwendungen programmieren kann, allein schon weil die ganzen 2D-Spiele schon eine Steinzeitgrafik haben ;p
Python ftw! :D
sechsrad
User
Beiträge: 173
Registriert: Montag 31. März 2008, 17:09

allein schon weil die ganzen 2D-Spiele schon eine Steinzeitgrafik haben
dem stimme ich nicht zu.

der trend geht auch wieder zu den 2d-spielen hin, wenn es um das selbsterstellen geht. siehe spiele erstellen für die gp2x-linuxconsole mit pygame, fenix und glbasic.

man ist stolz wenn man so etwas wie diablo-ähnliches geschaffen hat.

mfg
Karl
User
Beiträge: 252
Registriert: Freitag 29. Juni 2007, 17:49

sechsrad hat geschrieben:dem stimme ich nicht zu.

der trend geht auch wieder zu den 2d-spielen hin, wenn es um das selbsterstellen geht. siehe spiele erstellen für die gp2x-linuxconsole mit pygame, fenix und glbasic.

man ist stolz wenn man so etwas wie diablo-ähnliches geschaffen hat.

mfg
Dass der Trend zu den 2D-Spielen geht, ist klar, weil 3D einfach tausendfach komplizierter und mit mehr arbeit verbunden ist und man sich so gar nicht richtig auf den Spielinhalt an sicht konzentrieren kann.
Ich wäre auch stolz auf Diablo-ähnliches ;) Ich will die 2D-Games die die Leute in Python erstellt haben gar nicht schlechtreden, es war nur eine Feststellung, dass die meisten eine ziemlich veraltete Grafik haben, da es größtenteils aus Bildern besteht, die sich bewegen ;)
Neg'
User
Beiträge: 30
Registriert: Sonntag 11. Juni 2006, 19:42

Karl hat geschrieben:Dass der Trend zu den 2D-Spielen geht, ist klar, weil 3D einfach tausendfach komplizierter und mit mehr arbeit verbunden ist und man sich so gar nicht richtig auf den Spielinhalt an sicht konzentrieren kann.
Das stimmt so nicht. Mittels OpenGL z.B ist es einfacher 3D-Spiele zu schreiben usw.. Mehr Arbeit entsteht auf jeden Fall, da die Grafiker keine Pixelgrafiken oder Vektorgrafiken verwenden können, sondern wirklich 3D-Modells und Texturen bauen müssen.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Ich würde ja sagen, dass das erwähnte Diablo im Prinzip sowas wie dies hier ist, nur mit etwas besserer Grafik. Für die etwas bessere Grafik wird Python nach 10 Jahren seit dem Erscheinen von Diablo schon geeignet sein. Und für den Rest braucht es - völlig sprachunabhängig - einfach nur Kreativität.

Stefan
Antworten