Hallo Leute,
ich bin neu in der Welt der Programmierung, also verzeiht meine Noob Fragen:
Ich will kleine Spiele in Python programmieren. Beim Schmökern diverser Seiten, habe ich festgestellt, dass ich dafür zusätzliche Bibliotheken benötige, zusätzlich zur Standardbibliothek.
Allerdings kenne ich mich in dem Biblitheken Dschungel nicht aus:
Da gibts einmal GUI Biblitheken wie PyQT oder wx etc.
Dann gibts anscheinend noch extra für Spiele Biblitheken wie PyGame oder PyGL. Was brauche ich denn nun wirklich? PyGame kommt mir z.B.: bisschen langsam vor. Auf meinem alten Laptop laggen selbst kleine Spiele, die ich bis jetzt heruntergeladen habe.
Ich habe bereits ein komplettes Python Buch verschlungen, allerdings finde ich es schwer das gelernnte von den kleinen Beispielen wie Pascalsches Dreieck, nun auf größere Projekte zu transferieren. Gibt es vielleicht ein Tutorial, wo ein kleines Spiel programmiert wird.
Python Spiele
Kann man so nicht sagen. Du kannst auch prima Spiele programmieren ohne zusätzliche Bibliotheken. Sieht dann aber vermutlich nicht so aus, wie du dir ein "Spiel" vorstellst.ArcturusMengsk hat geschrieben:Ich will kleine Spiele in Python programmieren. Beim Schmökern diverser Seiten, habe ich festgestellt, dass ich dafür zusätzliche Bibliotheken benötige, zusätzlich zur Standardbibliothek.
Wenn es dir darum geht, eine Programmiersprache (z.B. Python) vernünftig zu lernen, dann ist es durchaus sinnvoll, zunächst einmal mit Konsolenprogrammen (-spielen) zu beginnen.
Ganz einfaches Beispiel: Zahlenraten.
Das kannst du z.B. ergänzen durch eine Zeitmessfunktion, die Möglichkeit, eine Bestenliste in einer Datei zu verwalten etc.
Etwas anspruchsvoller: Vier gewinnt.
PyGame bildet soweit ich weiß eine Schicht, die auf die darunterliegende SDL-Bibliothek (in C/C++) zugreift (eine freie Alternative zu MS DirectX).
Das ist doch eigentlich ein ganz guter Ansatz.
Es ist dann halt so schnell, wie es dieser Ansatz eben ermöglicht.
Schätze, das Problem liegt an Python selbst , die meisten Linux-2D-Spiele verwenden ja ebenfalls SDL, aber eben direkt mit C/C++.
Mit PyGame geht dann eben (nur) sowas wie Solar Wolf oder Barbie Seahorse Adventures, also etwa auf dem Niveau von Atari VCS 2600
Heute tatsächlich nicht sehr beeindruckend.
Allerdings: Die 8-Bit-2D-Klassiker wurden auf sehr gut bekannten Maschinen in Assembler von kommerziellen Profi-Teams geschrieben. Das ist auch heute nicht ganz leicht in einer Hochsprache nachzumachen.
Die Schwierigkeit bei Spieleprogrammierung ist sowieso eher, daß man "Kreative" braucht, also Grafiker, die tolle Animationen zeichnen und Sound-Leute wie Sprecher, Musiker usw.. Meistens ist das zu aufwendig, um es kostenlos zu machen. Daher hat man im OpenSource-Bereich eher so Sachen wie SuperTux, was ja auch irgendwie ganz nett ist, aber einen meist nicht so recht vom Hocker haut. Ist schon schwierig ...
Gruß
Das ist doch eigentlich ein ganz guter Ansatz.
Es ist dann halt so schnell, wie es dieser Ansatz eben ermöglicht.
Schätze, das Problem liegt an Python selbst , die meisten Linux-2D-Spiele verwenden ja ebenfalls SDL, aber eben direkt mit C/C++.
Mit PyGame geht dann eben (nur) sowas wie Solar Wolf oder Barbie Seahorse Adventures, also etwa auf dem Niveau von Atari VCS 2600
oder 8-Farben-Grafik a la Sinclair ZX Spectrum (Barbie ...).SolarWolf is originally based of one of my childhood favorites, SolarFox on the Atari 2600.
Heute tatsächlich nicht sehr beeindruckend.
Allerdings: Die 8-Bit-2D-Klassiker wurden auf sehr gut bekannten Maschinen in Assembler von kommerziellen Profi-Teams geschrieben. Das ist auch heute nicht ganz leicht in einer Hochsprache nachzumachen.
Die Schwierigkeit bei Spieleprogrammierung ist sowieso eher, daß man "Kreative" braucht, also Grafiker, die tolle Animationen zeichnen und Sound-Leute wie Sprecher, Musiker usw.. Meistens ist das zu aufwendig, um es kostenlos zu machen. Daher hat man im OpenSource-Bereich eher so Sachen wie SuperTux, was ja auch irgendwie ganz nett ist, aber einen meist nicht so recht vom Hocker haut. Ist schon schwierig ...
Gruß
-
- User
- Beiträge: 24
- Registriert: Donnerstag 14. Februar 2008, 18:16
sonst schau doch mal hier:Pascal hat geschrieben:Für Spiele wie Pong oder Tic Tac Toe recht Tkinter völlig aus.
Wenn du sowieso erst mit Python angefangen hast, solltest du den Ratschlag von numerix befolgen und auf eine GUI erstmal verzichten.
http://www.way2python.de/fun/fun.html
-
- User
- Beiträge: 2
- Registriert: Freitag 9. April 2010, 14:35
Vielen Dank für die schnellen Antworten.
@Problembär: Irgendwo habe ich gelesen, dass in Python sogar richtige 3D Shooter programmiert wurden. Wenn das mit PyGame nicht möglich ist, wie wird das dann gemacht? Brauche ich PyGame überhaupt? Mit GUI Biblitheken kann man doch auch so kleine Spiele machen?
@Problembär: Irgendwo habe ich gelesen, dass in Python sogar richtige 3D Shooter programmiert wurden. Wenn das mit PyGame nicht möglich ist, wie wird das dann gemacht? Brauche ich PyGame überhaupt? Mit GUI Biblitheken kann man doch auch so kleine Spiele machen?
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Python wird in einigen Spielen genutzt, siehe "Spiele" Abschnitt hier:
http://wiki.python-forum.de/Wer%20nutzt%20Python
IMHO allerdings ehr für Spiellogik...
http://wiki.python-forum.de/Wer%20nutzt%20Python
IMHO allerdings ehr für Spiellogik...
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Panda3D oder PyOgre.ArcturusMengsk hat geschrieben:@Problembär: Irgendwo habe ich gelesen, dass in Python sogar richtige 3D Shooter programmiert wurden. Wenn das mit PyGame nicht möglich ist, wie wird das dann gemacht?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
@problembär: Das was Du da über PyGame und Spiele in Assembler schreibst ist ziemlicher Blödsinn. In Assembler hätte man genau die gleichen Probleme wenn man auf die SDL aufsetzt. Die Anzahl der Farben hat hier auch nur bedingt etwas mit der Geschwindigkeit zu tun bzw. unter Umständen genau entgegengesetzt dem was Du suggerierst. Wenn man 256 Farben mit Index in eine Farbtabelle benutzt, dann ist das eventuell sogar langsamer als "truecolor", denn dahin muss das dargestellte Bild zusätzlich hochgerechnet werden, wenn man es in einem Fenster auf einem Desktop darstellt der 24- oder 32-Bit pro Pixel eingestellt hat.
Wenn PyGame und damit SDL zu langsam ist, dann ist entweder der Rechner zu schwach und/oder hat aus irgendwelchen Gründen keine 2D-Beschleunigung. Der Flaschenhals ist hier dann die Datenübertragung vom Hauptspeicher in den Grafikkartenspeicher. Das liegt aber nicht an Python.
Wenn PyGame und damit SDL zu langsam ist, dann ist entweder der Rechner zu schwach und/oder hat aus irgendwelchen Gründen keine 2D-Beschleunigung. Der Flaschenhals ist hier dann die Datenübertragung vom Hauptspeicher in den Grafikkartenspeicher. Das liegt aber nicht an Python.
Meine Erfahrung ist eine andere. Aufrufe von selbstgeschriebenem Pythoncode -> PyGame -> SDL sind der Flaschenhals. Wenn man - aus der Erinnerung heraus - 40 x 25 Blits für einen Frame macht, kommt man schon auf keinen grünen Zweig mehr.BlackJack hat geschrieben:Wenn PyGame und damit SDL zu langsam ist, dann ist entweder der Rechner zu schwach und/oder hat aus irgendwelchen Gründen keine 2D-Beschleunigung. Der Flaschenhals ist hier dann die Datenübertragung vom Hauptspeicher in den Grafikkartenspeicher. Das liegt aber nicht an Python.
Zu Zeiten der 8-Bit-Assembler-Coder gab es SDL oder DirectX noch gar nicht.BlackJack hat geschrieben:In Assembler hätte man genau die gleichen Probleme wenn man auf die SDL aufsetzt.
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
Für etwas einfaches mag Pygame nett sein, für alles andere empfehle ich Pyglet und Opengl.
Das es mit Pygame/SDL nicht möglich sein soll modernere 2D Games zu machen halte ich jedoch für falsch.
problembär, Es gibt im Opensource Bereich auch Spiele wie Nexuiz oder Sauerbraten oder Planeshift. Ja dazu braucht es mehr als, Coder, aber möglich ist es dennoch.
Gruss,
Jonas
Das es mit Pygame/SDL nicht möglich sein soll modernere 2D Games zu machen halte ich jedoch für falsch.
problembär, Es gibt im Opensource Bereich auch Spiele wie Nexuiz oder Sauerbraten oder Planeshift. Ja dazu braucht es mehr als, Coder, aber möglich ist es dennoch.
Gruss,
Jonas
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann