C, C# oder C++?
-
Naja, wenn ich Spiele entwickeln will, nehme ich eine fertige Engine wie Irrlicht3D oder sowas. Oder wenn es sowas für Java gibt, dann halt das. Worum geht es hier? Spiele entwickeln oder eine Engine? Wenn ich ne Engine entwickeln wollen würde, würde ich das für eine Sprache machen, wo es wenig Konkurrenz gibt.
-
Shade Of Mine schrieb:
Ich wuerde dir (wenn du denn von Java weg willst) zu C# raten.
- ist die Sprache Java sehr aehnlich. Du musst nicht so viel neues lernen
- Du hast vollen Zugriff auf DirectX (managed DirectX) mit einem schoenen Interface
Nachteil ist, dass es weniger Dokus fuer managed directX gibt als fuer die C++ anbindung.
Seh ich auch so, ich würde da nicht mehr mit C++ anfangen.
Mittlerweile gibt es für Spieleprogrammierung mit C# genau so viele Ressourcen.
Vor allem ist Managed DirectX deutlich komfortabler als DirectX mit C++
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum Spiele-/Grafikprogrammierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Delryn schrieb:
Seh ich auch so, ich würde da nicht mehr mit C++ anfangen.
Mittlerweile gibt es für Spieleprogrammierung mit C# genau so viele Ressourcen.Fast der gesamte kommerzielle Spielemarkt wird von C++ dominiert. Da glaubst Du doch nicht ernsthaft, dass es in diesem Umfeld für C# genau so viele Resourcen gibt, oder?
-
Artchi schrieb:
Naja, wenn ich Spiele entwickeln will, nehme ich eine fertige Engine wie Irrlicht3D oder sowas. Oder wenn es sowas für Java gibt, dann halt das.
Meinst Du sowas? http://www.jmonkeyengine.com/
-
c# ist imho als alternative wenig empfehlenswert da es gegenüber java nicht wirklich viel vorteile bietet.
somit kannst du auch gleich bei java bleiben und brauchst nichts neues lernen.
asserdem findet java zz. in der industrie größere verwendung.
wenn du spiele nicht in java entwickeln willst dann nimm c++.
-
bleib bei java, niemanden juckt es am ende in welcher sprache du deine privaten spiele gemacht hast.
falls du mit anderen mal zusammenarbeiten moechtest, nimm das gelaeufigste, c++.
-
Gregor schrieb:
Delryn schrieb:
Seh ich auch so, ich würde da nicht mehr mit C++ anfangen.
Mittlerweile gibt es für Spieleprogrammierung mit C# genau so viele Ressourcen.Fast der gesamte kommerzielle Spielemarkt wird von C++ dominiert. Da glaubst Du doch nicht ernsthaft, dass es in diesem Umfeld für C# genau so viele Resourcen gibt, oder?
Die Anzahl an Resourcen ist bei C++ sicher höher, aber qualitative Resourcen findet man bei C# inzwischen auch zu jedem Gebiet.
Mit C# entwickelt es sich deutlich schneller, wobei das so nicht stimmt man sollte sagen mit .NET und managed DirectX entwickelt es sich deutlich schneller.
managed DirectX ist nicht nur ein einfacher Wrapper um DirectX sondern bringt auch extrem viel Komfort mit sich, der einem viele lästigen Kleinigkeiten abnimmt mit denen man sich beim nativen DirectX rumschlagen muss.Wenn man unter C++ Manns genug ist das DXUT Framework zu verwenden, dann ist die Initialisierung von DirectX und die kleinen Fallstricke wie Fenster vergrößern, vollbild und fenster Modus Wechsel, etc. auch nicht mehr so wild.
Aber viele Programmierer sind ja nichtmal Manns genug D3DX zu verwenden..
-
User--: vollständigkeitshalber solltest du opengl erwähnen - damit lassen sich nämlich auch spiele entwickeln
-
Naja, mit OpenGL lässt sich Spielegrafik entwickeln. Das ich mit OpenGL Spiele entwickeln kann, bezweifel ich. DirectX bringt halt so nette Sachen wie Audio, Joystick-Abfragen usw. mit. Das hast du alles bei OGL nicht.
-
@User--! Wenn ich schnell zu Ergebnissen kommen will, dann benutze ich auch nicht direkt DX, wenn ich C++ code. Dann nehme ich eine fertige C++-3D-Engine, mit der ich dann wieder schneller am Ziel bin, wie mit C# und Managed DX!
Ich finde hier wird auch immer zu viel durcheinander gebracht. Der eine sagt, er will schnell ein Spiel entwickeln. Gleizeitig will er aber erstmal mit DX oder OpenGL seine Basis bauen. Ist doch eigentlich ein Widerspruch?! Selbst in C# oder Java bin ich immer noch schneller, wenn ich dort eine fertige Engine nehme. Dann bin ich immer noch schneller als mit Managed DX oder Java3D!
Klar, wenn ich lernen will, wie man DX benutzt, dann darf ich zwangsläufig keine Engine nehmen. Aber dann darf ich mich auch nicht über "zu viel Zeit um Ergebnisse zu haben" beschweren. Ich wollte es ja schliesslich so. Man muß nicht nur die richtige Sprache wählen, sondern auch das richtige Framework.
-
Artchi schrieb:
Naja, mit OpenGL lässt sich Spielegrafik entwickeln. Das ich mit OpenGL Spiele entwickeln kann, bezweifel ich. DirectX bringt halt so nette Sachen wie Audio, Joystick-Abfragen usw. mit. Das hast du alles bei OGL nicht.
OpenGL ist eben nur für die Grafik da. Für Audio/Joystick etc muss man eben andere Sachen nehmen (zB SDL oder gar DirectX). Immerhin schafft id-Software es ja auch OpenGL für die Spiele-Programmierung zu benutzen

-
rüdiger schrieb:
Immerhin schafft id-Software es ja auch OpenGL für die Spiele-Programmierung zu benutzen

Wollten die jetzt nicht auch DX unterstützen?
-
Artchi ich hab hier zwei "Äpfel" miteinander verglichen, wenn du hier mit ner Engine kommst, dann vergleichst du ja nichtmehr zwei gleiche Sachen.
Dann müsste man in C# auch ne Engine her nehmen, damit es wieder passt.
Aber mir ist schon klar worauf du hinaus willst.Nur für einfache Sachen reicht C# und managed DirectX allemal, da managed DirectX schon ne kleine Engine ist wenn man so will. Wer sich mit 3D Grafik auskennt, kann eigentlich fast direkt loslegen mit learning by doing. C# ist sehr intuitiv für jemand der C++ kennt und man etwas Java programmiert hat und managed DirectX ebenfalls für jemanden der mal mit DirectX ein wenig gespielt hat.
-
rüdiger schrieb:
OpenGL ist eben nur für die Grafik da. Für Audio/Joystick etc muss man eben andere Sachen nehmen (zB SDL oder gar DirectX).
Was ist mit OpenAL? Ist das nicht so populär, wenn es um Audio geht?
-
OpenGL + SDL zusammen ist doch wie DirectX nur sogar einfacher zu programmieren und plattformunabhängig dazu. Deswegen kann ich DirectX nicht empfehlen.
Mit C# oder Java kann man ein Spiel programmieren dass so schnell läuft wie Doom 3 ????
-
da hier Leute immer wieder 3D-Engine im Mund nehmen. Ihr meinst doch nicht in allen ernstes mit Irrlich & Co könnt ihr so eins wie Doom 3 entwickeln???
also die sind noch lange nicht konkurrenzfähig oder gibt es etwas was noch viel besser ist als irrlicht?
-
Naja, mit OpenGL lässt sich Spielegrafik entwickeln. Das ich mit OpenGL Spiele entwickeln kann, bezweifel ich. DirectX bringt halt so nette Sachen wie Audio, Joystick-Abfragen usw. mit. Das hast du alles bei OGL nicht.
dann linke ich halt die sdl(oder was auch immer, gibt genug möglichkeiten) dazu.
und wenn du es so willst kannst du mit directx auch keine spiele entwickeln - du brauchst ja immerhin mindestens noch eine sprache in der du dein vorhaben umsetzt.
-
xBlackKnightx schrieb:
OpenGL + SDL zusammen ist doch wie DirectX nur sogar einfacher zu programmieren und plattformunabhängig dazu. Deswegen kann ich DirectX nicht empfehlen.
Mit C# oder Java kann man ein Spiel programmieren dass so schnell läuft wie Doom 3 ????
Komischer vergleich. Seit wann läuft Doom3 "schnell", was heist das überhaupt in diesem Zusammenhang?
Was du meinst ist wohl, ob man die gleichen 3D-Effekte wie in Doom3 bei der Schnelligkeit von Doom3 schreiben kann. Da sowieso 98% aller rechenintensiven Dinge von der GPU verarbeitet wird, spielt es sowieso keine Rolle ob man C++, C, C#, Phyton, Ruby oder Java verwendet.
Die Fragen sind doch die:
- brauche ich Templates-Programmierung?
- brauche ich eigene Speicherverwaltung?
- brauche ich Operator-Überladung?
- welche Bibliotheken will ich verwenden?
- für welches OS will ich schreiben?
- will ich OO programmieren?
-
xBlackKnightx schrieb:
da hier Leute immer wieder 3D-Engine im Mund nehmen. Ihr meinst doch nicht in allen ernstes mit Irrlich & Co könnt ihr so eins wie Doom 3 entwickeln???
also die sind noch lange nicht konkurrenzfähig oder gibt es etwas was noch viel besser ist als irrlicht?was hindert dich daran die Doom3, Quake4, HL2, CryEngine, Nebula engine oder sonstige engine mit SDK zu nutzen?