Betazeta Networks: BelelúBólidoCHWFayerWayerFW BrasilFerpleiLUPANiubieSaborizanteSabrosiaVeoVerdeWayerlessZimio Versión Movil

Temas Calientes

Desarrollo tradicional vs Desarrollo de videojuegos [NB Original]

Antes y Despues (c) Alebrije Estudios

Antes y Despues (c) Alebrije Estudios

Antes y Despues (c) Alebrije Estudios

Hace unos días, platicando con algunos estudiantes de Ingeniería en Sistemas, nos hicieron una pregunta muy interesante: ¿Cuál es la diferencia entre la programación para videojuegos y el desarrollo de software tradicional o aplicaciones?

En este post trataremos de dar una respuesta basándonos en nuestra experiencia y cómo hemos visto se han integrado los programadores tradicionales a la industria de los videojuegos. Para efectos del artículos a toda forma de código diferente a los videojuegos la llamaremos software o aplicaciones.

Debemos recordar que los videojuegos al final del día son una serie de líneas de código como también lo son los sistemas administrativos, las aplicaciones móviles, el software de producción. Los videojuegos también son software y por ende comparten muchas similitudes en el proceso de desarrollo.

De manera general, ambos pasan a través de un ciclo de diseño, desarrollo, pruebas e implementación y por lo mismo utilizan metodologías similares como el SCRUM, AGILE, Extreme Programming entre muchas otras. En ambos casos estas metodologías se adaptan al proceso iterativo de desarrollo pero comparten una base solida.

Orientado a Objetos (c) Alebrije Estudios

Los videojuegos y las aplicaciones comparten la mayoría de los paradigmas de programación, en otras palabras los estilos fundamentales de programación. Mencionar todos estos sería una tarea muy extensa y no nos gustaría dejar alguno de largo, pero mencionaremos los que consideramos los dos más conocidos por todos aquellos que han pasado por algún curso básico de programación.

  • Programación Orientada a Objetos: Es el estilo de programación estructurada que usa objetos estructurados que contienen métodos y campos de datos. Así como podemos definir en la programación de sistemas un objeto que tenga la información referente a un registro o transacción de igual manera podemos crear objetos que contengan la información de los enemigos o los NPC.
  • Programación Orientada a Eventos: Es el estilo de programación en el cual el flujo de las aplicaciones está determinado por eventos tanto humanos como de otras partes del software. En todo momento tanto un sistema como un juego está esperando la interacción del usuario con el mouse, teclado o pantalla táctil, y de igual forma esta esperandoa que  otros procesos ajenos al usuario terminen, para realizar otras acciones.

Los videojuegos y las aplicaciones comparten la misma base, ambos nacen de la misma área de conocimiento. ¿Cuál es la verdadera diferencia entre ambos? A grandes rasgos la gran diferencia radica en la cantidad de especialidades que se unen a las ya existentes en la creación de software (matemáticas y diseño) para crear videojuegos.

En otras palabras los videojuegos utilizan de igual manera que el software tradicional las matemáticas, lógica y el diseño pero a estas se le agregan muchas otras disciplinas. Entre ellas se encuentran la física, la inteligencia artificial, la ingeniería de audio, el arte, el  manejo del 3D, y tal vez la más especial la programación del gameplay o la experiencia de juego.

Pong by tcp909 Flickr

La programación para videojuegos es muy particular de entra las experiencias interactivas en general ya  que busca crear una experiencia de reto, destreza, suerte, y juego. Desde el punto de vista de la programación tradicional, este concepto no existe y no agrega valor a un sistema de producción. Es este gameplay el cual agrega una capa particular al desarrollo de videojuegos; de igual manera es el que hace que las áreas extras se integren de mil y un maneras y que se creen problemáticas que no existen en el desarrollo de software.

La pregunta original sin duda va dirigida hacia cómo tengo que modificar mi formación si soy un programador tradicional y quiero desarrollar videojuegos? La respuesta está en todas esas áreas de conocimiento que se agregan cuando hablamos de desarrollo de videojuegos. El conocimiento necesario no vendrá por arte de magia, el camino es la práctica.

Nuestra recomendación es que si te encuentras en esta encrucijada comienza por ponerte tus propios retos y descubrir estas diferencias por ti mismo. Crea un pequeño juego, en la red existen mucho tutoriales para muchos lenguajes que te pueden llevar de la mano en el uso del conocimiento técnico que ya tienes para moldearlo y convertirte en un desarrollador de juegos.

Link: Más artículos de Alebrije Estudios en Niubie

10 Comentarios

Desarrollo tradicional vs Desarrollo de videojuegos [NB Original]

Thumb up 0 Thumb down 0 avatar_Midou Midou dijo hace 1 año

Hola, gracias por los artículos. Voy a hacer una pregunta que no tiene que ver con este post si no con el de los engines (que ya lleva mes y medio). Qué tal te parece el Panda3D?, es un buen engine para comenzar?

Responder
Thumb up 0 Thumb down 0 avatar_Pablo Hormazabal Pablo Hormazabal dijo hace 1 año

Me van a perdonar pero no le encontré un real sentido al articulo, además las dos definiciones que das de programación están erradas y no vienen al caso, en ningún momento pretendo ser pesado o faltar el respeto pero esto para mí es realmente un tema serio y esperaría que si van a comunicar algo lo hagan con la seriedad que amerita el caso.

Responder
Thumb up 0 Thumb down 0 avatar_FranciscoAlexis FranciscoAlexis dijo hace 1 año

@Pablo Hormazabal podrias argumentar el porqué piensas que no estan bien las definiciones.

Responder
Thumb up 0 Thumb down 0 avatar_Ricardo Ricardo dijo hace 1 año

Comparto lo que dice @Pablo Hormazabal. el articulo no agrega la gran cosa al tema, es mas confunde, la definicion de Orientacion orienta al objeto esta muy mala.
"Es el estilo de programación estructurada que usa objetos estructurados que contienen métodos y campos de datos." Eso mismo se logra en C con struct y no es Orientado a objeto:
La programacion orientada a objeto es una forma de encapsular logica en trozos de codigo reutilizables que se asemejan a estructuras de la vida real y que se comunican a traves mensajes...(porfavor ponganse serios).

Responder
Thumb up 0 Thumb down 0 avatar_Pablo Hormazabal Pablo Hormazabal dijo hace 1 año

gracias @Ricardo exactamente a eso me refiero

Responder
Thumb up 0 Thumb down 0 avatar_tu padre tu padre dijo hace 1 año

Ricardo y Pablo, creo que lo mas importante del articulo no son las definiciones, es el hecho que lo que ya saben de programacion aplica tanto para video juegos como cualquier otro software.

Responder
Thumb up 0 Thumb down 0 avatar_S Gana S Gana dijo hace 1 año

Las definiciones no son las más óptimas, pero si es muy acertivo el articulo al decir que se requieren otras áreas de conocimiento para desarrollar un juego. Si no se tiene conocimiento de Matematica (Geometria, Algebra Lineal), Física del movimiento, IA., un desarrollador normal jamas podría programar un juego.

Responder
Thumb up 0 Thumb down 0 avatar_Francisco A Redard Francisco A Redard dijo hace 1 año

Cualquier simio puede seguir documentación para programar algo... Y en un juego también aplica eso.

Lo que marca la diferencia entre cómo se programa un juego y cualquier otra cosa, es por la etapa de diseño; y no precisamente la tecnología detrás de este, si no su arte, las interacciones, la historia. En otras palabras, la cosmovisión de lo que uno quiere lograr no tiene las mismas restricciones que otro proyecto de software. En un proyecto tradicional, pocas veces tienes la libertad absoluta de qué hacer: hay requerimientos y restricciones de lo que desees lograr acotado a lo que tu "cliente" quiera y también las tecnologías que emplees (aunque esto tb aplica a juegos). Los procesos a seguir en lo que se llama "etapas del proyecto" no distan tanto una de otra, e incluso me atrevería a decir que son el mismo bicho.

TL;DR: Si en el curso del proyecto para crear el juego hay un documento que te amarre a algo ya concebido (no puedes diseñar), no tiene diferencia con uno tradicional.

Saludos!

Responder
Thumb up 0 Thumb down 0 avatar_flacunsia flacunsia dijo hace 1 año

@Francisco A Redard
toda la razon... los programadores son desechables, cualquiera puede llegar y hacer un codigo que funcione, obviamente hay gente que programa mas bien que otra y son los que valen, pero a la empresa eso no le importa mucho... además lo más importante en el desarrollo de software es el DISEÑO, los diagramas, los monitos y todo eso

igual salvó el artículo... ahora, haganse fans de mi página de música de juegos XD http://www.facebook.com/pages/Musica-de-Videojuegos/152455708142827

Responder
Thumb up 0 Thumb down 0 avatar_Brayathancito Brayathancito dijo hace 1 año

De una u otra manera es programar y programar ... Al final lo que importa es entregar a tiempo el software y con calidad

Responder

Deja tu Comentario

La opción de comentar está abierta a todos los usuarios, pero te pedimos por favor mantenerte dentro del tema del artículo y no publicar comentarios ofensivos o publicidad basura. Nos reservamos el derecho de eliminar cualquier comentario que no cumpla estas reglas.

Para que aparezca tu foto en vez del icono genérico en tu comentario, el email con el que comentas debe estar inscrito en Gravatar.