28/3/25

🧭 Ruta de Desarrollo: Cómo Convertirse en Desarrollador de Videojuegos con Unity III


 

🎮 Introducción

Una visión general inspiradora: cómo Unity ha democratizado el desarrollo de videojuegos y por qué es un excelente punto de partida para quienes sueñan con crear mundos interactivos.


1. 📚 Fundamentos que debes dominar primero

  • Lógica de programación (preferiblemente en C#)

  • Pensamiento computacional y resolución de problemas

  • Matemáticas básicas (vectores, coordenadas, transformaciones)


2. 🧱 Primeros pasos en Unity

  • Instalación del motor y primer proyecto

  • Jerarquía, GameObjects y Componentes

  • Uso del editor: escenas, prefabs, assets

  • Sistema de físicas y colisiones básicas


3. 💻 Aprender C# aplicado a videojuegos

  • Clases, estructuras, interfaces (en contexto de Unity)

  • Corutinas, eventos y manejo del ciclo de vida en MonoBehaviour

  • ScriptableObjects y uso inteligente de patrones de diseño


4. 🎨 Diseño y prototipado de juegos

  • Crear un juego simple (ej. Pong, plataformas o top-down shooter)

  • Prototipado rápido vs producción

  • Iteración y testeo de mecánicas


5. 🛠️ Herramientas y buenas prácticas

  • Uso de versionado con Git

  • Organización de proyectos y assets

  • Uso de la Asset Store con criterio

  • Crear herramientas propias dentro del editor (Editor Scripts)


6. 🚀 Especialización y rutas posibles

  • Gameplay programmer

  • UI/UX y diseño de interfaces

  • Animación y cinematics en Unity

  • IA para NPCs y enemigos

  • Desarrollo móvil / VR / multiplataforma


7. 📦 Publicar un juego

  • Construcción de builds

  • Testing multiplataforma

  • Publicación en Itch.io, Google Play, Steam, etc.


8. 🤖 Bonus: Cómo integrar IA a tus proyectos

  • Pathfinding con NavMesh

  • FSM y árboles de comportamiento

  • Uso de IA generativa (ChatGPT, arte, diálogos, diseño procedural)

     

     

    3. 💻 Aprender C# Aplicado a Videojuegos

    El siguiente paso fundamental en tu ruta de desarrollo es dominar C#

    Unity utiliza este lenguaje para todo, desde el control de personajes hasta la gestión de escenas y la implementación de la lógica del juego.

     Aquí no solo debes aprender la sintaxis, sino cómo aplicar esos conocimientos directamente al desarrollo de videojuegos, esto implica fuertemente saber como crear scripts con las mejores practicas.

    📝 3.1. Fundamentos de C# en el Contexto de Unity

    Es importante entender no solo la sintaxis básica de C#, sino cómo se usa dentro de Unity. Algunos de los conceptos fundamentales incluyen:

    • Clases y Objetos: Las clases son el esqueleto de la mayoría de tus scripts en Unity. Cada script en Unity es una clase que hereda de MonoBehaviour, lo que le otorga funciones especiales como Start(), Update() y Awake(). Los objetos en Unity son instancias de estas clases. 
     
    Ejemplo de clase básica:
  • public class PlayerController : MonoBehaviour
    {
    public float moveSpeed = 5f;

    void Update()
    {
    float horizontal = Input.GetAxis("Horizontal");
    float vertical = Input.GetAxis("Vertical");
    Vector3 movement = new Vector3(horizontal, 0, vertical) * moveSpeed * Time.deltaTime;
    transform.Translate(movement);
    }
    }

     
    • Variables públicas y privadas: Las variables públicas son accesibles desde el inspector de Unity, lo que facilita la edición en tiempo real, mientras que las privadas se manejan solo dentro del script.


    • Métodos y funciones: Las funciones te permiten encapsular lógicas repetitivas y tener un código más limpio. En Unity, los métodos más importantes son los del ciclo de vida de MonoBehaviour, como Awake(), Start(), y Update().

    • Eventos y delegados: Estos te permiten responder a cambios de estado en el juego de manera más flexible. Los eventos son particularmente útiles para acciones como notificar a otros objetos cuando algo ha sucedido (por ejemplo, cuando un jugador recoge un objeto).




    🧑‍💻 3.2. Conceptos de Programación Orientada a Objetos (OOP) en Unity

    La Programación Orientada a Objetos (OOP) es el paradigma que te permite estructurar tu código de manera eficiente y reutilizable. En Unity, este enfoque es esencial cuando trabajas con:

    • Herencia: Permite que las clases hijas hereden comportamientos de clases base. Por ejemplo, una clase Enemy puede heredar de una clase base Character que contiene funcionalidades comunes a todos los personajes (como mover y recibir daño).
    • Polimorfismo: Te permite crear funciones que puedan comportarse de diferentes maneras según el objeto que las invoque. Esto es útil cuando tienes enemigos con comportamientos diferentes pero comparten la misma interfaz.

    Ejemplo

    public class Enemy : Character
    {
        public override void Move()
        {
            // Movimiento específico para el enemigo
        }
    }

     

    • Encapsulamiento: Proteger los datos de tu clase mediante accesores y mutadores. Esto te ayuda a evitar que el código externo cambie accidentalmente el estado de tus objetos. 
     

    🔄 3.3. Corutinas y Manejo del Ciclo de Vida en Unity

    Las corutinas son una característica esencial de Unity que permite ejecutar funciones de manera asincrónica, lo que es útil para crear animaciones o tiempos de espera sin bloquear la ejecución del juego.

     IEnumerator Start()
    {
        yield return new WaitForSeconds(2);
        Debug.Log("¡Han pasado 2 segundos!");
    }
     

Aquí, yield return pausa la ejecución de la función durante un tiempo especificado, permitiendo realizar tareas sin bloquear el flujo del juego.

 

🎮 3.4. Patrones de Diseño en Unity

Los patrones de diseño son soluciones reutilizables a problemas comunes que los desarrolladores enfrentan. Algunos patrones que se utilizan frecuentemente en el desarrollo de videojuegos son:

  • Singleton: Útil para gestionar objetos que deben existir como una única instancia (como un gestor de audio o un sistema de puntuación global).

  • State Machine: Ideal para manejar estados de un personaje o de un sistema (como los estados de un enemigo: patrullando, atacando, muerto).

  • Observer: Utilizado para notificar a diferentes sistemas cuando ocurre un evento (por ejemplo, cuando el jugador recoge un objeto).

🧩 3.5. Uso de ScriptableObjects

Un ScriptableObject es un tipo especial de objeto en Unity que te permite almacenar datos de forma estructurada y reutilizable sin tener que crear instancias de GameObjects. Es una excelente herramienta para optimizar el rendimiento y la organización de los datos.

🏁 Conclusión

Dominar C# en el contexto de Unity te permite implementar cualquier idea que tengas en mente. Desde mover un personaje hasta gestionar complejas interacciones en el juego. El dominio de los conceptos de programación orientada a objetos, corutinas y patrones de diseño elevará tu desarrollo a un nivel profesional, permitiéndote crear juegos más robustos y escalables.


🧭 Ruta Profesional: Cómo Convertirte en Desarrollador de Videojuegos con Unity II


 

🎮 Introducción

Una visión general inspiradora: cómo Unity ha democratizado el desarrollo de videojuegos y por qué es un excelente punto de partida para quienes sueñan con crear mundos interactivos.


1. 📚 Fundamentos que debes dominar primero

  • Lógica de programación (preferiblemente en C#)

  • Pensamiento computacional y resolución de problemas

  • Matemáticas básicas (vectores, coordenadas, transformaciones, Geometria del espacio)


2. 🧱 Primeros pasos en Unity

  • Instalación del motor y primer proyecto

  • Jerarquía, GameObjects y Componentes

  • Uso del editor: escenas, prefabs, assets

  • Sistema de físicas y colisiones básicas


3. 💻 Aprender C# aplicado a videojuegos

  • Clases, estructuras, interfaces (en contexto de Unity)

  • Corutinas, eventos y manejo del ciclo de vida en MonoBehaviour

  • ScriptableObjects y uso inteligente de patrones de diseño


4. 🎨 Diseño y prototipado de juegos

  • Crear un juego simple (ej. Pong, plataformas o top-down shooter)

  • Prototipado rápido vs producción

  • Iteración y testeo de mecánicas


5. 🛠️ Herramientas y buenas prácticas

  • Uso de versionado con Git

  • Organización de proyectos y assets

  • Uso de la Asset Store con criterio

  • Crear herramientas propias dentro del editor (Editor Scripts)


6. 🚀 Especialización y rutas posibles

  • Gameplay programmer

  • UI/UX y diseño de interfaces

  • Animación y cinematics en Unity

  • IA para NPCs y enemigos

  • Desarrollo móvil / VR / multiplataforma


7. 📦 Publicar un juego

  • Construcción de builds

  • Testing multiplataforma

  • Publicación en Itch.io, Google Play, Steam, etc.


8. 🤖 Bonus: Cómo integrar IA a tus proyectos

  • Pathfinding con NavMesh

  • FSM y árboles de comportamiento

  • Uso de IA generativa (ChatGPT, arte, diálogos, diseño procedural)

     

     

    2. 🧱 Primeros Pasos en Unity

    Una vez que tienes las bases de programación y matemáticas claras, es hora de sumergirse en Unity, el motor de juego que te permitirá crear, visualizar y optimizar tus proyectos. En esta sección, veremos cómo dar esos primeros pasos en Unity, desde la instalación hasta el manejo básico del entorno de trabajo.

    ⚙️ 2.1. Instalación y Configuración del Proyecto

    El primer paso es, por supuesto, instalar Unity. Si bien existen varias versiones, te recomendamos Unity Hub, una aplicación que centraliza la gestión de proyectos y versiones de Unity.

  • Instalar Unity Hub: Desde el sitio oficial de Unity, puedes descargar Unity Hub. Este te permitirá instalar diferentes versiones de Unity y gestionar proyectos.

  • Configurar un nuevo proyecto: Cuando creas un nuevo proyecto en Unity, puedes elegir entre varias plantillas (2D, 3D, etc.). Elige la plantilla adecuada para el tipo de juego que quieres crear.

  • Manejo de versiones: Asegúrate de usar versiones LTS (Long Term Support) para proyectos profesionales. Las versiones LTS reciben actualizaciones estables durante más tiempo.

🖥️ 2.2. Navegando el Editor de Unity

El editor de Unity puede parecer abrumador al principio debido a su cantidad de paneles y herramientas, pero aprender a navegarlo es clave para avanzar de forma efectiva:

  • Escena: Donde ves y manipulas los objetos 3D en tu juego.

  • Jerarquía: Muestra todos los objetos de la escena, desde personajes hasta luces.

  • Inspector: Aquí editas las propiedades de los objetos seleccionados. Es el panel donde más interactuarás.

  • Proyecto: Contiene todos los assets (modelos, texturas, scripts) de tu juego.

  • Consola: Aquí se muestran los mensajes de error, advertencias y logs de tu juego.

Familiarizarte con estos paneles es el primer paso para ser eficiente en tu flujo de trabajo dentro de Unity.

🕹️ 2.3. Creación de tu Primer Juego: Prototipo Simple

La mejor forma de aprender es haciendo. Vamos a empezar con un prototipo simple: un juego de plataformas básico.

  1. Crear la escena: En la escena, agrega un plano para el suelo y un cubo para el jugador.

  2. Control del jugador: Escribe un pequeño script en C# para mover el cubo con las teclas de flecha o las teclas WASD.

  3. Agregar físicas: Usa el componente Rigidbody para que tu cubo responda a la gravedad.

  4. Probar y ajustar: Corre el juego dentro del editor y ajusta los controles hasta que el jugador se sienta bien.

Este primer prototipo no tiene que ser perfecto, pero te ayudará a entender cómo interactúan los elementos de Unity (físicas, movimiento, cámara, etc.).

🧩 2.4. Uso de Prefabs y Asset Management

Los prefabs son una de las características más poderosas de Unity. Son plantillas que te permiten crear objetos reutilizables en múltiples escenas o instancias de tu juego ayudandote a ahorrar tiempo y acelerando el proceso de desarrollo.

  • Crear un prefab: Puedes crear un prefab arrastrando un objeto de la jerarquía al panel de proyecto. Esto te permitirá modificarlo en un solo lugar y ver los cambios reflejados en todas las instancias de ese prefab en la escena.

  • Asset Management: Organiza tus assets en carpetas claras para evitar el caos. Una estructura organizada te permitirá trabajar más rápido y colaborar de manera eficiente con otros desarrolladores.


🎯 Conclusión del Punto

Estos primeros pasos te permiten familiarizarte con el entorno de Unity y comprender cómo interactúan los diferentes componentes. A medida que vayas dominando lo básico, podrás empezar a crear proyectos más complejos, trabajar con efectos visuales, sistemas de UI, sonido y mucho más

 

🧭 Ruta de Desarrollo: Cómo Convertirse en Desarrollador de Videojuegos con Unity I


 🎮 Introducción

Una visión general inspiradora: cómo Unity ha democratizado el desarrollo de videojuegos y por qué es un excelente punto de partida para quienes sueñan con crear mundos interactivos.


1. 📚 Fundamentos que debes dominar primero

  • Lógica de programación (preferiblemente en C#)

  • Pensamiento computacional y resolución de problemas

  • Matemáticas básicas (vectores, coordenadas, transformaciones, Geometria del espacio)


2. 🧱 Primeros pasos en Unity

  • Instalación del motor y primer proyecto

  • Jerarquía, GameObjects y Componentes

  • Uso del editor: escenas, prefabs, assets

  • Sistema de físicas y colisiones básicas


3. 💻 Aprender C# aplicado a videojuegos

  • Clases, estructuras, interfaces (en contexto de Unity)

  • Corutinas, eventos y manejo del ciclo de vida en MonoBehaviour

  • ScriptableObjects y uso inteligente de patrones de diseño


4. 🎨 Diseño y prototipado de juegos

  • Crear un juego simple (ej. Pong, plataformas o top-down shooter)

  • Prototipado rápido vs producción

  • Iteración y testeo de mecánicas


5. 🛠️ Herramientas y buenas prácticas

  • Uso de versionado con Git

  • Organización de proyectos y assets

  • Uso de la Asset Store con criterio

  • Crear herramientas propias dentro del editor (Editor Scripts)


6. 🚀 Especialización y rutas posibles

  • Gameplay programmer

  • UI/UX y diseño de interfaces

  • Animación y cinematics en Unity

  • IA para NPCs y enemigos

  • Desarrollo móvil / VR / multiplataforma


7. 📦 Publicar un juego

  • Construcción de builds

  • Testing multiplataforma

  • Publicación en Itch.io, Google Play, Steam, etc.


8. 🤖 Bonus: Cómo integrar IA a tus proyectos

  • Pathfinding con NavMesh

  • FSM y árboles de comportamiento

  • Uso de IA generativa (ChatGPT, arte, diálogos, diseño procedural)

     

     

     

    🎮 Introducción

    El desarrollo de videojuegos ha dejado de ser exclusivo de grandes estudios y hoy es una industria accesible para quienes están dispuestos a aprender, practicar y crear. Unity, uno de los motores más utilizados del mundo, ha sido clave en esta transformación, permitiendo a miles de desarrolladores —desde aficionados hasta profesionales— construir experiencias interactivas de alto nivel.

    Pero, ¿por dónde empezar? ¿Qué habilidades necesitas dominar? ¿Cómo pasar de hacer juegos por hobby a trabajar en un estudio, lanzar tu propio título o incluso vivir de esto?

    En este artículo trazaremos una ruta práctica y profesional que te permitirá evolucionar de principiante a desarrollador de videojuegos con Unity, enfocándonos en las habilidades clave, herramientas, buenas prácticas y decisiones estratégicas que marcarán la diferencia en tu carrera.

     

    1. 📚 Fundamentos Técnicos que Debes Dominar

    Antes de lanzarte de lleno al desarrollo en Unity, es importante construir una base sólida de conocimientos técnicos. No necesitas ser un ingeniero de software para empezar, pero sí debes tener claros ciertos conceptos que te acompañarán durante toda tu carrera profesional.

    🧠 1.1. Programación con C#

    Unity utiliza C# como lenguaje principal, por lo que dominarlo es obligatorio. No se trata solo de aprender la sintaxis, sino de entender cómo estructurar soluciones y resolver problemas en contextos interactivos.

    • Aprende lo básico: 
      • variables
      •  condicionales
      •  bucles
      • funciones
      •  clases
      • objetos
  • Practica estructuras

    • como:
      • listas
      • diccionarios
      • enums
      • Maps
  • Desde ahi podras saltar a conceptos mas avanzados como

    • Modificadores de acceso
    •  herencia
    • interfaces
    •  eventos 
    Lo cual te servira para para desarrollar código más limpio y escalable.
  • Aprende a Trabajar con el ciclo de vida de MonoBehaviour en Unity 

    • Awake 
    • OnEnable
    • Start
    • OnReset
    •  FixedUpdate
    •  Update
    • LateUpdate
    • Coroutines

📐 1.2. Lógica y Pensamiento Computacional

La lógica es la base de toda mecánica de juego. Necesitarás entrenar tu mente para:

  • Dividir problemas complejos en tareas pequeñas (Divide y venceras!).

  • Entender la causa y efecto de tus decisiones en tiempo real.

  • Aplicar estructuras condicionales, bucles y algoritmos simples a la lógica de gameplay.

Esta habilidad te permite adaptarte fácilmente a cualquier desafío técnico que enfrentes, desde un puzzle hasta un sistema de combate o una IA.

📊 1.3. Matemáticas Aplicadas a Juegos

No necesitas saber cálculo diferencial, pero sí entender los conceptos básicos que se usan a diario en desarrollo:

  • Vectores y coordenadas 2D/3D (posición, dirección, distancia)

  • Rotaciones y el uso de Quaternion en Unity

  • Transformaciones: mover, rotar y escalar objetos

  •  Colisiones
  • trayectorias
  •  físicas básicas (gravedad, velocidad, aceleración)

Estas habilidades matemáticas te ayudan a crear comportamientos realistas y controlar mejor el mundo virtual que estás construyendo

 

[ Continua en parte II ]

"Desarrollo de Videojuegos con Unity: Cómo la Inteligencia Artificial Está Cambiando el Juego"


 

 Introduccion:

El desarrollo de videojuegos ha vivido una revolución en la última década. Gracias a herramientas cada vez más accesibles como Unity, hoy cualquier persona con una idea y algo de dedicación puede dar vida a su propio mundo interactivo. Sin embargo, no solo las herramientas han evolucionado: la Inteligencia Artificial (IA) ha irrumpido con fuerza en todos los aspectos de la industria, desde el comportamiento de personajes hasta la creación de contenido dinámico e incluso el testeo automatizado.

Lo que antes requería decenas de líneas de código para crear un enemigo mínimamente inteligente, hoy puede lograrse en minutos utilizando sistemas de IA avanzados. Además, con la llegada de IA generativa, como la que permite escribir diálogos coherentes o generar arte procedural, los límites de lo que podemos crear se están ampliando de forma acelerada.

En este artículo exploraremos cómo Unity y la Inteligencia Artificial se complementan para cambiar la forma en que diseñamos, desarrollamos y experimentamos videojuegos. Desde conceptos clásicos como pathfinding hasta las nuevas posibilidades que nos ofrecen las APIs de IA generativa, veremos cómo estos dos mundos convergen para abrir un nuevo capítulo en la historia del desarrollo de juegos.

 

 ¿Por qué Unity?

 

Unity se ha convertido en uno de los motores de videojuegos más populares del mundo. 

Su enfoque en la accesibilidad, su potente motor gráfico tanto para 2D como para 3D, lo convierten en una plataforma ideal para desarrolladores de todos los niveles.

Una de sus mayores fortalezas es la posibilidad de desarrollar una vez y publicar en múltiples plataformas: PC, consolas, móviles, realidad virtual, web y más.

Además, al estar basado en C#, un lenguaje moderno, robusto y ampliamente documentado, los desarrolladores tienen acceso a una gran variedad de recursos y herramientas, incluyendo un ecosistema lleno de plugins, paquetes y assets en la Asset Store.

Por si fuera poco, Unity ha incorporado tecnologías como DOTS (Data-Oriented Tech Stack) y Visual Scripting, lo que amplía sus capacidades tanto para proyectos de alto rendimiento como para desarrolladores sin experiencia previa en programación.

En resumen, Unity no solo te permite crear juegos, sino también prototipar ideas rápidamente, experimentar con nuevas tecnologías como IA, y escalar tu proyecto hacia una producción profesional.

 

IA Generativa en el Desarrollo de Código y Herramientas en Unity.

 

Cuando hablamos de IA generativa en videojuegos, solemos pensar en diálogos automáticos o creación de contenido narrativo. Sin embargo, una de las aplicaciones más poderosas —y muchas veces subestimadas— es su uso como asistente para el desarrollo dentro del motor.

 

 Generación de Código Efectivo

La integración de modelos como ChatGPT o GitHub Copilot en tu flujo de trabajo permite escribir scripts de C# más rápido y con menos errores. Desde la creación de scripts para control de personajes, hasta lógica compleja de gameplay, la IA puede:

  • Generar plantillas reutilizables (como MonoBehaviour, ScriptableObject, EditorWindow).

  • Sugerir soluciones a bugs comunes.

  • Explicar código existente o refactorizarlo para mayor claridad.

  • Automatizar tareas repetitivas (ej. crear múltiples componentes similares).

 

Creación Rápida de Prefabs y Escenas 

La IA también puede ayudarte a generar scripts que automatizan la creación de Prefabs, jerarquías de GameObjects y configuraciones dentro del editor. Por ejemplo:

  • Scripts que ensamblan enemigos con múltiples componentes automáticamente.

  • Herramientas que generan layouts de UI (HUDs, menús, etc.) en base a una configuración de datos.

  • Automatización de escenas de prueba con elementos distribuidos espacialmente para gameplay o testing.

Incluso puedes usar la IA para que te proponga una estructura de prefabs óptima, reutilizable y fácil de mantener.

 A futuristic digital illustration focused on the Unity Editor interface itself, showing an in-editor custom tool panel created by a developer. The tool helps generate prefabs and manage AI-driven NPC behaviors. The screen features a complex but clean UI with sliders, buttons, and a prefab list. Around the screen, there are visual elements suggesting AI generative power: glowing code, neural diagrams, and a holographic brain icon. The scene is set in a sleek development environment with cool lighting and a creative, high-tech vibe.

Desarrollo de Herramientas Internas en el Editor

Una de las áreas donde más brilla la IA generativa es en el desarrollo de herramientas personalizadas dentro del editor de Unity, por ejemplo:

  • Crear ventanas personalizadas (EditorWindow) para modificar niveles, ajustar stats de enemigos o visualizar datos.

  • Automatizar la importación y configuración de assets.

  • Desarrollar editores visuales para árboles de comportamiento, secuencias de animación o generadores de niveles.

  • Scripting para validación de escenas o assets antes de hacer un build.

Con solo una descripción textual de lo que necesitas, la IA puede generar un script base completamente funcional, ahorrándote horas de búsqueda en documentación.

 


20/2/21

Metodologias de desarrollo, Agile para videojuegos [2da parte]


La ingeniería de software es una ciencia de diseño provista de diferentes métodos para el desarrollo de productos de software

Existe un considerable traslapamiento entre las fases de diseño utilizadas en desarrollo de software y desarrollo de videojuegos:





Para demostrar este punto con mas detalle podemos comparar un método bastante aceptado en el proceso de desarrollo de videojuegos:




El proceso de desarrollo de un videojuego,  tiene un gran impacto poderoso en la capacidad de producto de poder ser utilizado de manera correcta, representa la oportunidad de terminar con un producto final utilizable de grandes características y que la audiencia ame o que termine siendo odiado desde el principio y con una gran cantidad de mala publicidad.

Hagamos un comparativo de los elementos característicos encontrados en un desarrollo hecho con waterfall y uno con agile:

En waterfall todo el juego es hecho desde el principio hasta el final, sin prestar atención en los detalles, terminando con un pedazo de software que  posiblemente contenga muchos detalles que al final deben rehacerse, es decir  implica re trabajar cosas que podrían haberse.

Quien solicita el software normalmente quedara insatisfecho 

  • ya que al contener innumerables features que no se han logrado, que se han logrado de forma incorrecta o que están verdaderamente afectando el performance, sera la primera incomodidad.
  • El tiempo invertido tiende a sobrepasar las capacidades del presupuesto establecido
  • El desgaste del equipo será inminente
  • Garantizado que las relaciones laborales se verán afectadas.

Mientras que en Agile, se van construyendo elementos mínimos, un MVP(producto mínimo viable), una forma básica y primitiva de lo que podría ser el juego, para posteriormente ir agregando pequeñas piezas de forma iterada, ademas de garantizar que estas se encuentran probadas.

Esto significa que los problemas como bugs y errores inesperados pueden atacarse desde el principio

Ademas el equipo se ve envuelto de forma mas profunda en el proceso de desarrollo.

Agile no es una bala de plata para todos los problemas, pero si se desea sobrevivir a los cambios tecnológicos, es necesario hacer un cambio de mindset y filosofía, partiendo desde el aprendizaje, lo que significa que es algo que debe ocurrir de forma gradual y orgánica

Mientras que los principios de AGILE en game development pueden fungir como una plataforma para el desarrollo existen otros elementos flotando al rededor del desarrollo de videojuegos que no pueden dejarse de lado con la finalidad de mitigar los problemas que surgirán continuamente

Desarrollar una inteligencia del “Awareness of state of development” (conciencia del estado de desarrollo) al rededor de un producto de software multimedia implica no dejar de lado lo siguiente:

Del producto:

  •  La prioridad es la diversión
  •  El jugador debe incentivarse en todo momento (recompensa el tiempo invertido)
  • El contenido es el rey (básicamente dulces para los sentidos)
Del equipo:
  • Cada desarrollador es responsable por cada, variable, palabra reservada, línea de código, algoritmo implementado(es decir te pagaran por algo funcional, no por salir del paso con soluciones baratas, si no se sabe como hacerlo lo mejor posible, lo mas transparente es buscar ayuda y subir de nivel).
  • Siempre debe haber cabida para la creatividad
  • Testing testing testing con transparencia

    

Comparativo entre procesos de diseño y desarrollo de videojuegos y las fases del desarrollo de software:


Scope: el proyecto es inicializado, el scope y los casos de negocio son determinados así como los requerimientos y restricciones son listadas, definiendo un plan de alto nivel y toda es documentado, mientras que en desarrollo de juegos pudiese coincidir con las fases 1 y 2 con la excepción de que se enfocara en definir las características técnicas

 

Design:  la segunda fase comprende el diseño del sistema y un detallado diseño conceptual el cual es escrito en un documento de diseño de software, en esta fase, una descripción funcional se crea a base de sketches, es una fase que básicamente es similar al diseño del juego en su fase 3, de acuerdo al diagrama anterior.


Build: la fase de construcción de software es básicamente la codificación de los módulos, es aquí donde se prescribe la arquitectura, las técnicas, lenguajes y plataformas, esta fase es similar a la fase 4 donde se desarrolla el videojuego.


Test: en esta fase se determinan las fallas y funciones que deben corregirse, enteramente dedicada al testeo del software en su totalidad, verificar, validar, usabilidad; mientras que en el desarrollo de un videojuego esta fase se lleva a cabo a lo largo del desarrollo, procurando que los módulos funcionen correctamente y se vayan integrando.


Deploy:  finalmente la quinta y ultima fase en desarrollo de software, esta marcada por la implementación en la organización , la integración con otros sistemas y el desarrollo de manuales, así como el entrenamiento del personal, esta fase recuerda la 5 fase relacionada con desarrollo de videojuegos que seria el deploy en el servidor, y aunque aquí no hay nadie a quien capacitar, es una fase importante que también comprende elementos de testeo y corrección de errores que no se hayan detectado en un ambiente de sandbox


A lo largo del tiempo los siguientes métodos de desarrollo se puede decir que han evolucionado hasta convertirse en lo que podría decir métodos ágiles de desarrollo de software:    







Por las razones anteriores, creo que la ingeniería de software, puede enseñar algunas lecciones importantes y viceversa a los desarrolladores de videojuegos:

por ejemplo :


  • Adaptando estos modelos agiles pueden mejorar el proceso de diseño y programación, aunque no garantizar el éxito, estos modelos agiles están orientados al cliente y al desarrollo de las soluciones a ofrecer.
  • Emplear menos tiempo en planes de cambios


[Continua en Parte III]


Gracias por leer hasta aquí, sigue aprendiendo, y deja tus comentarios en nuestras redes sociales:

Realform Studio