viernes, 26 de julio de 2013

Videojuego Desarrollo

1.JUGABILIDAD Y EXP DE JUGADOR

- Satisfacción. Agrado o complacencia del jugador ante el videojuego y el proceso de jugarlo.

- Aprendizaje. Facilidad para comprender y dominar el sistema y la mecánica del videojuego. Más adelante se indica cómo estos conceptos se definen en lo que se denomina Gameplay y que se construye durante el proceso de desarrollo del juego.

- Efectividad. Tiempo y recursos necesarios para ofrecer diversión al jugador mientras éste logra los objetivos propuestos en el videojuego y alcanza su meta final.

- Inmersión. Capacidad para creerse lo que se juega e integrarse en el mundo virtual mostrado en el juego.

- Motivación. Característica del videojuego que mueve a la persona a realizar determinadas acciones y a persistir en ellas para su culminación.

- Emoción. Impulso involuntario originado como respuesta a los estímulos del videojuego, que induce sentimientos y que desencadena conductas de reacción automática.

- Socialización. Atributos que hacen apreciar el videojuego de distinta manera al jugarlo en compañía (multijugador), ya sea de manera competitiva, colaborativa o cooperativa.

2. FACETAS DE JUGABILIDAD

-Jugabilidad Intrínseca. Se trata de la Jugabilidad medida en la propia naturaleza del juego y cómo se proyecta al jugador. Está ligada al diseño del Gameplay que se describe más adelante. La forma de valorarla pasa por analizar cómo se representan las reglas, los objetivos, el ritmo y las mecánicas del videojuego.

- Jugabilidad Mecánica. Es la Jugabilidad asociada a la calidad del videojuego como sistema software. Está ligada a lo que sería el motor del juego, haciendo hincapié en características como
la fluidez de las escenas cinemáticas, la correcta iluminación, el sonido, los movimientos gráficos y el comportamiento de los personajes del juego y del entorno, sin olvidar los sistemas de comunicación en videojuegos que incorporan un modo multijugador.

- Jugabilidad Interactiva. Es la faceta asociada a todo lo relacionado con la interacción con el usuario, el diseño de la interfaz de usuario, los mecanismos de diálogo y los sistemas de control.

- Jugabilidad Artística. Está asociada a la calidad y adecuación artística y estética de todos los elementos del videojuego y a la naturaleza de éste. Entre ellos estarán la calidad gráfica y visual,
los efectos sonoros, la banda sonora y las melodías del juego, la historia y la forma de narración de ésta, así como la ambientación realizada de todos estos elementos dentro del videojuego.

- Jugabilidad Intrapersonal (o Personal). Está relacionada con la percepción que tiene el propio usuario del videojuego y los sentimientos que le produce. Como tal, tiene un alto valor subjetivo.

- Jugabilidad Interpersonal (o de Grupo). Muestra las sensaciones o percepciones de los usuarios que aparecen cuando se juega en grupo, ya sea de forma competitiva, cooperativa o colaborativa. En relación a cualquier sistema interactivo con soporte para grupos, se relacionaría con lo que tiene que ver con percepción del grupo (o awareness de grupo).

3. CALIDAD DEL JUEGO EN BASE A LA JUGABILIDAD
4. ORGANIZACION

DISEÑO
- D. NIVELES
- D. ARTISTICO
- GUIONISTAS

DESARROLLO
- DISEÑADOR DE SW
- PROGRAMAC
--- P GRAF
--- P IA
--- P DE SW
--- P DE AUDIO
--- P DE RED

TEST Y QA
- QA JUGABILIDAD
- QA FUNCIONALIDAD
- QA LEGAL

MARKETING
- PUBLICISTA
- RELACIONES PRENSA

5. Capa independiente de la plataforma
6. Programación multihilo

- Capacidad de respuesta, ya que el uso de múltiples hilos proporciona un enfoque muy flexible. Así, es posible que un hilo se encuentra atendiendo una petición de E/S mientras otro continúa con la ejecución de otra funcionalidad distinta. Además, es posible plantear un esquema basado en el paralelismo no bloqueante en llamadas al sistema, es decir, un esquema basado en el bloqueo de un hilo a nivel individual.

- Compartición de recursos, posibilitando que varios hilos mane-
jen el mismo espacio de direcciones.

- Eficacia, ya que tanto la creación, el cambio de contexto, la destrucción y la liberación de hilos es un orden de magnitud más rápida que en el caso de los procesos pesados. Recuerde que las
operaciones más costosas implican el manejo de operaciones de E/S. Por otra parte, el uso de este tipo de programación en arquitecturas de varios procesadores (o núcleos) incrementa enormemente el rendimiento de la aplicación.

--------------------

ICE (Internet Communication Engine) es un middleware de comunicaciones orientado a objetos, herramientas, APIs, y soporte de bibliotecas para construir aplicaciones distribuidas cliente-servidor orientadas a objetos. Multiplataforma.

-------------------

7. AI
Ilusion de inteligencia - COMPONENTE INTELIGENTE(dificultad o reto)

NPC = Agente = Non-Player Characters

- Autonomía, de manera que un agent actúa sin la intervención
directa de terceras partes. Por ejemplo, un personaje de un juego
de rol tendrá sus propios deseos, de manera independiente al
resto.

- Habilidad social, los agentes interactúan entre sí y se comunican
para alcanzar un objetivo común. Por ejemplo, los NPCs de un
shooter se comunicarán para cubrir el mayor número de entradas
a un edificio.

- Reactividad, de manera que un agente actúa en función de las
percepciones del entorno. Por ejemplo, un enemigo reaccionará,
normalmente, atacando si es atacado.

- Proactividad, de manera que un agente puede tomar la iniciati-
va en lugar de ser puramente reactivo. Por ejemplo, un enemigo
feroz atacará incluso cuando no haya sido previamente atacado.

8. MULTIJUGADOR

El uso de SOCK_STREAM implica una conexión confiable que lleva asociado unos mecanismos de reenvío, ordenación, etc. que consume tiempo de procesamiento a cambio de garantizar la entrega en el mismo orden de envío. En el caso de SOCK_DGRAM no se proporciona confiabilidad con lo que el tiempo de procesamiento se reduce.

¿Qué tipo de comunicación empleo?, bien, en función del tipo de datos que estemos transmitiendo deberemos usar un mecanismo u otro. Como norma general todos aquellos datos en tiempo real que no tiene sentido reenviar irán sobre SOCK_DGRAM mientras que aquellos tipos de datos mas sensibles y que son imprescindibles para el correcto funcionamiento deben ir sobre SOCK_STREAM.

Algunos ejemplos de uso de ambos protocolos nos pueden clarificar qué usos se le dan a uno y otro protocolo. En las últimamente populares conexiones multimedia en tiempo real, por ejemplo una comunicación VoIP, se suele usar para la transmisión del audio propiamente dicho el protocolo Real Time Protocol (RTP) que proporciona una conexión no confiable. Efectivamente, no tiene sentido reenviar una porción de audio que se pierde ya que no se puede reproducir fuera de orden y almacenar todo el audio hasta que el reenvío se produce generalmente no es aceptable en las comunicaciones. No obstante, en esas mismas comunicaciones el control de la sesión se delega en el protocolo Session Initiation Protocol (SIP) encargado del establecimiento de la llamada. Este tipo de datos requieren de confiabilidad y por ello SIP se implementa sobre TCP.

----------------------------------------------

Podemos trasladar este tipo de decisiones al diseño de los módulos de networking de un determinado videojuego. Una vez decidida la información necesaria que se debe transmitir entre los diversos participantes, debemos clasificar y decidir, para cada flujo de información si va a ser mediante una conexión confiable no confiable.

Es difícil dar normas genéricas por que, como adelantamos en la introducción, cada videojuego es diferente, no obstante, generalmente se utilizará comunicaciones no confiables para:

- Aquella información que por su naturaleza, lleven el tiempo implícito en su validez como información. Generalmente toda la información de tiempo real como movimientos de granularidad fina, audio y vídeo, etc.

- Información que pueda ser inferida a partir de datos que recibimos antes o después. Por ejemplo, si el movimiento de un personaje se compone de varios movimientos intermedios y se puede inferir uno de esos movimiento intermedios a partir del resto (o incluso ignorar), esa información es candidata a ser transmitida mediante una conexión o confiable.

----------------------------
JUEGO FPS

Comunicaciones confiables
- Inscribir a un personaje en una partida gestionada por un servidor.

Comunicaciones no confiables
- Posicion del enemigo

.. Cada cambio en la posición y orientación del jugador debe generar una serie de mensajes al servidor que, a su vez, debe comunicarlo a todos los jugadores involucrados.

.. Al ser un tipo de información que se modifica muy a menudo y vital para el juego, se debe notificar con mucha eficiencia.

.. En principio la pérdida ocasional de algún mensaje no debería plantear mayores problemas si se diseña con una granularidad adecuada. La información perdida puede inferirse de eventos anteriores y posteriores o incluso ignorarse.

9. CONSIDERACIONES DE DISEÑO

a. Compresión de datos: La compresión de datos entendida como las técnicas destinadas de cara a reducir el ancho de banda necesario para el juego multijugador. Entre las técnicas utilizadas podemos citar

• actualizaciones incrementales, es decir, enviar a los clientes sólo y exclusivamente la información que ha cambiado con respecto a la última actualización enviada. En esta técnica, de forma general, cada cierto tiempo se envía un estado completo del mundo para corregir posibles pérdidas de paquetes.

• seleccionar el destino de la información transmitida en función de qué clientes se ven afectados por el cambio de estado de los objetos en lugar de transmitir toda la información a todos.

• agregación: envío de datos comunes a varios jugadores con un solo paquete gracias a por ejemplo, el uso de comunicaciones multicast.


b. Interpolación: La interpolación permite obtener nuevos estados del mundo virtual del juego en el cliente a partir de los datos recibidos del servidor. En función de la complejidad de estos nuevos estados siempre son una aproximación al estado que tendríamos si obtuviéramos eventos de estado del servidor a una altísima frecuencia. Esta técnica nos permite actualizar el estado del juego en el cliente mas a menudo que las actualizaciones enviadas por el cliente y, al mismo tiempo, poder inferir información perdida en la red.

c. Predicción: La predicción nos ayuda a obtener nuevos estados futuros del mundo virtual del juego en el cliente a partir de los datos recibidos del servidor. La diferencia con la interpolación es que la interpolación genera nuevos estados entre dos estados recibidos por el servidor de cara a la renderización mientras que la predicción se adelanta a los eventos recibidos por el servidor.
Para ello, el cliente puede predecir su movimiento en función de la entrada que recibe del usuario y sin que el servidor se lo comunique.

d. Compensación de intervalo: a pesar de las técnicas anteriores siempre las acciones cuentan con un retardo que se debe compensar, en la medida de lo posible, guardando los eventos recibidos por los clientes y sincronizando el estado del mundo de forma acorde a como estaba el mundo cuando el evento fue originado, es decir, eliminando el intervalo de comunicación.

----------------------------

10. DISEÑO MULTIJUGADOR

Cuando hablamos de programación multijugador es necesario la gestión de varios clientes de forma simultánea. Existen dos alternativas a la atención de peticiones simultáneas de diversos clientes:

- Crear un nuevo proceso por cada petición. El socket servidor recibe una petición de conexión y crea un socket de servicio. Este socket de servicio se pasa a un proceso creado de forma expre-
sa para atender la petición. Este mecanismo desde el punto de vista del diseño es muy intuitivo con la consiguiente ventaja en mantenibilidad. De igual manera, para sistemas que sólo tienen un sólo procesador, este sistema adolece de problemas de escalabilidad ya que el número de cambios de contexto, para números considerables de clientes, hace perder eficiencia a la solución.

- Utilizar un mecanismo que nos permita almacenar las peticiones y notificar cuando un cliente nos manda una petición al servidor.


12. Multicast y Broadcast

Existen otros paradigmas de comunicación como son las comunicaciones uno a muchos (Multicast) y uno a todos (Broadcast).

En el caso de comunicaciones Multicast, el servidor comunica a un grupo de clientes identificados por un identificador (en IP existen un grupo de direcciones especiales para identificar estos grupos) de forma común algún dato de su interés.

Este tipo de comunicación es mucho mas efectiva ya que substitu-
ye, para un grupo de n clientes, a n conexiones unicast. En el caso de las comunicaciones Broadcast la comunicación se establece dentro de una subred entre el servidor y todos los computadores de ese dominio.

13. Eficiencia y limitaciones de la red

- P2P (peer to peer). Varias instancias idénticas del programa colaboran intercambiándose información. Un caso típico son los juegos multijugador de los 90, diseñados para ejecutarse en una LAN.

- Cliente-servidor. Muchos jugadores se conectan a un único servidor que controla el juego y tiene la imagen global de lo que ocurre. Esta arquitectura desacopla en muchos casos el desarrollo del juego y las interacciones entre los jugadores simplificando las tareas de la parte cliente.

- Pool de servidores. Cuando la cantidad de jugadores es muy grande (cientos o miles) se utilizan varios servidores coordinados de modo que se pueda balancear la carga. Sin embargo, su sincronización puede ser compleja.


14. Restricciones especificas de los juegos en red

- Capacidad de cómputo
- Ancho de banda
- Latencia

15. Modelo de información

- Centralizado, Es el modelo más sencillo. Un único componente (el servidor)

- Replicado, En este caso, varios (incluso todos) los participantes en el juego tienen una copia del mundo virtual. Eso implica la necesidad de sincronizar esa información entre los participantes.

- Distribuido, Cada participante tiene una parte del estado global del juego, normalmente la que más le afecta, de modo que se reducen los mensajes necesarios para determinar la situación de
cada jugador.

16. Uso de recursos de red

- El número de mensajes transmitidos.
- La cantidad media de destinatarios por mensaje.
- El ancho de banda medio requerido para enviar un mensaje a cada destinatario.
- La urgencia de que el mensaje llegue a cada destinatario.
- La cantidad de procesamiento necesario para procesar cada mensaje entrante.

17. Predicciones y extrapolación

18. MIDDLEWARE DE COMUNICACION

http://www.cursodesarrollovideojuegos.com/

No hay comentarios:

Publicar un comentario