Seite 1 von 1

Welche Programmiersprache?

Verfasst: 13.01.2014, 17:12
von Brainfreeze
Hi,

ich möchte mich mit der Spieleprogrammierung auseinander setzen.
Da ich für möglichst viele Systeme programmieren möchte, habe ich ich erstmal für OpenGL entschieden.

Jetzt ist allerdings die Frage, welche Progammiersprache ich nutzen soll.
Ich habe schon fortgeschrittene Erfahrung mit C++ (und ein bisschen DirectX) und Java (+ Android Apps).

Kann ich mit C++ später meine Spiele auch auf Android, iOS etc. portieren, oder sollte ich lieber gleich mit Java (und JOGL) anfangen?
Dabei geht es auch um die Dokumentationen und Tutorials die man im Netz finden kann.


Gruß

Re: Welche Programmiersprache?

Verfasst: 13.01.2014, 17:34
von dot
Was für bisherige Programmiererfahrung hast du denn und in welchen Sprachen?

Re: Welche Programmiersprache?

Verfasst: 13.01.2014, 18:08
von Brainfreeze
Hi,

die meiste Erfahrung hab ich mit C++ (meist mit wxWidgets).
Da hab ich auch schon etwas mit DirectX 11 gespielt ;)

In Java hab ich mich bisher eigendlich hauptsächlich mit Andoid-App Entwicklung befasst.

Mit OpenGL hab ich in beiden Sprachen leider noch keine Erfahrung.


Welche Sprache ich besser kann ist für mich erstmal nebensächlich, ich hab kein Problem damit Java weiter zu lernen wenn das die "bessere" Sprache ist


Gruß

Re: Welche Programmiersprache?

Verfasst: 13.01.2014, 18:30
von Niki
Brainfreeze hat geschrieben:Kann ich mit C++ später meine Spiele auch auf Android, iOS etc. portieren, oder sollte ich lieber gleich mit Java (und JOGL) anfangen?
iOS wird in Objective-C programmiert. Das ist eine erweitere Form von C/C++ mit speziellen zusätzlichen Sprachelementen für Cocoa. Aber du hast halt vollen C/C++ Support (ist schon ein bisserl her, aber ich glaube das Teil benutzt den Clang Compiler).

Android habe ich nicht so viel Erfahrung mit. Aber soviel kann ich sagen... Viel wird in Java programmiert, aber Libraries können nativ über NDK in C/C++ programmiert werden (such mal nach Cocos2D-X für Android, das ist eine auf OpenGL ES basierende native 2D API. Gibt's auch für iOS).

Für Android und iOS gilt... OpenGL ES. Frag mich aber nicht wie groß der Unterschied zum normalen OpenGL ist, denn ich habe nur minimale Erfahrungen mit OpenGL.

Re: Welche Programmiersprache?

Verfasst: 13.01.2014, 18:36
von Niki
Habe das "etc" in Deiner Frage übersehen.

Windows Phone 8: C# und XNA (also Direct3D)
BlackBerry 10: C++ und OpenGL ES (Hauptframework ist Qt)

Ich glaube die restlichen mobilen Geräte interessieren niemanden.

Re: Welche Programmiersprache?

Verfasst: 13.01.2014, 18:51
von Brainfreeze
Hi,

danke für die Ausführung.

So wie ich das sehe, ist dann C++ die beste Wahl?
Ich nehme an, die Dokumentation ist für C++ auch besser als für JOGL.

Gibt es sonst einen triftigen Grund, der gegen C++ sprechen würde?


Gruß

Re: Welche Programmiersprache?

Verfasst: 13.01.2014, 19:23
von Niki
Brainfreeze hat geschrieben:So wie ich das sehe, ist dann C++ die beste Wahl?
Ich denke schon, möchte es aber nicht garantieren. Mal sehen ob sich noch andere Leute hier melden :-)

Re: Welche Programmiersprache?

Verfasst: 13.01.2014, 22:20
von Chromanoid
Wenn Du wirklich mit C++ umgehen kannst und das auch noch gerne tust, würde ich mit C++ arbeiten. Für die Plattformunabhängigkeit musst Du für jedes Gerät einen entsprechenden Wrapper in der entsprechenden Sprache bauen, aber sobald Du Deinen OGL Kontext hast etc. kannst Du in Deiner eigenen C++-Welt programmieren.
Cocos 2D X macht das für 2D Grafik (siehe http://www.cocos2d-x.org/).
Vielleicht gibt es schon was offenes fortgeschrittenes in der Richtung für 3D. Schreibe gern, wenn Du da ein gescheites Framework findest.

Eine eher unausgereifte Alternative, die ich mir bald mal wieder anschauen will, ist https://code.google.com/p/playn/.

Ansonsten ebenfalls immer einen Blick wert: http://haxe.org

Re: Welche Programmiersprache?

Verfasst: 14.01.2014, 10:11
von Ingrater
Durch meine Arbeit bei einem Middelware hersteller welcher für 10 unterschiedliche Plattformen entwickelt, kann ich dir sogar sagen, dass C++ die einzige Wahl ist um wirklich Plattformunabhängig zu sein. Man muss zwar für jede Plattform die Plattformabstraktion selbst neu implementieren, ist das allerdings erledigt funktioniert der restliche Code (95%) unverändert.

Re: Welche Programmiersprache?

Verfasst: 14.01.2014, 13:38
von Chromanoid
Ich habe in diesem Bereich auch sehr lange recherchiert und bin zum gleichen Ergebnis gekommen. Für mich mit Java als Lieblings-Programmiersprache/"Ökosystem" ist das wirklich eine bittere Erkenntnis, entsprechend kannst Du dieser Feststellung Gewicht beimessen. Mit C++ kannst Du sogar Flash und Browser bedienen.

Re: Welche Programmiersprache?

Verfasst: 16.01.2014, 01:38
von Seraph
Wenn Du Dich wirklich mit Spieleentwicklung und nicht mit Grafikprogrammierung auseinander setzen und zudem in absehbarer Zeit ein fertiges Produkt in den Haenden halten moechtest, wuerde ich Dir so etwas wie Unity empfehlen. Mit C# bist Du auch recht nah an C++ dran. Die Verteilung auf Android, iOS und WP klappt auch recht gut, einzig WinStore-Apps sind bisher ein bisschen tueckisch gewesen.

Sollte es Dir nicht um ein fertiges Spiel gehen, kannst Du natuerlich auch den langen Weg mit C++ gehen.

Noch etwas aus eigener Erfahrung: Wir haben damals unser Spiel 3x Mal geschrieben, fuer Android in Java, fuer WP in C# und fuer iOS in ObjectiveC. Die Erfahrung zeigte dann, dass es zeitlich fuer Android gereicht hat, aber in zeit- und kostentechnischer Hinsicht sind wir mit iOS und WP gescheitert. Der gute Punkt war, ich habe fuer die beiden letzteren Systeme einiges dazu gelernt und habe spaeter auch diverse Apps (keine Spiele) fuer beide entwickelt, aber den dreifachen Aufwand wuerde ich nun auf jeden Fall vermeiden. Mein Fazit: Ich nutze jetzt Unity und erschlage sehr viele Systeme mit einmal.

Re: Welche Programmiersprache?

Verfasst: 16.01.2014, 15:03
von Spiele Programmierer
Mit C# bist Du auch recht nah an C++ dran.
Das ist vollkommener Quatsch.
Mit C# ist man zwar vielleicht ein bisschen näher daran als mit Java aber C++ vs C# sind trotzdem noch zwei grundlegend komplett verschiedene Sprachen.

Re: Welche Programmiersprache?

Verfasst: 16.01.2014, 15:21
von Chromanoid
Ich glaube es ging hier eher um die Anzahl der möglichen Zielplattformen (also C# via Mono, Xamarin & Co.).

Re: Welche Programmiersprache?

Verfasst: 17.01.2014, 14:03
von Thoran
Ingrater hat geschrieben:Durch meine Arbeit bei einem Middelware hersteller welcher für 10 unterschiedliche Plattformen entwickelt, kann ich dir sogar sagen, dass C++ die einzige Wahl ist um wirklich Plattformunabhängig zu sein. Man muss zwar für jede Plattform die Plattformabstraktion selbst neu implementieren, ist das allerdings erledigt funktioniert der restliche Code (95%) unverändert.
Seh ich genauso.

Re: Welche Programmiersprache?

Verfasst: 17.01.2014, 14:16
von dot
Wenn es um sowas wie z.B. Anwendungsentwicklung ginge, wäre meine Empfehlung evtl. eine andere, aber hier würde ich auf jeden Fall zu C++ raten, ganz besonders, wenn du damit schon Erfahrung hast...

Re: Welche Programmiersprache?

Verfasst: 17.01.2014, 17:13
von ponx
Multiplattform-Unterstützung ist IMHO heute weniger eine Frage der Programmiersprache, als eine Frage der Entwicklungsplattform / Spiele-Engine. Wenn du mit möglichst wenig Aufwand möglichst viele Plattformen unterstützen willst, würde ich dir sehr stark zu .NET und C# raten. Ich hab nur Erfahrung mit Unity, aber es gibt wohl noch mehr, (z.B. http://www.deltaengine.net/platforms), also Tendenz steigend. Wenn du schon C++ kannst, umso besser, der Sprung von C++ nach C# ist sehr leicht. Multiplattform-Unterstützung auf nativer Ebene mit C++ frisst unfassbar viel Zeit, ich würde mir das gut überlegen ob ich mir das antun will, oder ob du die Zeit lieber in das eigentliche Spiel stecken willst.

Re: Welche Programmiersprache?

Verfasst: 18.01.2014, 13:03
von antisteo
Du kannst alternativ zur Windows-Plattform auch für den Browser entwickeln. Da gibt es auch einige potente Arbeitgeber und der Marktanteil an HTML5-fähigen Browsern wird steigen, während der Marktanteil von PCs abnehmen wird.