Wormhole

Willkommen auf der Wormhole Projekt Homepage !

(Let us see what's out there.... - Jean Luc Picard, Captain of the U.S.S. Enterprise)
To the english version of this page

Was in aller Welt ist überhaupt Wormhole?

Wormhole ist ein Science Fiction Strategiespiel ähnlich Master of Orion oder The Ascendancy. Wie diese Programme spielt auch Womhole in der fernen Zukunft, in der mehrere interstellare Imperien um die Vorherschaft in der Galaxis kämpfen. Die Aufgabe des Spielers ist hierbei die Gründung neuer Kolonien, die Erforschung neuer Technologien, der Kampf gegen die anderen Imperien und natürlich zu gewinnen.

Was gibt's Neues?

Wo gibt's die aktuellsten Neuigkeiten? Ganz einfach, besuche doch mal das Wormhole Diskussionsforum bei parsimony.net/forum/forum1216/

Wie wir gedenken, Wormhole zu realisieren

Pinguin-LogoDas Betriebssystem: Linux

Wir benutzen Linux als Plattform, weil wir ein komplexes Spiel mit einem guten Konzept entwickeln wollen, nicht eines mit guter 3DFX Grafik (Tatsächlich ist momentan niemand im Entwicklungsteam vertreten, der ein brauchbares künstlerisches Talent in dieser Richtung besitzt). Mit Linux haben wir eine Plattform ohne "Mega-Games", und außerdem bietet es die perfekte Grundlage für stabile und/oder netzwerkfähige Applikationen.

Die Programmiersprache: C++

Es ist einleuchtend das die komplexen Konzepte von Wormhole am einfachsten in einer objektorientierten Programmiersprache realisieren lassen. Also habe ich als Initiator des Projektes beschlossen, C++ zu benutzen. Durch die Ähnlichkeit zu C haben wir außerdem die Möglichkeit, ohne große Umwege die Systemfunktionen und Bibliotheken von Linux benutzen zu können.

Die GUI : Qt

Qt's a toolkit similar to XForms or Motif. It's very powerful, easy to use and looks real good (If ya wanna get some first impressions of Qt-Style widgets, look at the KDE-Desktop Enviroment (www.kde.org) . It's based on Qt).
WICHTIG: Qt 1.4 ist draußen. Vielleicht sollten wir uns das mal ansehen... ;-)
WICHTIG: QtEZ ist ein mächtiges Entwicklungswerkzeug für Qt und KDE. Auch das sollten wir uns einmal näher begucken... (Zu finden bei qtez.commkey.net )

Spielkonzepte

(... soon to come ... )

Programmierkonzepte

Durch die Benutzung von C++ zur Implementierung ist der gesamte Code (natürlich) objektorientiert.

Die Wormhole Klassen- Hierarchie

'Tschuldigung, bin nochnich dazu gekommen, das hier zu übersetzen....
Since there is a strictly seperation of the client and the server modules of Wormhole, we have two seperate class hierarchies. For the
server it is:
 
  • CServMain: The main class of the server application. It controls every aspect of the game and holds the instances of all other important server classes:
  • CNetConnection: A class that holds all the information about a wormhole client. It's also responsible for all networking aspects that are used for in-game client-server-communication. CServMain should hold a list of CNetConnection-Instances, one for each client in game.
  • CNetInit: This class is responsible for the network initialisation. It generates all relevant data structures and should initialise each client-connection, too.
  • CStartUp: CStartUp should display a dialog window where the server operator can manipulate several global game variables (e.g. galaxy-size, computer-players or simply reload a saved game) before the game itself begins.
  • CInitGame: This class also displays a dialog. Here the player clients could enter the game and simple pre-game chatting should be possible.
  • CGameRules: Holds all the rules used for the game itself. This class should implement all the methods that are needed to evaluate incoming data and process it using the game rules.
  • CGameData: Will be used to hold all the game-relevant data structures (possibly those of the last turn and the calculated next turn, too). Extended communication between CGameData and CGameRules is needed to provide functionality.
  • CRunGame: This class controls the whole game, gets info from the CNetConnection objects, takes it to CGameRules and provides the data flow back to all clients (in the next game turn). It also displays a dialog window for chatting, saving games, killing players and manipulate game data.
  • And for the client(s):
    The wormhole client will also have a main class named CClientMain and a CNetInit and a CNetConnection (though it only needs one instance of CNetConnection). Although the net classes of the client have quite different tasks to perform than the server classes, both possibly could share the same abstract base classes.
    Like the server the client has a CStartUp class that displays a pre-game dialog. Here the player can "log" onto a server game sending his player name and  IP- adress.
    After that, the player will be taken to the CRunGame class of the client application.
    The clients are stupid, that means they are only responsible for data interchange with the player, all data evaluation is made in the server application.

    There are also hundreds of instances of Qt-Classes, but these are primerly used for displaying so I didn't mentioned them here.

    Das Client/Server-Koncept von Wormhole

    Wormhole wird mit einem Server- und mehreren Client-Applikationen gespielt. Diese Module kommunizieren mittels TCP/IP sockets und können somit sowohl lokal auf einem Rechner (durch ein Loopback-Device) oder auf mehreren Workstations in einem lokalen Netz oder gar dem Internet laufen. Der Client is das Interface zu einem einzelnen Spieler, während der Server alle Daten sammelt, auswertet und sich um alle übrigen Aspekte des Spiels kümmert. Das endgültige Ziel ist die Realisierung einer Server-Apllikation, deren Aufnahmefähigkeit (Spielerzahl) nur durch Rechner- und Netzresourcen begrenzt ist.

    Das GUI Interface

    Wie bereits gesagt, sind die Wormhole Server und Clients X-Window-Applikationen, die mit der frei verfügbaren Version des Qt Toolkits realisiert werden sollen. Im Moment sollte dies dem Spiel ein professionelles und intuitiv bedienbares Äußeres verleihen, richtige Grafik sollte erst kurz vor Abschluß des Projektes implementiert werden.

    Die General public license

    Wormhole wird der GPL unterstehen und somit freie Software sein. Wer sich damit nicht abfinden kann, hat auch im Projekt nichts zu suchen.

    Download the sources

    Sources gibt es leider noch nicht, denn wir haben noch nicht ernsthaft angefangen, zu programmieren.

    Willst auch Du dabeisein?

    Sende einfach eine E-Mail an The Wormhole Project

    WICHTIG: Bitte alle anderen Nachrichten im Diskussionsforum hinterlassen, damit sie auch jeder lesen kann.

    Das Team:

    Name Tasks
    Hendrik Belitz German translation of the wormhole homepage, game mechanics, user interface
    Daniel von Dincklage *
    David Raynes AI, client/server design
    Jose Ignacio (Nacho) Spanish translation of the wormhole homepage(?)
    Robert Welham *
    Antonello Foa Italian version of the wormhole homepage(?), *
    Gustav Petersson Providing ftp space
    Rich Morgan *
    *: Da wir noch in der Pre-Development-Phase sind, gibt's noch nicht so viel praktisches zu tun ;-)

    Was wir noch beötigen


    The Wormhole Project

     

    Last modified: Tue Jul 28 11:06:41 CEST 1998 
    Next updating of this page will occur Thu Jul 30