You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdegames/libksirtet/lib
Alexander Golubev c70db62d36
Initial cmake conversion
9 years ago
..
CHANGELOG Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
CMakeLists.txt Initial cmake conversion 9 years ago
LICENSE Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
Makefile.am Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
README Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
TODO Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
defines.cpp Rename additional header files to avoid conflicts with KDE4 12 years ago
defines.h Rename additional header files to avoid conflicts with KDE4 12 years ago
internal.cpp Rename additional header files to avoid conflicts with KDE4 12 years ago
internal.h Remove spurious TQ_OBJECT instances 13 years ago
keys.cpp Rename additional header files to avoid conflicts with KDE4 12 years ago
keys.h Rename many classes and header files to avoid conflicts with KDE4 12 years ago
libksirtet_export.h Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
meeting.cpp Rename additional header files to avoid conflicts with KDE4 12 years ago
meeting.h Remove spurious TQ_OBJECT instances 13 years ago
miscui.cpp Rename additional header files to avoid conflicts with KDE4 12 years ago
miscui.h Remove spurious TQ_OBJECT instances 13 years ago
mp_board.h Remove spurious TQ_OBJECT instances 13 years ago
mp_interface.cpp Rename additional header files to avoid conflicts with KDE4 12 years ago
mp_interface.h Rename a number of classes to enhance compatibility with KDE4 12 years ago
mp_option.h Remove spurious TQ_OBJECT instances 13 years ago
mp_simple_board.cpp Trinity Qt initial conversion 15 years ago
mp_simple_board.h Remove spurious TQ_OBJECT instances 13 years ago
mp_simple_interface.cpp Rename additional header files to avoid conflicts with KDE4 12 years ago
mp_simple_interface.h Remove spurious TQ_OBJECT instances 13 years ago
mp_simple_types.cpp TQt4 port kdegames 14 years ago
mp_simple_types.h Trinity Qt initial conversion 15 years ago
pline.cpp Rename additional header files to avoid conflicts with KDE4 12 years ago
pline.h Remove spurious TQ_OBJECT instances 13 years ago
smanager.cpp rename the following methods: 14 years ago
smanager.h rename the following methods: 14 years ago
socket.cpp rename the following methods: 14 years ago
socket.h rename the following methods: 14 years ago
types.cpp Rename additional header files to avoid conflicts with KDE4 12 years ago
types.h TQt4 port kdegames 14 years ago
version.h Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
wizard.cpp Rename additional header files to avoid conflicts with KDE4 12 years ago
wizard.h Rename a number of libraries and executables to avoid conflicts with KDE4 12 years ago

README

kdemultiplayers library
-----------------------
Copyright (c) 1998-2000 Nicolas HADACEK (hadacek@kde.org)
Distributed under the GNU Library General Public License

Introduction
------------
The "kdemultiplayers" library is an attempt to address the realization of
multiplayer games localy on a computer (the players have each a "board" on
the screen and they use the same keyboard) or/and by network (between several
computers). The implementation is not so simple but this library gives
a basic API which allows a lot of flexibility.

Note: The headers which defines the API have names beginning with "mp".

The library provides three services :
  * a set of dialog widgets to allow the players to configure/create/join
    a game.
  * management of all the sending/receiving data between
    player boards so you as a game programmer will *not* have to deal with
	sockets or network programming.
  * a framework for simple multiplayers game (for instance ksirtet) with a
    very simple API ("mp_simple" headers).

Semantics
---------
"player" : an individual which take part in the game (it can also be an AI).
"AI"     : artificial intelligence (a game that is played by a program).
"board"  : there is one board per player ; it is the widget where the player
           acts in the game.
"host"   : a computer which hosts one or several players.
"server" : the host that has created the game.
"client" : a host that is not the server.


Basic description of the API
----------------------------
From the game programmer point of view there should be no difference between
a local multiplayers game (one host with several players) and a network game
(several hosts with one or more players).

Each player has a board which is a widget inherited from the class "LocalBoard"
(see "mp_board.h").

On each host there must be a class inherited from "MPInterface"
which manages local boards and the data transport with other hosts.
(see "mp_interface.h").

During the game at given intervals of time, the server asks data from clients
and from its local boards. After treating this data, the server dispatches back
results to all boards.

General advice
--------------
There should be no blocking operation or long computation as it will freeze
the user front-end and will also block the multiplayers data exchanges
which operate by timer signals.

There are general rules to avoid such blocking :
 * answer to X/QT events such as keyboard/mouse/window events with
   short methods.
 * use timer(s) to make things evolve in time or to break long
   computation in shorter parts.