Proceso de creación de juegos online

Con Entidad 3D dispones de opciones
que te permiten crear juegos para poder jugar online a través de una red
local o por Internet.
El tipo de juego que puedes crear en esta modalidad no es el mismo que puedes
crear sin capacidad online. Existen importantes diferencias que se explican en
esta sección, siendo las más significativas que sólo se pueden realizar juegos
tipo torneo (DeathMatch) y que no podremos usar los comandos de Entidad 3D:
Estructura de la red de juego:
La red de un juego online de Entidad 3D se basa en un ordenador que actúa como
Servidor y uno o más ordenadores que actúan como Clientes conectándose
al ordenador Servidor:

Todos los ordenadores de la red serán jugadores del juego (incluido el que actúa
como Servidor). Se recomienda usar el ordenador más potente de los que
intervienen en el juego como ordenador Servidor, ya que este será el ordenador
que distribuirá el tráfico de datos de todo el juego y el que centralizará la
mayoría de los cálculos que se realizan en la partida online.
Puede haber hasta 8 jugadores al mismo tiempo (1 Jugador Servidor + 7 Jugadores Cliente).
La conexión entre los Clientes y el Servidor se puede
realizar a través de una LAN Ethernet (Area de Red Local) o bien a través de
Internet.
Creación del nivel:
El escenario que usaremos para el juego online lo crearemos con World Editor de
la misma forma que se crean los niveles offline, sólo que tendremos que tener
en cuenta crear una estructura de todo el escenario pensando que será para
un juego online de enfrentamiento entre jugadores.
Estos tipos de escenarios suelen tener una estructura circular, no es que
tengan forma de círculo, sino que tienen pasillos y corredores que normalmente
confluyen en una zona central más o menos abierta.
Deja zonas que representen las bases de los equipos.
Deja zonas que serán donde comenzarán los miembros de un mismo equipo (una zona por equipo). No
necesariamente tienen que ser las mismas zonas que las bases.
Deja una zona donde pondrás la bandera por si quieres hacer un torneo en
modo de juego online 'Capturar la bandera'.
Colocación de entidades:
Hay un mínimo de entidades que deberás situar en tu escenario para que el modo online funcione:
DeathMathStart: Como siempre, imprescindible en cualquier
nivel de Entidad 3D.
Si no ponemos entidades 'EquipoOnline', el punto donde comenzarán la partida todos los jugadores será
el punto donde hayamos situado la entidad 'DeathMathStart'.
EquipoOnline: Para establecer el punto de comienzo de la partida para jugadores de un mismo equipo. Situar
tantas entidades de este tipo como equipos deseamos que puedan jugar al juego. Si después en la partida no se usan todos los equipos, no importa.
ItemObject (Bandera): Para situar en el escenario la bandera que deberán capturar los jugadores.
ItemObject (Base): Para situar en el escenario las bases de los equipos que pueden intervenir en
el juego. Situar tantas entidades de este tipo como equipos definidos con entidades 'EquipoOnline'.
Más entidades para tu juego online:
BotActorStart,
SpecificActor
ItemBlasterAmmo,
ItemGrenade,
ItemGrenadeAmmo,
ItemRocket,
ItemRocketAmmo,
ItemShredder,
ItemShredderAmmo
ConfigArmaUno,
ConfigArmaDos,
ConfigArmaTres,
ConfigArmaCuatro
ItemHealth,
ItemArmor,
ItemVida
Light,
DynamicLight
ConfigPersonaje,
VerArma,
Configuracion,
Door,
MovingPlat,
Marcador
El resto de entidades de las que dispone Entidad 3D y que no se han citado, no están comprobadas al 100% en el modo online, por lo que algunas podrían funcionar de
forma incorrecta, con descoordinación entre Clientes y Servidor o simplemente no funcionar.
Preparación de accesos directos:
Los parámetros que usemos detrás de 'Entidad3d.exe' para lanzar nuestro juego online, determinarán diversas cosas, entre ellas el modo de juego, la selección de equipo,
la selección del personaje, etc... por lo que es importante crear de forma correcta los accesos directos adecuados para nuestro juego.
Vamos a suponer que hemos creado un nivel llamado 'fabrica' preparado para cuatro equipos.
En primer lugar vamos a crear el acceso directo que se deberá usar en el ordenador Servidor. Sería una línea como esta:
Entidad3D.exe -name Killer -map fabrica -server -personaje 11 -equipo B -modojuego 1 -pickmode
Con '-name Killer' establecemos Killer como nombre con el que el jugador, que hace también de Servidor, se le conocerá dentro de la partida.
Con '-map fabrica' seleccionamos el nivel que vamos a jugar online. Todos los jugadores (Servidor y Clientes) deberán seleccionar el mismo nombre de nivel.
Con '-server' le decimos a Entidad 3D que este ordenador es el que actuará de Servidor en la partida online.
Con '-personaje 11' seleccionamos el personaje número 11 para este jugador. Consulta la sección 'Personajes jugadores' para conocer
todos los personajes disponibles y su número de personaje.
Con '-equipo B' seleccionamos a que equipo queremos pertenecer en la partida online. Consulta la
entidad EquipoOnline para conocer que letra corresponde a cada color de equipo.
'-pickmode' sirve para seleccionar el driver de pantalla y resolución que usará este jugador en toda la partida.
Con '-modojuego 1' establecemos el modo de juego de la partida. En este caso el modo 'Capturar la bandera'.
Los modos disponibles son:
1 para modo 'Capturar la bandera'. Consiste en llevar la bandera a la base propia. Si un jugador enemigo lleva la bandera debes
abatirlo y recoger la bandera caída. Gana el primer equipo que consiga llevar la bandera a su propia base.
2 para modo 'Pelea a muerte'. Consiste en abatir todos los jugadores de los equipos enemigos. Gana el primer equipo que haya abatido
a todos los jugadores del resto de equipos.
A continuación vamos a ver como preparar un acceso directo para uno de los jugadores Cliente de la misma partida online:
Una de las cosas que debemos saber es que dirección IP tiene el ordenador que hace de Servidor. Este dato nos lo tiene que facilitar la persona que
actuará como Servidor. Una manera que tiene el jugador Servidor de conocer su propia IP, es visitando www.cualesmiip.com,
o usando el comando IPCONFIG de Windows XP.
Supongamos que la IP del Servidor es 83.33.100.16, el acceso directo de un Cliente sería:
Entidad3D.exe -name DarkLord -map fabrica -client -IP 83.33.100.16 -personaje 3 -equipo A -modojuego 1 -pickmode
Con '-client' le decimos a Entidad 3D que este ordenador actuará de Cliente en la partida online.
Podemos crear tantos accesos de este tipo como jugadores Cliente queramos que participen en la partida. Otro ejemplo de accedo directo para un segundo jugador Cliente para
nuestro juego online sería:
Entidad3D.exe -name LadyWar -map fabrica -client -IP 83.33.100.16 -personaje 2 -equipo A -modojuego 1 -pickmode
En este caso estos dos jugadores Cliente pertenecerían al mismo equipo, pero si queremos que entre en la partida un jugador Cliente que sea del mismo
equipo que el jugador que actúa como Servidor, este podría ser el acceso directo:
Entidad3D.exe -name Terror -map fabrica -client -IP 83.33.100.16 -personaje 15 -equipo B -modojuego 1 -pickmode
Abriendo puertos:
Una cosa importante antes de proceder a realizar todas las conexiones entre los ordenadores que participarán en la partida online, es configurar correctamente
los sistemas de seguridad que puedas tener instalado en tu sistema operativo (tanto en ordenadores Cliente como Servidor), así como el Router en caso de que lo uses para acceder a Internet o en una red local (LAN).
Aquí no se explicará como realizar paso a paso estas configuraciones ya que son muchos los tipos de Cortafuegos de Windows y de Routers utilizados,
por lo que lo mejor es que consultes el manual de tu Router o/y cortafuegos para usar los siguientes datos que se muestran a continuación para que tanto el ordenador Servidor
como los ordenadores Cliente puedan conectarse entre sí para poder comenzar una partida online usando Entidad 3D:
Abrir puerto 47624 tipo UDP
Abrir puerto 47624 tipo TCP
Abrir rango de puertos 2200 a 2400 tipo UDP
Abrir rango de puertos 2200 a 2400 tipo TCP
Si te aparece el siguiente mensaje del cortafuegos de Windows XP, debes responder pulsando el botón 'Desbloquear':

Si tienes instalado otro tipo de cortafuegos en tu ordenador, deberás responder de manera similar, permitiendo a Entidad 3D abrir y admitir conexiones de red tanto salientes
como entrantes.
Una incorrecta configuración de tu cortafuegos o Router impedirán (por la propia seguridad de estos dos elementos) que los jugadores Cliente puedan conectarse
al jugador Servidor.
Conectando ...:
Para poder comenzar la partida online, todos los jugadores deben tener instalado en su ordenador exactamente el mismo juego (misma versión de Entidad 3D, misma
compilación de nivel, mismos ficheros, etc...).
El proceso a seguir para poder jugar con éxito a juegos online creados con Entidad 3D, es el siguiente:
1. Haz llegar tu juego, con unos accesos directos ya predefinidos a todos los jugadores, tanto a los jugadores 'Clientes' como al jugador 'Servidor'.
2. Mediante chats, foros, msn, etc.. estableced quien actuará de Servidor, que equipos formareis, que personajes seleccionareis, etc...
3. Coordinaros a una hora en concreto para poder comenzar la partida.
4. Antes de comenzar la partida, el jugador que actúe de Servidor debe facilitar su dirección IP al resto de jugadores.
5. Que cada jugador edite el acceso directo que utilizará para acceder al juego y lo adapte a sus gustos, modificando el nombre de jugador, personaje que usará,
equipo al que pertenecerá, modo de juego y modificando la IP del Servidor en el caso de los jugadores Cliente.
6. El primero que debe lanzar su acceso directo es SIEMPRE el jugador que actúe como Servidor.
7. Transcurrido un minuto, aproximadamente, ya pueden lanzar los jugadores Cliente sus accesos directos para conectarse al Servidor.
8. Si todo ha ido bien, cada jugador aparecerá en el nivel en su posición correcta y en el marcador de estado de jugadores online irán apareciendo todos los
jugadores que van entrando en la partida.
9. Cuando estén todos los jugadores listos, puede dar comienzo la partida.
Los números de jugadores que figuran en el marcador de estado de jugadores online, los asigna automáticamente Entidad 3D por orden de entrada en el juego.
Jugando online:
Un partida online se desarrolla de la misma forma que una partida offline, sólo que esta vez los enemigos son humanos reales y tus compañeros también son
personas reales.
La dinámica de la partida la determinará el modo de juego seleccionado. La velocidad de los jugadores y proyectiles vendrá determinada por la calidad de la conexión
de la red y por la potencia del ordenador que actúa de Servidor.
Si eres un jugador Cliente y has agotado todas tus vidas, pero el resto de jugadores siguen jugando, te aparecerá un mensaje para que no abandones el
juego si deseas ver el resultado final de la partida. Si de todos modos deseas salir del juego, puedes hacerlo de la misma manera que siempre, 'ESC/Salir':
Si eres un jugador Servidor y has agotado todas tus vidas, pero el resto de jugadores siguen jugando, te aparecerá un mensaje para que no abandones el
juego mientras no haya finalizado por completo la partida online, si sales del juego en este punto toda la partida finalizará de golpe para todos los jugadores sin
saber el resultado final.
Cuando la partida online finalice por completo, a todos los jugadores le aparecerá un mensaje final con los resultados de la partida:

Para volver a jugar una nueva partida es necesario que todos los jugadores abandonen el juego con 'ESC/Salir' y se vuelvan a seguir los puntos del apartado 'Conectando ...'
Limitaciones en modo online:
Debido a la forma de funcionar de Entidad 3D en modo online, existen algunas limitaciones en comparación con el modo offline. Tendrás que tenerlas en cuenta a la
hora de diseñar tu juego online:
No se pueden usar los comandos en la realización del juego.
Durante el juego, el jugador no puede cambiar de cámara.
Durante el juego, el jugador no puede usar ningún truco (INMUNE, ARMAS, etc ..).
Durante el juego, el jugador no puede agacharse, levantarse ni volar.
Durante el juego, no se resta salud a los jugadores al caer desde mucha altura.
Durante el juego, no se reproducirán diferentes sonidos en función de la superficie por donde avanza el jugador, excepto el sonido normal de pasos.
Durante el juego, un jugador siempre verá al resto de jugadores con la misma arma en la mano.
Ideas para juegos online:
No te dejes engañar por el juego 'Online Death' de ejemplo que incluye Entidad 3D, ese nivel es sólo un ejemplo de lo que se puede hacer
con Entidad 3D en modo online. Aquí tienes unas cuantas ideas para nuevos juegos que se podrían desarrollar:
Juego de ejemplo 1:
Escenario: Un aeropuerto
Planteamiento: Dos terroristas se han apoderado de un avión de pasajeros y harán explotar todo el avión si no son satisfechas sus exigencias.
Preparación: Dos jugadores del equipo B hacen de terroristas dentro de un avión con diversas entradas. Dos o tres jugadores del equipo A hacen de miembros de
un equipo de asalto. Dentro y fuera del avión se pone todo tipo de munición que reaparece. También dentro del avión se coloca la bandera y la base del equipo B y
fuera del avión la base del equipo A. La bandera la cambiamos por una bomba. Modo de juego 'Capturar la bandera'.
Juego: Si el equipo B coloca la bandera en su base, se considerará que ha hecho explotar el avión. Si el equipo A consigue la bandera y la coloca en su propia base,
se considerará que ha retirado la bomba a tiempo. El tiempo que dure la partida será un aliciente para ambos bandos para mejorar en posteriores partidas, los terroristas en
alargar el tiempo y los del equipo de asalto en acortarlo, sin contar que cada equipo puede acabar con todos sus miembros muertos antes de hacer cualquier cosa con la bomba.
Juego de ejemplo 2:
Escenario: Un moderno edificio
Planteamiento: Un juego al estilo de la película La jungla de cristal. Unos terroristas se han hecho con el control del edificio
y tienen rehenes. Sólo un hombre puede salvar la situación.
Preparación: Cuatro jugadores del equipo B hacen de terroristas y un solo jugador del equipo A hace de policía. Modo de juego 'Pelea
a muerte.
Juego: Los terroristas deben acabar con el policía, el policía debe acabar con todos los terroristas. A primera vista puede parecer
que el policía estará en desventaja, pero con buenas tácticas, saber esconderse y atacar en el momento adecuado puede dar más de una sorpresa al grupo terrorista. Este
juego plantea un gran desafío para el jugador policía para acabar con todos los terroristas y lo antes posible a pesar de la desventaja numérica.
Juego de ejemplo 3:
Escenario: Una zona de guerra en Iraq
Planteamiento: Unos insurgentes iraquíes se han enterado de la presencia en la zona de una importante periodista de la cadena CNN
que están dispuestos a secuestrar. Militares estadounidenses se enteran del plan y envían al equipo Delta de operaciones especiales para neutralizar a los insurgentes y
llevar a la periodista a una zona segura. También se han enterado de la situación tres mercenarios que quieren sacar tajada del asunto.
Preparación: Dos jugadores del equipo B hacen de insurgentes, tres jugadores del equipo A hacen de equipo Delta y tres jugadores del equipo C
hacen de mercenarios. La bandera la cambiamos por una periodista. Modo de juego 'Capturar la bandera'.
Juego: Cada equipo quiere llevarse a la periodista por diferentes motivos, tres equipos enfrentados por rescatar/secuestrar a la
periodista. ¿ Ayudará algún equipo a otro sin saberlo ?.
Juego de ejemplo 4:
Escenario: Un almacén
Planteamiento: Unos secuestradores tienen retenido en un almacén a un importante empresario. Un grupo antiterrorista ya se ha
puesto en marcha para liberar al empresario.
Preparación: Tres jugadores del equipo B hacen de secuestradores en el almacén. Tres jugadores del equipo A hacen de antiterroristas
fuera del almacén. La base del equipo A está fuera del almacén. No hay base de equipo B. La bandera la situamos al lado de uno de los secuestradores. La bandera la
cambiamos por un empresario. Modo de juego 'Capturar la bandera'.
Juego: Los secuestradores tendrán desde el principio al empresario, la única misión de los secuestradores es aguantar lo máximo con
el empresario e intentar acabar con el grupo antiterrorista. La misión del grupo antiterrorista es hacerse con el empresario y llevarlo a un lugar seguro (la base del
equipo A).
Juego de ejemplo 5:
Escenario: Una plaza con un edificio muy alto
Planteamiento: Un francotirador se ha hecho fuerte en lo alto de un edificio y dispara a todo el que se le pone a tiro. Un
grupo de asalto formado por cuatro miembros está decidido a acabar con el francotirador.
Preparación: El edificio debe tener numerosas aberturas por las que el francotirador pueda disparar sin exponerse en exceso. Un jugador
del equipo B hace de francotirador, lo colocamos en lo alto de un edificio bien protegido, dotamos a este
jugador de gran cantidad de armas y munición. Cuatro jugadores del equipo A hacen de grupo de asalto. Las puertas de accedo al edificio están completamente bloqueadas por
lo que habrá que abatir al francotirador desde fuera. Para crear más tensión a la situación se puede asignar una sola vida a todos los jugadores por lo que los jugadores
tendrán mucho más cuidado de no ser alcanzados. Modo de juego 'Pelea a muerte.
Juego: La misión del francotirador es abatir a todos los miembros del grupo de asalto y aguantar todo lo que pueda, mientras que la misión del grupo de asalto es
acabar con el bien parapetado francotirador.