Ergebnis 1 bis 3 von 3

Thema: [Denksport] Onlinegaming via HTTP

  1. #1

    [Denksport] Onlinegaming via HTTP

    Erstmal vorneweg, das ist keine Bitte um Hilfe, sondern soll einfach eine Anregung zum Nachdenken darstellen. Wenn bei der Sache ein vernünftiges Projekt rauskommt, ist das lobenswert, wenn nicht, dann sind wir wenigstens um eine Erfahrung reicher - und wenn es die ist, dass es nicht realisierbar ist.

    Aber zur Sache. Dass ich ab und zu auf verrückte Ideen komm, dürfte ja allgemein bekannt sein. Letzte Woche war es wieder so weit. Ich hab vor ein paar Jahren mal mit zwei Freunden zusammen, an einem kleinen Sammelkartenspiel ähnlich wie Magic gebastelt. Leider haben wir irgendwann aufgegeben, weil wir uns einfach nicht oft genug treffen konnten, um daran zu arbeiten (400 km sind ne verdammte Entfernung und mit ISDN bzw. Modem war damals an ausgiebige Chatsitzungen gar nicht zu denken) Jetzt hat mich einer von beiden drauf angesprochen, ob wir das Projekt nicht als Onlinespiel wieder aufleben lassen sollen. Zum einen einfach, damit die Arbeit nicht umsonst war, zum anderen um auf unserer gemeinsamen Homepage für ein bisschen mehr sinnvollen Inhalt zu sorgen. Ich war sofort einverstanden, nur ein Problem blieb: wir hatten und haben keinen Port für ein weiteres Serverprogramm übrig.

    Und genau hier setzt die Idee an. Ich habe mir eine Weile den Kopf zerbrochen, ob es nicht möglich wäre, den bereits bestehenden HTTP Server für diese Zwecke zu missbrauchen. Aus genau dieser Idee mache ich jetzt eine Aufgabenstellung für mich, euch und jeden der sich dafür interessiert.

    1. Sämtliche Kommunikation zwischen Server und Client muss über das HTTP Protokoll ablaufen. Direktverbindungen zwischen den Clients möchte ich vermeiden, weil nicht jeder die Ports in seinem Rounter freigeben kann oder will.
    2. Clientseitig sind alle Programmiersprachen erlaubt. Auch Javaapplets oder einfache Webseiten. Allerdings sollte es schon über ein normales Browsergame herausgehen, wo jeder für sich spielt.
    3. Serverseitig darf alles verwendet werden, was mit gängigen HTTP Servern lauffähig ist, also z.B. PHP und wegen mir JavaServerPages, wobei die in Hinsicht auf freien Webspace schon etwas problematisch sind.
    4. Der Client muss mindestens unter Windows ODER Linux lauffähig sein.
    5. Echtzeit ist nur eingeschränkt nötig, Rundenbasierend reicht vollkommen
    6. Eine vernünftige grafische Oberfläche sollte schon dabei sein, Konsolenfenster oder einfach ein paar Common Controls reichen nicht.
    7. Was es für ein Spiel wird, ist mir egal. Meine Vorschläge wären Kartenspiele, Brettspiele und evtl. simple Rundenstrategie
    8. Der Server soll die Spielerdaten (etwa eine Rangliste oder bei einem Sammelkartenspiel die Karten im Deck) speichern (z.B. in einer Datenbank)

    Ich möchte euch bitten, nicht einfach nur bestehende Ansätze zu kopieren (ich bin überzeugt, dass es so was gibt, auch wenn mir grad nix konkretes einfällt), sondern komplett bei 0 anfangen. Ich bin gespannt, was dabei raus kommt. Ich kann euch leider keine Belohnung anbieten, außer euch in den Credits zu erwähnen, falls ich so was wirklich mal umsetz. Aber vielleicht läst sich Jeez ja überreden, einen offiziellen Contest draus zu machen, wenn das Interesse groß genug ist.

    P.S. Ich habe durchaus meine eigenen Vorstellungen, will aber erst mal abwarten, was ihr dazu zu sagen habt

    Geändert von DFYX (30.05.2005 um 19:49 Uhr)

  2. #2
    Naja, man koennte erstmal einen simplen Client schreiben mit einer Scriptsprache, dann baut man die Webengine mit eben dieser Scriptsprache.

    Der Client ruft dann z.b. das auf:

    http://my.onlinegame.com/game/action.php?do=something;user=m00

    Und die Seite koennte ausgeben:

    $user=m00; $action=something; $currentenemy=c0wb0y; $cost=35456 // z.b. Magiepunkte oder sowas

    Wobei hier natuerlich Fragen der Sicherheit aufkommen, wie setzt man das am besten um so das es sicher ist und niemand cheaten kann?

    Ich denke da an irgendwas mit Cookies, allerdings werde ich sowas nie umsetzen koennen da ich einfach scheisse bin in GUI Programmierung, und noch mehr in Hochsprachen wie C++.

  3. #3
    OK, dann rück ich doch mal mit meinen Ideen raus:

    Die Art der Übertragung habe ich mir ähnlich vorgestellt, nur evtl. in etwas komplexeren Scripts, für die man dann halt einen kleinen Interpreter schreiben müsste (Nichts sonderlich ausführliches, sondern Variablenzweisungen, simple Funktionen und ansatzweise Objektorientierung, also etwa karte1.destroy(); ) Eine bereits vorhandene Scriptsprache fällt mir da grad nicht ein, die sind alle viel zu aufgeblasen und können viel zu viel Unnötiges.

    Über die Verschlüsselung habe ich mir nicht viel Gedanken gemacht, weil nach meiner Vorstellung alle wichtigen Vorgänge auf dem Server ausgeführt werden und der Client bekommt nur die Ergebnisse.

    Beispiel:
    Code:
    Client                                            Server
    Karte ziehen --->
                        <--- ID der gezogenen Karte ausgeben
                            ID der gezogenen Karte speichern
    ID der gezogenen Karte speichern
    Der Server würde also jede Aktion auf Gültigkeit prüfen und der Client hätte immer nur eine Kopie dessen, was passiert. Wenn sich also jemand clientseitig eine zusätzliche Karte ercheaten würde, würde er vom Server nur ein "Karte nicht vorhanden" bekommen. Durch einen Cheat würde man sich also eher einen Nachteil verschaffen, weil die Anzeige des Clients nicht mehr mit dem übereinstimmt, was wirklich passiert.

    Sprachenmäßig hätte ich für mich an Java oder VB (Jaja, ich weiß ) für den Client und PHP für den Server gedacht. Java (JSP) für den Server wäre zwar auch schön, aber das geht leider nicht mit jedem Server. Außerdem weiß ich nicht, wie man in Java auf MySQL Datenbanken zugreift.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •