Hallo Community,
ich weiß diese Frage gibt es echt oft, vorallam weil ich bestimmt 1000 Threads gelesen habe. Aber jeder Fall ist ja ein wenig Individuell, deswegen hier Nr. 1001
Persönlich habe ich meine ersten Schritte mit den Tutorials in Unity3d gemacht. Begann mich aber schnell dafür zu Interessieren wie das ganze hinter der Fassade aussieht und hab ein wenig mit Java, der LWJGL und Slick rumgespielt. Danach noch etwas mit Monogame und C#.
Bin dabei geblieben das ich erstmal ohne eine große Engine ein paar 2D Spiele erstellen möchte. Hab mir tagelang etliche Threads zu Programmiersprachen, Frameworks, Wrappern etc. durchgelesen und Videos auf Youtube gesehen und da ich in meinem Studium zum Elektroingenieur bald an C und wenig Assembler ran muss, mich für folgende Sprachen entschieden:
C#, C++, Java
C# finde ich ist eine sehr schöne Sprache und Visual Studio die beste IDE soweit. Neben XNA/ Monodevelop soll es ja noch OpenTK und andere OpenGL Wrapper, ähnlich wie die LWJGL geben! Später könnte man durch die gewonnene Erfahrung auch Super auf Unity umsteigen. Persönlich denke ich das C# noch stärker kommen wird, jetzt da es Open-Source ist.
C++ steht halt am engsten zu C und ist meiner Meinung nach eine Sprache die man irgendwann mal lernen sollte. Entdeckt hab ich hier das Cocos2d-X Framework, welches schon ziemlich gut sein soll.
Java scheint mir am meisten Verbreitet zu sein und da ich die meiste Zeit mit dem LWJGL Wrapper verbracht habe, kenne ich die möglichkeiten am besten, was ein wenig meine Freie-Entscheidung beeinflusst. (Neben paar Wochen Unity, und ~1 Woche LWJGL und paar Stunden Monogame eigentlich keine Referenzen)
Soviel zu meinem Eindruck der Sache. Nun stellt sich aber folgendes Problem:
ich würde gerne für die Plattformen: Windows, Mac OSX und Android entwicklen. (XBox oder iOS ist mir egal)
Dabei lässt es das Leben leider nicht anders zu als das ich quasi 50% meiner Zeit an meinem Windows 8.1 Desktop Rechner entwicklen kann, und die anderen 50% muss ich auf mein Macbook zugreifen. (Windows installieren ist keine Option, da die Akkulaufzeit und das Touchpad handling Grausaum ist).
Also sollte man auf 2 Plattformen entwickeln können. Mit Java scheint dies ja kein Problem zu sein, Cocos2d-X anscheinend auch nicht. Aber wie sieht das mit OpenGL und Android aus? Habe etwas von OpenGL ES gelesen, allerdings scheint es bessere Lösungen zu geben.
C++ wird ja sogut wie von jedem System unterstützt, allerdings wurd mir nicht auf den ersten Blick klar, ob man damit auch Windows und OSX Anwendungen erstellen kann. Sieht irgendwie nur nach den Mobilen-Plattformen aus.
C# hab ich persönlich das Gefühl es ist mein Wunschkind. Wegen der Sprache an sich, der IDE, dem späteren Übergang zu Unity und auch durch Mono plattformunabhängig. Allerdings ist da das blöde Macbook. Mit Monodevelop-Unity hab ich mich angefreundet, sogar mit Xamarin Studio. Allerdings hatte ich bei Monogame Probleme mit der Main-Funktion, welche mit Objective-C ergänzt werden wollte und den Contents. Als das alles lief wollte ich spriteFonts adden und dafür gab es keine Unterstützung, allerdings bin ich im Nachhinein auf ein Plugin gestoßen, welches dies ermöglicht, habe es allerdings noch nicht ausprobiert.
Hoffe man versteht das Problem
Manchmal liebäugele ich dann wieder mit Java um später auch mal Android Apps zu schreiben. Ist bestimmt auch in anderen Sprachen möglich, auch C#?
Zum Schluss: Also ich denke ich werde eh alle 3 Lernen mit der Zeit, es gibt soviel zum Rumspielen und ausprobieren mit verschiedenen Engines, etc.
Allerdings finde ich es Wichtig die erste Programmiersprache bewusst zu wählen. Programmieren möchte ich bestimmt schon seit ~10Jahren+, allerdings bin ich eine richtige Sprach-hure und wechsel die ganze Zeit hin und her bis ich frustriert aufgebe. Denke die Sprache die man am besten kann hat schon große Auswirkungen auf einen als Programmierer, ähnlich wie die Muttersprache.
Mir geht es darum eine Sprache zu haben mit der ich meine Ziele für den Anfang schön umsetzen kann, ohne allzu neidisch ins andere Lager zu schauen.
Auf Windows und OSX für Windows und OSX (und Android) entwickeln. 2D Spiele (2.5D und 3D wären natürlich auch Super wenn es direkt machbar ist).
So setze hier jetzt mal Zwangsweise einen Schlussstrich und bedanke mich bei jedem der es bis hier hin geschafft hat und Zeit findet zum Antworten