Spheron (V6) Server Files

    • Spheron (V6) Server Files

      [COLOR="DeepSkyBlue"]
      Spheron V6

      In diesem Thread möchte ich euch das Projekt Spheron vorstellen.

      Was ist Spheron?

      Spheron ist ein Projekt das V6 Server Files entwickelt.
      Früher hat der Admin TyroXx an einem Flyff v12 Emulator geschrieben die Source davon müssten einige haben da diese Public ist.



      Dev log auszüge:

      In diesem Thema werde ich euch über Neuigkeiten auf dem Laufenden halten. Für Kommentare gibt es ein separates Thema.

      11.04.10
      Ich habe die Visual C++-Projekte angelegt und erste Code-Dateien erstellt. Es gibt folgende Projekte in der Projektmappe "Spheron":
      • Login Server
      • Char Server
      • World Server
      • Account Database Server
      • Character Database Server

      Die ersten drei in der Liste sind klar. Die beiden "Database Server" kümmern sich um sämtliche Spielinhalte. Der "Account DB Server" verwaltet Accounts und bedient den Login Server. Char und World Server erhalten ihre Informationen vom "Character DB Server", der sich um Charaktere und alles in der Welt kümmert. Die Database Server dienen als Schnittstelle zwischen Spiel-Servern und der echten Datenbank, die zum Beispiel MySQL sein kann. Es gibt für diese Maßnahme mehrere Gründe:
      1. MySQL ist sehr langsam bei bestimmten Queries. Ein separater Database Server versucht deshalb, die Last gering zu halten.
      2. MySQL kann gefährlich sein. Eine zusätzliche Datenbankebene schafft mehr Schutz vor Injections. Vor allem jedoch muss der MySQL-Port nicht für alle Welt geöffnet sein, wenn der Database Server auf demselben Server wie MySQL läuft.
      3. Der Database Server kann einfach ersetzt werden. Der Umstieg von MySQL auf ein anderes System oder etwas ganz Eigenes erfordert keine Änderung an den Spiel-Servern.

      Noch ein paar grundsätzliche Informationen zum neuen Projekt: Ja, es wird alles neu geschrieben. Nein, das ist nicht zu aufwändig, weil es durch das Neuschreiben am Ende schneller gehen wird. Als Flyff-Version wird V15(+) angestrebt. Der Client wird voraussichtlich dFlyff/eFlyff + japanische Neuz sein. Für den Anfang programmiere ich alleine. In den nächsten Tagen werde ich bei Google Code wieder ein SVN Repository einrichten. Die neue Version wird also wieder Open Source sein (wie die alte auch).




      14.04.10
      Bis jetzt habe ich an den Grundlagen der Server gearbeitet und das TCP-Zeug ist schon fertig. So verschickt der Login Server zum Beispiel das erste Packet an den Client:

      Quellcode

      1. ServerPacket packet(outBuffer);
      2. packet.startMain(0);
      3. packet << (uint32)123456;
      4. packet.finish();

      Genauer ausgedrückt erstellt er hier nur das Packet in einem Puffer outBuffer der Connection-Klasse. Dieser Puffer wird einmal pro Frame gesendet und danach geleert. Einkommende Daten werden ebenfalls gepuffert, bevor sie ausgewertet werden.
      Falls jemanden die technischen Details interessieren: Spheron verwendet WinSockets (natürlich nicht direkt, sondern in Form einer von mir geschriebenen Klasse) mit select. Das sollte für den Anfang angemessen sein. Der Code ist so angelegt, dass er für Linux kompilierbar sein wird.



      17.04.10
      Soeben habe ich das Projekt bei Google Code angelegt (Link). Den aktuellen Code gibt es immer per SVN auf spheron3 - Revision 29: /trunk.
      Ich fange gerade richtig mit dem Login Server an.
      Und schon gibt es das erste Problem: Das Login Packet vom japanischen Client ist merkwürdig. Anstelle des Passwortes sind da ca. 700 zufällig aussehende Bytes.



      18.04.10
      Da es für das Passwortproblem in absehbarer Zeit keine Lösung geben wird, muss Version 15 warten. Fürs Erste werde ich deshalb mit Version 6 arbeiten.
      Eine funktionierende Version des Login Servers mit statischer Server-Liste ist auf dem Repository (Rev 4).



      19.04.10
      Der aktuell unterstützte Client hat Version 6 und umfasst komprimiert ca. 364 MB. Ich lade den in Teilen hoch und gebe die Links hier bekannt:

      Es handelt sich dabei um ein 7z-Archiv, das mit einem tar-Archiv gesplittet worden ist. Mit 7-zip lässt sich das zum Beispiel entpacken.
      Bitte melden, wenn einer der Links nicht mehr funktioniert oder es Probleme mit dem Client gibt!



      Wichtige Links:

      SVN: spheron3 - Revision 29: /trunk

      Info :
      Der aktuelle Code ist zu finden auf spheron3 - Revision 29: /trunk. Um ihn abzurufen eignet sich auf Windows TortoiseSVN.

      Zum Kompilieren benötigt man Folgendes:
      • Visual C++ Express 2008 oder höher
      • die Boost-Bibliothek (boost.org)
      • die MySQL-Bibliothek (mysql.com)


      Forum: IServer Forum


      Es werden derzeit DINGEND c++ Entwickler gesucht das TyroXx momentan noch alleine am Server arbeitet.

      Bewerbungen können im Spheron Forum gepostet werden oder ihr schickt ein pn an TyroXx

      mfg

      [/COLOR]
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • [COLOR="DeepSkyBlue"]Das ist SVN es gibt keine bessere Methode ein Source Code so zu hosten.....lol

      Der Server ist noch nicht weit er ist noch sehr am Anfang

      TyroXx hat erst mit dem Projekt angefangen daher klappt bis jetzt nur der Login.

      mfg[/COLOR]