Spieleprogrammierung

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.
Benutzeravatar
SigMA
User
Beiträge: 181
Registriert: Sonntag 4. April 2004, 13:27
Wohnort: Freiburg
Kontaktdaten:

Beitragvon SigMA » Montag 3. Juli 2006, 21:00

du kennst nicht Norman Foster :shock: :shock: :shock:

Ok das wird jetzt Offtopic^^

Das ist wohl der berühmteste Architekt der Welt ;) Ich sag nur Berliner Reichstag ^^

http://de.wikipedia.org/wiki/Norman_Foster

SigMA
Leichtdio.de - Das Kreativ-Blog
http://www.leichtdio.de
CrackPod
User
Beiträge: 205
Registriert: Freitag 30. Juni 2006, 12:56

Beitragvon CrackPod » Dienstag 4. Juli 2006, 16:46

Was würdet ihr mir denn empfehlen, was ich unbedingt können muss, um Spiele zu proggen?
Ich weiß nämlich grad gar nich, was ich lernen soll und da ich sobald wie möglich anfangen will, wärs praktisch wenn ich was hätte, was mir auch im Hinblick auf die Spieleprogrammierung was bringen würde.

Greetz
Benutzeravatar
SigMA
User
Beiträge: 181
Registriert: Sonntag 4. April 2004, 13:27
Wohnort: Freiburg
Kontaktdaten:

Beitragvon SigMA » Dienstag 4. Juli 2006, 17:28

lerne erstmal Python von Grundauf! ;) Wenn du dann glaubst du kannst alles fang mit pygame an!

Jedoch kannst du Python nicht in 2 Wochen^^ (zumindest nicht richtig)

SigMA
Leichtdio.de - Das Kreativ-Blog
http://www.leichtdio.de
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Dienstag 4. Juli 2006, 17:51

CrackPod hat geschrieben:Was würdet ihr mir denn empfehlen, was ich unbedingt können muss, um Spiele zu proggen?

Also meine Feststellungen beim Programmieren von screensaw, das nicht direkt ein Spiel ist, aber vergleichbar:
  • Saubere Programmierung. Nichts ist frustierender als ein Rewrite des Programmes, weil man ein Feature nicht implementieren kann, weil der Aufbau des Programmes einfach zu chaotisch/schlecht ist
  • Mathematik. Klingt uncool, aber Spiele die Spass machen, haben oft zumindest etwas Mathematik und Physik eingebaut. Es macht auch Spass, Physikalische Gesetze zu visualisieren ^^. Beispiel: SDL kann keine regelmäßigen Sechsecke zeichnen, das musst du mit den Koordinaten (die du mit Sinus und Cosinus ausrechnen kannst) selbst zeichnen. Das ist ein einfaches Beispiel, aber ein recht gutes Wissen Mathematik kann dir da nur helfen, stören tuts nie.
  • Vorstellungskraft. Oft hilft es, sich einige Sachen einfach mal auf ein Blatt Papier zu skizzieren
  • 3D: OpenGL verstehen, bzw 3D surch 2D simulieren. Fragt sich nur was komplizierter ist.
  • Kreativität: ich kenne zum Beispiel die Spiele von dP-Software, die zwar technisch nicht gerade das nonplusultra sind, aber durch die kreativen Ideen ist die Spielbarkeit dieser Spiele einfach riesig.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
CrackPod
User
Beiträge: 205
Registriert: Freitag 30. Juni 2006, 12:56

Beitragvon CrackPod » Mittwoch 5. Juli 2006, 06:48

SigMA hat geschrieben:lerne erstmal Python von Grundauf! ;) Wenn du dann glaubst du kannst alles fang mit pygame an!

Jedoch kannst du Python nicht in 2 Wochen^^ (zumindest nicht richtig)

SigMA

Ich werd mich auch nich sofort in Z stürzen :|
Ich wollte nur wissen, was für Module usw ich kennen und umgehen können muss. Wenn ich die kann, dann würd ich kleinere Spiele proggen, um zu lernen. An so kleinen Spielen lernt man auh sehr viel.
Und wärend ich die Benutzung der Module lern, schreib ich mir ja auch Beispiele, also würd ich dabei auch das lernen.

Gibts irgendwo Tutorials? Welche Module sind empfehlenswert und welche wirklich wichtig?(Wie Pygame)
Danke

Greetz:)
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

Beitragvon keppla » Mittwoch 5. Juli 2006, 08:45

Seid ihr wirklich sicher, dass PyGame für ein "Z"-Clone geeignet ist? Ich hab es auf Anieb nicht wiedergefunden, aber als ich mich mal mit PyGame beschäftigt habe, bin ich da mal über eine FAQ gestolpert in der vage sowas stand:

Frage: Wie mache ich ein Spiel, bei dem viel gescrolled wird?
Antwort: Nicht mit Pygame, dafür ist das Zeichnen zu langsam.

Ich will die Bibliothek nicht schlechtmachen, nur einige Eigenschaften, die sie hat (oder hatte), haben Spieleprogrammierung wie ich sie mir vorgestellt habe, unnötig verkompliziert.
Warum muss ich mir im Zeitalter von GeForceZehnMillionen noch gedanken machen, welchen Teil des Bildschirms ich neu zeichne? Warum ist drehen und Zoomen so ein Aufwand? Warum muss ich mich zwischen Alpha pro Pixel und Alpha pro Surface unterscheiden?

Es ist mir klar, dass die Punkte keine Fehler oder Dummheiten sind, sondern an anderer Stelle Freiheiten bieten (z.B. dass man für graphische Menus keine GeForceXX brauch).
Aber auf die reine Spieleprogrammierung bezogen war es Teilweise einfacher, den Spass direkt in einer 3D-Engine zu realisieren.
Zuletzt geändert von keppla am Mittwoch 5. Juli 2006, 08:58, insgesamt 1-mal geändert.
Mad-Marty
User
Beiträge: 317
Registriert: Mittwoch 18. Januar 2006, 19:46

Beitragvon Mad-Marty » Mittwoch 5. Juli 2006, 08:48

Ich würde vorschlagen du fängst einfach an - und löschst nach 3 monaten die erste version und machst es nochmal.

Learning by doing, und das erste python programm wird sowieso nichts besonders gutes vom code her. Deswegen nochmal neuschreiben - und du wirst erstaunt sein was du ändern wirst ;)
BlackJack

Beitragvon BlackJack » Mittwoch 5. Juli 2006, 09:08

keppla hat geschrieben:Seid ihr wirklich sicher, dass PyGame für ein "Z"-Clone geeignet ist? Ich hab es auf Anieb nicht wiedergefunden, aber als ich mich mal mit PyGame beschäftigt habe, bin ich da mal über eine FAQ gestolpert in der vage sowas stand:

Frage: Wie mache ich ein Spiel, bei dem viel gescrolled wird?
Antwort: Nicht mit Pygame, dafür ist das Zeichnen zu langsam.


Ich glaube nicht, das das ein Problem ist. Bei dem Scrollen ist pixelweises, "weiches" scrollen wie bei den üblichen 2D Ballerspielen oder Jump'n'Runs gemeint wo der Hintergrund kontinuierlich sanft in alle 8 Richtungen scrollen kann.

Solche Strategiespiele zeichnen beim scrollen einen Haufen "Kacheln"/Quadrate neu, das ist was ganz anderes. Da ist PyGame brauchbar.

Warum muss ich mir im Zeitalter von GeForceZehnMillionen noch gedanken machen, welchen Teil des Bildschirms ich neu zeichne?


Warum solltest Du das bei einer GeForce nicht mehr machen müssen? Das ist keine Frage der Grafikkarte, sondern eine Optimierungsfrage, die man nun mal nicht ganz so einfach automatisch Lösen kann.

Warum ist drehen und Zoomen so ein Aufwand?


Weil das viel Rechenaufwand für den Prozessor bedeutet. Wenn Du das beschleunigt haben möchtest, dann musst Du OpenGL benutzen und keine Bibliothek, die im Grunde auf einem Framebuffer-Prinzip aufbaut. Und damit wesentlich portabler ist als OpenGL.

Warum muss ich mich zwischen Alpha pro Pixel und Alpha pro Surface unterscheiden?


Musst Du ja nicht. Alpha pro Surface verbraucht weniger Speicher und kann eventuell schneller ausgeführt werden, aber Du kannst natürlich auch ein Bild mit dem gleichen Alphawert pro Pixel benutzen um den gleichen Effekt zu erzielen.
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

Beitragvon keppla » Mittwoch 5. Juli 2006, 10:05

Ich glaube nicht, das das ein Problem ist. Bei dem Scrollen ist pixelweises, "weiches" scrollen wie bei den üblichen 2D Ballerspielen oder Jump'n'Runs gemeint wo der Hintergrund kontinuierlich sanft in alle 8 Richtungen scrollen kann.

Solche Strategiespiele zeichnen beim scrollen einen Haufen "Kacheln"/Quadrate neu, das ist was ganz anderes. Da ist PyGame brauchbar.


Der Punkt ist aber bei beidem, dass der ganze Bildschirm neugezeichnet werden muss, weil nichts am alten Platz ist.

Zitat:
Warum muss ich mir im Zeitalter von GeForceZehnMillionen noch gedanken machen, welchen Teil des Bildschirms ich neu zeichne?

Warum solltest Du das bei einer GeForce nicht mehr machen müssen? Das ist keine Frage der Grafikkarte, sondern eine Optimierungsfrage, die man nun mal nicht ganz so einfach automatisch Lösen kann.


Wie gesagt: Freiheiten an anderer Stelle.
Ich frage mich halt nur, warum ich im Falle eines Spieles da meine Zeit mit optimieren verschwenden sollte. Aktuelle Spiele zeichnen jedes Frame ein Huntertfaches an Flächen auf den Bildschirm, ohne, dass das die vorhandenen Ressourcen nennenswert auslastet.
Also, selbst wenn mein Spiel 100 mal Langsamer ist, als es in Optimiert wäre, würde es trotzdem immer noch nur einen Bruchteil der auf einem durchschnittlichen Rechner zur Verfügung stehenden Ressourcen Fressen.
Und da man kaum zwei Spiele parallel Spielt, ist es imho eine unglaubliche Verschwendung.
Ich kümmere mich auch nicht um so Dinge wie Garbage Collection oder Pointerarithmetik, obwohl ichs könnte.


Warum ist drehen und Zoomen so ein Aufwand?

Weil das viel Rechenaufwand für den Prozessor bedeutet. Wenn Du das beschleunigt haben möchtest, dann musst Du OpenGL benutzen und keine Bibliothek, die im Grunde auf einem Framebuffer-Prinzip aufbaut. Und damit wesentlich portabler ist als OpenGL.


Ist OpenGL so unportabel? Ich nahm bis jetzt eigentlich immer das Gegenteil an.

Musst Du ja nicht. Alpha pro Surface verbraucht weniger Speicher und kann eventuell schneller ausgeführt werden, aber Du kannst natürlich auch ein Bild mit dem gleichen Alphawert pro Pixel benutzen um den gleichen Effekt zu erzielen.


Doch, musste ich damals. Ich wollte einen runden Tooltip einfaden lassen. Weil er rund ist, brauchte ich AT/P, damit die Kanten nicht blöd aussehen, damit er insgesamt transparenter wird, brauchte ich AT/S.
Und ich hatte nur die Wahl entweder/oder.

Wie gesagt: Ich mache Pygame nicht schlecht. Ich halte es für ein gutes Framework. Nur finde ich es ärgerlich, wenn selbst Flashspiele bei gleicher Grafik einfacher zu Programmieren und Portabler sind als meine "Professionelle" Lösung.
Wie du schon sagtest: Ich will vermutlich OpenGL. Aber nur eine kleine Untermenge. Vielleicht mach ich mich mal dran, diese Untermenge hübsch zu Kapseln. Sofern es nicht schon sowas gibt (die Hoffnung stirbt zuletzt)
BlackJack

Beitragvon BlackJack » Mittwoch 5. Juli 2006, 16:09

keppla hat geschrieben:
Ich glaube nicht, das das ein Problem ist. Bei dem Scrollen ist pixelweises, "weiches" scrollen wie bei den üblichen 2D Ballerspielen oder Jump'n'Runs gemeint wo der Hintergrund kontinuierlich sanft in alle 8 Richtungen scrollen kann.

Solche Strategiespiele zeichnen beim scrollen einen Haufen "Kacheln"/Quadrate neu, das ist was ganz anderes. Da ist PyGame brauchbar.


Der Punkt ist aber bei beidem, dass der ganze Bildschirm neugezeichnet werden muss, weil nichts am alten Platz ist


Aber bei Startegiespielen nicht kontinuierlich und flüssig mit mindestens 30 FPS. Denk einfach mal an die Rechner als Z neu war und dann an die heutigen GHz Monster. Da sollte der "Reibungsverlust" durch Python wieder aufgefangen werden.

Zitat:
Warum muss ich mir im Zeitalter von GeForceZehnMillionen noch gedanken machen, welchen Teil des Bildschirms ich neu zeichne?

Warum solltest Du das bei einer GeForce nicht mehr machen müssen? Das ist keine Frage der Grafikkarte, sondern eine Optimierungsfrage, die man nun mal nicht ganz so einfach automatisch Lösen kann.


Wie gesagt: Freiheiten an anderer Stelle.
Ich frage mich halt nur, warum ich im Falle eines Spieles da meine Zeit mit optimieren verschwenden sollte. Aktuelle Spiele zeichnen jedes Frame ein Huntertfaches an Flächen auf den Bildschirm, ohne, dass das die vorhandenen Ressourcen nennenswert auslastet.


Das ist meistens von der Grafikkarte beschleunigt und Du musst Dir ja keine Gedanken bei SDL machen, Du kannst auch dort einfach grundsätzlich den Bildschirm komplett neu zeichnen.

Warum ist drehen und Zoomen so ein Aufwand?

Weil das viel Rechenaufwand für den Prozessor bedeutet. Wenn Du das beschleunigt haben möchtest, dann musst Du OpenGL benutzen und keine Bibliothek, die im Grunde auf einem Framebuffer-Prinzip aufbaut. Und damit wesentlich portabler ist als OpenGL.


Ist OpenGL so unportabel? Ich nahm bis jetzt eigentlich immer das Gegenteil an.


Ein Framebuffer ist supersimpel, den stellt alles was einen Bildschirm hat, vom Mobiltelefon bis zur Handheld-Spielekonsole, zur Verfügung. Für OpenGL brauchst Du entweder entsprechende Grafikhardware oder viel Platz für Code für die Emulation und ordentlich Rechenpower. Ich weiss, mittlerweile gibt's auch schon 3D-Chips für Mobiltelefone, aber SDL ist auch auf ältere Amigas portiert.

Wie gesagt: Ich mache Pygame nicht schlecht. Ich halte es für ein gutes Framework. Nur finde ich es ärgerlich, wenn selbst Flashspiele bei gleicher Grafik einfacher zu Programmieren und Portabler sind als meine "Professionelle" Lösung.


Da ist dann die Entwicklungsumgebung nicht portabel. Und Flash+64Bit-Linux ist auch so ein Kapitel für sich.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Mittwoch 5. Juli 2006, 16:13

keppla hat geschrieben:Ist OpenGL so unportabel? Ich nahm bis jetzt eigentlich immer das Gegenteil an.

Da es trotz der vielen Open Source Programmierer unter Linux keinen brauchbaren freien 3D-Trieber für Linux gibt, sehr wohl aber gute 2D-Treiber (unter denen SDL wunderbar läuft), würde ich sagen dass OpenGL nicht so prtabel ist wie man denkt. Dennoch portabler als DirectX, ganz recht.

keppla hat geschrieben:Wie du schon sagtest: Ich will vermutlich OpenGL. Aber nur eine kleine Untermenge. Vielleicht mach ich mich mal dran, diese Untermenge hübsch zu Kapseln. Sofern es nicht schon sowas gibt (die Hoffnung stirbt zuletzt)

LGT (oder eines der Unterprojekte) kapselt Pygame in PyOpenGL, vielleicht suchst du ja sowas.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
SigMA
User
Beiträge: 181
Registriert: Sonntag 4. April 2004, 13:27
Wohnort: Freiburg
Kontaktdaten:

Beitragvon SigMA » Mittwoch 5. Juli 2006, 17:35

pygame kann pyopengl in sich benutzten warum sollte man es andersherum machen?!

Desweiteren wenn du ein Spiel haben willst was super mega hammer geil schnell läuft (ja ich liebe Übertreibungen), damit du bei deinen Kumpels angeben kannst, dann solltest du kein Python verwenden sondern C/C++

Jedoch ist dies für den Anfang einfach zu schwierig! pygame ist einfach das einfachst und trotzdem im Verhältnis effektivste was du für das was du vor hast benutzten kannst

SigMA
Leichtdio.de - Das Kreativ-Blog
http://www.leichtdio.de
Valnar
User
Beiträge: 49
Registriert: Samstag 1. Juli 2006, 12:31
Wohnort: Trier

Beitragvon Valnar » Mittwoch 5. Juli 2006, 18:00

Naja und wenn du ein remake von Z machen willst müsste der ja uff meinen Shclechtesten PC uch loofen
(90 MHZ aber sao gut wie 133;
8MB Ram hochgetcktet auf 16!!! (Ne Menge ich weiss)
und ne 8MB-Grafik Karte!)

Aber was ich schön finden würde idt, wenn die community vielleicht mal ein gemeinsames Project machen würde. So das die unerfahrenen von den erfahrenen lernen! und für ein Grösseren Zusammenhalt.
Muss ja kein Spiel sein...
Die Schrebfehler sind absicht und dienen der Belustigung.
Benutzeravatar
SigMA
User
Beiträge: 181
Registriert: Sonntag 4. April 2004, 13:27
Wohnort: Freiburg
Kontaktdaten:

Beitragvon SigMA » Mittwoch 5. Juli 2006, 18:08

http://berlios.de

Es gibt on Mass Projekte wo sowas ist! Ich bin ja sowieso immer noch der festen Ansicht, das man am besten durch lesen eines Buches lernen kann.

@Remake:
Remake heißt nicht es muss die gleichen Systemanforderungen haben ;D
Leichtdio.de - Das Kreativ-Blog
http://www.leichtdio.de
Valnar
User
Beiträge: 49
Registriert: Samstag 1. Juli 2006, 12:31
Wohnort: Trier

Beitragvon Valnar » Mittwoch 5. Juli 2006, 18:20

aber genau das hat mich fasziniert an Z:

Die Pixelige, aber doch Geilöe Grafik
und die super krasse und Lustige "Story" es ist eigentlich eine verarsche von c&c. problem: c&c kam erts danach raus...
Die Schrebfehler sind absicht und dienen der Belustigung.

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], kl.as, snafu, WhiteyW