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.