Difference between revisions of "Development/Architecture/KDE4/KGGZ (es)"

Jump to: navigation, search
m (translation to spanish)
m (translation to spanish)
Line 9: Line 9:
 
En el tiempo de la liberación de KDE 4.0,la mayor parte del trabajo preliminar fue empleado en desarrollar GGZ, basandose en las bibliotecas de KDE. Se han escrito tres bibliotecas (kggzmod, kggzgames, kggznet) y algunos macros CMake. Vease [http://api.kde.org/4.0-api/kdegames-apidocs/libkdegames/html/ API docs].
 
En el tiempo de la liberación de KDE 4.0,la mayor parte del trabajo preliminar fue empleado en desarrollar GGZ, basandose en las bibliotecas de KDE. Se han escrito tres bibliotecas (kggzmod, kggzgames, kggznet) y algunos macros CMake. Vease [http://api.kde.org/4.0-api/kdegames-apidocs/libkdegames/html/ API docs].
  
Los juegos de barcos de KDE, KReversi y KBattleship, proporcionan un modo de red GGZ que se activa cuando el juego se ejecuta en modo cliente con GZZ. Si KReversi se ejecuta con la opción GGZ, este conecta con el propio Kreversi de GGZ, cambiando su nombre a [http://www.ggzgamingzone.org/gameclients/kggzreversi/ KGGZReversi], algo que fue planeado durante largo tiempo. Ambos usarán el servidor de Reversi en GZZ. Para KBattleship, un servidor dedicado llamado [http://svn.ggzgamingzone.org/trac.cgi/browser/trunk/python/submarine Submarine] fue escrito en Python y esta disponible en el svn de GZZ.
+
Los juegos de barcos de KDE, KReversi y KBattleship, proporcionan un modo de red GGZ que se activa cuando el juego se ejecuta en modo cliente con GZZ. Si KReversi se ejecuta con la opción GGZ, este conecta con el propio Kreversi de GGZ, cambiando su nombre a [http://www.ggzgamingzone.org/gameclients/kggzreversi/ KGGZReversi], algo que fue planeado durante largo tiempo. Ambos usarán el servidor de Reversi en GZZ. Para KBattleship, un servidor dedicado llamado [http://svn.ggzgamingzone.org/trac.cgi/browser/trunk/python/submarine Submarine] ha sido escrito en Python y está disponible en el svn de GZZ.
  
KDE 4.1 tendrá tambien el juego KSquares, el cual es compatible con el servidor Connect the Dots de GGZ (un parche ha sido aplicado recientemente). También está planeado el soporte de KFourLine. Por tanto, este reemplazaría al cliente KConnectX basado en KDE3 liberado junto con GGZ 0.0.14. Además, juegos adicionales podrían portarse. En KDE 4.1 también está planeado una mejor integración de los clientes. Esto podría incluir clientes embebidos (por ejemplo, los juegos pueden conectarse a los servidores GGZ por solos), un port de KGGZ a KDE4, y la integración de GGZ con jabber, incluida el algunos widgets de Kopete relacionados con el juego online.
+
KDE 4.1 tendrá tambien el juego KSquares, el cual es compatible con el servidor Connect the Dots de GGZ (un parche ha sido aplicado recientemente). También está planeado el soporte de KFourLine. Por tanto, este reemplazaría al cliente KConnectX basado en KDE3, liberado junto con GGZ 0.0.14. Además, juegos adicionales podrían portarse. En KDE 4.1 también está planeado una mejor integración con los clientes. Esto podría incluir clientes embebidos (por ejemplo, los juegos pueden conectarse a los servidores GGZ por solos), un port de KGGZ a KDE4, y la integración de GGZ con jabber, incluida el algunos widgets de Kopete relacionados con el juego online.
  
 
Sobre el port de KGGZ, actualmente KGGZ-ng, hay alguna información disponible [http://svn.ggzgamingzone.org/trac.cgi/browser/trunk/playground/ggz-kde4/kggz-ng aqui]. Ya puedes disfrutar del trabajo realizado en algunos widgets, como la [http://us.ggzgamingzone.org/~josef/playerlist.png lista de jugadores] y [http://us.ggzgamingzone.org/~josef/roomslist.png la lista de salas disponibles].
 
Sobre el port de KGGZ, actualmente KGGZ-ng, hay alguna información disponible [http://svn.ggzgamingzone.org/trac.cgi/browser/trunk/playground/ggz-kde4/kggz-ng aqui]. Ya puedes disfrutar del trabajo realizado en algunos widgets, como la [http://us.ggzgamingzone.org/~josef/playerlist.png lista de jugadores] y [http://us.ggzgamingzone.org/~josef/roomslist.png la lista de salas disponibles].
Line 21: Line 21:
 
==Configuración==
 
==Configuración==
  
While KDE 3-based development of GGZ games requires the ''ggzmod'' library, i.e. programming in C, KDE 4 has ''kggzmod''/''kggznet''/''kggzgames'' (collectively referred to as libkggz*) and thus the libraries and all games using it will compile without any further dependencies.
+
Mientras que el desarrollo de juegos GGZ basados en KDE3 requiere la biblioteca ''ggzmod'', es decir, programada en C, KDE4 tiene ''kggzmod''/''kggznet''/''kggzgames'' (referenciadas por libkggz*), así las bibliotecas y todos los juegos que las usan podrán compilarse sin ninguna otra dependencia.
In order to be able to play the games from an online gaming client (the so-called GGZ core clients such as KGGZ), the game client still needs to be registered with the central GGZ game modules registry. The tool ''ggz-config'', which is part of the ''ggz-client-libs'' package, is needed for this task. Most distributions ship it as part of a ''ggzcore-bin'' package or similar.
+
 
The file ''module.dsc'' contains meta information about the game, such as its
+
Para que sea posible jugar a los juegos desde un cliente online (tanto clientes GGZ como KGGZ), el cliente aun necesita registrarse en el registro de modulos central de juegos de GGZ. La herramienta ''ggz-config'',que es parte del paquete ''ggz-client-libs'', es necesaria para esta tarea. La mayoria de las distribuciones lo empaquetan como parte del paquete ''ggzcore-bien'' o algo similar.
author, UI library/environment it runs in and where its executable is located. The two important values are which protocol it uses and which version of the protocol.
+
 
 +
 
 +
El archivo ''module.dsc''contiene información sobre el juego, algo sobre el autor, la biblioteca/entorno de la UI y donde se encuentra el ejecutable. Los dos valores importantes son que protocolo y que versión de este se está usando:
  
 
<code ini>
 
<code ini>

Revision as of 00:41, 17 September 2008


Contents

Development/Architecture/KDE4/KGGZ


GGZ Gaming Zone ofrece una infraestructura completa y gratuita para juegos online. Los juegos online siempre han proporcionado alguna integración con KDE, pero con el inicio de KDE 4.0, esta integración está disponible fuera de la biblioteca KDE Games (libkdegames). El soporte de GGZ está disponible para una gran variedad de distribuciones y gana popularidad para con un gran numero de juegos.

Estado

Impaciente? GGZ in KDE 4 - Status file

En el tiempo de la liberación de KDE 4.0,la mayor parte del trabajo preliminar fue empleado en desarrollar GGZ, basandose en las bibliotecas de KDE. Se han escrito tres bibliotecas (kggzmod, kggzgames, kggznet) y algunos macros CMake. Vease API docs.

Los juegos de barcos de KDE, KReversi y KBattleship, proporcionan un modo de red GGZ que se activa cuando el juego se ejecuta en modo cliente con GZZ. Si KReversi se ejecuta con la opción GGZ, este conecta con el propio Kreversi de GGZ, cambiando su nombre a KGGZReversi, algo que fue planeado durante largo tiempo. Ambos usarán el servidor de Reversi en GZZ. Para KBattleship, un servidor dedicado llamado Submarine ha sido escrito en Python y está disponible en el svn de GZZ.

KDE 4.1 tendrá tambien el juego KSquares, el cual es compatible con el servidor Connect the Dots de GGZ (un parche ha sido aplicado recientemente). También está planeado el soporte de KFourLine. Por tanto, este reemplazaría al cliente KConnectX basado en KDE3, liberado junto con GGZ 0.0.14. Además, juegos adicionales podrían portarse. En KDE 4.1 también está planeado una mejor integración con los clientes. Esto podría incluir clientes embebidos (por ejemplo, los juegos pueden conectarse a los servidores GGZ por solos), un port de KGGZ a KDE4, y la integración de GGZ con jabber, incluida el algunos widgets de Kopete relacionados con el juego online.

Sobre el port de KGGZ, actualmente KGGZ-ng, hay alguna información disponible aqui. Ya puedes disfrutar del trabajo realizado en algunos widgets, como la lista de jugadores y la lista de salas disponibles.

icon.png icon.png icon.png

Configuración

Mientras que el desarrollo de juegos GGZ basados en KDE3 requiere la biblioteca ggzmod, es decir, programada en C, KDE4 tiene kggzmod/kggznet/kggzgames (referenciadas por libkggz*), así las bibliotecas y todos los juegos que las usan podrán compilarse sin ninguna otra dependencia.

Para que sea posible jugar a los juegos desde un cliente online (tanto clientes GGZ como KGGZ), el cliente aun necesita registrarse en el registro de modulos central de juegos de GGZ. La herramienta ggz-config,que es parte del paquete ggz-client-libs, es necesaria para esta tarea. La mayoria de las distribuciones lo empaquetan como parte del paquete ggzcore-bien o algo similar.


El archivo module.dsccontiene información sobre el juego, algo sobre el autor, la biblioteca/entorno de la UI y donde se encuentra el ejecutable. Los dos valores importantes son que protocolo y que versión de este se está usando:

ProtocolEngine=TicTacToe ProtocolVersion=2

If and only if those two match the values of the game server, this game client will be offered to players! More information about this file can be found in the ggz-config readme file and in the GGZ game development guide (which contains a lot more information and should really be printed out if you want to develop for GGZ).

Desarrollo

Adding GGZ support to KDE games is not hard at all. There are three libraries for different tasks: kggzmod which handles all GGZ-specific events and requests, kggznet that you can use for networking (but don't have to), and kggzgames for GUI integration with GGZ components.

In addition, kggzdmod for Qt4-based GGZ game server development is available as an experimental library.

Please consider re-using existing protocols for equal or similar games. The three places to look at are: KDE Games, GNOME Games, and the games shipped by the GGZ project in their various packages. On http://www.ggzgamingzone.org/engines/ there is a list of all known GGZ games.

For the time being, have a look at the API docs of kggzmod, kggznet and kggzgames, which are all part of libkdegames.

A number of tutorials were sent to the kde-games-devel list, providing additional information on top of the API docs.

Si esta información no es suficiente: Unete a #kdegames en irc.kde.org y pregunta si quieres ayudar. Si estás seriamente interesado en ehcar una mano, por favor publica tus ideas en la lista de correo kde-games-devel.

Consejos

Instalación paralela

Since for developers both the installed KDE and GGZ versions might differ from the system-wide installation, there are a few issues to consider. First of all, they need to be installed into different directories. The reason is that both do not use versioned includes, and GGZ's ggz-kde-* packages are still based on KDE 3. Here's a typical development setup (a receipe, so to speak), you might want to adapt it.

  • KDE 3, KDE 4 and GGZ installed in /usr with KDE 3 occupying /usr/include/k*
  • KDE 4 (devel) installed into ~/sys/kde4
  • GGZ (devel) installed into ~/sys/ggz (and ~/sys/ggz/bin should be in $PATH)
  • Prefixes don't match, so configure kdegames with -DGGZ_FORCEREGISTRY=1
  • in ggz.modules, for each KDE 4 entry, add 'runkde4' before each executable
  • runkde4 does the following:

  1. !/bin/sh

export PATH=$HOME/sys/kde4/bin:$PATH export KDEDIRS=$HOME/sys/kde4 export KDEHOME=$HOME/.kde4 exec $*

Such a wrapper mechanism is needed in many places in GGZ, so a generic one might be introduced. Still help is needed to port ggz-kde-* to KDE 4!

Prueba de juegos GZZ

Conectarse con el servidor principal de GGZ no es necesario para testear juegos GGZ, siempre que el servidor del juego esté instalado ademas del cliente del juego!. Simplemente usa la herramienta ggz-faketable del paquete ggz-python. El uso de kde4launch es opcional, por supuesto.

kde4launch ggz-faketable $ggzprefix/lib/ggzd/ggzd.dots $kde4prefix/bin/ksquares


KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal