Du bist nicht angemeldet.

Eine Antwort schreiben

Schreibe deinen Beitrag und versende ihn
Beitragsoptionen
Bist Du ein Mensch oder ein Roboter ?

Verifizierung, dass diese Aktion durch eine reale Person vorgenommen wird und nicht von einem Programm.

Zurück

Themen-Übersicht (Neuester Beitrag zuerst)

DJMetzger
14.11.2007 18:07
Ronny schrieb:

DirectX - ist wie OpenGL eine Art Grafikschnittstelle. Bestimmte Befehle werden von den Grafikkarten hardwaremaessig unterstuetzt, sprich die GraKa bekommt einen Befehl und weiss sofort was damit anzustellen ist anstelle bspweise eine Koordinatentransformation erst von der CPU berechnen zu lassen und diese Daten dann zu benutzen. Da Grafikkarten fuer bestimmte Dinge optimiert sind, (b)errechnen sie diese viel schneller als moderne CPUs.
Wegen der Programmierung: seit einigen Jahren nutzen Grafikkarten die Moeglichkeit von Shaderprogrammierung. Man koennte es eventuell mit einer Ablaufsteuerung gleichsetzen. Man kann sozusagen gescriptete Funktionen auf der Grafikkarte ablaufen lassen. Selbst fuer Shaderprogrammierung wird man einiges an Zeit in die Einlernphase stecken koennen.

DirectX ist eigentlich noch viel mehr. Das was Ronny da beschrieben hat ist eigentlich Direct3D (bzw. DirectX Graphics) und nur ein kleiner Teil von DX.
Es bietet noch ettliche andere Funktionen wie DirectInput(also Tastatureingaben direkt abfangen usw.), DirectSound (Spiele ohne gute Klangeffekte sind nicht so dolle^^) oder auch DirectPlay(Netzwerksachen, aber da sollte man auf andere APIs zurückgreifen.

Durch die XBOX sind mit DX10 noch viele neue Dinge wie XInput(Unterstützung von XBOX Controllern) oder XBOX Live Unterstützung.


Allerdings muss man bei DX10 immer beachten, dass dadurch der Einsatz auf Linux oder älteren Grafikkarten, die die DX Version nicht unterstützen problematisch ist. Bzw. dabei dann auf OpenGL oder andere alternativen zurückgegriffen werden muss.

Ronny
14.11.2007 12:05

Fuer Spiele gibt es hilfreiche Frameworks oder direkte Programmiersprachen.

Beiden gleich ist der Fakt, dass sie Dir Befehle zur Verfuegung stellen wie "DrawImage" oder "MouseX()". Wenn dies fehlt, musst Du selbst taetig werden und Dir funktionen schreiben oder die ganze Sache immer haendisch abarbeiten.
Desweiteren bieten sie oft "Init"-Funktionen an, die eine gewuenschte Aufloesung / Grafikschnittstelle (-> DirectX) initialisieren und Dir eine Menge Codezeilen ersparen (DX moeglich? Wenn ja dann, ansonsten Teste auf OGL, nutze SDL mit DX oder OGL ...).
Frameworks kapseln Objekte wie Bilder und Musik in eigene Klassen damit man leichter bestimmte Frames einer Sprite oder ein Stueck Musik zum laufen bekommt.


Welche Sprache Du nutzt, haengt von Deinem Gefuehl zur Sprache ab. Manche kommen nicht damit klar, dass alle Funktionen irgendwie unlogisch (fuer einen selbst) verknuepft werden oder warum man ein "===" benutzen kann um einen Wert einer Variable zuzuweisen anstatt nur "=" (ist gleich) zu nutzen wie in der Mathematik.
Delphi (ehemals ObjectPascal) hat beispielsweise eine sehr anglo-basierende Sprachsyntax (If then else  - wenn ... dann ... ansonsten...).



C++ ist nur auf den Plattformen lauffaehig, fuer die alle notwendigen Pakete erstellt/umgesetzt wurden. Da dies auf so gut wie alle bekannten Plattformen erfolgt ist, steht einer grundlegenden "Plattformunabhaengigkeit" nichts im Wege. Willst Du allerdings DX/Ogl nutzen, muss halt auch hierfuer entsprechendes Quellmaterial zur Verfuegung stehen. Eine Konsolenapplikation wird wahrscheinlich in 99% aller Faelle moeglich sein. Grafische Anwendungen hingegen erfordern Bindungen TCL/GTK/GDI etc. oder man, sofern eine grafische Ausgabe moeglich ist), schreibt sich selbst eine GUI-Anwendung (also selbst Buttons und Menus zeichnen/verarbeiten).
Mit FreePascal und Lazarus steht uebrigens auch eine Delphi-Art auf anderen Plattformen zur Verfuegung. Zusammen mit SDL oder anderen Frameworks kann man auch hiermit Spiele entwickeln.

DirectX - ist wie OpenGL eine Art Grafikschnittstelle. Bestimmte Befehle werden von den Grafikkarten hardwaremaessig unterstuetzt, sprich die GraKa bekommt einen Befehl und weiss sofort was damit anzustellen ist anstelle bspweise eine Koordinatentransformation erst von der CPU berechnen zu lassen und diese Daten dann zu benutzen. Da Grafikkarten fuer bestimmte Dinge optimiert sind, (b)errechnen sie diese viel schneller als moderne CPUs.
Wegen der Programmierung: seit einigen Jahren nutzen Grafikkarten die Moeglichkeit von Shaderprogrammierung. Man koennte es eventuell mit einer Ablaufsteuerung gleichsetzen. Man kann sozusagen gescriptete Funktionen auf der Grafikkarte ablaufen lassen. Selbst fuer Shaderprogrammierung wird man einiges an Zeit in die Einlernphase stecken koennen.

Fuer einfache Spiele wuerde ich nicht gleich mit Tetris anfangen. Lieber lerne auf einer einfachen Canvas (Delphi: TCanvas) einen Whack-A-Mole Klon zu machen. (9 Felder, ab und an kommt aus einem Feld ein Maulwurf raus auf den es zu klicken gilt, erwischt man ihn, bevor er wieder auftaucht, gibt's Punkte).
Oder XXO... ohne KI bzw. von mir aus auch mit KI.

Danach kannst Du zu Tetris uebergehen (Umgang mit Arrays verfeinern) und Dann eventuell Dinge die etwas mit Objektorientierung zu tun haben ... dies waere dann der naechste wichtige Schritt (weg von der Sequenzialisierung und dem linear strukturierten Abarbeiten von Anweisungen).


Links findest Du genuegend in der Wikipedia, wenn Du mal nach Programmiersprachen suchst.

Quelloffene sind bspweise FreePascal, Gambas und viele mehr.


bye
Ron

Nononoob
14.11.2007 09:50

also, wie in solchen foren öfters gepostete wir möchte auch ich mich etwas intensiver mit der spieleentwicklung beschäftigen, und da kommen mir wie man sich denken kann mehr fragen als antworten is den sinn.

ICH weis das spiele programieren lange dauert und in komplexerer form kaum aleine möglisch ist, deshalb ist für mich selbstverständlich
das ich mit sowas wie moorhun oder tetris anfange. mir ist auch bekannt das wenn man ansatzweise gut werden will man sich auf programierung oder grafik spezialisieren sollte, ich möchte aber wen das möglisch ist von beidem die grundkenntnisse kennen, und dan evtl später entscheiden was ich liber machen/beser kann.

leider bin ich mir in der programiersprache ziemlich unschlüssig, ich schwanke zwischen delphi und c++,

delphi lerne ich seit 2 monaten in der berufsschule, udn kan immerhin schon so kleinen konsolenanwendungen schreiben,
wenn ich michfür delphie ntscheide udn mich intensiv damit beschäftige häte ich vorteile in der Schule,

c++ wird deutlich öfters benutzt, mit guten kenntnissen in c++ würde ich mich besser in meiner beruflaufbahn schlagen, ich bin atm 16 und möchte auf jedenfall als programierer arbeiten(mache gerade die passende ausbildung).

was würdet ihr mir ein meiner situation empfehlen? ich tendiere eher zu c++, da dies einfaxch deutlich häufiger genutzt wird.

hier noch ein paar fragen die mir beim stöbern gekommen sind:

was heist es wenn ich lese: c++ ist nicht platformunabhängig?
meistens lese ich auch man muss c++ udn dan halt direct x beherschen, was gnau ist direct x? einen programiersprache?
ich dachte immer visual basic und c++ wären das selbe, stimmt aber glaubsch net?
wie genau wird das grafikengine in das psiel implementiert?

bitte nicht genau antworten, im groben reicht dicke aus






also fals mitr jemand eine sprache empfiehlt würde ich mich über link zum download des compilers oder gute bücher(müsen nicht umsonst sein, meine bildung ist mir was wert)!!!!!!!!


herzlichen dank im vorraus



also fals jemand mir eine sprache o