Welche Sprache? (Programmieren)

Welche Sprache? (Programmieren)

Hallo zusammen!


Ich habe eine kleine Frage an euch.

Mit welcher Sprache kann man die professionelleren Spiele programmieren?

C++ oder BlitzBasic 3D?!

Ich denke es ist C++, bin mir jedoch nicht ganz sicher... Vorallem interessiert mich, wie lange ich C++ lernen müsste. Um einige Fragen zu beheben:Ich würde gerne ein Spiel, welches ähnlich wie Final Fantasy X ist (vom Style, Kampfsytem her).

Freue mich über jede Antwort, solange hier nicht gespammt wird!
Danke schon mal im Voraus.

Gruß,
Grievus
Aaalso. C++ ist auf jeden Fall schwerer als Blitz Basic und dementsprechend dauert es auch länger C++ zu lernen (mit C++ kenn ich mich aus, mit Blitz basic allerdings nicht so, ich hab nur gehört/gelesen das es sehr viel leichter sein soll). Aber ich würde dir Raten den Gedanken direkt ein Spiel wie Final Fantasy zu programmieren schnell zu vergessen, denn wenn du direkt etwas großes vor hast und es dann nicht klappt ist der Frust nachher größer als die Lust ;) .

Fazit:

Für Spiele würde ich Blitz Basic empfehlen allerdings würde ich dir auch empfehlen zu erst etwas kleines zu machen wie z.B. Tetris o.ä.
Also, für die richtig großen Spiele kannst du C++ (nur für Anwendungen!) und BlitzBasic vergessen ;-) Mit BlitzBasic bekommst du sehr gut Spiele wie PacMan oder SuperMario hin, aber mehr auch nicht^^
Wenn du wirklich vor hast, ein solches großes Spiel zu proggen, dann empfehle ich dir dich schonmal mit Binärschreiben (Einsen und Nullen) zu beschäftigen, denn solche Spiele werden mit Assembler programmiert. Hier findest du noch eine weitere Übersicht zu Programmiersprachen.

Um auf deine 2. Frage einzugehen:
Also ich habe für C++ circa 2 Wochen benötigt, habe allerdings schon viel mit PHP und Java gearbeitet. Dementsprechend leicht ist mir auch das Erlernen von C++ gefallen Smiley
Eigentlich sich alle Programmier- und Scriptsprachen (bis auf Binärprogrammiersprachen) ähnlich von den Syntax her. Es gibt zum Beispiel if, while, for, do-while etc. Schleifen. Zudem haben viele Funktionen auch die gleichen Argumente, heißen nur anders.

Dann wünsche ich dir mal viel Spaß beim Proggen :-)
RonBan, was laberst du für einen Blödsinn? Spiele werden seit dem Mittelalter nicht mehr in Assembly programmiert.
Sicher ist es hilfreich, wenn man es kann, aber ein 3D Spiel in 100% Assembly zu programmieren? Nein, danke!

Ich bezweifle, dass du Assembly kannst, sonst wüsstest du, dass es ein viel höherer Aufwand ist, ein Spiel (oder auch nur eine Anwendung) in Assembly zu schreiben, als in einer Hochsprache (z.B. C++)

Und wieso auf Erden sollte er sich mit der Binärschreibweise quälen? Auch totaler Blödsinn.
Ich habe niemals behauptet das ich Assembler kann! Ich habe auch niemals gesagt, dass es kein höherer Aufwand ist, als mit einer Hochsprache! Hast du dir schon jemals darüber Gedanken gemacht, was denn ein Compiler macht? Glaubst du etwa dein CPU arbeitet deine ganzen Funktionen etc um? LOL!
Klar ist es ein höherer Aufwand, aber wenn du richtig gut drin bist, dann weisst du in welchem Byte dein Fehler ist und musst dich nicht stundenlang mit automatisierten (igitt) Debugging rumquälen, das dir letztendlich auch nicht weiterhilft.
So, eh du jetzt weiter anfängst zu kritisieren, sag uns doch mal mit was Final Fantasy programmiert ist? Da hört es dann sicher auch schon auf und ich wüsste es auch gern!
Ich habe niemals behauptet das ich Assembler kann!

Nein, hast du nicht. Ich habe ja auch nur gesagt, dass ich es bezweifle. Und wie man sieht bin ich richtig gelegen.


Ich habe auch niemals gesagt, dass es kein höherer Aufwand ist, als mit einer Hochsprache!

Nein, hast du nicht. Aber du hast gesagt, dass 3D Spiele in Assembly programmiert werden und das ist nunmal, naja... Bullshit. Warum? Gerade weil es so ein hoher Aufwand ist!


Hast du dir schon jemals darüber Gedanken gemacht, was denn ein Compiler macht? Glaubst du etwa dein CPU arbeitet deine ganzen Funktionen etc um?

Nein. Aber du hast gesagt, solche Spiele werden in Assembly programmiert. Darunter verstehe ich, dass der Programmierer einen Assembly Source Code schreibt.


Klar ist es ein höherer Aufwand, aber wenn du richtig gut drin bist, dann weisst du in welchem Byte dein Fehler ist und musst dich nicht stundenlang mit automatisierten (igitt) Debugging rumquälen, das dir letztendlich auch nicht weiterhilft.

Besser kommen zu meinem Projekt noch 20 Tage Fehlersuche, als 2 Monate längere Programmierarbeiten.


So, eh du jetzt weiter anfängst zu kritisieren, sag uns doch mal mit was Final Fantasy programmiert ist? Da hört es dann sicher auch schon auf und ich wüsste es auch gern!

Uns? Dir!
Ich weiß nicht mit welcher Sprache FF programmiert wurde. Aber ich vermute in Visual C++, vielleicht noch mit Einbindung anderer Sprachen.
Bevor sich die Herrschaften jetzt wieder kindisch streiten - hier mal ein kleiner und sehr vereinfachter Exkurs ins Programmieren komplexerer 3D-Spiele. Dies gilt zwar in dieser Form weniger für einfache 2D-Anwendungen oder andere einfach gestrickte Spielideen - aber es ging ja um eine 3D-Geschichte. Lassen wir auch mal die Konsolen weg (die sich gar nicht so sehr unterscheiden) und schaun wir mal, wie so ein 3D-PC-Spiel ungefähr entsteht:

Genre und Spielidee
Am Anfang steht erst einmal wie immer ein guter Einfall. Ohne den sieht die beste Grafikengine nämlich leichenblass aus. Nachdem man also Art und Idee des Spieles weiss, könnte es fast schon losgehen.

Spielverlauf, Script
Fast. Denn egal ob nun linearer Spielverlauf oder nicht: Jede Story und jeder Ablauf werden zunächst einmal auf dem Papier exakt vorgeplant und ausgefeilt! Erst wenn dieses Konzept steht, kommt man zum nächsten Schritt. Einfach mal so hinsetzen und anfangen zu Programmieren ging früher zu Pacmans Zeiten. Heute eher nicht mehr.

Grafikengine
Auf Grund der Komplexität werden einzelne Charaktere, Welten und Animationen nicht mehr 'separat programmiert' - alles basiert auf einer für dieses Spiel angepassten und optimierten Grafikenginge. Während grosse Spieleschmieden eigene und individuell gestaltete Engines entwickeln (lassen), gibt es auf dem Markt auch Anbieter, die diese Grundwerkzeuge und Bibliotheken zahlungswilligen Kunden fix und fertig zur Verfügung stellen. Aber es bewegt sich noch nichts.

Scripting bzw. Umsetzung der Idee
Der Rest wird um diese Bibliotheken herum programmiert, was oft zu Unrecht abfällig scripten genannt wird. Gerade dieser Punkt und die optimale Ausnutzung aller Möglichkeiten einer solchen Engine entschiedet nachher über die Grafikqualität des Spiels.

Grafik und Charaktere
Neben der inhaltlichen Ausprägung der Charaktere und der Modellierung der Welt einschliesslich der Figuren als Drahtgitter sind jetzt professionelle Grafiker gefragt! Neben der Oberfläche und der Benutzerführung wird gerade bei den Texturen für die 3D-Körper tief in die Trickkiste gegriffen, um verblüffende und möglichst realistische Ansichten und Effekte zu erzielen. Mit einer 1 in Zeichnen kann man da noch lange nicht mithalten. Die Animation der einzelnen Figuren soll möglichst real erscheinen, hier sind jahrelange Erfahrung und anatomische Grundkenntnisse zwingend erforderlich.

Programmierung
Die Programmiersprache ist paradoxerweise fast egal, wichtig sind hier nur die zeitkritischen Komponenten. Also die Grafikengine. Diese Teile werden fast ausschliesslich in C++ programmiert und enthalten bei PC-Spielen jeweils optimierte Funktionen für alle gängigen Prozessoren und deren erweiterte Befehlssätze (MMX, 3DNow! usw.). Selbst im vielgescholtenen VB bzw. VB.Net kann über sogenannte Wrapper und Bibliotheken direkt und ohne grossen Geschwindigkeitsverlust auf fast alle DirectX-Funktionen zugegriffen werden. Fasst man nun alle der benötigten Funktionen zu einem Modul zusammen, an das sich über eine leicht zu bedienende Schnittstelle auch ohne komplizierte Einzelprogrammierung alle Aufgaben und Befehle vereinheitlicht und vereinfacht übergeben lassen, so spricht man von einer Grafikenginge. Diese kann in fast jede Hochsprache eingebunden werden. Sogar in Java (z.B. die Chrome-Engine in Spielen wie XPand Rally). Dazu kommen natürlich die Physikberechnungen für die möglichst realen Bewegungsabläufe und Event-Animationen sowie die Steuerung durch die verschiedensten Eingabegeräte und deren Umsetzung.

Fazit
Sicher ist dies eine recht grobe Vereinfachung - aber vom Prinzip her geht das schon in Ordnung. Als Einzelkämpfer kann kaum komplexe 3D-Spiele erstellen. Und wenn, dann nur als Profi mit jahrelanger Praxis. Und grafisch muss man ein absoluter Profi sein. Texturen lassen sich nicht einfach so aus dem Ärmel schütteln. Man muss Schriftsteller, Grafiker, Animator und Programmierer sein. Alle Tätigkeiten, die normalerweise speziell geschulte Fachleute übernehmen, selbst in Personalunion erledigen zu wollen - der Schuh, den Du Dir da anziehen willst, ist unter garantiert etwas zu groß für Dich.

Versuchs doch erst mal mit einfachen Spielen und 2D. Dann wirst Du sehen, ob Du genügend Sitzfleisch und das Talent hast, so ein Projekt bis zum Ende durchzuziehen. Die Sprache ist dabei am Anfang sogar eher nebensächlich.
Danke für die guten Antworten erst malSmiley

Naja ich weiss eigentlich selber, dass ich / man alleine kein Spiel wie FFX proggen kann :)

Aber ich würde gerne ein gleiches bzw. ähnliches Kampfsystem machen ...

Nun ich werde C++ nehmen und habe noch ne Lern-CD gefunden :D

Naja vielleicht kann mir noch jemand helfen, falls ich Probleme habe oder so :)

Ich kann ja, wie schon erwähnt wurde, mit kleinen Sachen anfangen wie ein Auto oder so :)

=====================================================================

Dann hätte ich noch ne Frage: Was genau macht denn Dev C++?

Nochmals danke für die nützlichen Beiträge!
Ich kann ja, wie schon erwähnt wurde, mit kleinen Sachen anfangen wie ein Auto oder so :)

Auto? Kleine Sache? Naja, zumindestens genügend Selbstbewusstsein scheinst Du ja zu haben.

Ich fummel privat seit fast 2 Jahren selbst an einem kleinen Fun-Racer Spiel rum. Nachdem ich die ganzen Kollisionstests so zeitoptimiert habe, dass alles selbst auf einer schwachen Möhre flüsssig läuft, grübele ich über die Fahrphysik. Theoretische Kenntnisse und praktische Umsetzung sind nämlich 2 Paar Schuhe. Und falls das alles irgendwann mal geschafft sein sollte, dann gehts an die Grafik (Menüs, Texturen etc.) und die Endversionen der 3D-Modelle.

Falls ich Dir einen Rat geben dürfte: Fang zunächst mit einfachen Dingen im 2D-Bereich an. Selbst hinter einem Pacman- oder Tetris-Spiel steckt ein Haufen Können.
Dann hätte ich noch ne Frage: Was genau macht denn Dev C++?


Dev C++ ist ein Kompiler. Dieser wandelt, einfach formuliert, deinen Code in eine "*.exe" Datei um!
Gut. Danke!

Na dann werde ich eben mit 2D Sachen beginnen :)
Logge dich ein um einen Beitrag zu schreiben.