Programmiersprachen

Der Anlaufpunkt für alle, die selbst ein Adventure programmieren wollen.
Antworten
Benutzeravatar
Loma
Ultimatives Flascherl
Ultimatives Flascherl
Beiträge: 8055
Registriert: 21.07.2006, 16:47
Wohnort: Flascherl
Kontaktdaten:

Programmiersprachen

Beitrag von Loma »

Hallo!

Auch wenn es für das Erstellen von Adventures wohl nicht unbedingt notwendig ist, habe ich dennoch angefangen, mich für Programmiersprachen zu interessieren.

Meistens liest man, dass C++, obwohl recht kompliziert, mehrheitlich verwendet wird.
Das, was ich in letzter Zeit öfter gesehen habe ist C#.
Gibt es einen Unterschied zwischen den beiden? Wenn ja, welchen?

Obwohl das zwar keine spezifisch die Adventure-Erstellung betreffende Frage ist, hoffe ich dennoch, daß ihr sie mir vielleicht beantworten könnt.

Liebe Grüße
Ich denke, also spinn' ich.
Ich spinne, also mal' ich.
Ich male, also denk' ich.

"Never leave for the last minute what you can get away with not doing at all." (Pepe the King Prawn)
Benutzeravatar
DieFüchsin
Adventure-Gott
Adventure-Gott
Beiträge: 4406
Registriert: 12.03.2004, 16:55

Beitrag von DieFüchsin »

Also wenn du ein ordentliches Spiel erstellen willst, und nicht nur mal herumprobieren, kommst du um den Umgang mit ner Programmiersprache nicht herum. In AGS komm ich mit meiner einjährigen C++ Erfahrung (soo schwer ist das ganze auch nicht) ganz gut hin, wenn ich nicht weiter weiß wurde mir bisher immer ganz lieb geholfen.

C# sagt mir nichts.
Danke, Adventuretreff! <3
Benutzeravatar
Fightmeyer
Riesiger Roboteraffe
Riesiger Roboteraffe
Beiträge: 7308
Registriert: 16.12.2004, 22:51
Wohnort: Potsdam
Kontaktdaten:

Beitrag von Fightmeyer »

Hier stand noch nie etwas peinliches. Keine Ahnung, worauf sich die nachfolgenden Posts beziehen...
Zuletzt geändert von Fightmeyer am 04.09.2006, 13:51, insgesamt 2-mal geändert.
flob
Adventure-Gott
Adventure-Gott
Beiträge: 2678
Registriert: 19.08.2005, 17:16

Beitrag von flob »

Fühl dich gesteinigt! :wink:

C++ ist die Weiterentwicklung von C (C wird durch den "Befehl" ++ praktisch um 1 erhöht, gleichbedeutend mit C = C + 1). C# wurde, glaub ich, von Microsoft entwickelt und hat was mit der .NET-Technologie zu tun!
Benutzeravatar
Der Wanderer
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 89
Registriert: 05.05.2005, 22:59
Wohnort: Mittelerde

Beitrag von Der Wanderer »

C# (see sharp) hat nichts mit C++ zu tun.

Und ehrlich gesagt würde ich eher C verwenden. C++ ist gerade für Anfänger oft etwas zu schwierig, um die Vorteile auch zum Vorteil nutzen zu können, und nicht nur, um zig Seiten extra Code zu erzeugen.

Ansonsten wäre auch BlitzBasic ganz gut geeignet denke ich mal, und einfacher als C/C++.

Wenn es möglichst viele Platformen erreichen soll (also nicht nur Windoze), wäre eine Kombination von C und SDL sinnvoll, da es das für fast alle Platformen gibt, und eine Portierung dann mehr oder weniger auf ein Re-Compile hinausläuft.
Benutzeravatar
max_power
Zombiepirat
Zombiepirat
Beiträge: 10065
Registriert: 16.04.2002, 20:30
Wohnort: Uppsala
Kontaktdaten:

Beitrag von max_power »

Es ist falsch. ;)

Ausführliche Antwort:

C# ist eine Art Weiterentwicklung von C++ und ist wohl im Zusammenhang mit .NET auf Microsofts Mist (ist jetzt nicht negativ gemeint) gewachsen. C# ist meiner Meinung nach eine Mischung aus C++ und Java. C++ und Java sind sich ja von der Syntax her relativ ähnlich, aber unterscheiden sich technisch stark. Java ist (meiner Meinung nach) etwas einfacher, da man sich nicht mit Pointern und Speicherfragen rumscheren muss. Diese Konzepte übernimmt C#, aber teilweise hat man noch die Möglichkeiten, die C++ bietet. Der Hauptunterschied ist aber, dass Java-Quelltext nicht in ein direkt lauffähiges Programm übersetzt wird. Stattdessen muss der übersetzte Code von einem Interpreter interpretiert werden. Das hat den Vorteil, dass kompilierte Java-Programme plattformunabhängig sind, aber den Nachteil, dass sie langsamer laufen. C++ Programme werden direkt unter Windows z.B. in eine .exe Datei übersetzt, die direkt so ausgeführt werden kann. C# wird per .NET Framework auch wieder in eine Zwischensprache übersetzt, allerdings soll der zugehörige Interpreter auch schneller sein. Im übrigen lassen sich mittels .NET viele verschiedene Quelltexte kompilieren, z.B. auch Java oder C++ Quell-Dateien. Außerdem bietet C# durch das .NET Framework noch spezielle zusätzliche Funktionen wie z.B. speziellen Sicherheitsfunktionen.
Na, ich denke, das reicht erstmal. ;) Sollte zu mindestens 75% stimmen.

Hier die Kurzform:

C# ist eine Kombination aus Java und C++. C++, C# und Java sind meiner Meinung nach gar nicht so unähnlich. Auf jeden Fall kannst du, wenn du eine von diesen Sprachen gut beherrscht, relativ einfach auch eine der anderen Sprachen erlernen. Welche von diesen Sprachen du nun lernst, ist meiner Meinung nach egal. Zu allen gibt es genügend Lernmaterial im Netz. Ich persönlich habe mit Java angefangen und denke, dass Java oder C# für den Anfang einen Tick besser geeignet sind als C++, da du dir keine so großen Gedanken um Pointer machen musst.
Es gibt natürlich auch noch andere Sprachen. Eine einfache Programmiersprache für Windows ist z.B. Delphi. Damit hast du am Anfang vermutlich schnellere Erfolgserlebnisse, aber die andern drei Sprachen sind weiter verbreitet und in Forschung und Wirtschaft deutlich wichtiger. Daher würde ich dir zu ihnen raten.
„Es müsste immer Musik da sein, bei allem was du machst. Und wenn's so richtig Scheiße ist, dann ist wenigstens noch die Musik da. Und an der Stelle, wo's am allerschönsten ist, da müsste die Platte springen und du hörst immer nur diesen einen Moment.“ (Floyd, Absolute Giganten)
Wintermute
Adventure-Gott
Adventure-Gott
Beiträge: 3360
Registriert: 27.02.2004, 20:49

Beitrag von Wintermute »

max_power hat geschrieben:aber die andern drei Sprachen sind weiter verbreitet und in Forschung und Wirtschaft deutlich wichtiger. Daher würde ich dir zu ihnen raten.
Genau aus diesem Grund würde ich nur zu C oder C++ raten, weil eigentlich nur diese Sprachen (neben Fortran, daß aber nur noch aus historischen Gründen Verwendung findet) im wissenschaftlich-technischen Bereich benutzt werden.
Die Zukunft von C# als Microsofts Eigenkreation ist sowieso fraglich, Java ist primär eher für Web- und Präsentationszwecke geeignet. Es kann zwar auch für Spiele und Anderes genutzt werden, (es gibt auch einige kommerzielle Adventure), ist aber doch ziemlich langsam.
Dante
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 14
Registriert: 04.03.2006, 21:00
Wohnort: Nähe Ulm

Beitrag von Dante »

Als Anfänger würde ich C, C++ und Delphi meiden. Delphi als einfache Programmiersprache zu bezeichnen ... Delphi mag etwas anders aussehen als C oder C++ ist aber im Grunde seeeeeeehr ähnlich.
Und Meiden deshalb, weil man sich als Anfänger nicht immer im Klaren darüber ist, wo nun Speicher aktuell belegt ist und freigegeben werden muss und wo nicht.
C# und Java unterscheiden sich eigentlich auch recht deutlich, sind aber ähnlich genug das ich mal grob behaupten kann: Sind beide relativ einfach zu lernen.
Diese beiden Sprachen benötigen allerdings beide eine Laufzeitumgebung auf einem Rechner. Das schlägt mit zwischen 15-25mb zu buche.
Zum Thema Interpretieren: Beide werden zur Laufzeit übersetzt und laufen daher in ausreichender Zeit. Das Thema ist schwierig weil es so ein paar Lager im C/C++ und Java Bereich gibt, die sich da gerne Prügeln. (Wenn man mal davon absieht das es C-ler und C++-ler sich meistens auch streiten ^^ )
Also ich habe bisher alle diese Sprachen mal anprobiert und benutze momentan hauptsächlich Java (Grund: Verfügbarkeit von Bibliotheken).

Abgekürzt: Nimm C# oder Java
Benutzeravatar
Treibholz
Profi-Abenteurer
Profi-Abenteurer
Beiträge: 862
Registriert: 29.05.2004, 14:49
Wohnort: Kassel

Beitrag von Treibholz »

Programmieren hab ich immer gehasst, besonders Delphi. Ich komm nur mit HTML inkl. CSS, JS und PHP klar - meistens jedenfalls. Ich beneide die Leute nicht um ihren Job, die täglich mit rauchenden Köpfen vor tausenden Codezeilen sitzen. :?
Wintermute
Adventure-Gott
Adventure-Gott
Beiträge: 3360
Registriert: 27.02.2004, 20:49

Beitrag von Wintermute »

Da du den Disput ja angefangen hast: ;-)
Dante hat geschrieben:Und Meiden deshalb, weil man sich als Anfänger nicht immer im Klaren darüber ist, wo nun Speicher aktuell belegt ist und freigegeben werden muss und wo nicht.
Wenn man zunächst nur relativ einfach programmiert und keine Zeigerverschachtelung, Klassen oder Ähnliches verwendet, ist das auch als Anfänger kein Problem.
Also ich habe bisher alle diese Sprachen mal anprobiert und benutze momentan hauptsächlich Java (Grund: Verfügbarkeit von Bibliotheken).
Da dürfte es für C und C++ aber wesentlich mehr Bibliotheken geben!

Fazit: Ich empfehle auf jeden Fall C oder C++, auch wegen der im Vergleich zu C# besseren Portabilität und Zukunftssicherheit und vor allem wegen der wesentlich höheren Geschwindigkeit (Java im Speziellen ist sehr lahm und einige Interpreter auch fehleranfällig).

Wenn das Erlernen von C/C++ wirklich zunächst zu schwer sein sollte (was ich nicht glaube), würde ich als Anfänger dann doch eher zu Pascal/Delphi greifen als zu Java.

(Jetzt müssen sie sich entscheiden.) :D
Benutzeravatar
Loma
Ultimatives Flascherl
Ultimatives Flascherl
Beiträge: 8055
Registriert: 21.07.2006, 16:47
Wohnort: Flascherl
Kontaktdaten:

Beitrag von Loma »

Hallo!

Da sag ich als erstes mal ein ganz großes DANKESCHÖN für eure wertvollen Antworten!

Ich weiß zwar nicht so ganz genau, ob ich wirklich alle Ausführungen vollkommen verstanden habe :oops: , aber ihr habt mir auf alle Fälle weitergeholfen.

Ich habe bereits angefangen, mich ein bisserl mit C++ zu beschäftigen (die Sache mit den Zeigern hat schon was Kopfrauchendes). Da ich aber in Bezug auf dieses neue XNA Game Studio Express auf C# gestoßen bin, wollte ich mich vergewissern, ob ich meine Gehirnzellen auch nicht umsonst strapaziere, wenn ich mich in C++ einarbeite.

Jedenfalls vielen lieben Dank.

Liebe Grüße
Ich denke, also spinn' ich.
Ich spinne, also mal' ich.
Ich male, also denk' ich.

"Never leave for the last minute what you can get away with not doing at all." (Pepe the King Prawn)
Benutzeravatar
Rocco
Adventure-Treff
Adventure-Treff
Beiträge: 1019
Registriert: 25.11.2003, 16:20
Wohnort: Ronville
Kontaktdaten:

Beitrag von Rocco »

normalerweise führt der weg zu c++ über c.
mit c anfangen und dann wenn man halbwegs weiss was man tut, die ojectorientierten konzepte von c++ langsam einfliessen zu lassen ist wohl der standardweg eines einsteigers.
Dante
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 14
Registriert: 04.03.2006, 21:00
Wohnort: Nähe Ulm

Beitrag von Dante »

Wintermute hat geschrieben:Da dürfte es für C und C++ aber wesentlich mehr Bibliotheken geben!
Hat es. Ich meinte auch mehr im qualitativen Sinn. Bitte das jetzt nicht falsch verstehen, es gibt eine Menge sehr gut programmierter C/C++ libs.
Wintermute hat geschrieben:Fazit: Ich empfehle auf jeden Fall C oder C++, auch wegen der im Vergleich zu C# besseren Portabilität und Zukunftssicherheit und vor allem wegen der wesentlich höheren Geschwindigkeit (Java im Speziellen ist sehr lahm und einige Interpreter auch fehleranfällig).
Schonmal ein Java-Programm geschrieben ?
Geschwindigkeitsvorteile von C zu C# bringen einem, um mal im Adventure-Bereich zu bleiben, doch wenig. C kann seine Stärke beim Software-rendern ausspielen. Der Rest braucht eigentlich kaum Dampf (wohlgemerkt im Normalfall). Und wenn ich schnell Rendern + Software will, dann nehm ich Assembler ;)
Wintermute hat geschrieben: Wenn das Erlernen von C/C++ wirklich zunächst zu schwer sein sollte (was ich nicht glaube), würde ich als Anfänger dann doch eher zu Pascal/Delphi greifen als zu Java.
Hmm, ich bin mir nicht sicher inwiefern Delphi "einfacher" ist. Man hat zwar ein "Unit"-Konzept und tippt viel mehr, aber ansonsten ?

Ah um nicht ganz offtopic zu sein:
Ich nehme mein Statement von oben zurück, lern lieber C. Bringt dir zukünftig auf jedenfall mehr.
Wintermute
Adventure-Gott
Adventure-Gott
Beiträge: 3360
Registriert: 27.02.2004, 20:49

Beitrag von Wintermute »

Einigen wird uns darauf, daß Fortran schlecht und grauenhaft zu programmieren ist. :D (Ist halt der Dinosaurier unter den erweiterten Programmiersprachen.)

Kennt eigentlich einer von euch LabView?
Das ist eine grafische Programmierumgebung, die vor allem im Bereich der Meßtechnik Verwendung findet. Die Programmierweise ist vollkommen anders als in allen anderen Sprachen, da sie nicht sequentiell oder befehlsgebunden sondern datengebunden und parallel abläuft; man kann sich die Programme als extrem komplexe Logikgatter vorstellen.
Der eigentliche Programmcode hat Ähnlichkeiten mit Schaltkreisen.

Hier ein Beispiel (aus der Wikipedia):
Bild
Thorium
Komplettlösungsnutzer
Komplettlösungsnutzer
Beiträge: 38
Registriert: 01.05.2006, 21:14
Wohnort: Gießen

Beitrag von Thorium »

max_power hat geschrieben:Es ist falsch. ;)
C# ist eine Kombination aus Java und C++. C++, C# und Java sind meiner Meinung nach gar nicht so unähnlich. Auf jeden Fall kannst du, wenn du eine von diesen Sprachen gut beherrscht, relativ einfach auch eine der anderen Sprachen erlernen. Welche von diesen Sprachen du nun lernst, ist meiner Meinung nach egal. Zu allen gibt es genügend Lernmaterial im Netz. Ich persönlich habe mit Java angefangen und denke, dass Java oder C# für den Anfang einen Tick besser geeignet sind als C++, da du dir keine so großen Gedanken um Pointer machen musst.
Es gibt natürlich auch noch andere Sprachen. Eine einfache Programmiersprache für Windows ist z.B. Delphi. Damit hast du am Anfang vermutlich schnellere Erfolgserlebnisse, aber die andern drei Sprachen sind weiter verbreitet und in Forschung und Wirtschaft deutlich wichtiger. Daher würde ich dir zu ihnen raten.
Auch nicht ganz richtig. C# arbeitet mit dem .NET Framework soweit richtig aber das .NET Framework verwendet keinen Interpreter sondern einen Compiler. Der entscheidende Unterschied zwischen dotNet und herkömmlichen Sprachen ist, dass dotNET mit sogenanntem managed Code arbeitet. Das heißt, wenn man seinen Source nun in eine .exe kompiliert, wird ein p-Code erzeugt, also ein Zwischencode, kein Hochsprachencode aber auch kein Maschinencode. Das kennt man ja von vielen alten Basic-Compilern. Aber dieser Code wird nicht interpretiert, wenn die .exe gestartet wird, sondern er wird zum Zeitpunkt des Ausführens vom Framework in Maschinencode kompiliert und dann ausgeführt. Der Vorteil liegt darin, dass das Framework vor dem Kompilieren prüfen kann, ob der Code Dinge tut, die ihm nicht erlaubt sind, z.b. Dateien manipulieren. .NET ist in erster Linie ein neuer Sicherheitsstandart, der erlauben soll wildfremde Programme aus dem Netz zu saugen ohne dabei Angst haben zu müssen sich nen Virus einzufangen. In der Praxis gibt es aber leider schon viele funktionierende dotNET-Infektoren. Ausserdem entfernt sich .NET vom Model der objektorientierten Programmierung hin zum Klassenmodel.

Ich persönlich bin ein alter BASIC-Fan. Nutze im Augenblick PureBasic: http://www.PureBasic.de/
Antworten