Spielprogrammierung (Anfänger)

aero

Lieutenant
Registriert
Juni 2008
Beiträge
564
Liebe community,

da ich kein Computerfachmann bin, noch nie selber programmiert habe und dennoch interessiert daran bin, ein eigenes Spiel zu entwerfen, wollte ich euch fragen, wo man da am besten anfängt und wie aussichtsreich meine Idee unter Berücksichtigung fehlender Erfahrung ist. Ich habe zwar schon mitunter im Netz geschaut und dabei Softwre wie den RPG Maker gesehen, doch war ich ernüchtert vom dorft eingebautem Kampfsystem: rundenbasierende Kämpfe sind nicht mein Fall.
Spiele, an die ich mich gern orientieren würde wären alte Klassiker (kann man die schon so nennen?) wie:


Oder auch Spiele wie Ecco the Dolphin und Dune II.

Ich freue mich über jeden Hinweis. :)

Viele Grüße
aero
 
Oje!
Na gut, der Tipp zu c++ ist immerhin ein Anfang - einen Blick zu riskieren kann kaum schaden. Danke.
 
In dem Umfang der Genesis-Spiele sicherlich nie.
Wenn du eines von diesen Spielen durchgespielt hast, waren sicherlich die Credits mit einigen Dutzend von professionellen (!) Programmierern/Entwicklern zu sehen.

Alleine schafft das so gut wie niemand.
Und ohne Erfahrung schon gar nicht.

Genauso wird es sicherlich eher frustrierend sein, ohne andere Sprachen zu kennen, in C++ einzusteigen.
 
Hab jetzt mal noch (fast) gar keine Ahnung vom Programmieren, von daher:
Wie kriegt man mit Sprachen wie C oder C++ eine grafische Benutzeroberfläche hin?
Mit Buttons zum Anklicken legt man dann ja im Prinzip den Grundstein für so was wie einfachste Spiele, oder ist das wieder was ganz anderes?
 
Dazu kann ich das Buch "C++ für Spieleprogrammierer" von Heiko Kalista empfehlen. Habe es selbst und ich finde, es ist mit eines der besten Bücher was Spieleprogrammierung für Anfänger angeht.

Kannst ja mal einen Blick riskieren...

Grüße

Marky
 
Robert Alpha schrieb:
Wie kriegt man mit Sprachen wie C oder C++ eine grafische Benutzeroberfläche hin?
Mit Buttons zum Anklicken legt man dann ja im Prinzip den Grundstein für so was wie einfachste Spiele, oder ist das wieder was ganz anderes?
Man zeichnet die gewünschten Objekte und bindet sie ein.
Möchte man einfache Anwendungen z.B. für Windows entwickeln, kann man es natürlich einfacher gestalten und bereits vorhandene Schnittstellen (wie Windows Forms) verwenden.
 
also spiele zu programmieren ist die Königsdiziplin des Programmierens!!
Absolut richtig. Ich hoffe, deine Landung in der Realität wird nicht allzu hart. Ich habe vor 7 oder 8 Jahren das erste Mal mit Programmierung zu tun gehabt, vor knapp einem Jahr mit C++ angefangen, und bisher noch keinen (ernsthaften) Gedanken daran verschwendet ein Spiel zu schreiben.

Ich gehe mal davon aus, dass du halbwegs Englisch kannst...

Hier kriegst du einen Überblick, was Spiele-Programmierung bedeutet:
http://www.youtube.com/watch?v=C-D9bkJ2JxY

Hier fängst du mit C++ an:
http://www.youtube.com/watch?v=WYbe...3757B4A38&playnext_from=PL&index=0&playnext=1

Und hier kannst du dir mal ansehen, was alles dazu gehört ein rudimentäres Spiel zu schreiben:
http://www.youtube.com/watch?v=E4RqHtEAAds

Ich hoffe, das reicht für den Anfang. :D
Ergänzung ()

Robert Alpha schrieb:
Mit Buttons zum Anklicken legt man dann ja im Prinzip den Grundstein für so was wie einfachste Spiele, oder ist das wieder was ganz anderes?
Also GUIs (z.B. mittels WinAPI, Qt, ...) haben mit Spielen per se erstmal wenig zu tun. Für Spiele werden eher Bibliotheken wie SDL und OpenGL benutzt...
 
Zuletzt bearbeitet: (URLs geändert)
kibotu83 schrieb:
also spiele zu programmieren ist die Königsdiziplin des Programmierens!!

Das würde ich so nicht sagen. Vom Programmiertechnischen her ist das auch nichts anderes. Zudem gibt es haufenweise freie Engines. Allerdings darfst du gleich mal dein Mathebuch im Kapitel Matrizen und Vektoren aufschlagen :D
 
Zuletzt bearbeitet: (typo)
Wieso zur Hölle möchten immer alle gleich Spiele programmieren?

Schreibt doch erst mal so konforme und auch performante gut Software...
Ist so als wenn ich sofort Sprinten will obwohl ich noch nicht mal krabbeln kann. :)
 
Mach erst mal eine Software und arbeitet dich mal ein. Ich habe auch so angefangen. Mittlerweile sind kleine Programme, keine große Hürde mehr. Ich benutze das QT SDK, damit kann man Crossplattform Programme schreiben, seit neusten auch Symbian Programme. Games eher weniger, daran werde ich mich nicht wagen, weil es für einen allein, sehr schwer ist, ein vernünftiges Game zu programmieren.
 
kibotu83 schrieb:
also spiele zu programmieren ist die Königsdiziplin des Programmierens!!
Und wo nimmst du diese Binsenweisheit her? Nee nee, da gibt es weitaus Anspruchsvolleres in der Softwareentwicklung denn Spiele.
 
SheepShaver schrieb:
[...] Nee nee, da gibt es weitaus Anspruchsvolleres in der Softwareentwicklung denn Spiele.
Mag sein, aber sagen wir mal so: es ist die "Königsdisziplin des Programmierens innerhalb des Horizontes von Einsteigern" - wenn man bis dahin vordringt, ist man eigentlich kein Einsteiger mehr. Ein typischer Programmier-Neuling wird z.B. kaum den Ehrgeiz haben sich in der Demoszene zu etablieren ...
 
Also mit einem Spiel anfangen halte gelinde gesagt für sehr ehrgeizig...
Wenn doch ist XNA mitsamt Tutorials aus der MSDN sicherlich eine gute Adresse.
Ansonsten (Duck) ist Flash zum Einstieg auch nicht schlecht und auch Kostenlos.
Das Framework ist hier weitaus kleiner und übersichtlicher und hat erstmal alles was für den Anfang reicht.
Kostenlose IDE wäre FlashDevelop.
Java ist auch kostenlos bietet mit JOGL auch eine OpenGL Implementierung, ist aber bestimmt nicht Ideal was Spieleprogramierung anbelangt, da in der Richtung die Frameworks (meines Wissens) noch nicht so weit.

Weiterhin kann ich dir falls du in Richtung C gehst, http://www.gamedev.net/ empfehlen.

Gruß

Die Königsdiziplin sind Spiel sicherlich nicht, viel Arbeit aber schon :).
 
Falls du dich eher für den kreativen Part interessierst, also Game und Leveldesign, dann kannst du auch mit fertigen Engines arbeiten, z.B. sowas: http://www.prismatoid.de/fpscreator/modules/cjaycontent/index.php?id=2
Damit hat ein Studienkollege von mir für seine Abschlussarbeit ein Spiel erstellt. Seine Arbeit bestand dann letztendlich im Texturen und Lightmaps erstellen, Leveldesign, Scripte schreiben für KI und Kampf und ähnlichem.

Gibt auch jede Menge anderer fertiger Engines, die man lizensieren kann, wo man aber auch Programmierkenntnisse braucht (Unreal Engine, NetImmerse bzw Gamebryo, die von Crytek, ...).

Aber um erste Schritte zu machen und mal in die Welt der Spielepgrammierung reinzuschnuppern ist so ein Programm, wie das oben genannte, vielleicht nicht schlecht. Richtig professionelle Sachen kriegste damit aber meiner Meinung nach nicht hin, kann mich aber auch irren (Spieleprogrammierung ist nicht ganz mein Ding).
 
Also ich programmiere momentan ein Spiel (mit insgesamt 6 Leuten). Dabei verwenden wir C++.
Ich würde eher ein Framework wie XNA(XNA Game Studio) mit C#(Visual C# Express Edition )benutzen. Als Einstieg sicher einfacher.
Allerdings legt man sich hier mal wieder auf eine Plattform fest, daher würde ich davon abraten.
Games eher weniger, daran werde ich mich nicht wagen, weil es für einen allein, sehr schwer ist, ein vernünftiges Game zu programmieren.
Richtig. Man braucht ja auch Menschen, die verschiedene Dinge können und nicht nur Programmierer (z. B. Grafiker).

Willst du ernsthaft Spiele programmieren, sei dir gesagt: Ohne eine Sprache wirklich zu können, wirst du dabei nicht weit kommen und ohne ein Team auch nicht.


Gruß,

badday
 
Warum will jeder Neuling immer gleich ein komplexes Spiel programmieren? :rolleyes:

Mach dich erstmal mit der Syntax einer Programmiersprache vertraut und dann über Datenstrukturen aller Art. Wie z.B. Listen, Bäume, Hash-Tabellen, etc. Dazu gehört vorallem der sichere Umgang mit Zeigern.
Auch ist Ereignisorientierung besonders wichtig.

Da Spiele was mit Computergrafik zu tun haben, wäre es nützlich, wenn du weißt, was Vektoren sind und wie man mit denen rechnet. Wie man z.B. Vektoren skaliert, verschiebt, dreht, invertiert, etc ...
Dies brauchst du, um zu verstehen, wie die Computergrafik funktioniert.
Wenn du dann die Grafikengine selbst schreiben willst, musst du dich auch mit Beleuchtungsmodellen, mit der Rendering Pipeline, etc. auskennen.
Von Display-Listen solltest du auch schonmal was gehört haben, um effizient rendern zu können.

C++ halte ich persönlich für eine Krücke, weil das Konzept der Sprache nicht konsequent ist.
Sequenzielle- und objektorientierte Programmierung wurde da auf einen Haufen geworfen.
Ein C-Programmierer kann auch gleichzeitig C++. Er lässt halt den OO-Teil weg.

Mit C# hab ich bis jetzt noch nicht gearbeitet aber von Hören-Sagen hab ich mitbekommen, dass es stärker auf OOP achtet.

Die Programmiersprache allein macht aber kein Spiel aus. C/C++/C# ist zwar in den Softwarefirmen sehr in Mode, weil die Sprachen sehr schnell sind (Assembler nahe) aber es gibt durchaus auch andere Sprachen, mit denen auch was grafisches auf die Beine stellen kann.
z.B. gibt es JOGL (Java OpenGL) für Java. Man kann auch OpenGL in Pascal oder Delphi einbinden, wer damit arbeiten will.

Man kann durchaus auch den ganzen OOP Kram vergessen und ein Spiel rein sequentiell programmieren.
In der Schule musste ich unter C (mit OpenGL) Pong, Pacman und Sokoban (in 3D; mit Iso- und Ego-Perspektive) programmieren.
 
Zurück
Oben