Textbasiertes Spiel

10/27/2011 19:27 papierkorp#16
Aber zum Anfang ist C "leichter" zu lernen als C++ ?
Also C++ basiert ja auf C oder nicht?^^

Sorry für die ganzen Fragen, und vielen Danke für die Hilfe ;)

lg
10/27/2011 19:37 boxxiebabee#17
Quote:
Originally Posted by papierkorp View Post
Aber zum Anfang ist C "leichter" zu lernen als C++ ?
Also C++ basiert ja auf C oder nicht?^^

Sorry für die ganzen Fragen, und vielen Danke für die Hilfe ;)

lg
Wenn du wirklich nur für ein Textbasiertes Spiel programmieren "lernen" willst, dann benutz C#, bzw. eine .NET Sprache.
Dort wirst du am schnellsten Erfolge haben, denn das .NET Framework nimmt dir einiges ab.
10/27/2011 19:53 Che#18
Quote:
Originally Posted by papierkorp View Post
Hi,
ich würde gerne ein Textbasiertes Spiel erstellen (Ist aber nicht wirklich ein Adventure). Hab jetzt auch schon eine Zeitlang gegoogelt und auch mit Visual Basic angefangen.
Allerdings empfinde ich Vb jetzt nicht wirklich als die richtige Sprache für mein Vorhaben.
Hab dann Inform 7 gefunden, allerdings ist die mehr auf Adventures ausgelegt und es gibt kaum Tutorials dafür (was meins ja nicht nicht werden soll :D).

Da es jetzt noch viele weitere Sprachen gibt wollte ich wissen welche ihr dafür empfehlen würdet? (ich kann mich da intensiv reinsteigern, also das "Projekt" wird auf jeden Fall durchgezogen^^).

Im Grunde sollte es so aussehen: Ich hab als Player eine Console in der zu Anfang ein von mir eingegebener Text erscheint, wenn der Player jetzt bestimmte Wörter/Sätze in die Console eingibt soll diese reagieren. (Ich will halt festlegen was er eingeben kann und was dann passiert).

Hoffe ihr könnt mir da weiterhelfen ;). Ich hab nämlich keine Lust jetzt jede Programmiersprachen für 1 Monat oder so anzulernen nur um herauszufinden welche am geeignetsten dafür ist.

lg
C++, C, Java, Batch, Vb.net, C# alles dafür möglich.
Und nein, man lernt nicht am schnellsten indem man sich mit ner .net-Sprache, die man später eh keine Verwendung mehr findet. Ich hab zwar mit C angefangen, würde aber Java mehr empfehlen, da es für Anfänger meiner Meinung nach besser geeignet ist (weil Objektorientiert, bla bla)
10/27/2011 20:06 MrSm!th#19
Quote:
Originally Posted by papierkorp View Post
Deshalb hätte ich mich für C++ entschieden ^^.

Hab mich nochmal genauer informiert - für mein Vorhabe brauch ich im Prinzip nichts Objektorientierendes und C# ist scheinbar wieder eine ganz andere Sprache?

Was wäre mit C und dem Buch von Galileo?

lg
Moment moment. Es ist nicht zwingend notwendig, aber was ist an OOP auszusetzen?
Also ich würde nicht die Sprache nach dem Kriterium aussuchen, ob du OOP magst oder nicht (es sei denn, du willst OOP nutzen, dann muss es natürlich eine sein, die das unterstützt :D).

Mit C++ kannst du auch super prozedural programmieren. Und bis auf die Klasse für das Hauptprogramm merkst du in C# auch nicht viel von OOP, wenn du es nicht willst (ob man nun printf oder Console.TextOut oder wie auch immer schreibt, ist ja egal).

C wiederum würde ich nicht empfehlen, da es einfach austirbt. Überall da, wo man C nutzen kann, kann man auch C++ nutzen. Selbst Microsoft steigt langsam auf ein objektorientiertes Modell bei der Treiberentwicklung um.

Außerdem wieso brauchst du kein OOP? o.O Gerade bei Spielen ist es sehr hilfreich, denn man kann alles aus einem Spiel super als Objekte darstellen.
Player, NPC, etc.

Und gerade bei einem Textbasierten Spiel wirst du dich über die Standard C++ Klasse std::string freuen, denn damit geht es wesentlich angenehmer als mit den C-Strings.

Also wie gesagt, wenn du eine Sprache speziell für dieses Spiel nun lernen willst, rate ich auf jeden Fall von C ab. C++ muss eigentlich auch nicht unbedingt sein, am besten würde sich wirklich Java oder C# anbieten.

Quote:
Ja ich habe mich da etwas fälschlich ausgedrückt, ich meine nicht das lernen der syntax, bzw der eigenheiten der sprachen, da geben sich die verschiedenen sprachen nicht viel, aber durch das .Net kann man schneller größere erfolge feiern.
Das kann ich nicht bestreiten, weshalb ich ihm auch C# oder Java ans Herz lege.
Quote:
Hab mich nochmal genauer informiert - für mein Vorhabe brauch ich im Prinzip nichts Objektorientierendes
Dennoch würde ich nicht mehr auf OOP verzichten, du lernst programmieren ja nicht für ein projekt, sondern fürs leben.

Und c++ ist auch OOP
Scheinbar lernt er es ja doch nur für dieses Projekt ;f Aber selbst das würde ich mir nicht ohne OOP antun.

Quote:
Aber zum Anfang ist C "leichter" zu lernen als C++ ?
Also C++ basiert ja auf C oder nicht?^^

Sorry für die ganzen Fragen, und vielen Danke für die Hilfe

lg
Also erstmal nein. Es hat beides nahezu die selbe Syntax und ist genau so leicht wie (fast) jede andere Sprache auch, ob C++, Java oder C#, ... .

Allerdings kommt es, was das Verständnis angeht, auch ein bisschen auf deinen Typ an. Einige kommen ums Verrecken nicht mit der Ansicht, alles als Objekt zu betrachten, nicht klar, warum auch immer. Selbst, wenn die dann C++ oder C# lernen, schreiben sie doch nur vom Stil her ein C Programm in etwas anderer Syntax.

C++ ist eben, was den Programmierstil angeht, völlig verschieden von C, wenn man OOP nutzt.

Allerdings ist wie gesagt die Syntax fast identisch und man kann auch in C++ im Grunde ein C Programm schreiben (kommt nun auf die Definition eines "C++ Programms" an; eben ob man C++ Stil meint, dann natürlich nicht oder einfach die Sprache an sich und dann kann man eben schon in C++ ein C Programm schreiben).
C ist eben eine Teilmenge von C++, aber ob man sagen kann, C++ basiert auf C...ich weiß nicht :/

Quote:
C++, C, Java, Batch, Vb.net, C# alles dafür möglich.
Und nein, man lernt nicht am schnellsten indem man sich mit ner .net-Sprache, die man später eh keine Verwendung mehr findet. Ich hab zwar mit C angefangen, würde aber Java mehr empfehlen, da es für Anfänger meiner Meinung nach besser geeignet ist (weil Objektorientiert, bla bla)
Wieso sollte die Tatsache, ob man die Sprach später nochmal nutzt, irgendeinen Einfluss auf die Lerngeschwindigkeit haben?
Außerdem sieht es ja ganz danach aus, als wäre das ganze eh nur für dieses Spiel vorgesehen und dann gilt dieses Kriterium für jede Sprache, nicht nur für die .NET Sprachen.
10/27/2011 20:31 papierkorp#20
Also wenn überhaupt dann mach ich höchsten 2-3 kleine Programme die ich dann für mich selbst verwende, aber mehr auch nicht.
Ein großes Spiel plane ich auch nicht, da ich mir sicher das ich nach einer Zeit die Lust verlieren würde & das ich jetzt der "Oberpro" im Programmieren werde ist auch nicht so wirklich mein Ziel :D (dafür hätte ich auch aufgrund der Ausbildung nicht genug Zeit).

Ich hab mich jetzt dazu entschlossen nicht mehr lang rumzudenken und mir von Galileo das C# 2010 Buch gekauft. Hab viele gute Kritiken darüber gelesen ;).

Sobald ich mit dem Buch fertig bin (was vermutlich eine Zeitlang dauert) hört ihr wieder von mir (nur diesmal mit meinem Spiel :D)

Danke für die ganze Hilfe!

lg
10/27/2011 21:21 Prestino#21
Quote:
Originally Posted by papierkorp View Post
Aber zum Anfang ist C "leichter" zu lernen als C++ ?
Also C++ basiert ja auf C oder nicht?^^

Sorry für die ganzen Fragen, und vielen Danke für die Hilfe ;)

lg
C ist nicht wirklich leichter als C++, da C++ aber "aktueller" ist und man in C++ objektorientiert programmieren kann, würde ich direkt das lernen.

Wenn du nur ein einmaliges Projekt vorhast, dann nehm lieber nicht c++, hast du aber interesse am programmieren, dann kannst du ruhig c++ nehmen, damit ist wenn man es kann sehr viel möglich :)
10/27/2011 21:24 Che#22
Quote:
Originally Posted by MrSm!th View Post
Wieso sollte die Tatsache, ob man die Sprach später nochmal nutzt, irgendeinen Einfluss auf die Lerngeschwindigkeit haben?
Außerdem sieht es ja ganz danach aus, als wäre das ganze eh nur für dieses Spiel vorgesehen und dann gilt dieses Kriterium für jede Sprache, nicht nur für die .NET Sprachen.
Uhm da hast du mich wohl falsch verstanden bzw ich hab mich schlecht ausgedrückt... Meinte eigentlich, dass das lernen einer Hochsprache sinnvoller sei, da man sie in einem möglichem späteren Beruf gebrauchen kann. Klar ist es schwachsinn als erste Programmiersprache ASM zu lernen bzw es zu probieren, aber Java ist doch ne ganz ordentliche und nichtmal so schwere Sprache, oder? Halte es persöhnlich sinnvoller Java zu lernen als Vb.net. Lernen zZ in der Schule im Informatikunterricht Java, kann nicht wirklich beurteilen, ob es für den Durchschnittsschüler leicht ist Java zu verstehen, da ich Java schon kann, aber ich denke schon, dass es nicht so schwer ist das zu lernen, auch wenn man 0 Ahnung in der Richtung hat. Außerdem ist Java universell einsetzbar -> Praktisch!
Einfache Berechnungen/Anwendungen sind mit Java auch kein Problem und man muss sich nicht mit dem Microsoft Zeug rumschlagen (allein der Download von Visual Studio dauert bei mir länger als der Download von Eclipse + aktuellste Java SDK o.O)
10/27/2011 21:45 MrSm!th#23
Ist C# oder VB.NET etwa keine Hochsprache?
Java ist auch ganz gut, in gewissen Dingen bieten sich .NET Sprachen aber mehr an und ich weiß ehrlich gesagt auch nicht, was an ihnen auszusetzen sein soll.

Java ist zwar verbreiteter, aber .NET ist deutlich performanter.

@papierkorb:

Ich persönlich hätte dir erst ein Tutorial empfohlen, bevor du dir ein Buch kaufst, da ich aber selbst bisher keine guten gelesen habe (nichtmal auf highscore.de; im Vergleich zum C++ Tut dort ist das echt Mist), kann ich das leider nicht :P
10/27/2011 21:52 Che#24
Quote:
Originally Posted by MrSm!th View Post
Ist C# oder VB.NET etwa keine Hochsprache?
Ernsthaft? Hätte jetzt aufgrund des sehr eingeschränkten Funktionsumfangs nicht gedacht, dass C# und vb.net als Hochsprachen gelten o.O
Klär auf! Hochsprache oder nicht? Und weißt du zufällig, ob C# bzw vb.net interpretiert werden oder nicht? (interpretiert wegen dem .net Framework, kompiliert wegen der Ausgabe als .exe)
Ich befürchte wir wandern grad bisschen Offtopic, aber das würd mich jetzt schon mal interessieren...

BTT: Kannste wie gesagt mit fast allen Sprachen machen. Sogar Batch reicht dafür schon, solltest du jedoch vorhaben dich weiter in dem Bereich Programmierung zu bewegen, würde ich dir C++ oder Java ans Herz legen.

€dit: Google sagt mir, dass C# nicht wirklich als Hochsprache gilt sondern sowas in Richtung Mittelhohe Sprache ist (Schlecht zu übersetzen, Orginal: mid-level-language), da man Hochsprachen auf mehreren Systemen kompilieren/interpretieren kann... Was stimmt denn nun?!?
10/27/2011 22:43 warfley#25
Quote:
€dit: Google sagt mir, dass C# nicht wirklich als Hochsprache gilt sondern sowas in Richtung Mittelhohe Sprache ist (Schlecht zu übersetzen, Orginal: mid-level-language), da man Hochsprachen auf mehreren Systemen kompilieren/interpretieren kann... Was stimmt denn nun?!?
Laut wiki ist eine hochsprache:
Quote:
Eine höhere Programmiersprache (engl. high level programming language) ist eine Programmiersprache zur Abfassung eines Computerprogramms, die einer der historisch gewachsenen menschlichen Sprachen (Englisch, Japanisch usw.) ähnelt.
Demnach wäre C# eine hochsprache.
10/28/2011 01:50 MrSm!th#26
Eine Hochsprache ist alles, was keine Lowlevel Sprache ist. Und C# geringer Funktionsumfang wtf? Informierst du dich auch über die Sprachen, über die du urteilst?

Sie werden in ByteCode kompiliert und dann vom .NET Framework on runtime zu native Code kompiliert.

Quote:
da man Hochsprachen auf mehreren Systemen kompilieren/interpretieren kann... Was stimmt denn nun?!?
Das gilt eigentlich für jede Sprache, C# kann man plattformübergreifend nutzen, wenn auch eingeschränkt, ASM, C++, Java, alle Interpreter-Sprachen, sofern ihr Interpreter auch für andere Plattformen als Windows verfügbar ist, ...
10/28/2011 02:36 Kent_Brockman#27
Wenn du gerade mit Programmieren anfängst und vorerst nur textbasierte Programme (wie das Game) schreiben willst, besteht auch die Möglichkeit mal Python zum Einsatz kommen zu lassen.

Python ist zwar nicht die Über-l33t-haxxor-Sprache, aber ich denke für einen Anfänger der einmal ins Programmieren reinschauen will oder sich nicht schlüssig ist ob einem das Proggen überhaupt liegt ist sie eigentlich sehr gut geeignet.
Es werden die Standart I/Os unterstützt und man kann sein "Programm" auf jeder Plattform ausführen wo ein Pythoninterpreter vorhanden ist.
Wenn man einen Compiler zur Hand hat kann man auch seine gewohnten Binaries erstellen.

Die Sprache selbst ist dem alten Basic v2.0 recht ähnlich auch wenn sie manchmal einen komischen Syntax an den Tag legt.
Zumindest sollte man hier sehr auf die Tabs achten, denn sonst könnte eine If was ganz anderes bewirken als sie sollte.

Aber vom Verständnis her ist die Sprache einfacher als die ganzen bisherigen genannten und man muss auch nicht Bücher wälzen um dort etwas auf die Beine stellen zu können.

Möchte man allerdings vollkommen HardCore einsteigen kann man auch ASM nutzen, die paar OP-Codes die man für ein symples Textgame braucht sind schnell gelernt und wenn man sich das Leben nicht allzuschwer machen will nimmt man die alte DosAPI die ja z.t. unterstützt wird und greift sich dort seine I/O Routinen ab.
10/28/2011 12:12 MrSm!th#28
Man muss auch keine Bücher wälzen, um in C++ oder C# etwas auf die Beine zu stellen.

Dein Vorschlag mit ASM ist doch wohl ein Witz oder?
10/28/2011 13:01 Che#29
Der Vorschlag mit ASM ist einfach nur genial :awesome:
Muss MrSm!th zustimmen, für C#/VB.net bzw C++ braucht man keine Bücher wälzen, das ist relativ selbsterklärend. Allgemein halte ich persöhnlich nix von dem lernen einer Sprache via Bücher wälzen. Ne einfache Sprachreferenz tuts auch, die Grundlagen sind bei fast allen Sprachen gleich.

Trotzdem würde ich immernoch Java vorschlagen. Einfacher Syntax, universell, weit Verbreitet -> Win.

Wusste jetzt ehrlich gesagt nicht, dass man C# Plattformübergreifend verwendnen kann, mein Fehler. Mit geringem Funktionsumfang meine ich, dass man mit C# weit nicht so viel anstellen kann wie mit Java/C++. Naja Java weniger, aber noch näher an die Maschine als mit C++ kommt man eigentlich nurnoch mit ASM, C# ist da Dimensionen weit davon entfernt.
10/28/2011 14:26 MrSm!th#30
C# hat einen größeren Funktionsumfang als Java und kommt fast an C++ ran.