. .

Síguenos

Recibir mail con actualizaciones

Últimos Tweets

Artículos anteriores

Categorías

Introducción al desarrollo de videojuegos IV – Programación

Programación, esa magia arcana. Esa habilidad que se valora y desprestigia a partes iguales. Un programador hace esas cosas tan técnicas para que las cosas funcionen ¿Y tan difícil es? Pues si eso solo es decirle al ordenador lo que tiene que hacer.

¿Puedes cambiar esto? Seguro que es fácil y rápido porque puedes reusar código.

¿Y si quiero hacer videojuegos tengo que aprender a programar? Voy a estudiar informática a pesar de que odio las matemáticas porque así se llega a hacer videojuegos… TODO MENTIRA

¿Qué es la programación?

La programación es la creación de un código fuente. Un código que usando comandos e instrucciones provocan que el ordenador siga el comportamiento deseado.

Los ordenadores son extremadamente simples a la hora de seguir órdenes, y por eso el programador debe dar las instrucciones de forma totalmente precisa ya que no se puede improvisar nada.

Entrando en la programación en videojuegos encontramos muchas particularidades, por lo que cualquier programador no es necesariamente capaz de enfrentarse a un desarrollo de este tipo.

Algunas campos propios de la programación de videojuegos son:

  • Comportamiento y lógica de juego.
  • Control de los movimientos del jugador.
  • Inteligencia artificial.
  • Interacción con el entorno, simulación del espacio físico.
  • Carga y movimiento de gráficos 2D, modelos 3D…
  • Carga y ejecución de sonidos, músicas…

Existen muchos lenguajes distintos:

  • Lenguajes
    • C++, lenguaje por excelencia en los videojuegos.
    • C#, Java, ActionScript …
  • APIs
    • DirectX, Microsoft.
    • OpenGL, código abierto.
  • Motores
    • Unity3D, Motor y entorno de desarrollo completo con herramientas integradas.
    • Ogre 3d, motor gráfico.
    • Irrlicht, motor gráfico, detección de colisiones, carga de modelos 3D…
  • Game Makers (Uso más fácil pero hay menos libertad al programar)
    • GameMaker
    • Blitz3D

Mención aparte merecen los lenguajes o entornos de programación didácticos (pensados para niños), los más famosos son Scratch y Kodu.

Scratch y Kodu

Scracth y Kodu, dos ejemplos de como puede interpretarse la programación de forma visual.

Al principio del proyecto en programación hay que hacer cosas como crear prototipos jugables, preparar la tecnología (hacer o adaptar el engine), analizar y diseñar la programación, crear herramientas como editores de niveles y similares, etc

Durante el desarrollo del proyecto el programador trabaja junto al resto del equipo para programar la lógica de juego y las distintas características definidas, así como ir encajando todas las piezas para que el juego se ponga en movimiento.

Ya cerca del final del proyecto la parte de programación se centra mucho en optimizar para mejorar el rendimiento y sobre todo en cazar y solucionar bugs e imprevistos.

¿Qué hace el programador?

Se puede pensar en el programador es como un albañil, pero uno que trabaja con unos ladrillos muy especiales. Tiene la responsabilidad de usar correctamente el trabajo del resto del equipo para que el juego cobre vida. Este reto es algo motivador para el programador de videojuegos y al conseguir unir los elementos puede sentir que está dejando su huella en el juego.

Otro caso en que un programador influye creativamente en el desarrollo del juego puede ser cuando promueve el uso de avances tecnológicos con una repercusión artística que inspira el proceso creativo (un poco lo que pasaba con pixar en sus inicios).

Pero lo más característico del programador de videojuegos ocurre cuando se relaciona con el resto del equipo. Y es que suele ser quién corta el rollo con las limitaciones técnicas. Normalmente un (mal) programador dirá que no de base a cualquier petición, amparándose en uno o varios de los siguientes argumentos:

 

  • No se puede
  • No hay tiempo
  • No cabe

 

Las habilidades del programador de videojuegos deben tener una base creativa para resolver problemas que no suelen darse en otro tipo de programas. La forma de programar es distinta, hay que pensar más en el código como un sistema complejo y tener en cuenta que tiene que poder funcionar en tiempo real.

Un juego es en general más independiente que una aplicación en donde las acciones suelen venir activadas por eventos del usuario. Un juego debe poder estar vivo por si solo y para rellenar todos esos huecos el programador debe tener esa actitud creadora.

 

programmer art

Esto es "programmer art", lo siento por vuestros ojos.

También tiene que ser capaz de enfrentarse a tareas que no son típicamente de programación. El mejor ejemplo de esto es el “programmer art”, cuando es necesario un gráfico temporal para poder programar la funcionalidad. Si bien es necesario un mínimo conocimiento de herramientas de gráficos la aptitud artística no es necesaria. Por lo que abundan los monigotes de palo y los colores fosforitos.

Herramientas del programador

  • Visual Studio
  • HexEditor – Editor hexadecimal (interesante según el lenguaje y para aprender)
  • Documentación del lenguaje con el que estés trabajando.
  • Visio (para la parte de análisis)
  • Editor UML (para los diagramas de clases) También lo tiene el Visual Studio.
  • Notepad++ (para xml, scripts, css o lenguajes atípicos)

Pero recuerda… los programadores de verdad programan en C++

real programmers

¡Esto es programar de verdad y lo demás son tonterías! Fuente: XKCD

Cómo empezar

Si quieres adentrarte en el mundo de los videojuegos recuerda que no tienes porque necesariamente aprender a programar. Pero si eso es lo que realmente quieres por supuesto lo primero será buscar recursos para aprender una base de programación.

Es buena idea empezar por aprender C.
Después puedes aprender C++ y tocar algún otro como Java, C#, ActionScript…

Empieza a trabajar cuanto antes para ver como usar el conocimiento en situaciones reales y para ello tendrás que empezar a lidiar con APIs y Motores.

A partir de ahí recuerda que un buen programador tiene que estar leyendo constantemente código de los demás para incorporar nuevos conocimientos.

Así podrás especializarte cada vez más en los temas que te interesen y mantenerte informado porque es muy fácil quedarse obsoleto.

La programación en si es un universo tan grande que es peligroso pensar que ya no eres un novato, porque siempre hay alguien que sabe alguien más que tú de algo.

Algunos enlaces

La Web del Programador

OpenGL

3D Engines DataBase

Unity3D

¿Muchos programadores por ahí? ¿Sabías que solo hay 10 tipos de personas en el mundo? Las que saben binario y las que no. ¿De que tipo eres tú?

Continuar a: Arte

<< Volver a: Diseño

Alejo es Game Designer en TGK. Está interesado en diseño de juego, marketing, educación, comunicación, diseño de procesos y en todos los aspectos de la creación y la creatividad.

5 Responses to Introducción al desarrollo de videojuegos IV – Programación

  1. Pingback: Introducción al desarrollo de videojuegos III – Diseño de juego – The Game Kitchen Blog

  2. Pingback: Introducción al desarrollo de videojuegos – The Game Kitchen Blog

  3. Federico says:

    Por que no has seguido con el Arte y Audio!…
    Vamos… ánimo!….
    Excelente post!!!… clarisimo!!!!
    Gracias
    Fede

  4. AlejoAC says:

    Gracias Federico!

    Seguimos con los siguientes en breve.

  5. Pingback: Introducción al desarrollo de videojuegos V – Arte – The Game Kitchen Blog

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>