Ist Pygame für schnelle 2d Scroller geeignet?

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Beitragvon burli » Samstag 22. November 2008, 14:39

Ich werde mich mal mit Pygame befassen. Mal schauen wie ich anfange.
abgdf

Beitragvon abgdf » Samstag 22. November 2008, 16:49

Er kennt bei mir das Modul "locals" nicht. Pygame hab ich installiert

Lösch' einfach die Zeile

Code: Alles auswählen

from pygame.locals import *

und ersetze zweimal im Code "KEYDOWN" durch "pygame.KEYDOWN".

Dann sollte es gehen.

Gruß
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Beitragvon burli » Samstag 22. November 2008, 17:32

Das seltsame ist das es bei anderen Programmen funktioniert
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 22. November 2008, 17:49

Du hast die Datei nicht zufällig ``pygame.py`` genannt, oder?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Beitragvon burli » Samstag 22. November 2008, 18:29

Leonidas hat geschrieben:Du hast die Datei nicht zufällig ``pygame.py`` genannt, oder?

Wenn man doof ist sollte man es lassen :roll: :lol:
abgdf

Beitragvon abgdf » Samstag 22. November 2008, 21:46

Hallo,

so, jetzt hab' ich mal

http://www.pyweek.org/all_games/
http://www.pygame.org/tags/2d

durchgeguckt. Vieles scheitert bei mir an besonderen Abhängigkeiten (3D-Sachen, neueste Pygame-Version und so). Außerdem finde ich die Dateien der Spiele ziemlich groß (für mein armes Modem :(). Irgendwie stelle ich mir das alles einfacher vor, auch für die Benutzer: Wenn die Benutzer ein Spiel nicht schnell und einfach starten können, wird es sich nicht weit verbreiten.

Vor einiger Zeit hatte mich z.B. auch mal "Bard's Tale" interessiert, weil nicht so grafiklastig. Da hatte ich Anfänge schonmal mit Tkinter probiert. Vor allem wollte ich dabei sehen, ob man so einen Dungeon als Datenstruktur in den Griff bekommt:

http://www.python-forum.de/topic-7603.html

(am Ende)

Und sonst ? Keine Kommentare zum laufenden Männchen (ausbaufähig, total daneben, wasauchimmer) ?

Gruß
BlackJack

Beitragvon BlackJack » Samstag 22. November 2008, 22:23

Die Grösse dürfte in den meisten Fällen durch "Multimediadaten" kommen. Musik und Grafik ist halt "gross".

Das mit den Abhängigkeiten ist wohl hauptsächlich unter Windows ein Problem. Wenn man diese Nutzer erreichen möchte, muss man halt einen Installer zusammenschnüren, der alles Notwendige enthält.
abgdf

Beitragvon abgdf » Sonntag 23. November 2008, 16:49

Die Grösse dürfte in den meisten Fällen durch "Multimediadaten" kommen. Musik und Grafik ist halt "gross".

Ok, aber wenn man 50MB für einen 2D-Scroller braucht, der zu Amiga oder C64-Zeiten vielleicht 500K oder gar nur 60K gebraucht hat, dann macht man wohl irgendetwas falsch, bzw. uneffizient.

Jedenfalls ist das der Eindruck, den ein Benutzer bekommen könnte.

Ganz ok scheint mir z.B. "Hostile Skies"

http://www.reelmediaproductions.com/hs

zu sein. Das ist allerdings in PureBasic geschrieben, aber vielleicht wäre sowas auch in Pygame möglich. Trotzdem kommt es an die alten kommerziellen Vorbilder, hier wohl z.B. "SWIV", immer noch nicht ran.

Man ist halt verdammt anspruchsvoll als Spieler :roll:.

Gruß
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Sonntag 23. November 2008, 17:00

abgdf hat geschrieben:Ok, aber wenn man 50MB für einen 2D-Scroller braucht, der zu Amiga oder C64-Zeiten vielleicht 500K oder gar nur 60K gebraucht hat, dann macht man wohl irgendetwas falsch, bzw. uneffizient.

Du musst bedenkten, dass die Auflösung und Farbtiefe damals eine ganz andere war. Zudem wurde früher stärker auf Größe geachtet, weil es einfach wichtiger war. 50 MB für einen 2D-Scroller mit hochaufgelöster Grafik und akzeptablen Sound nimmt im Verhältnis ähnlich viel Festplattenspeicher wie auf dem C64, eher noch weniger. Auf einer 1TB-Festplatte (die durchaus nicht mehr so teuer sind, habe vor einigen Monaten 750 GB für knapp über 100€ bekommen) passen 20971 50MB große 2D-Scroller. Für genausoviele 500K 2D-Scroller hätte man immerhin eine Festplatte von fast genau 10 GB gebraucht. Damals eher unrealistisch, 10 GB große Datenträger wurden erst so gegen 1997 oder '98 verbreitet.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
BlackJack

Beitragvon BlackJack » Sonntag 23. November 2008, 18:46

@abgdf: Ich denke nicht das man bei dem Vergleich sagen kann, dass heute etwas falsch gemacht wird.

Um mal Leonidas' Gedanken auf den Arbeitsspeicher zu übertragen: Auf dem Amiga 500 hätten 500 KiB den ganzen Arbeitsspeicher gefüllt, oder den halben wenn man nochmal 500 KiB Erweiterungsspeicher reingesteckt hat. 50 MiB ist dagegen bei heutigen Arbeitsspeichergrössen nur ein kleiner Prozentsatz. Ich bin mir sicher die Spiele wären damals grösser gewesen, wenn man von mehr Speicher und höheren Grafikauflösungen hätte ausgehen können. Spielehersteller neigten auch damals schon dazu die Möglichkeiten der Hardware auszureizen.

Musik war auf dem Amiga auf 8-Bit-Samples begrenzt. Ich wette wenn die Kiste 16-Bit gekonnt hätte, wären die MODs auch im Schnitt doppelt so gross gewesen.

Und die Speicherexplosion bei Grafik ist ja nicht linear zur Bildgrösse. Reichten beim Amiga für ein komplettes Titel- oder Hintergrundbild noch ca. 51 KB (320×256) oder 102 KB (640×256) Bytes aus, sind das auf dem PC schon ca. 2359 KB (1024×768), also ca. 46 bzw. 23 mal so viel.

Dann kommen die Levelgrafiken. In der Regel bestehen Level in diesen Spielen aus einer Anzahl von Grafikblöcken ("tiles"), aus denen die Objekte im Level zusammengesetzt werden. Eventuell gibt's noch eine zweite Ebene, die im Hintergrund in einer anderen Geschwindigkeit scrollt, um einen Eindruck von Tiefe zu vermitteln. Bei den "Tiles" im Vordergrund gibt's wieder die gleiche "Grössenexplosion" wie beim Titelbild, wobei die Alphainformation, also wo man den Hintergrund sieht, von einer 1-Bit-Maske auf 8-Bit "explodiert". Wenn man beim Amiga 16×16-Pixel-Tiles mit geradezu lächerlichen 192 Bytes Speicherbedarf für den Vordergrund verwendet hat, muss man um die Proportionen zu wahren, heute 51×51-Pixel-Tiles mit 10404 Bytes verwenden, also ca. 54 mal mehr Speicher.

Und weil der Hauptspeicher heute nicht mehr so knapp ist, werden wesentlich mehr verschiedene Tiles verwendet und für den Hintergrund vielleicht sogar gar keine Tiles sondern eine komplette "Panorama"-Grafik.
abgdf

Beitragvon abgdf » Sonntag 23. November 2008, 21:38

Also gut, und kennt ihr dann also 2D-Spiele, die die heutige Hardware richtig ausreizen, und dabei vom Spielprinzip und -spaß mit den Klassikern mithalten können ?

Das letzte halbwegs unterhaltsame 2D-Action-Spiel, das die Möglichkeiten des Amiga etwas überstieg, das ich gesehen habe, war ein Remake von "Pitfall":

http://www2.worldvillage.com/wv/gamezon ... tfall6.gif
http://www2.worldvillage.com/wv/gamezon ... itfall.htm

Das war 1996, glaube ich :roll: ...

Ist aber nicht so schlimm, denn unter Linux kann ich mit folgenden liebevoll und kompetent programmierten Emulatoren fast alle Klassiker zu nahezu 100% im Original laufen lassen, sogar mit Atari-Joystick-Support:

http://glukalka.sourceforge.net/
http://www.math.tu-berlin.de/~thor/atari++/
http://www.amigaemulator.org/
http://www.viceteam.org/

Ansonsten gibt's auch manchmal schöne PC-Remakes, z.B. "Jet Set Willy" hier:

http://www.andynoble.co.uk/games.htm

Viele Grüße
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Sonntag 23. November 2008, 21:49

abgdf hat geschrieben:Also gut, und kennt ihr dann also 2D-Spiele, die die heutige Hardware richtig ausreizen, und dabei vom Spielprinzip und -spaß mit den Klassikern mithalten können ?

Warum sollten 2D-Spiele die Hardware voll ausreizen? Mit 2D bekommst du heutzutage die Hardware eher kaum ausgereizt, dazu hat die Hardware zu viele für 3D bestimmte Dinge. Aber es wäre sicher mal interessant ein 2D-Spiel zu machen mit ähnlich aufwendigen Effekten wie in 3D-Spielen.

Aber ich habe viele unterhaltsame 2D-Spiele gespielt die so auf dem Amiga nicht in der Qualität möglich wären aber dennoch meinen Laptop nicht ausreizen. Eines davon wäre Kirubiru, was ich sehr spaßig fand, unter Linux wäre etwa Teeworlds ein Spiel mit Suchtpotential (habs vor dem Abi exzessiv gespielt), viele schwören auch auf Wormux, ich fand auch Frozenbubble abendfüllend (das Konzept ist billig, aber es macht echt viel Spaß). Battle for Wesnoth ist auch nicht schlecht, wenn man das Genre mag.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
abgdf

Beitragvon abgdf » Sonntag 23. November 2008, 21:59

Super, danke, guck ich mir an !

"Frozenbubble" ist in unserem Zusammenhang ganz interessant: Es ist nämlich in Perl programmiert, wobei eine Zwischenschicht SDL ansteuert, also genau wie bei Pygame.
Konkret ist "/usr/bin/frozen-bubble" also ein Perl-Skript.

Viele Grüße
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Beitragvon burli » Sonntag 23. November 2008, 22:27

Ein 2d Spiel mit 3d Effekten ist R-Type Final
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Sonntag 23. November 2008, 22:45

Ja, genau so etwas schwebt mir vor. In dem Spiel ist es aber eigentlich Fake-2D. Ist wohl auch einfacher. Da würde ich vermutlich auch gleich auf Pyglet zurückgreifen.

Apropos, SolarWolf ist in Python geschrieben, vom Pygame-Initator selbst.
My god, it's full of CARs! | Leonidasvoice vs Modvoice

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder