Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Arquitectura de Servidores

Iniciado por chr2004aqp, 10 de Octubre de 2007, 03:08:29 AM

« anterior - próximo »

chr2004aqp

Hola, quisiera q me ayudaran a entener como funciona la arquitectura de servidores, como funcionan los sockets, etc

Un modelo de cliente/servidor q me inquieta es el q aplica los servidores de blizzard, donde existe un servidor oficial donde los usuarios se conectan (creo eso es IRC) y luego mini-servidores q son juegos creados por usuarios y que el servidor principal los lee y muestra para que los usuarios elijan uno y se conecten

Como se haria eso, me refiero a su arquitectura, modelamiento, como se estableceria las conexiones??

La verdad soy nuevo en esto y quisera q me ayudaran en algunas dudas q tengo y q se me presentaran en el futuro

Gracias

kaworu

@_@ esto va por épocas, o es casualidad?

Tei

Algunos juegos sencillos, estilo" Continuum",  tiene basicamente estos servidores:

- Billing, que es quien "cobra" y lleva las cuenas de usuario.Solo es una base de datos de "clientes", con una pasarela de pago.
- Browsers/Descubridores, etc. Que son servidores que hacen como "agenda" de direcciones. La IP, el mapa y los jugadores de maquinas de juego. Cuando se levanta un servidor o cambia un mapa, este actualiza la informacion del descubridor. Solo es una agenda.
- Servidores de juego. Donde se juega realmente. Cuando hay cambios de estado, se informa a los descubridores. Si necesita datos del jugador, pregunta al servidor de billing. El juego ocurre aqui.
- Cliente de juego. Los ordenadores de la gente que juega. En el modelo C/S puro, un cliente es una terminal tonta que solo renderiza. En el modelo C/S que se puede tener en internet, el cliente debe saber calcular los frames intermedios deduciendo informacion de algun conocimiento del mundo (velocidad de los objetos, colisiones, etc.).

Un MMORPG normal ni se parece a esto. Es varias ordenes de magnitud mas complejo.

fjfnaranjo

Cita de: "kaworu"@_@ esto va por épocas, o es casualidad?

Es lo que yo dije, ahora empiezan los fasciculos coleccionables de "Programa tu propio juego", y cuando la gente se aburre del Pong que le proponen, pues ...  :D
fjfnaranjo.com - Creating entertainment - Creando entretenimiento
fjfnaranjo [4t] gm4il [d0t] c0m (mail y msn)

chr2004aqp

CitarAlgunos juegos sencillos, estilo" Continuum", tiene basicamente estos servidores:

- Billing, que es quien "cobra" y lleva las cuenas de usuario.Solo es una base de datos de "clientes", con una pasarela de pago.
- Browsers/Descubridores, etc. Que son servidores que hacen como "agenda" de direcciones. La IP, el mapa y los jugadores de maquinas de juego. Cuando se levanta un servidor o cambia un mapa, este actualiza la informacion del descubridor. Solo es una agenda.
- Servidores de juego. Donde se juega realmente. Cuando hay cambios de estado, se informa a los descubridores. Si necesita datos del jugador, pregunta al servidor de billing. El juego ocurre aqui.
- Cliente de juego. Los ordenadores de la gente que juega. En el modelo C/S puro, un cliente es una terminal tonta que solo renderiza. En el modelo C/S que se puede tener en internet, el cliente debe saber calcular los frames intermedios deduciendo informacion de algun conocimiento del mundo (velocidad de los objetos, colisiones, etc.).

Un MMORPG normal ni se parece a esto. Es varias ordenes de magnitud mas complejo.


Gracias por responder....

Entonces para un juego online tendria q trabajar con el modelo de 3+ capas (dependiendo del tipo de juego), verdad???

Tei

Cita de: "chr2004aqp"
Gracias por responder....

Entonces para un juego online tendria q trabajar con el modelo de 3+ capas (dependiendo del tipo de juego), verdad???

Normalmente para estos juegos necesitas persistencia de datos. Asi que necesitas una capa de datos. Y habra una capa de presentacion, digamos, la renderizacion del cliente.
Pero que haya solo una capa de negocio... pues no se.

En realidad esa jerga de tres capas es para programacion de negocios. No se si es muy aplicable aqui.  Ademas no estamos hablando de un solo programa. Sino de muchas aplicaciones.  

Y como ya digo, no soy el mas apropiado para responder.

kaworu

hmm personalmente en mi proyecto lo estamos tratando de la siguiente forma, pero tened en cuenta que lo hemos planteado para un número muy limitado de jugadores:
- 1 base de datos con las tablas que hagan falta.... y en el mismo pc se colocaría un servidor que será el que gestione tanto el log-in de usuarios como la creación y eliminación de personajes...
- X servidores de juegos.. teniendo en cuenta la población del juego, el tamaño de los mapas y la cantidad de objetos y npjs, es importante dividir la extensión del mapa en diversos servidores de juego...
- 2 clientes, uno para nosotros, que nos permita actuar como Game Masters, gestionando a los usuarios directamente desde el juego y otro como cliente normal...
- 1 servidor de chat.. para gestionar las comunicaciones de los clientes.
visto desde los comentarios de Tei, sería de la siguiente forma:
El servidor de Billing es el que se encarga del log-in y la creación y eliminación de personajes.
los Browsers o descubridores no los utilizamos, de momento tenemos un solo servidor de juego y no nos hace falta, de todos modos, luego la información podría enviarse desde el servidor de chat directamente o estar codeada en el juego.
Los servidores de juego son tal cual, pero los cambios en personaje se guardan directamente desde aquí sin pasar por billing.
El cliente no solo muestra, sino que hace validaciones y guarda datos para enviar por pantalla. Hay muchos datos informativos que no cambian y que tenerlos en el cliente evita bastantes transacciones. A demás aunque todas las validaciones y acciones se realizan en el servidor, en ocasiones el cliente hace una 1ª validación de lo que acaba de ocurrir, luego se le envía al servidor y este hace una segunda. Aunque es redundante, creemos que es más efectivo que dejarle el trabajo solo al servidor, ya que el procesador del cliente no se va a quejar por ejecutar código de más, pero quizás al servidor si le moleste lanzar feedbacks a mallores xD
El sistema de capas.. ni me lo he planteado para el juego

maju

esta bien este diagrama ?


Servidor ..................................cliente

  red <================> Red
 B.Datos ..................................Graficos
 IA...........................................Sonidos
Control Colisiones.....................
control dispositivos






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.