Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Okami

Frischling

Beiträge: 24

Wohnort: Deutschland,NRW

Beruf: Ausbildung zum Informationstechnischer assistenten + Fachabitur

  • Private Nachricht senden

21

23.03.2015, 20:17

GML ist ganz nett wenn du 2D Spiele erstellen willst aber auch nicht so das wahre weil man keine Klammern oder Semikolon braucht.
C# ist wahrscheinlich der Favorit hier denn es ist soziemlich Corssplattform, nicht schwer zu erlernen und da ich es in der Ausbildung benutze kann ich sagen du kommst schneller ans Ziel als mit C++, weil du in C++ vieles selber schreiben musst was dir in C# schon gegeben ist.
C++ lerne ich auch grade und es macht wirklich spaß wenn man am Hintergrund also wie das alles funktioniert interessiert ist ansonsten ist es wahrscheinlich zu overwhelming(Überwältigend) für einen Anfänger.
Jetzt zu Java, ich bin jemand der mit "Java ist scheiße" aufgewachsen ist und Java auch nicht toll findet, aber für den Anfang ist es schön zu lernen du kommst schnell an dein gewünschtest Ergebnis und es ist Crossplattform, natürlich hat Java auch Schattenseiten wie z.B das es selten der Fall ist das es ordentlich läuft und ausführbar ist ohne Probleme.

Hoffe ich konnte dir helfen, alle angaben ohne Gewähr und ich lasse mich gerne korrigieren

Wirago

Alter Hase

Beiträge: 1 193

Wohnort: Stockerau

Beruf: CRM Application Manager

  • Private Nachricht senden

22

23.03.2015, 20:48

Habe auch mit Java angefangen (obwohl ich ursprünglich mit C++ beginnen wollte), aber irgendwann hat der "Reiz" - wenn man so will - von Plattformunabhängig, easy to learn etc. nachgelassen und bin zu C# gewechselt. Hierzu gibt es echt gute Frameworks mit denen es sich wunderbar arbeiten lässt.
Nachdem Microsoft aber die Entwicklung von XNA eingestellt hat (was nicht heißt, dass man es nicht mehr verwenden kann), dachte ich mir, nach all den Jahren Java und C# wird es vielleicht doch mal Zeit für C++ (ist ja DIE Sprache für Spiele schlecht hin heißt es). Und ich muss schon sagen, ich bin froh die Basics in leichteren Sprachen gelernt zu haben, bereue es aber nicht Zeit in C++ gesteckt zu haben (auch wenn es zu meinem ersten Jump'n'Run in C++ noch ne Weile dauern wird)

EDIT: liest der TE das hier überhaupt noch?

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

23

23.03.2015, 21:10

Nur um da keine Missverständnisse auftreten zu lassen, sollten das hier noch andere Anfänger lesen: Java, C# und C++ sind alle drei cross platform. C++ aber noch am ehesten, die anderen haben ihre VMs.

24

24.03.2015, 07:37

Nur mit dem Unterschied, dass du in C++ teilweise verschiedenen Code für verschiedene Betriebssysteme schreiben musst. Oder du nimmst eine Cross-Platform-API, die dir das schon abnimmt.
Cube Universe
Entdecke fremde Welten auf deiner epischen Reise durchs Universum.

Tobiking

1x Rätselkönig

  • Private Nachricht senden

25

24.03.2015, 08:24

Nur um da keine Missverständnisse auftreten zu lassen, sollten das hier noch andere Anfänger lesen: Java, C# und C++ sind alle drei cross platform. C++ aber noch am ehesten, die anderen haben ihre VMs.

Java und C# Code lässt sich auch nativ compilieren und ist dann ohne VM lauffähig. ;)

Der einzige Grund warum C++ wahrscheinlich auf mehr Systemen lauffähig ist, ist die Verfügbarkeit vom Compilern. Aber da geht man von den üblichen Heimcomputern, Smartphones und sogar einigen Embedded Systemen weg.

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

26

24.03.2015, 08:45

Da die VMs von C# und Java für unterschiedliche Plattformen verfügbar sind, _sind_ diese Sprachen Cross Platform. Bei C# muss man nur bedenken, dass man auf den meisten anderen Plattformen als Windows Mono verwenden muss, da (bisher, daran könnte sich aber auch noch was ändern) das .NET Framework nur für Microsoft-Systeme verfügbar ist.

Man sollte aber auch nicht vergessen, dass die Sprache selbst nicht das Wichtigste ist. Es gibt einige Tools und Frameworks, die ggf. nur mit der einen oder anderen Sprache verwendet werden können. Geht es nur um einfachere Frameworks (SFML, XNA, PyGame, ...), wird man für so ziemlich jede Sprache mindestens eins finden, wobei die strukturellen Unterscheide eher gering sein sollten. Je komplexer das Tool ist, welches man verwenden will (bspw. Unity, Unreal Engine, Source Engine, ...), umso weniger gibt es davon und umso stärker machen sich die Unterschiede am Ende auch bemerkbar.


GML ist [...] nicht so das wahre weil man keine Klammern oder Semikolon braucht.
Das würde ich nicht unbedingt als Nachteil der Sprache sehen. In Python ist das ebenfalls gegeben und dennoch finde ich die Syntax gut.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

27

24.03.2015, 09:28

Cross Platform bedeutet für euch also, dass die Software in einer VM abläuft?
Tut mir leid, dass verstehe ich nicht. Für mich ist das glatt das Gegenteil. Ich sehe das viel mehr so, dass die Sprache ihre eigene Plattform mitbringt, die überall emuliert wird. C++ wird dagegen in die Sprache der Zielplattform übersetzt und passt sich damit der Plattform an. Und klar, theoretisch kann es native Compiler für C# geben. Microsoft hat da ja inzwischen auch etwas in Entwicklung, nachdem ihnen, wenn auch nach langer Zeit, klar wurde, dass die X-fach gezogene Handbremse für einige Anwendungen doch ein Problem darstellen kann. Allerdings wurde die Sprache konzeptionell bisher auf eine VM Umgebung ausgelegt.
Anders gesagt, könnte man auch sagen, dass alle Sprachen theoretisch Cross Plattform sind. Schließlich kann man alles auf jeder anderen Plattform emulieren und die Sprache an sich ist eh bloß ein theoretisches Konzept. Wirklich plattformspezifisch ist an den meisten Sprachen nichts.
Was eine Sprache Cross Platform macht sind doch immer erst die Compiler. Und da sieht es für C++ einfach viel besser aus. Für C++ gibt es für alle kleinen und großen Prozessoren der Welt einen Compiler. Alleine mit dem GCC erreicht man direkt eine sehr große Menge an Zielsystemen. Das sieht man auch an dem Projekt von Unity. Sie übersetzen C# in C++ um eine größere Menge Zielsysteme zu erreichen und mehr Code durch C++ wiederverwenden zu können. Das widerspricht irgendwie der Idee, dass C# so viel mehr Cross Platform ist. :rolleyes:

Letzendlich gibt es natürlich noch die Bibliothekensituation. Das Dot.Net Framework ist natürlich auf Mono weitgehend vorhanden. So ist es aber auch die Standardbibliothek von C und die STL von C++. Hier gibt es speziell auf Windows vielleicht kleinere Abweichungen und man kann gerade hier bei C++ vielleicht tendentiel mal leichter zusätzliche Bibliotheken verwenden, die nicht Cross Platform sind. Also hier sehe ich vielleicht in C# einen kleinen Vorteil. Man sollte aber nicht vergessen, dass sowohl C# und C++ prinzipiell mit wenigen Funktionen ausgestattet sind und man häufig doch auf weitere externe nativen Bibliotheken aufbaut. Das sieht man daran, dass es WPF nicht für Linux gibt. Und man sieht es daran, dass Teile des Frameworks offensichtlich nicht mehr funktionieren, wenn man nativ kompiliert(Zum Beispiel alles, dass mit der Codegenerierung zu tun hat). Aber so ist es mit jeder externen Bibliothek, die am Ende doch irgendwie native Funktionen nutzen muss. Mir ging es bisher auch meistens so, dass mir letztendlich doch die ein oder andere Funktion in Windows Forms offensichtlich gefehlt hat und ich auch in C# den ein oder anderen Aufruf in "user32" gebraucht habe. Und damit ist es schon wieder nicht mehr Cross Platform.

Insgesamt sehe ich C# da einfach nicht im Vorteil bezüglich gegenüber C(++). Das einzige was man sagen kann, ist, dass bei C# der generierte Zwischencode Cross Platform ist, während er es bei C++ nicht ist. Eigentlich dort sogar jeder Compiler einen anderen Zwischencode. Das ist manchmal nervig, wenn zum Beispiel Bibliotheken mit einem anderen Compiler kompiliert wurden, aber wo hier allerdings der große Vorteil im Bezug auf Plattforunanbhänigkeit von C++ liegt, ist mir unverständlich. Letzendlich ist es notwendig, so oder so die Anwendung auf allen unterstützen Plattformen zu testen. Wo genau das große Problem liegt, einfach unterschiedliche Binaries zu erstellen, erschließt sich mir nicht.

Anbei: Das ist kein Hassbeitrag gegen C#. Die Sprache hat ihre Vorteile wie auch ihre Nachteile gegenüber C++. Ausgerechnet aber Cross Platform sehe ich persönlich sogar als einen Nachteil von C# an oder zumindest aber nicht als einen Vorteil. Auch wenn die Erfinder von Java/C# das immer gerne so behaupten würden.

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

28

24.03.2015, 09:53

Auch wenn die Cross-Plattform-Diskussion am eigentlichen Thema vorbei geht:
Im Grunde sind Sprachen immer nur abstrakte Konzepte, weshalb sie weder "Cross Platform" sein, noch eine bessere oder schlechtere Performance als andere haben können.
Wenn man aber dennoch von "Cross Platform" spricht/schreibt, sollte damit gemeint sein, dass geschriebene Programme auf unterschiedlichen Plattformen ausgeführt werden können. Ob die Programme dabei direkt (Maschinencode) oder indirekt ausgeführt werden spielt keine Rolle, solange das Ziel erreicht wird, ein Programm (bzw. einen Programmcode) auf mehreren Plattformen auszuführen.
Sollte eine VM bzw. ein Interpreter dabei dem Attribut des "Cross Platform" im Wege stehen, dann dürften "interpretierte" Sprachen eigentlich gar keine Zielplattform haben. Wie sieht es eigentlich mit Laufzeitumgebungen aus, bei denen der Programmcode zur Laufzeit in Maschinencode übersetzt wird? Und wie sieht es dann mit Sprachen aus, die unterschiedlich behandelt werden, also mal rein interpretiert oder auch mal zur Laufzeit kompiliert werden? Für letzteres wäre PHP ein Beispiel, da es im Normalfall interpretiert wird, mit den richtigen Tools aber auch zur Laufzeit kompiliert werden kann. Oder JavaScript, welches von alten Browsern interpretiert und von modernen teilweise (ebenfalls) zur Laufzeit kompiliert wird.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

29

24.03.2015, 11:17

Ich stimme dir größtenteils zu mit dem was du schreibst, verstehe aber nicht, wie man dadurch zu dem Schluss kommen kann, dass C# plattformunabhäniger ist.
In der Praxis erreicht man mit C# einfach weniger Plattformen.
Tatsache ist, viele Plattformen sind einfach mit C# nicht oder sehr schwer zu erreichen sind.

Aus philosophischer Sicht und für die Bentzerfreundlichkeit durch Plattformintegration glaube ich zudem tatsächlich, dass interpretierte Sprachen nicht die Zielplattform tasächlich erreichen. Man kann auch Wine/eine Windows VM auf Linux einrichten. Ist eine Windows only Anwendung dann plattformübergreifend bzw. läuft sie dadurch wirklich auf der Plattform Linux? Meiner Meinung nach nein.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Spiele Programmierer« (24.03.2015, 11:37)


Okami

Frischling

Beiträge: 24

Wohnort: Deutschland,NRW

Beruf: Ausbildung zum Informationstechnischer assistenten + Fachabitur

  • Private Nachricht senden

30

24.03.2015, 13:57

Das würde ich nicht unbedingt als Nachteil der Sprache sehen. In Python ist das ebenfalls gegeben und dennoch finde ich die Syntax gut.
Ich habe es ja auch nicht als Nachteil erwähnt, Ich bin selber großer Fan der GML weil man damit schöne 2D Spiele machen kann ohne großen lern Aufwand, man kann sich also mehr auf das Gameplay und sowas konzentrieren, ist also eine schöne Einstiegssprache die sehr zu empfehlen ist.

Werbeanzeige