Curso de Arquitectura del Motor de Videojuego - A Distancia

Contacta sin compromiso con Centro de Estudios Superiores CODI

Para enviar la solicitud debes aceptar la política de privacidad

Comentarios sobre Curso de Arquitectura del Motor de Videojuego - Online

  • Contenido
    Curso de Arquitectura del Motor de Videojuego.

    Introducción.

    Actualmente, la industria del videojuego goza de una muy buena salud a nivel mundial, rivalizando en presupuesto con las industrias cinematográfica y musical.
    En este capítulo se discute, desde una perspectiva general, el desarrollo de videojuegos, haciendo especial hincapié en su evolución y en los distintos elementos involucrados en este complejo proceso de desarrollo. En la segunda parte del capítulo se introduce el concepto de arquitectura del motor, como eje fundamental para el diseño y desarrollo de videojuegos comerciales.

    Objetivos.

    Este libro forma parte de una colección de cuatro volúmenes dedicados al Desarrollo de Videojuegos. Con un perfil principalmente técnico, estos cuatro libros cubren los aspectos esenciales en programación de videojuegos. El objetivo de este módulo es introducir los conceptos básicos relativos a las estructuras y principios de diseño y desarrollo comúnmente empleados en la creación de videojuegos. Para ello, uno de los principales objetivos es proporcionar una visión general de la arquitectura general de un motor de juegos. Dentro del contexto de esta arquitectura general se hace especial hincapié en aspectos como los subsistemas de bajo nivel, el bucle de juego, la gestión básica de recursos, como el sonido, y la gestión de la concurrencia. Por otra parte, en este primer módulo también se estudian los fundamentos del lenguaje de programación C++ como herramienta fundamental para el desarrollo de videojuegos profesionales. Este estudio se complementa con una discusión en profundidad de una gran variedad de patrones de diseño y de la biblioteca STL. Además, también se realiza un recorrido por herramientas que son esenciales en el desarrollo de proyectos software complejos, como por ejemplo los sistemas de control de versiones, o procesos como la compilación o la depuración.

    Temario.

    1. Introducción

    1.1. El desarrollo de videojuegos
    1.1.1. La industria del videojuego. Presente y futuro
    1.1.2. Estructura típica de un equipo de desarrollo
    1.1.3. El concepto de juego
    1.1.4. Motor de juego
    1.1.5. Géneros de juegos
    1.2. Arquitectura del motor. Visión general
    1.2.1. Hardware, drivers y sistema operativo
    1.2.2. SDKs y middlewares
    1.2.3. Capa independiente de la plataforma
    1.2.4. Subsistemas principales
    1.2.5. Gestor de recursos
    1.2.6. Motor de rendering
    1.2.7. Herramientas de depuración
    1.2.8. Motor de física
    1.2.9. Interfaces de usuario
    1.2.10.Networking y multijugador
    1.2.11.Subsistema de juego
    1.2.12.Audio
    1.2.13.Subsistemas específicos de juego

    2. Herramientas de Desarrollo

    2.1. Introducción
    2.2. Compilación, enlazado y depuración
    2.2.1. Conceptos básicos
    2.2.2. Compilando con GCC
    2.2.3. ¿Cómo funciona GCC?
    2.2.4. Ejemplos
    2.2.5. Otras herramientas
    2.2.6. Depurando con GDB
    2.2.7. Construcción automática con GNU Make
    2.3. Gestión de proyectos y documentación
    2.3.1. Sistemas de control de versiones
    2.3.2. Documentación
    2.3.3. Forjas de desarrollo

    3. C++. Aspectos Esenciales

    3.1. Utilidades básicas
    3.1.1. Introducción a C++
    3.1.2. ¡Hola Mundo! en C++
    3.1.3. Tipos, declaraciones y modificadores
    3.1.4. Punteros, arrays y estructuras
    3.1.5. Referencias y funciones
    3.2. Clases
    3.2.1. Fundamentos básicos
    3.2.2. Aspectos específicos de las clases
    3.2.3. Sobrecarga de operadores
    3.3. Herencia y polimorfismo
    3.3.1. Herencia
    3.3.2. Herencia múltiple
    3.3.3. Funciones virtuales y polimorfismo
    3.4. Plantillas
    3.4.1. Caso de estudio. Listas
    3.4.2. Utilizando plantillas en C++
    3.4.3. ¿Cuándo utilizar plantillas?
    3.5. Manejo de excepciones
    3.5.1. Alternativas existentes
    3.5.2. Excepciones en C++
    3.5.3. ¿Cómo manejar excepciones adecuadamente?
    3.5.4. ¿Cuándo utilizar excepciones?

    4. Patrones de Diseño

    4.1. Introducción
    4.1.1. Estructura de un patrón de diseño
    4.1.2. Tipos de patrones
    4.2. Patrones de creación
    4.2.1. Singleton
    4.2.2. Abstract Factory
    4.2.3. Factory Method
    4.2.4. Prototype 
    4.3. Patrones estructurales
    4.3.1. Composite
    4.3.2. Decorator
    4.3.3. Facade
    4.3.4. MVC
    4.3.5. Adapter
    4.3.6. Proxy
    4.4. Patrones de comportamiento
    4.4.1. Observer
    4.4.2. State
    4.4.3. Iterator
    4.4.4. Template Method
    4.4.5. Strategy
    4.4.6. Reactor
    4.4.7. Visitor
    4.5. Programming Idioms
    4.5.1. Orthodox Canonical Form
    4.5.2. Interface Class
    4.5.3. Final Class
    4.5.4. pImpl

    5. La Biblioteca STL

    5.1. Visión general de STL
    5.2. STL y el desarrollo de videojuegos
    5.2.1. Reutilización de código
    5.2.2. Rendimiento
    5.2.3. Inconvenientes
    5.3. Secuencias
    5.3.1. Vector
    5.3.2. Deque
    5.3.3. List
    5.4. Contenedores asociativos
    5.4.1. Set y multiset
    5.4.2. Map y multimap
    5.5. Adaptadores de secuencia
    5.5.1. Stack
    5.5.2. Queue
    5.5.3. Cola de prioridad

    6. Gestión de Recursos

    6.1. El bucle de juego
    6.1.1. El bucle de renderizado
    6.1.2. Visión general del bucle de juego
    6.1.3. Arquitecturas típicas del bucle de juego
    6.1.4. Gestión de estados de juego con Ogre3D
    6.1.5. Definición de estados concretos
    6.2. Gestión básica de recursos
    6.2.1. Gestión de recursos con Ogre3D
    6.2.2. Gestión básica del sonido
    6.3. El sistema de archivos
    6.3.1. Gestión y tratamiento de archivos
    6.3.2. E/S básica
    6.3.3. E/S asíncrona
    6.3.4. Caso de estudio. La biblioteca Boost.Asio C++
    6.3.5. Consideraciones finales
    6.4. Importador de datos de intercambio
    6.4.1. Formatos de intercambio
    6.4.2. Creación de un importador

    7. Bajo Nivel y Concurrencia

    7.1. Subsistema de arranque y parada
    7.1.1. Aspectos fundamentales
    7.1.2. Esquema típico de arranque y parada
    7.1.3. Caso de estudio. Ogre 3D
    7.1.4. Caso de estudio. Quake III
    7.2. Contenedores
    7.2.1. Iteradores
    7.2.2. Más allá de STL
    7.3. Subsistema de gestión de cadenas
    7.3.1. Cuestiones específicas
    7.3.2. Optimizando el tratamiento de cadenas
    7.3.3. Hashing de cadenas
    7.4. Configuración del motor
    7.4.1. Esquemas típicos de configuración
    7.4.2. Caso de estudio. Esquemas de definición
    7.5. Fundamentos básicos de concurrencia
    7.5.1. El concepto de hilo
    7.5.2. El problema de la sección crítica
    7.6. La biblioteca de hilos de ICE
    7.6.1. Internet Communication Engine
    7.6.2. Manejo de hilos
    7.6.3. Exclusión mutua básica
    7.6.4. Flexibilizando el concepto de mutex
    7.6.5. Introduciendo monitores
    7.7. Multi-threading en Ogre3D
    7.8. Caso de estudio. Procesamiento en segundo plano mediante hilos

    Formato del Curso.

    El programa es una capacitación intensiva de 6 meses que prepara a los alumnos en los conceptos fundamentales de la creación de videojuegos usando herramientas como Gamemaker o Unity .

    Duración: 6 meses .
    Se estima una dedicación diaria promedio, por parte de los alumnos, de una hora aproximadamente.
    Carga Horaria: 250 hs.
    Precio: 475 Euros
    Modalidad: A Distancia
    La modalidad es totalmente a distancia a través de la Página Web de CEsCODI .

    Las actividades que se realizarán serán:
    • Foros de discusión semanal propuestos por el docente
    • Consulta al docente a través de e-mail o chat
    • Material de lectura semanal y por unidad temática
    • Actividades individuales y/o grupales de aplicación práctica semanal y por unidad temática
    • Evaluaciones semanales y por unidad temática sobre la base de trabajo.
    • Prácticas de aplicación de los conocimientos adquiridos

Otra formación relacionada con Programación

Este sitio utiliza cookies.
Si continua navegando, consideramos que acepta su uso.
Ver más  |