SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
UNIVERSIDAD NACIONAL DE TRUJILLO
FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS
ESCUELA ACADÉMICO PROFESIONAL DE INFORMATICA
DESARROLLO DE UN VIDEOJUEGO MULTIJUDADOR
USANDO ARQUITECTURA CLIENTE – SERVIDOR
ALUMNOS:
Luis Visitación, Jhonatan Telmo
García Vergara, Cristhian Eduardo
PROFESOR:
Díaz Pulido, Arturo
TRUJILLO – PERÚ
2018
INDICE
RESUMEN ......................................................................................................................... 3
INTRODUCCIÓN………………………………………………………………………… 4
REALIDAD PROBLEMÁTICA........................................................................................ 5
MARCO TEORICO ........................................................................................................... 6
1. Processing......................................................................................................................... 6
2. Arquitectura Cliente-Servidor........................................................................................ 7
3. Sockets ........................................................................................................................ 8
INGENIERIA DEL PROYECTO.................................................................................... 10
Código con su respectiva explicación................................................................................ 10
CONCLUSIONES...............................................................................................................19
BIBLIOGRÁFIA ................................................................................................................20
RESUMEN
El presente proyecto trata de llevar a cabo el desarrollo para un videojuego utilizando
arquitectura cliente-servidor. En el informe se explicará sobre el caso de estudio
especificado como también de temas que se engloban en el marco teórico, ya que es
necesario darlas a conocer para así lograr un mayor entendimiento para el público en
general.
INTRODUCCION
Los videojuegos forman parte de esta cultura digital, principalmente como medios de
entretenimiento, sin embargo, debido al avance tecnológico, los videojuegos también
son considerados medio de comunicación enfocados al entretenimiento individual o
colectivo, permitiendo originar comunidades virtuales. Los videojuegos son medios que
a pesar del paso de los años han tenido la preferencia en el publico infantil y juvenil. No
son indispensables en la vida de jóvenes y niños, pero estos los han hecho parte
importante de sus vidas como una fuente de entretenimiento, debido a que les brindan
la sensación de experiencia que difícilmente tendrán en la vida real.
La evolución de la historia de los videojuegos llego en el mejor momento, desde el
comienzo de siglo hasta hoy en día los juegos mejoraron en todos los sentidos posibles
y así llego las siguientes generaciones. En la actualidad el tamaño de la industria de los
videojuegos moderna puede superar las expectativas de los hombres que los crearon,
pero los videojuegos van a seguir creándose como siempre inspirándose con la historia
y las culturas, con la imaginación, la tecnología para dar historias y retos que desafíen a
las siguientes generaciones sim importar en lo que se convierta.
El presente proyecto será crear un videojuego de un laberinto, un juego simple y
divertido, donde vamos a enlazar dos computadoras usando arquitectura cliente-
servidor y así poder jugar en línea y entretener a los usuarios.
REALIDAD PROBLEMÁTICA
En los últimos años las perspectivas de futuro son los juegos online más que nunca. Ya
que forma parte del pasado, el hecho de fabricar un juego para venderlo sin más.
Ahora los juegos se van actualizando periódicamente y con acceso a través de la nube,
y esto supone importantes oportunidades, pero también desafíos para los fabricantes.
MARCO TEORICO
1. Processing
Es un lenguaje de programación orientado a diseñadores que no tienen
necesariamente que saber programar para usarlo creado por Ben Fry y Casey Reas.
Pensado especialmente para proyectos multimedia de diseñadores audiovisuales y
como herramienta alternativa al software propietario, ya que se distribuye con
licencia GNU GPL.
Uno de los objetivos declarados de Processing es el de actuar como herramienta
para que artistas, diseñadores visuales y miembros de otras comunidades ajenos al
lenguaje de la programación, aprendieran las bases de la misma a través de una
muestra gráfica instantánea y visual de la información.
Processing está basado en java por lo que toda la sintaxis es exportada a applets
Java, también se puede usar JavaScript o incluso Android para ejecutar las
creaciones en aplicaciones móviles.
2. Arquitectura Cliente-Servidor
La arquitectura cliente-servidor modelo de diseño de software en el que las tareas
se reparten entre los proveedores de recursos o servicios, llamados servidores, y los
demandantes, llamados clientes. Un cliente realiza peticiones a otro programa,
el servidor, quien le da respuesta. Esta idea también se puede aplicar a programas
que se ejecutan sobre una sola computadora, aunque es más ventajosa en un
sistema operativo multiusuario distribuido a través de una red de computadoras.
En esta arquitectura la capacidad de proceso está repartida entre los clientes y los
servidores, aunque son más importantes las ventajas de tipo organizativo debidas
a la centralización de la gestión de la información y la separación de
responsabilidades, lo que facilita y clarifica el diseño del sistema.
La separación entre cliente y servidor es una separación de tipo lógico, donde el
servidor no se ejecuta necesariamente sobre una sola máquina ni es
necesariamente un sólo programa. Los tipos específicos de servidores incluyen los
servidores web, los servidores de archivo, los servidores del correo, etc. Mientras
que sus propósitos varían de unos servicios a otros, la arquitectura básica seguirá
siendo la misma.
Los dos componentes del paradigma son:
Cliente: aplicación que inicia la comunicación, es dirigida por el usuario.
Servidor: es quien responde a los requerimientos de los clientes, son
procesos que se están ejecutando indefinidamente.
Los procesos clientes son más sencillos que los procesos de los servidores,
los primeros no requieren de privilegios de sistemas para funcionar, en
cambio los procesos servidores sí.
Los usuarios cuando quieren acceder a un servicio de red, ejecutan un
software cliente. El diseño de los servidores debe ser muy cuidadoso, debe
incluir código para la manipulación de:
 Autenticación: verificar la identidad del cliente.
 Seguridad de datos: para que estos no puedan ser accedidos
inapropiadamente.
 Privacidad: garantizar que la información privada de un usuario, no sea
accedida por alguien no autorizado.
 Protección: asegurar que las aplicaciones no monopolicen los recursos del
sistema.
 Autorización: verificar si el cliente tiene acceso al servicio proporcionado por
el servidor.
La mayoría de las comunicaciones punto-a-punto en las redes (incluida
Internet), están basadas en el modelo Cliente/Servidor. Desde el punto de
vista Internet/Intranet, se tendría:
 Un servidor es un ordenador remoto - en algún lugar de la red – que
proporciona información según petición.
 Un cliente funciona en su ordenador local, se comunica con el servidor
remoto, y pide a éste información.
 El servidor envía la información solicitada.
Un único servidor típicamente sirve a una multitud de clientes, ahorrando a
cada uno de ellos el problema de tener la información instalada y almacenada
localmente.
3. Sockets
Normalmente, un servidor se ejecuta en una máquina específica y tiene un socket
asociado a un número de puerto específico. El servidor simplemente espera a la
escucha en el socket a que un cliente se conecte con una petición.
El cliente conoce el nombre de la máquina sobre la que está ejecutándose el
servidor y el número de puerto al que está conectado. Solicitar una conexión
consiste en intentar establecer una cita con el servidor en el puerto de la máquina
servidora.
Si todo va bien, el servidor acepta la conexión. Pero antes, el servidor crea un nuevo socket
en un puerto diferente. Es necesario crear un nuevo socket (y consecuentemente un
número de puerto diferente) de forma que en el socket original se continúe a la escucha de
las peticiones de nuevos clientes mientras se atiende a las necesidades del cliente
conectado. En el cliente, si se acepta la conexión, el socket se crea satisfactoriamente y se
puede utilizar para comunicarse con el servidor.
Un socket es el extremo final de un enlace punto-a-punto que comunica a dos programas
ejecutándose en una red.
Los sockets siempre están asociados a un número de puerto que es utilizado por TCP para
identificar la aplicación a la que está destinada la solicitud y poder redirigírsela.
INGENIERIA DEL PROYECTO
I. Arquitectura
La arquitectura de red más utilizada es la arquitectura llamada TCP/IP, que se
basa en el modelo de red teórico OSI. Esta arquitectura toma su nombre del
protocolo de transporte TCP y del protocolo de red IP. Al ser la arquitectura de
red en la que se basa Internet, otras redes que se conectan a ella también
emplean la misma arquitectura.
El modelo TCP/IP se divide en cuatro niveles, de los que nos interesan los tres
niveles superiores (de menor a mayor):
 Nivel de Interred; Su función es la encaminar los paquetes de datos hasta
su destino final. Utiliza un sistema de direccionamiento que identifica de
forma única a cada dispositivo de comunicaciones llamado dirección IP.
 Nivel de transporte; Es el encargado de establecer el canal de
comunicaciones extremo a extremo. Dispone de dos protocolos: TCP y
UDP.
 TCP es un protocolo orientado a conexión, es decir, espera confirmación
de cada unidad de datos que envía. Debido a ello emisor y receptor deben
establecer una conexión antes de empezar a enviarse datos deben cerrarla
después de terminar la comunicación. Funciona análogamente como un
servicio de telefonía.
 UDP es un protocolo no orientado a conexión, sin garantía de entrega del
mensaje, pero más rápido que TCP. Por lo tanto, no es necesario establecer
una conexión entre emisor y receptor.
 Nivel de aplicación; Es el nivel más alto del modelo TCP/IP y lo forman las
aplicaciones que ofrecen sus servicios al usuario o al sistema dónde están
instaladas. Ejemplos de protocolos de este nivel son HTTP, FTP o SSH.
CODIGO CON SU RESPECTIVA EXPLICACION
1. CLASE SERVIDOR
Inicializamos todas las variables incluyendo los clientes que se van a conectar.
Iniciamos el servidor en el puerto 12345
Hacemos la conexión con los clientes y leemos los datos que envían (coordenadas x y)
Enviamos los datos desde el servidor al cliente
2. CLASE CLIENTE
Iniciamos el servidor y el cliente
Creamos la matriz que define los bloques y el espacio libre en el mapa
Inicializamos el cliente conectado a través del ip local al puerto 12345
Le damos valores a los parámetros del jugador(posicionX,posicionY,velocidad)
Llamamos a los métodos para validar los movimientos y colisiones
Enviamos las coordenadas del cliente activo al servidor.
Recibimos las coordenadas de nuestro oponente desde el servidor para pintar su
ubicación en la pantalla.
Pintamos todos los ceros de la matriz con una imagen de bloque.
Creamos la clase jugador con 3 parámetros (x,y,velocidad)
El método actualizar pinta la ubicación del cliente en el mapa
El método parar detiene el movimiento al encontrarse con un bloque en su camino
Creamos una función para enviar datos con las coordenadas x y
A través de eventos por teclado determinamos los movimientos que hacemos.
CONCLUSIÓNES
Mediante el presente informe del PROYECTO del curso de Teleprocesamiento se escogió
el tema de un “Desarrollo de un sistema multijugador usando arquitectura Cliente-
Servidor”.
La conexión de varios clientes a uno o varios servidores es posible a través de puertos
en internet, contribuyendo a una comunicación eficaz entre los mismos.
El tiempo de respuesta que hay por petición de respuesta es ínfimo, ideal para su uso
en juegos en línea o servicios de mensajería.
Los videojuegos online desarrollan en sus usuarios competitividad y más
entretenimiento, esto es posible gracias a esta arquitectura.
BIBLIOGRAFIAS
http://nereida.deioc.ull.es/~cleon/doctorado/doc06/doc06/html/node9.html
https://upcommons.upc.edu/bitstream/handle/2099.1/3703/357731.pdf?sequence=2&is
Allowed=y
https://www.ctr.unican.es/asignaturas/procodis_3_II/Doc/Procodis_6_01.pdf
Desarrolo de un videojuego multijugador usando arquitectura Cliente-Servidor
Desarrolo de un videojuego multijugador usando arquitectura Cliente-Servidor
Desarrolo de un videojuego multijugador usando arquitectura Cliente-Servidor
Desarrolo de un videojuego multijugador usando arquitectura Cliente-Servidor

Más contenido relacionado

La actualidad más candente

Guia instalacion y configuracion nagios
Guia instalacion y configuracion nagiosGuia instalacion y configuracion nagios
Guia instalacion y configuracion nagiosPedro Alcaraz Díaz
 
Transferencia de bases de datos entre sistemas gestores
Transferencia de bases de datos entre sistemas gestoresTransferencia de bases de datos entre sistemas gestores
Transferencia de bases de datos entre sistemas gestoresTotus Muertos
 
Server virtualization
Server virtualizationServer virtualization
Server virtualizationofsorganizer
 
Cisco HyperFlex 3.0
Cisco HyperFlex 3.0Cisco HyperFlex 3.0
Cisco HyperFlex 3.0Chase Rothe
 
Security Best Practices For Hyper V And Server Virtualization
Security Best Practices For Hyper V And Server VirtualizationSecurity Best Practices For Hyper V And Server Virtualization
Security Best Practices For Hyper V And Server Virtualizationrsnarayanan
 
Sistemas Operativos Distribuidos.
Sistemas Operativos Distribuidos.Sistemas Operativos Distribuidos.
Sistemas Operativos Distribuidos.argentm
 
Alta disponibilidad-con-heartbeat
Alta disponibilidad-con-heartbeatAlta disponibilidad-con-heartbeat
Alta disponibilidad-con-heartbeatDavid Acevedo
 
Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)Novell
 
Organismos Que Rigen El Cableado Estructurado
Organismos Que Rigen El Cableado EstructuradoOrganismos Que Rigen El Cableado Estructurado
Organismos Que Rigen El Cableado Estructuradoviaesvita
 
Tabla comparativa servidores web
Tabla comparativa servidores webTabla comparativa servidores web
Tabla comparativa servidores webjuancma77
 
VMWare Tools Installation and Troubleshooting Guide
VMWare Tools Installation and Troubleshooting GuideVMWare Tools Installation and Troubleshooting Guide
VMWare Tools Installation and Troubleshooting GuideVCP Muthukrishna
 
Seguridad De Las Redes
Seguridad De Las RedesSeguridad De Las Redes
Seguridad De Las RedesNextPlaylist
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidosYohany Acosta
 

La actualidad más candente (20)

Guia instalacion y configuracion nagios
Guia instalacion y configuracion nagiosGuia instalacion y configuracion nagios
Guia instalacion y configuracion nagios
 
Transferencia de bases de datos entre sistemas gestores
Transferencia de bases de datos entre sistemas gestoresTransferencia de bases de datos entre sistemas gestores
Transferencia de bases de datos entre sistemas gestores
 
Server virtualization
Server virtualizationServer virtualization
Server virtualization
 
Cisco HyperFlex 3.0
Cisco HyperFlex 3.0Cisco HyperFlex 3.0
Cisco HyperFlex 3.0
 
Security Best Practices For Hyper V And Server Virtualization
Security Best Practices For Hyper V And Server VirtualizationSecurity Best Practices For Hyper V And Server Virtualization
Security Best Practices For Hyper V And Server Virtualization
 
Capa de red
Capa de redCapa de red
Capa de red
 
Arquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidosArquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidos
 
VMWARE ESX
VMWARE ESXVMWARE ESX
VMWARE ESX
 
Presentacion http y https
Presentacion http y httpsPresentacion http y https
Presentacion http y https
 
Sistemas Operativos Distribuidos.
Sistemas Operativos Distribuidos.Sistemas Operativos Distribuidos.
Sistemas Operativos Distribuidos.
 
Protocolo de capa 3
Protocolo de capa 3Protocolo de capa 3
Protocolo de capa 3
 
Alta disponibilidad-con-heartbeat
Alta disponibilidad-con-heartbeatAlta disponibilidad-con-heartbeat
Alta disponibilidad-con-heartbeat
 
Protocolo de capa 4
Protocolo de capa 4Protocolo de capa 4
Protocolo de capa 4
 
Active directory
Active directoryActive directory
Active directory
 
Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)
 
Organismos Que Rigen El Cableado Estructurado
Organismos Que Rigen El Cableado EstructuradoOrganismos Que Rigen El Cableado Estructurado
Organismos Que Rigen El Cableado Estructurado
 
Tabla comparativa servidores web
Tabla comparativa servidores webTabla comparativa servidores web
Tabla comparativa servidores web
 
VMWare Tools Installation and Troubleshooting Guide
VMWare Tools Installation and Troubleshooting GuideVMWare Tools Installation and Troubleshooting Guide
VMWare Tools Installation and Troubleshooting Guide
 
Seguridad De Las Redes
Seguridad De Las RedesSeguridad De Las Redes
Seguridad De Las Redes
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 

Similar a Desarrolo de un videojuego multijugador usando arquitectura Cliente-Servidor

Segunda tarea kuky
Segunda tarea kukySegunda tarea kuky
Segunda tarea kukymonika18mary
 
Segunda tarea kuky
Segunda tarea kukySegunda tarea kuky
Segunda tarea kukymonika18mary
 
ingenieria de software
 ingenieria de software ingenieria de software
ingenieria de softwareEmanuelAmador
 
comunicacion web de la gestion contable.pdf
comunicacion web de la gestion contable.pdfcomunicacion web de la gestion contable.pdf
comunicacion web de la gestion contable.pdfEstefania358175
 
Arquitectura cliente servidor orlando casadiego remington cucuta
Arquitectura cliente servidor orlando casadiego remington cucutaArquitectura cliente servidor orlando casadiego remington cucuta
Arquitectura cliente servidor orlando casadiego remington cucutaOrlando Casadiego
 
Topologias de internet
Topologias de internetTopologias de internet
Topologias de internetsanchez159
 
Actividad #3 cliente servidor
Actividad #3 cliente servidorActividad #3 cliente servidor
Actividad #3 cliente servidorRobertNicolas8
 
TIC (Tecnologías de la Información y la Comunicación)
TIC (Tecnologías de la Información y la Comunicación)TIC (Tecnologías de la Información y la Comunicación)
TIC (Tecnologías de la Información y la Comunicación)coralhvega
 
Arquitectura servidores
Arquitectura servidoresArquitectura servidores
Arquitectura servidoresrulo182
 
Cloud computing (trabajo de informática) (3)
Cloud computing (trabajo de informática) (3)Cloud computing (trabajo de informática) (3)
Cloud computing (trabajo de informática) (3)Jesús Quiel
 
Ingeniería del software (bd en la nube)
Ingeniería del software (bd en la nube)Ingeniería del software (bd en la nube)
Ingeniería del software (bd en la nube)com2merwil
 

Similar a Desarrolo de un videojuego multijugador usando arquitectura Cliente-Servidor (20)

Segunda tarea kuky
Segunda tarea kukySegunda tarea kuky
Segunda tarea kuky
 
Segunda tarea kuky
Segunda tarea kukySegunda tarea kuky
Segunda tarea kuky
 
Proyecto final teleprocesamiento
Proyecto final teleprocesamientoProyecto final teleprocesamiento
Proyecto final teleprocesamiento
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidor
 
Aliaga
AliagaAliaga
Aliaga
 
ingenieria de software
 ingenieria de software ingenieria de software
ingenieria de software
 
comunicacion web de la gestion contable.pdf
comunicacion web de la gestion contable.pdfcomunicacion web de la gestion contable.pdf
comunicacion web de la gestion contable.pdf
 
Cliente servidor 2
Cliente servidor 2Cliente servidor 2
Cliente servidor 2
 
Arquitectura cliente servidor orlando casadiego remington cucuta
Arquitectura cliente servidor orlando casadiego remington cucutaArquitectura cliente servidor orlando casadiego remington cucuta
Arquitectura cliente servidor orlando casadiego remington cucuta
 
Topologias de internet
Topologias de internetTopologias de internet
Topologias de internet
 
Actividad #3 cliente servidor
Actividad #3 cliente servidorActividad #3 cliente servidor
Actividad #3 cliente servidor
 
Unidad1-Parte1.pdf
Unidad1-Parte1.pdfUnidad1-Parte1.pdf
Unidad1-Parte1.pdf
 
TIC (Tecnologías de la Información y la Comunicación)
TIC (Tecnologías de la Información y la Comunicación)TIC (Tecnologías de la Información y la Comunicación)
TIC (Tecnologías de la Información y la Comunicación)
 
Arquitectura servidores
Arquitectura servidoresArquitectura servidores
Arquitectura servidores
 
Cloud computing (trabajo de informática) (3)
Cloud computing (trabajo de informática) (3)Cloud computing (trabajo de informática) (3)
Cloud computing (trabajo de informática) (3)
 
Arquitectura cliente servidor
Arquitectura cliente servidorArquitectura cliente servidor
Arquitectura cliente servidor
 
Ingeniería del software (bd en la nube)
Ingeniería del software (bd en la nube)Ingeniería del software (bd en la nube)
Ingeniería del software (bd en la nube)
 
Informe n2 transmision
Informe n2 transmisionInforme n2 transmision
Informe n2 transmision
 
Revista andree
Revista andreeRevista andree
Revista andree
 
Revista andree
Revista andreeRevista andree
Revista andree
 

Desarrolo de un videojuego multijugador usando arquitectura Cliente-Servidor

  • 1. UNIVERSIDAD NACIONAL DE TRUJILLO FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS ESCUELA ACADÉMICO PROFESIONAL DE INFORMATICA DESARROLLO DE UN VIDEOJUEGO MULTIJUDADOR USANDO ARQUITECTURA CLIENTE – SERVIDOR ALUMNOS: Luis Visitación, Jhonatan Telmo García Vergara, Cristhian Eduardo PROFESOR: Díaz Pulido, Arturo TRUJILLO – PERÚ 2018
  • 2. INDICE RESUMEN ......................................................................................................................... 3 INTRODUCCIÓN………………………………………………………………………… 4 REALIDAD PROBLEMÁTICA........................................................................................ 5 MARCO TEORICO ........................................................................................................... 6 1. Processing......................................................................................................................... 6 2. Arquitectura Cliente-Servidor........................................................................................ 7 3. Sockets ........................................................................................................................ 8 INGENIERIA DEL PROYECTO.................................................................................... 10 Código con su respectiva explicación................................................................................ 10 CONCLUSIONES...............................................................................................................19 BIBLIOGRÁFIA ................................................................................................................20
  • 3. RESUMEN El presente proyecto trata de llevar a cabo el desarrollo para un videojuego utilizando arquitectura cliente-servidor. En el informe se explicará sobre el caso de estudio especificado como también de temas que se engloban en el marco teórico, ya que es necesario darlas a conocer para así lograr un mayor entendimiento para el público en general.
  • 4. INTRODUCCION Los videojuegos forman parte de esta cultura digital, principalmente como medios de entretenimiento, sin embargo, debido al avance tecnológico, los videojuegos también son considerados medio de comunicación enfocados al entretenimiento individual o colectivo, permitiendo originar comunidades virtuales. Los videojuegos son medios que a pesar del paso de los años han tenido la preferencia en el publico infantil y juvenil. No son indispensables en la vida de jóvenes y niños, pero estos los han hecho parte importante de sus vidas como una fuente de entretenimiento, debido a que les brindan la sensación de experiencia que difícilmente tendrán en la vida real. La evolución de la historia de los videojuegos llego en el mejor momento, desde el comienzo de siglo hasta hoy en día los juegos mejoraron en todos los sentidos posibles y así llego las siguientes generaciones. En la actualidad el tamaño de la industria de los videojuegos moderna puede superar las expectativas de los hombres que los crearon, pero los videojuegos van a seguir creándose como siempre inspirándose con la historia y las culturas, con la imaginación, la tecnología para dar historias y retos que desafíen a las siguientes generaciones sim importar en lo que se convierta. El presente proyecto será crear un videojuego de un laberinto, un juego simple y divertido, donde vamos a enlazar dos computadoras usando arquitectura cliente- servidor y así poder jugar en línea y entretener a los usuarios.
  • 5. REALIDAD PROBLEMÁTICA En los últimos años las perspectivas de futuro son los juegos online más que nunca. Ya que forma parte del pasado, el hecho de fabricar un juego para venderlo sin más. Ahora los juegos se van actualizando periódicamente y con acceso a través de la nube, y esto supone importantes oportunidades, pero también desafíos para los fabricantes.
  • 6. MARCO TEORICO 1. Processing Es un lenguaje de programación orientado a diseñadores que no tienen necesariamente que saber programar para usarlo creado por Ben Fry y Casey Reas. Pensado especialmente para proyectos multimedia de diseñadores audiovisuales y como herramienta alternativa al software propietario, ya que se distribuye con licencia GNU GPL. Uno de los objetivos declarados de Processing es el de actuar como herramienta para que artistas, diseñadores visuales y miembros de otras comunidades ajenos al lenguaje de la programación, aprendieran las bases de la misma a través de una muestra gráfica instantánea y visual de la información. Processing está basado en java por lo que toda la sintaxis es exportada a applets Java, también se puede usar JavaScript o incluso Android para ejecutar las creaciones en aplicaciones móviles. 2. Arquitectura Cliente-Servidor La arquitectura cliente-servidor modelo de diseño de software en el que las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados clientes. Un cliente realiza peticiones a otro programa, el servidor, quien le da respuesta. Esta idea también se puede aplicar a programas que se ejecutan sobre una sola computadora, aunque es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras. En esta arquitectura la capacidad de proceso está repartida entre los clientes y los servidores, aunque son más importantes las ventajas de tipo organizativo debidas a la centralización de la gestión de la información y la separación de responsabilidades, lo que facilita y clarifica el diseño del sistema.
  • 7. La separación entre cliente y servidor es una separación de tipo lógico, donde el servidor no se ejecuta necesariamente sobre una sola máquina ni es necesariamente un sólo programa. Los tipos específicos de servidores incluyen los servidores web, los servidores de archivo, los servidores del correo, etc. Mientras que sus propósitos varían de unos servicios a otros, la arquitectura básica seguirá siendo la misma. Los dos componentes del paradigma son: Cliente: aplicación que inicia la comunicación, es dirigida por el usuario. Servidor: es quien responde a los requerimientos de los clientes, son procesos que se están ejecutando indefinidamente. Los procesos clientes son más sencillos que los procesos de los servidores, los primeros no requieren de privilegios de sistemas para funcionar, en cambio los procesos servidores sí. Los usuarios cuando quieren acceder a un servicio de red, ejecutan un software cliente. El diseño de los servidores debe ser muy cuidadoso, debe incluir código para la manipulación de:  Autenticación: verificar la identidad del cliente.  Seguridad de datos: para que estos no puedan ser accedidos inapropiadamente.  Privacidad: garantizar que la información privada de un usuario, no sea accedida por alguien no autorizado.  Protección: asegurar que las aplicaciones no monopolicen los recursos del sistema.  Autorización: verificar si el cliente tiene acceso al servicio proporcionado por el servidor. La mayoría de las comunicaciones punto-a-punto en las redes (incluida Internet), están basadas en el modelo Cliente/Servidor. Desde el punto de vista Internet/Intranet, se tendría:  Un servidor es un ordenador remoto - en algún lugar de la red – que proporciona información según petición.  Un cliente funciona en su ordenador local, se comunica con el servidor remoto, y pide a éste información.  El servidor envía la información solicitada. Un único servidor típicamente sirve a una multitud de clientes, ahorrando a cada uno de ellos el problema de tener la información instalada y almacenada localmente.
  • 8. 3. Sockets Normalmente, un servidor se ejecuta en una máquina específica y tiene un socket asociado a un número de puerto específico. El servidor simplemente espera a la escucha en el socket a que un cliente se conecte con una petición. El cliente conoce el nombre de la máquina sobre la que está ejecutándose el servidor y el número de puerto al que está conectado. Solicitar una conexión consiste en intentar establecer una cita con el servidor en el puerto de la máquina servidora. Si todo va bien, el servidor acepta la conexión. Pero antes, el servidor crea un nuevo socket en un puerto diferente. Es necesario crear un nuevo socket (y consecuentemente un número de puerto diferente) de forma que en el socket original se continúe a la escucha de las peticiones de nuevos clientes mientras se atiende a las necesidades del cliente conectado. En el cliente, si se acepta la conexión, el socket se crea satisfactoriamente y se puede utilizar para comunicarse con el servidor. Un socket es el extremo final de un enlace punto-a-punto que comunica a dos programas ejecutándose en una red. Los sockets siempre están asociados a un número de puerto que es utilizado por TCP para identificar la aplicación a la que está destinada la solicitud y poder redirigírsela.
  • 9. INGENIERIA DEL PROYECTO I. Arquitectura La arquitectura de red más utilizada es la arquitectura llamada TCP/IP, que se basa en el modelo de red teórico OSI. Esta arquitectura toma su nombre del protocolo de transporte TCP y del protocolo de red IP. Al ser la arquitectura de red en la que se basa Internet, otras redes que se conectan a ella también emplean la misma arquitectura. El modelo TCP/IP se divide en cuatro niveles, de los que nos interesan los tres niveles superiores (de menor a mayor):  Nivel de Interred; Su función es la encaminar los paquetes de datos hasta su destino final. Utiliza un sistema de direccionamiento que identifica de forma única a cada dispositivo de comunicaciones llamado dirección IP.  Nivel de transporte; Es el encargado de establecer el canal de comunicaciones extremo a extremo. Dispone de dos protocolos: TCP y UDP.  TCP es un protocolo orientado a conexión, es decir, espera confirmación de cada unidad de datos que envía. Debido a ello emisor y receptor deben establecer una conexión antes de empezar a enviarse datos deben cerrarla después de terminar la comunicación. Funciona análogamente como un servicio de telefonía.  UDP es un protocolo no orientado a conexión, sin garantía de entrega del mensaje, pero más rápido que TCP. Por lo tanto, no es necesario establecer una conexión entre emisor y receptor.  Nivel de aplicación; Es el nivel más alto del modelo TCP/IP y lo forman las aplicaciones que ofrecen sus servicios al usuario o al sistema dónde están instaladas. Ejemplos de protocolos de este nivel son HTTP, FTP o SSH.
  • 10. CODIGO CON SU RESPECTIVA EXPLICACION 1. CLASE SERVIDOR Inicializamos todas las variables incluyendo los clientes que se van a conectar. Iniciamos el servidor en el puerto 12345
  • 11. Hacemos la conexión con los clientes y leemos los datos que envían (coordenadas x y) Enviamos los datos desde el servidor al cliente
  • 12. 2. CLASE CLIENTE Iniciamos el servidor y el cliente Creamos la matriz que define los bloques y el espacio libre en el mapa
  • 13. Inicializamos el cliente conectado a través del ip local al puerto 12345 Le damos valores a los parámetros del jugador(posicionX,posicionY,velocidad) Llamamos a los métodos para validar los movimientos y colisiones Enviamos las coordenadas del cliente activo al servidor. Recibimos las coordenadas de nuestro oponente desde el servidor para pintar su ubicación en la pantalla.
  • 14. Pintamos todos los ceros de la matriz con una imagen de bloque. Creamos la clase jugador con 3 parámetros (x,y,velocidad) El método actualizar pinta la ubicación del cliente en el mapa El método parar detiene el movimiento al encontrarse con un bloque en su camino
  • 15. Creamos una función para enviar datos con las coordenadas x y A través de eventos por teclado determinamos los movimientos que hacemos. CONCLUSIÓNES Mediante el presente informe del PROYECTO del curso de Teleprocesamiento se escogió el tema de un “Desarrollo de un sistema multijugador usando arquitectura Cliente- Servidor”. La conexión de varios clientes a uno o varios servidores es posible a través de puertos en internet, contribuyendo a una comunicación eficaz entre los mismos. El tiempo de respuesta que hay por petición de respuesta es ínfimo, ideal para su uso en juegos en línea o servicios de mensajería. Los videojuegos online desarrollan en sus usuarios competitividad y más entretenimiento, esto es posible gracias a esta arquitectura.