Spiel programmieren in C. Was ist möglich?
-
Hi ihrs,
wollt mich mal über die ferien dransetzen und n schönes kleines Spiel in C programmieren. Um mir mal ein Ziel zu setzen wollt ich mal Fragen was in C alles möglich ist bzw welche Spiele sind in C geschrieben.
jetzt sag nicht "aach da is wieder soeiner der denkt er könnte sobald er n bisschen kann HL 2 programmieren" oda sowas.
Traum wäre natürlich sowas wie Lemminge, oder mario bros oder so hinzukriegen...
aber ich denke wenn ich son kleines primitives Arcade game hinkriegen würde wäre es auch schon gut....
Aso und ich wollt au nomma fragen ob und wie ich in C so ne art Texturen reinkriege. also halt so Pixeltexturen oder halt irgendwas besseres als die ASCII tabelle hergibt
Hoffe ihr könnt mir n bisschen weiterhelfen
Christian000
-
Grundsätzlich kommt es nicht auf die Programmiersprache an. Es haben sich zwei API durchgesetzt die man zur Darstellung von Grafiken verwenden kann. DirectX und OpenGL. Wobei es egal ist welche Sprache du einsetzt.
Ich weiss jetzt nicht wieviel Erfahrung du mit C hast. Doch alleine um DirectX oder OpenGL zu beherschen würden dein Ferien nicht ausreichen.
Du könntest eine Wrapper-Klassen verwenden. Diese vereinfachen die Verwendung dieser API's.
Du könntest auch auf eines der vielen Basic-Dialekte ausweichen. Die das Programmieren noch etwas vereinfachen.
Schau bitte in die FAQ. Da findest du viele nützliche Hinweise und Links zu diesem Thema.
cu
-
Was ist möglich? Prinzipiell alles was du an Spielen kennst.
Für den Anfang ist ein Spiel wie Lemmings oder Marion Bros. schon etwas schwierig. Fang doch ganz einfach an: Pong, Tetris oder Breakout. Nimm dir nicht zuviel vor. Ein guter (fertiger) Breakout-Clone mit allem drum und dran (Menü, Leveleditor, Highscore, etc.) ist schon eine Menge Arbeit für die Ferien. Oder PacMan?
-
H.L.T.O schrieb:
Ich weiss jetzt nicht wieviel Erfahrung du mit C hast. Doch alleine um DirectX oder OpenGL zu beherschen würden dein Ferien nicht ausreichen.
Ich würde für den Anfang eine Bibliothek wie ClanLib oder Allegro benutzen. Gerade für einfache 2D-Arcade-Games sind die ideal.
-
@ H.L.T.O
wollte eigentlich erstmal nur in C programmieren und dann später mit anderen weitermachen... desswegen sagt mir jetzt auch vieles was du geschrieben hast nichts^^
@Harrison Bergeron
Jo das sowas wie Mario Bros oder Lemmige am anfang zu schwer ist, ist schon klar, wollte nur wissen ob sowas möglich ist damit ich mir schonmal n ziel oder sowas setzen kann
Breakout oder Pacman wär schon klasse un in einer noch ziemlich primitiven form bin ich auch schon dabei (Smiley wird per tastatur durch den bildschirm gesteurt und frisst kreuze auf um punkte zu kriegen^^, aber halt noch ziemlich am anfang sprich alles nur auf ASCII basis
) Desswegen wollt ich ja auch wissen ob Ich in C Texturen oder texturen ähnliches einfügen kann (wenns geht auch wirklich nur in C und ohne andere Sprachen) Als nächstes werd ich mal gucken dass der smiley abprallt wenner gegen die ascii wände kommt un dass er automatsich weiter läuft ohne einzelnen Tastendruck
-
Texturen usw. kannst du in C (oder auch C++) nicht direkt benutzen, da sowas hardwareabhängig ist. Du musst dazu eine lib benutzen, wie HLTO schon sagte. Diese zu Benutzen ist grundsätzlich auch nicht schwerer wie z.b. printf(). Da du ja schon Gamelogik schreiben kannst (was IMHO das komplizierteste ist), solltest du Dir einfach mal das DXSDK (wahlweise nat. auch OpenGL!) runterladen, dort sind wirklich viele Beispiele und eine gute Doku dabei, wie man ganz grundsätzlich etwas anzeigt. Ausserdem kannst du zum Einsteig auch noch die Tuts, welche die FAQ listet, lesen.
Bye, TGGC
-
hi,
wie Harrison Bergeron schon gesagt hat, würde ich nicht ogl/directx nehmen (natürlich bleibt das jedem selbst überlassen) da man imho wenn man ganz am anfang steht erstmal besser mit allegro oder sdl oder etwas ähnlichem zurechtkommt (außerdem hat man schneller ergebnisse ;). bei dx usw gibts halt imo viel mehr zu lernen...).
mfg
Black Sting
-
Hej,
ich bin zwar auch noch am Anfang, aber habe schon ein paar MiniGames geschrieben.
Die ersten natuerlich auch im TextMode mit den netten Ascii-Zeichen
Dann kann man evtl. auf den VideoModus umsteigen. Dort kann man schon zeichnen und so. Sieht halt bissl besser aus alles
MfG, Viking
-
Ob in ASCII oder richtiger Grafik ist schnuppe. Bei der Games-Programmierung geht es ja auch um das prinzipielle Verständnis, und da ist ASCII erstmal ausreichend. Ob Du nachher einen Buchstaben oder ein Pixel-Rechteck bewegst ist kein großer Unterschied mehr.
Wenn du C oder C++ gut beherrscht und dich in neue APIs einarbeiten kannst, dann würde der nächste Schritt eben eine solche sein. Da gibt es wieder viele Möglichkeiten:
- DirectX (finde ich persönlich seeeeeehr mächtig und komfortabel und ich arbeite mich da jetzt auch fleissig rein! Für reine Windows-Programmierung super!)
- SDL (eine API die das nötigste bietet und es nicht nur für Windows gibt, also auch portierbarer Code!) und
- Allegro (kenne ich nur aus DOS-Zeiten, weiß nicht was da heute draus geworden ist)Das sind APIs die dir nicht nur Grafik-Funktionen bieten, sondern auch Sound, Joystik-Abfragen usw.
Wenn du nur Grafik-Funktionen willst, kannst du auch ne Stufe tiefer gehen:
OpenGLIch finde es seeeehr einfach! Aber es hat halt "nur" eine Grafik-API, für Sound und Joystick muß man dann doch wieder DirectX unter Windows verwenden, oder halt SDL für Crossplattform.
-
Allegro wird nach wie vor weiter gepflegt und entwickelt.
Ich kann leider nicht für den Linux-Port sprechen, aber unter MSVC verhält es sich mittlerweile sehr pflegeleicht. Es wrappt dabei DirectX, ist für Einsteiger also praktisch ideal - weder die Beherrschung von WinAPI ist notwendig, noch das Wissen über DirectX selbst. Wohl die am einfachsten zu lernende Multimedialibrary derzeit.
Allerdings kann ich momentan nicht sagen, ob im 3D-Bereich mittlerweile die Acceleratorfunktionen genutzt werden.
-
Zum Thema Allegro und 2D-Spiele kann ich übrigens
http://www.c-plusplus.net/titelanzeige.php?ISBN=3826680758
empfehlen.
-
Sehr interessant Marc++us, davon wußte ich gar nichts!
Bemerkenswert, dass es nun schon ein Buch drüber gibt - und dann noch mit sehr positiver Bewertung! Ich hätte die deutsche Übersetzung der Allegro-Anleitung doch mal fertigstellen sollen. Da kann sich jeder noch einen Platz in der Ruhmeshalle sichern
-
Hey, das Buch hab ich zu Weihnachten bekommen. Ich muss sagen, ich finds gut! Es wird nicht nur erzählt, wie man irgendwelche grafiksachen macht, sondern auch, wie ein Spiel generell, in sich funktioniert. Außerdem viel über Rollenspiele (Charakterklassen usw.) gesagt. Über KIs steht leider ziemlich wenig drin.
geloescht