Welche Programmiersprache?

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Brainfreeze
Beiträge: 21
Registriert: 20.06.2012, 20:14

Welche Programmiersprache?

Beitrag 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ß
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Welche Programmiersprache?

Beitrag von dot »

Was für bisherige Programmiererfahrung hast du denn und in welchen Sprachen?
Brainfreeze
Beiträge: 21
Registriert: 20.06.2012, 20:14

Re: Welche Programmiersprache?

Beitrag 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ß
Niki
Establishment
Beiträge: 309
Registriert: 01.01.2013, 21:52

Re: Welche Programmiersprache?

Beitrag 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.
Niki
Establishment
Beiträge: 309
Registriert: 01.01.2013, 21:52

Re: Welche Programmiersprache?

Beitrag 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.
Brainfreeze
Beiträge: 21
Registriert: 20.06.2012, 20:14

Re: Welche Programmiersprache?

Beitrag 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ß
Niki
Establishment
Beiträge: 309
Registriert: 01.01.2013, 21:52

Re: Welche Programmiersprache?

Beitrag 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 :-)
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4260
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Welche Programmiersprache?

Beitrag 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
Benutzeravatar
Ingrater
Establishment
Beiträge: 103
Registriert: 18.04.2007, 21:52

Re: Welche Programmiersprache?

Beitrag 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.
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4260
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Welche Programmiersprache?

Beitrag 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.
Seraph
Site Admin
Beiträge: 1174
Registriert: 18.04.2002, 21:53
Echter Name: Steffen Engel

Re: Welche Programmiersprache?

Beitrag 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.
Spiele Programmierer
Establishment
Beiträge: 426
Registriert: 23.01.2013, 15:55

Re: Welche Programmiersprache?

Beitrag 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.
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4260
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Welche Programmiersprache?

Beitrag von Chromanoid »

Ich glaube es ging hier eher um die Anzahl der möglichen Zielplattformen (also C# via Mono, Xamarin & Co.).
Benutzeravatar
Thoran
Establishment
Beiträge: 224
Registriert: 15.05.2009, 12:51
Wohnort: Stuttgart
Kontaktdaten:

Re: Welche Programmiersprache?

Beitrag 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.
Wer Rechtschreibfehler findet, darf diese gerne behalten.
Mein Entwicklertagebuch
Aktuelle Projekte: Universum: Domination (ehemalig AlphaOmega),Universum: Sternenjäger, PixelWars: Highscore-based Top-Down-Spaceshooter
Spieleengine Unreal 5
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Welche Programmiersprache?

Beitrag 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...
Benutzeravatar
ponx
Establishment
Beiträge: 217
Registriert: 04.05.2008, 12:52
Echter Name: Andy Ponx
Wohnort: Hamburg
Kontaktdaten:

Re: Welche Programmiersprache?

Beitrag 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.
antisteo
Establishment
Beiträge: 854
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: Welche Programmiersprache?

Beitrag 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.
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
Antworten