Ist Pygame für schnelle 2d Scroller geeignet?

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
abgdf

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

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

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ß
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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 (former) Modvoice
BlackJack

@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

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
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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 (former) Modvoice
abgdf

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: 1156
Registriert: Dienstag 9. März 2004, 18:22

Ein 2d Spiel mit 3d Effekten ist R-Type Final
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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 (former) Modvoice
nuss
User
Beiträge: 53
Registriert: Donnerstag 28. August 2008, 11:36

unter http://www.pygame.org kann man relativ viele spiele finden, die in pygame geschrieben sind. ;)
Antworten