Welche Programmiersprache & Welche Programme ?



  • ... diese Frage stelle ich mir jetzt schon eine Weile. Aber vielleicht erstmal ein paar erklärende Worte, damit ihr versteht was ich wissen möchte.

    Ich möchte ein Spiel programmieren, dass mehreren Menschen ermöglicht, online zusammen zu spielen und gemeinsam an einer Art MUD teilzunehmen.

    Was ist ein MUD?
    MUD steht für Multi User Dungeon. MUD's finden in der regel in einem Chat (IRC) statt und arbeiten mit Textbefehlen. Der User erstellt sich über entsprechende Befehle eine Spielfigur oder läd einen bestehenden Avatar.
    Anschließend spielt er diese Figur, indem er Textbefehle eingibt, die von der "Spielwelt" interpretiert werden, welche ihm die Folgen seines handelns in Form von Textzeilen mitteilen. Auf diese Weise kann der User /kämpfen, /handeln, /untersuchen und vieles mehr.
    MUD's spielen meist in einer Fantasy Welt wie man sie von "Herr der Ringe" oder diversen Computer-/Rollenspielen kennt.

    Das was ich vorhabe ist eine Oberfläche zu schaffen, die das Spielerlebnis eines gewöhnlichen MUD's durch eine Bedienoberfläche erweitert, wie man sie aus PC-Spielen kennt.
    Anstatt das Handeln der Spielfigur durch die Eingabe von Befehlszeilen zu steuern möchte ich diverse Schaltflächen haben, die das ermöglichen.
    Informationen von Spieler, Gegner und Gegenständen der Umgebung sollen durch Text und entsprechende Grafiken dargestellt werden und wenn die Grundfunktionen des Spiels stehen wollte ich schauen, dass ich das Spiel graphisch darstellen kann um den Spieler noch näher ans Geschehen zu bringen.

    Das Konzept zum Spiel besteht bereits, da es auf einem existierenden Regelwerk aufbaut. Die Nutzungsrecht-Frage habe ich mit dem Urheber bereits geklärt und suche nun die beste Möglichkeit um mein Projekt zu realisieren.

    Ich habe in meinem Kollegenkreis und Bekanntenkreis nachgefragt wobei ich sagen muss, dass keiner von ihnen spezielle Kentnisse in diesem Bereich besitzt.
    Die Antworten zu möglichen Realisierungen waren wie folgt

    1. Flash
    2. reines PHP, alles wie ein Browser-Spiel
    3. C++

    Ich lerne in der Ausbildung ein paar Grundlegende Dinge über Programmiersprachen und bin mit ASP (meine Firma benutzt kein PHP) in zwischen etwas besser vertraut. Ich erinnere mich an ein paar C Erfahrungen aus der Schule und bin nicht ganz unfähig die Syntax einer Programmiersprache zu verstehen und mir anzueignen.
    WICHTIG! Ich habe nicht vor, das Spiel gestern fertig zu haben. Ich bin bereit viel Zeit mit dem Aneignen der nötigen Kentnisse zu verbringen. Ich möchte, dass es gut ist wenn es fertig ist, nicht dass es schnell fertig ist.

    Was wünsche ich mir von der Programmiersprache?

    hmm, schwer zu sagen, da mir die Fachkenntnisse fehlen, meine Bedürfnisse genau in Worte zu fassen.

    Wichtig:
    Eine Steuerung für den User via Maus und Shortkeys der Tastatur.
    Grafiken im Hintergrund und für Schaltflächen.
    Eine flexible Benutzeroberfläche die sich je nach dem Verhalten des Users anpasst um das Spielgeschehen wiederzugeben.
    Datenbankzugriff - Die Informationen des Spielers sollen online verwaltet werden um Veränderung durch den User auszuschließen
    Sicherheit - Die Spielinformationen sollen nach Möglichkeit vor Veränderung geschützt sein, um Betrüger davon abzuhalten, sich einen unfairen Vorteil den Anderen gegenüber zu verschaffen
    (Nachtrag)Online sollte das ganze nach Möglichkeit sein, damit ich jederzeit die Spielinhalte ändern kann um die Spielwelt nach belieben erweitern zu können.
    Multi User - es soll möglich sein, dass mehrere Spieler zusammen spielen und die Aktionen der anderen Spieler sehen/beeinflussen können
    (Nachtrag)Chat damit sich die Spieler verständigen können sollte es möglich sein, zwischen den Spielern Nachrichten auszutauschen.
    Ideal wäre es, wenn man normale Chatrooms einbinden kann damit alle User die im Spiel an einem Ort sind, mit einander reden können. Sind zB viele User in einer Bar der Spielwelt, dann sollten alle User in einem Chatroom sein, damit sie lesen können was andere schreiben. Der Chat sollte parallel zum eigentlichen Spiel laufen, also nach möglichkeit in einem Teil der Benutzeroberfläche

    Nach Möglichkeit - ist aber nicht grundlegend wichtig
    Ton
    animierte Grafiken

    Ok, das ist ja erstmal n netter Batzen Informationen. Ich hoffe ihr könnt mir sagen mit welchem Ansatz ich da am besten weiterkomme. Ich möchte mich ungern in 3 oder mehr Programmiersprachen einarbeiten müssen bis ich aus eigenen Erfahrungswerten beurteilen kann, was sich am besten eignet. Daher hoffe ich an euren Erfahrungen teilhaben zu können.

    Mit freundlichen Grüßen
    Konrad



  • Auf die Gefahr hin das hier gleich alle den Kopf schütteln ^^

    Ich Empfehle dir es mit VB zu machen!
    Die Gründe dafür sind folgende ...

    1. Du wirst das schnell lernen und dich nicht großartig mit Pointer, Konstruktoren etc. herumschlagen müssen
    2. Du kannst deiner Kreativität freien lauf lassen, kannst sehr einfach Bestandteile hinzufügen bzw. verändern
    3. Die Geschwindigkeitseinbußen sind bei deinen kleinen Spiel, leicht zu verkraften

  • Mod

    wenn du dein MUD in z.b. mirc einbindest, kannst du es mit der eingebauten scriptsprache machen, alternativ kannst du das auch als c++ plugin für den mirc machen, dort hast du dann jede möglichkeit die dir c++/windows/... usw. bietet. der vorteil ist dass es relativ einfach ist damit anzufangen, textbefehle kannst du selbst über nen zweiten client an deinen schicken, du kannst es modular machen und mehrere plugins schreiben z.b. eines für befehle, eines für die darstellung des dungeons, eines für die werte deines chars usw.

    zudem dürfte ein textbasierter server, ebenfalls als mirc-dll auch einfach sein (jedenfalls der einstieg).

    rapso->greets();



  • ok, das klingt doch schon mal nach nem vernünftigen Ansatz. Danke erstmal an dich, Rapso. ^^ *Fleißmarke überreicht*

    Das ist dann schon mal ein guter Punkt für C++. Mit mIRC sind ja schon viele vertraut. Würden diese PlugIns dann komplett serverseitig laufen? Falls ja, würde dass dann ja ein geringes Risiko bergen, was unerlaubten Zugriff angeht, wenn ich es richtig verstehe.

    C++ werde ich in einem Jahr eh an der Uni brauchen ^^
    CoMa
    Computer-orientiere Mathematik ...

    dann mach ich mich mal daran, mich in dieser Richtung weiter schlau zu machen.
    Das bedeutet aber nicht, dass ich nicht weiterhin glücklich wäre, hier Feedback zu erhalten.
    Sollten weitere Punkte in dieser Richtung oder konstruktive Argumente dagegen kommen, nehme ich die gerne auf.

    @FoxDie
    Ich schüttel nicht den Kopf deswegen, aber ich hab über die Vorteile von VB noch wenig gehört und eine längere Laufzeit, wie es ja nach deinen Worten scheinbar zu sein scheint, wäre für mich schon ein Kriterium gegen VB.
    Das VB leichter/schneller zu lernen ist, klingt zwar angenehm, ist für mich aber nicht so wichtig.
    Ich seh das ganze auch mehr als Lern-Projekt, dass mir hilft mehr zu lernen, was meine Ausbilder leider vermissen, uns zu vermitteln... Programmierkentnisse.

    MfG, Konrad


  • Mod

    *ansteck*

    die plugin-dlls sind für das mIRC-programm, du kannst es als server laufen lassen, du kannst auch jedem spieler client-dlls geben, wem du welche dlls gibst ist dann ja deine sache.

    viele spiele im irc haben nur beim server-bot die dll und der rest der leute spielt eben über texteingaben ohne spezielle clients, da du das ändern möchtest, müßtest du denen dazu wohl die client dlls geben.

    btw ist das protokoll der plugin dlls sehr einfach, die dlls bekommen die textnachrichten die man sonst im fenster sieht und geben ebensolche aus. sehr einfach!

    rapso->greets();



  • nochmal zum nachdenken,

    in vb, ohne vorkenntnisse, incl. einarbeitungszeit und mit allem drum und dran ist dein projekt eine sache von wenigen überschaubaren wochen.

    c++ legt dir in verbindung mit ner api alle möglichkeiten der welt in die hand. ohne vorkenntnisse werkelst du viele, viele monate, an so einem visualisiertem projekt. in der welt sind anfangs consolenprogramme und asciis angesagt, buttons und co kommen viel später.

    egal wie, wünsche durchhaltevermögen, denn darauf kommts an!



  • Sehr schön ausgedrückt! Aber die Tatsache das du ohnehin Cpp lernen wirst, lässt mich dir Empfehlen doch lieber in Cpp zu Programmieren! Durch VB wird man ein wenig zu verwöhnt ... davon kommt man schwer wieder runter ^^



  • steff schrieb:

    in vb, ohne vorkenntnisse, incl. einarbeitungszeit und mit allem drum und dran ist dein projekt eine sache von wenigen überschaubaren wochen.

    wenn du in diesem satz vb durch python 😋 ersetzt haste deine programmiersprache.
    aber wenn du später sowieso noch mit c++ in kontakt kommst, würde ich vlt doch
    lieber c(++) nehmen 😉



  • Python ist auch eine schöne Sprache um einzusteigen.



  • Gon schrieb:

    Wichtig:
    ...
    Datenbankzugriff - Die Informationen des Spielers sollen online verwaltet werden um Veränderung durch den User auszuschließen
    Sicherheit - Die Spielinformationen sollen nach Möglichkeit vor Veränderung geschützt sein, um Betrüger davon abzuhalten, sich einen unfairen Vorteil den Anderen gegenüber zu verschaffen

    weiß nich genau, könnte mir aber vorstellen, dass bei MUDs die Spielstand/Charakter/... - Daten sowieso nur online vorliegen, sodass meines Erachtens nach diese beiden Punkte wegfallen. Da dein Programm letzlich "nur" Text (irc-ausgabe) in Bilder/Sound und Klicks/Tastendrücke/... in Text (irc-post) transskripiert, hat ein Spieler also nicht mehr Möglichkeiten (zB. zum cheaten) als er über den Chat hätte.

    Mit welcher Sprache man ein Projekt umsetzt, ist meistens doch eher nur geschmackssache. Nur bei c/c++ muss man sich bewusst sein, dass diese Sprache ohne Bibliotheken erstmal nichts kann außer Konsolenkram. Das bedeutet, dass man, wenn man sich für c/c++ als Programmiersprache entschieden hat, sich gleich wieder für entscheiden muss, welche grafische/Ton-/Input- Schnittstellen manbenutzen möchte. Das kann verwirren (s. zB. diverse Beiträge "DirectX vs. OpenGL") ... Der Lerneffekt ist dafür extrem: Man lernt quasi das Basiswissen übers Programmieren (Themen wie Pointer, Strukturen, Klassen, Vererbung, speziell die STL lassen sich eigentlich nicht vermeiden) und dieses Wissen lässt sich dann auf alles anwenden ...

    Ich persönlich hatte mal vor, selber ein Browsergame zu schreiben, deswegen fände ich eine Umsetzung in php eine interessante Herausforderung. Allerdings würde dann der chat als Schnittstelle keinen Sinn mehr machen, da man Browsergames ausschließlich serverseitig programmiert und man dann die php-Scripts mit auf den MUD-Server stellen könnte und diese dann direkt auf die Spieldaten-Dateien zugreifen könnten. Die php-Variante ist also ein ganz anderer Ansatz ...

    PS: niemand mag Flash!!



  • Mir fiel bei der Rezession zu einem Lehrbuch über C++ auf, dass empfohlen wurde, erst "C Programmieren von Anfang an" zu lernen.
    Ist das sinvoll?
    Die genannte Begründung ist, dass es einem die Grundlagen vermittelt. So wie ich es verstanden habe ist C++ ja aus C entstanden und beinhaltet fast alle Funktionen die C auch hat(te).

    Ganz grundlegendes Wissen habe ich. *stolz die Brust emporstreckt*
    Wir haben in der Berufsschule bisher zumindest mal ein "Hallo Welt", einen Taschenrechner und 3 oder 4 Sortieralgorythmen geschrieben.



  • Naja ... sagen wir es so!
    Es ist schon nicht verkehrt wenn man C kann bevor man Cpp lernt ... weil bei Cpp noch eine Menge dazu kommt! Aber es ist kein muss ... Cpp als "Erstsprache" ist nicht ganz ohne, aber mit ein bissel Zeit und Durchhaltevermögen schon zu schaffen!



  • Ich denke es ist nicht nötig erst c und dann c++ zu lernen, du kannst ruhig mit c++ einsteigen solltest dir aber nebenbei auch c anschaun da man immer mal wieder c befehle und c Syntax braucht.
    Die Bücher die ich kenne bringen einem im wesentlichen C++ bei und erwähnen nebenbei wie das ganze mit c gelaufen wäre bzw zeigen dir auch die wichtigsten c Befehle.
    Warum ohne oo anfangen wenn das inzwischen Standart ist?

    Bevor du dich aber in anderen Libs umschaust solltest du wirklich sicher mit c/c++ sein.



  • Gon schrieb:

    Mir fiel bei der Rezession zu einem Lehrbuch über C++ auf, dass empfohlen wurde, erst "C Programmieren von Anfang an" zu lernen.
    Ist das sinvoll?

    IMHO nein.
    Sonst schleppst Du bis auf alle Ewigkeit printf() und FILE mit Dir herum... 🙄

    Gehört aber eigentlich in RudP... 💡



  • och so schlimm find ich printf jetzt nicht, das kann man immer wieder mal brauchen.

    naja ok mir fällt spontan nix ein aber ich bin mir sicher das ichs für irgendwas mal gebraucht hab



  • Ich finde, java wäre auch noch eine ganz hübsche Alternative. Ich kann mir vorstellen, dass so ein Projekt damit einfacher als in PHP umzusetzten ist, und platformunabhängig ist es ebenfalls.
    Und java ist auch nicht sonderlich schwierig



  • Taelan schrieb:

    och so schlimm find ich printf jetzt nicht, das kann man immer wieder mal brauchen.

    Unter C++ nimmt man aber nun mal

    cout << "Dies hier ist eine Fehlermeldung!";

    Dieser Misch-Masch kotzt nunmal viele an.
    Und wenn man noch am Anfang steht und C**++** lernen will, warum sich das nicht gleich abgewöhnen??

    Ich bin übrigens auch Misch-Masch-Progger, und es ist nicht gerade schön... 🙄



  • die iostream ist nicht mehr ISO-Konform! Also nix mit cout ... printf passt schon, ansonsten eine andere Streaming Ressource suchen!



  • FoxDie schrieb:

    die iostream ist nicht mehr ISO-Konform

    😕



  • Die IOSTREAM ist nicht ISO-Cpp Konform! Noch nicht gewusst? Sogar DevCpp meckert sich einen Wolf wenn man die einbindet 🙄



  • Also mein Kompiler meckert bei folgendem Code nicht.

    #include <iostream>
    
    int main(int argc, char ** argv)
    {
        std::cout << "Hallo Welt" << std::endl;
        return 0;
    }
    

    Anyways, hier hast du deinen Fisch: <°<<<>>><


Anmelden zum Antworten