# Ein einfaches Gametutorial



## eXe (31. Oktober 2003)

Hallo zusammen,

ich möchte in C++ ein einfaches Spiel programmieren (um so in C++ einzusteigen - Herausforderung usw.  )
Aber ich finde nirgends ein Tutorial, was mir hilft:

- Ein Fenster mit einem Hintergrund, davor ein Männlein was man mit der Tastertur hin und her bewegen kann, mehr erst mal nicht.

Kennt jemand ein solches Tutorial ?


Greetings
eXe


----------



## Dario Linsky (31. Oktober 2003)

Hi,

ein gut gemeinter Ratschlag meinerseits: Steck Deine Ziele nicht direkt am Anfang zu hoch, lern lieber erstmal die Grundlagen. Gerade C++ ist eine Sprache, die viel leistet, aber auch viele Tücken hat. Daher solltest Du Dir vielleicht erstmal ein Buch zulegen und mit Hello World anfangen, um die Sprache auch wirklich zu verstehen.
Sieh Dir dazu einfach mal die Linksammlung hier im Forum an, oder such bei Google. Tutorials und Beispiele für C++ gibt es genug. 

Gruss, Dario


----------



## eXe (31. Oktober 2003)

Hallo Dario,

danke für den Hinweis, aber ich hab schonmal C++ programmiert und nun auch alle Google Tutorials durchgelesen (beinahe alle) - so bin ich ja auch hierher gekommen.

Aber das einfache Hello World auf schwarzem Hintergrund reicht mir nun eben nicht mehr, aber ich finde nirgends ein Tutorial wie man nur eine einfache Grafische Oberfläche entwirft...


Greetings
eXe


----------



## Dario Linsky (31. Oktober 2003)

Anwendungen mit grafischer Oberfläche sind unterschiedlich schwer zu entwickeln. Was aber grundsätzlich wichtig ist, ist zu behalten, dass man nach wie vor mit einer sehr mächtigen und komplexen Programmiersprache arbeitet.
Wie eine GUI-Anwendung nun zu entwickeln ist, hängt von verschiedenen Faktoren ab, wobei der wichtigste Faktor davon die verwendete Bibliothek ist. Sowohl für Windows als auch für Linux und andere Plattformen gibt es mehrere Möglichkeiten. Für Windows sind die wichtigsten die VCL, das .net-Framework, die MFC oder auch das Windows API selbst. Unter Linux gibt es unter anderem Qt und Gtk sowie die CLX.
Wenn Du sagst, dass Du schon Grundkenntnisse mit C++ hast, kann ich Dir den Borland C++ Builder als Entwicklungswerkzeug empfehlen, den gibt es AFAIK als Personal-Version gratis zum Download bei Borland. Trotzdem solltest Du solche Werkzeuge eigentlich erst dann einsetzen, wenn Du die grundlegende Sprache einigermassen gut verstanden hast.


----------



## MetallDragon (31. Oktober 2003)

Ich denke, dass du dir erst mal den UNterschied zwischen der DOS-API/Windows Console (In der du bisher offensichtlich gearbeitet hast) und der Win32-API
(IN der für gewöhnlich grafische Oberflächen unter Windows programmiert sind) klarmachen solltest.

Ausserdem stimme ich Dario dahingehend zu, dass du erst einmal noch etwas unter DOS rumspielen solltest, um die Grudlagen zu kapieren, da man in der Win32API schon 2 Seiten Code schreiben muss bevor man ein einigermassen vernünftiges Fensterchen hat 

Also kauf dir ein gutes Buch und mache dich mit den Basics vertraut, bevor du frustriert feststellst, dass dir die Grundlagen fehlen)


----------



## canuzzi (31. Oktober 2003)

naja und dort kannst du dir ein schoenes ascii maenchen basteln


----------



## eXe (31. Oktober 2003)

#
|--
|\
|  \

Toll, aber jetzt mal wieder zurück, sagen wir, ich habe das wichtigste Tutorial durchgelesen - welches Tut soll ich nun lesen (so in Richtung Grafik) ?

Greetings
eXe


----------



## chibisuke (31. Oktober 2003)

in der reihenfolge:
C/C++ grundlagen
Windows API
2D-Windows Game
evt. 3D-OpenGL
COM
2D-DirectX
3D-DirectX

Grundlagen ist klar, die braucht man einfach.. WindowsAPI gehöhrt eigendlich auch noch zu den grundlagen... 
für winapi siehe http://www.germandevnet.de unter tutorials

Dann fängste mal an einfache 2D spiele mit windows zu realisieren...beispiele und tutorials gibts auf http://www.gamedev.net

wenn du 2d spiele in windows ordendlich machen kannst, kannst du eventuell 3D graphik in OpenGL einlegen,,, das OpenGL api ist relativ einfach...aber beachte bitte das 3d graphik sehr stark in die mathematik geht.. (Maxtrix-rechnungen und ähnliches)

Tja, bevor du mit DirectX anfängst, gibts noch eine kleinigekeit die du unbedingt kernen musst, die du als grundlage für DirectX braucht... Die rede ist von COM .. denn DirectX wird komplett über COM gesteuert..
Hierzu guckste dich am besten durch die DirectX dokumentation und die DirectX tutorials von GameDev.net dann lernste das eigendlich von alleine... du braucht nur wissen wie man die interfaces anwendet, vor allem die funktionalität von IUnknowen sollte dir bekannt sein, weil du release und queryInterface brachen wirst.

Wenn du COM soweit verstanden hast, dann kannst du anfangen mit 2D graphiken mit DirectDraw, DirectInput, DirectSound und so weiter... 
und wenn du DDraw soweit beherscht, kannst du es mal mit IDirect3D versuchen ...Aber bis es so weit ist, wird einige zeit vergehen...

Wovon ich dir hier auf jedenfall abraten will, ist MFC... du kannst MFC zwar natürlich bei einfachen sachen benutzen und es schadet auch nicht wenn dus kannst, vor allem wenn du fremden source lesen und ändern musst, aber wenn du komplexere spiele machen willst, und vieleicht dann sogar DirectX benutzen, so ist MFC auf keinen fall angebracht, wie ich selbst schonmal feststellen musste.... Vor allem weil du wenn du mit DirectX arbeitest, keine MFC klassen mehr zur verfügung hast die dir hier noch weiter helfen, und selbst die fenster klasse muss für einen IDirectDrawClipper zum HWND werden.


----------



## Dario Linsky (31. Oktober 2003)

Welches ist denn das wichtigste Tutorial?
Womit Du jetzt weiter machst, hängt wie gesagt davon ab, für welche Basis Du Dich entscheidest. Wenn Du mit der VCL entwickeln willst, solltest Du Dir ein paar Sachen zum C++ Builder ansehen, für MFC und .net ist Visual C++ eher angebracht. Nachteil bei beiden Entwicklungsumgebungen ist allerdings, dass sie nicht ganz billig sind (auch wenn es den C++ Builder AFAIK frei zum Download gibt).
Kostengünstigere Alternativen wären beispielsweise KDevelop unter Linux oder für Windows DevC++ in Verbindung mit dem Windows API. Aber wie auch hier schon gesagt, ist die Programmierung mit dem Windows API nicht ganz einfach, da man sich um viele Dinge selbst kümmern muss. Auf der anderen Seite bekommt man dadurch einen recht guten Einblick in die komplexe Struktur von GUI-Anwendungen und hat mehr Möglichkeiten - wenn man es denn richtig kann.
Zum WinAPI gibt es ein meiner Meinung nach ganz brauchbares Tutorial unter http://www.win-api.de


----------



## MetallDragon (1. November 2003)

Ansonsten schau mal unter usf.de vorbei.
Die habe auch ne Menge ganz guter Tuts.


----------



## chibisuke (1. November 2003)

Nun eine entscheidung ist, zumindest wenn man später auch graphisch aufwendigere spiele machen will nicht notwendig, da man DirectX und so weiter so und so mit VCL und MFC nicht gut kombinieren kann, zumindest ist mir keine möglichkeit bekannt... selbiges gilt für OpenGL.
natürlich geht es, is aber mehr aufwand als wenn man gleich WinAPI lernt und damit arbeitet... 

wie ich schon gesagt hab.. wichtig ist zualler erst mal das windows API, denn das is die grundlage für alles höhere, und dann fängste klein an, mit spiele auf windows basis und 2d graphik, und dann eben OpenGL, DirectX und so weiter...

ich kann nur nochmal unterstreichen
http://www.germandevnet.de -> tutorials->winapi tutorial
http://www.gamedev.net


----------



## Dario Linsky (1. November 2003)

Also für die VCL gibt es ein vollständiges Paket mit OpenGL-Komponenten, sowohl für Delphi als auch für den C++ Builder. Für die MFC gibt es AFAIK etwas ähnliches für DirectX.
Ist alles nur Geschmackssache. Mit API-Programmierung kann man vielleicht ein paar Millisekunden Performance bei der Laufzeit rausquetschen, aber das ist auch nicht unbedingt gesagt... Zudem kommt man weder mit der MFC noch mit der VCL nicht am API vorbei.


----------



## basd (1. November 2003)

libsdl.org

SDL gibts genug tutorials um eine Grafik darzustellen und sachen zu bewegen

Aber meine vorredner haben recht wenn man C/C++ nicht kann macht das alles kein Sinn


----------



## eXe (6. November 2003)

Danke euch allen, habt mir sehr weitergeholfen.

Greetings
eXe


----------



## anmabagima (24. November 2009)

Hi,

schau mal unter http://www.anmabagima.de/ ...da gibt es in der Projekte-Rubrik ein super Tutorial für ein Tetris spiel ;o)


----------



## sheel (24. November 2009)

Ob ihn das nach 6 Jahren noch interressiert?


----------



## lexz (25. November 2009)

Wäre ja schon interessant zu wissen wie weit er denn gekommen ist


----------

