Noticias:

Links interesantes
Estos son vínculos que llevan a contenido de uso permanente o importante para varios grados o temáticas particulares.

Menú principal

PROGRAMACIÓN DE VÍDEO JUEGOS

Publicado por rivas javier, Marzo 10, 2020, 04:11:11 PM

rivas javier

Buenas tardes mi tema es Programación y lo voy a trabajar con @olarte joseph

La programación de videojuegos es un proceso que pertenece a la creación de un videojuego. Este proceso es efectuado por un programador de videojuegos, gracias a la programación informática. Casi siempre, la programación de un videojuego se resume en repetir a trechos las siguientes acciones:

Procesar las interacciones de un agente con su entorno según las entradas del usuario.
Procesar los fenómenos indirectamente controlados por el usuario.
Crear una imagen a partir de esas informaciones y mostrarlo en la pantalla (igual para el sonido).
El agente suele ser un personaje (generalmente llamado héroe) pero también puede ser un coche, una nave, o cualquier otra cosa. El entorno suele ser compuesto por una decoración estática y unos objetos interactivos (enemigos, objetos del inventario, puertas, entre otros.). El usuario manda entradas al programa por medio de un periférico como un joystick, un teclado o un ratón. La gestión de las interacciones consiste en prever las acciones posibles sobre el entorno, detectar si han estado provocadas, y procesar respuestas. Por ejemplo, para crear una interacción como "abrir la puerta", hay que decidir los procesos que permitirán su cumplimiento (por ej. el jugador tiene que pulsar un botón pensado a tal efecto, tiene que estar bastante cercano, más o menos haciendo frente a la puerta), luego, durante el juego, hace falta detectar si las condiciones están cumplidas. Si eso así, pues se genera una reacción: en nuestro ejemplo, mostrar en la pantalla la puerta abriéndose.

¿De verdad lo que quieres es programar videojuegos?

Parece una tontería de pregunta, pero es clave. En el desarrollo de videojuegos existen varia áreas, estas son las cinco principales: Diseño, Programación, Gráficos, Audio, Distribución y Marketing. Vamos a pasar a analizarlas brevemente.

Diseño. La parte más importante de un videojuego. Historia, Guión, jugabilidad, reglas y demás conceptos que hacen a un juego ser lo que es.
. Una vez elaborado un diseño es la parte donde se juntan gráficos, audios y reglas para dar vida a un mundo interactivo. Existen varias disciplinas a su vez dentro de ella como programación gráfica, gameplay o inteligencia artificial.
Gráficos. Interfaces, modelos 3D, animaciones y todo lo que "se ve" de el videojuego, existen varias disciplinas tanto en 2D como en 3D.
Audio. Efectos de sonido, música de fondo, diálogos. Muy importante para crear ambiente.
Distribución y marketing. El arte de publicar y promocionar un videojuego, responsable del éxito o no de muchos productos dependiendo de las estrategias que sigan.
Como vemos la programación solo es una parte del proceso y nunca un todo, si aún crees que la programación de videojuegos es tu área vamos a analizarla a fondo.
https://youtu.be/ICKo30vtdcU


olarte joseph

Buenas tardes, les comentare la otra parte de programación.

Programar videojuegos, sus áreas
Los grandes estudios tienes varias decenas de programadores, especializados en diferentes áreas. En programación de videojuego los principales equipos y/o disciplinas que puedes encontrar son los siguientes.

Programación del motor. Son los encargados de implementar la base sobre la que se sustenta el videojuego. Comunicación con el sistema operativo, gestión de memoria, gestión de cadenas, gestión de recursos, etc. Son necesarios grandes conocimiento de la plataforma para la que se programa, algoritmia y complejidad, opimización y gestión a bajo nivel.
Programación gráfica. Su misión es lidiar con las diferentes apis gráficas como DirectX y OpenGL. Conocimienos de dichas apis, y matemáticas sobre todo álgebra y geometría.
Programación de física. Se encarga de emular los comportamientos físicos del videojuego. Conocimientos de matemática vectorial y física dinámica y mecánica.
Programación de inteligencia artificial. Es la encargada de hacer nuestros enemigos (o nuestros aliados) inteligentes. Conocimientos de lenguajes de script, matemáticas y algoritmos de IA como pathfinding, máquinas de estados finitos o redes neuronales.
Programación de red. Se encarga de la parte multijugador, servidores y todo lo que sea conectar una máquina con otra.
Programaición de Gameplay. El equipo que se encarga de programar la lógica del juego, sus reglas. Conocimientos de lenguajes de script y uso de las partes desarrolladas por los otros equipos.
Estas son las principales áreas en las que se dividen los grandes estudios pudiendo variar en muchos de ellos, pero estas son las principales disciplinas de la programación de videojuegos. Vale, lo tengo claro, ¿Por cual empiezo? Por todas y por ninguna.

Cuando uno empieza ninguna de las áreas tiene un alto grado de complejidad y el programador indie debe aprender a lidiar con todas las áreas, las especializaciones es bueno tenerlas en cuenta de cara a un futuro, pero para empezar te tocará aprender un poco de todo.
https://youtu.be/nlWNzhVGhDA

moyack

Muy buena síntesis de su idea.

Esta fue su fuente?? https://prezi.com/mwlfcoyap3me/programacion/

Bueno, lo importante es que ya tenemos categorías y buenas ideas para desarrollar. Me gustaría que me respondieran a este mensaje indicando que es lo que más los motiva para ayudarles a definir su ruta metodológica.

Quedo pendiente...

Tellez Brayan

#3
Cita de: olarte joseph en Marzo 10, 2020, 04:34:15 PM
...
quizás podría ayudar esta información base de algunos lenguajes de programación usados en videojuegos, y bueno no sólo para eso, lo podrían tomar como base para el desarrollo de un futuro videojuego.

Java
Java está presente en todas partes y se puede utilizar de forma práctica en todas las plataformas. Utiliza metodologías POO, y tiene muchas similitudes con C++, lo que significa que los dos pueden aprenderse en paralelo.

La máquina virtual Java traduce el código Java en bytecodes que se ejecutan en prácticamente cualquier sistema. Esto lo hace extremadamente versátil y popular entre los desarrolladores de videojuegos.

Debido a la disponibilidad de módulos de código abierto, Java se utiliza ampliamente para crear juegos en muchas plataformas, pero especialmente en Android. Algunos frameworks populares como LibGDX y JMonkeyEngine, para juegos 2D y 3D respectivamente, también ayudan mucho en el desarrollo.

C++
C++ siempre se incluye en las mejores listas de programación para el desarrollo de videojuegos. Cuando se usa de manera eficiente, el lenguaje tiene un tiempo de ejecución súper rápido, lo cual es crítico cuando se trata de videojuegos.

C++ tomó C y agregó la Programación Orientada a Objetos (POO) para expandir sus capacidades. La desventaja para los principiantes es que la barrera de entrada es alta.

C++ es una herramienta de aprendizaje con fama de ser difícil de aprender, pero una vez que lo dominas, podrás dominar cualquier otro lenguaje. Se utiliza ampliamente para crear juegos en PlayStation y Xbox, y es uno de los más comunes con los que te vas a encontrar para crear juegos.

Permite a los usuarios tener un mayor control sobre el hardware, la gestión de la memoria y los gráficos, lo que lo hace perfecto para la creación de videojuegos. El hecho de conocer C++ aumentará drásticamente tu empleabilidad dentro de la industria de los videojuegos. Basta con hacer cualquier búsqueda para comprobarlo.

C#
C# es otro potente lenguaje con una gran variedad de usos. Es más fácil de aprender que C++, por lo que podría ser mejor aprenderlo primero.

Varios factores hacen de C# una gran elección para crear juegos. El primero es la disponibilidad de frameworks específicos para videojuegos, como el popular Unity y Xamarin, Wave engine de nuestros amigos de Plain Concepts, Godot o MonoGame, entre otras muchas. C# puede utilizarse para crear juegos en prácticamente cualquier plataforma, incluyendo iOS, Android, PlayStation, XBox y Windows.

Este es un lenguaje que abre muchas puertas y permite a casi todos los usuarios disfrutar de tu creación sin importar el hardware que utilicen.

Javascript y HTML5
Te guste o no, JavaScript es uno de los lenguajes más populares para desarrollar videojuegos. Como es natural, funciona bien con HTML y CSS y es muy adecuado para juegos on-line.

JavaScript puede ser utilizado tanto en el backend como en el frontend del desarrollo web y tiene una comunidad on-line muy grande y valiosa, así como un enorme número de frameworks disponibles. JavaScript se ha revelado como un lenguaje extremadamente versátil y, con la ayuda de bibliotecas especializadas, puede utilizarse para aplicaciones iOS y Android, aplicaciones de escritorio y en otro tipo de hardware.

Por otro lado, el humilde HTML ha progresado mucho desde que fue lanzado por primera vez y HTML5 es la versión actual. Con muchas APIs nuevas y algunas posibilidades alucinantes con los gráficos, trabaja codo con codo con JavaScript para crear una amplia gama de videojuegos on-line.

En la actualidad, hay infinidad de bibliotecas y frameworks especializados en la creación de juegos con este lenguaje, que se pueden llevar a cualquier plataforma. Cabe citar entre los más populares a Phaser, pixi.js o Babylon.js, pero hay muchos más. Todos son, además, de código abierto y gratuitos. También se puede utilizar JavaScript para scripts de Unity3D.

Python
Llamado así por el mítico colectivo de comedia británico Monty Python, este es otro potente lenguaje de programación utilizado para muchas cosas pero también para el desarrollo de juegos. Al igual que los anteriores, funciona con principios de POO y ha demostrado ser un lenguaje flexible utilizado en un gran número de aplicaciones.

Uno de los principales beneficios que ofrece Python es su framework Pygame, que permite a los desarrolladores crear prototipos de sus juegos de forma rápida y sencilla. También merecen especial mención Pyglet y PyOpenGL.

Python también es bastante sencillo de aprender con una comunidad online considerable para ayudar con el soporte.

Swift
Si lo tuyo son las aplicaciones de Apple, entonces Swift es el lenguaje para ti. Es fiable, rápido, relativamente fácil de aprender y multipropósito.

Si quieres crear aplicaciones para dispositivos Mac e iOS, Swift es una mejor solución que los lenguajes multiplataforma.

Los programadores de Swift pueden utilizar SceneKit y SpriteKit de Apple cuando se trata de desarrollar ideas, pero están limitados a utilizar el hardware de la marca de la manzana.

olarte joseph

#4
Buenas tardes, en esta parte voy a hablar de los elementos que necesita un juego.

Crear videojuegos no solo es pensar en la programación de los mismos, no solo es programar nuestro personaje para que se mueva gracias a las órdenes del jugador. Juegos como God of War, Breath of the Wild, Spider-man o Celeste no se enfocaron solo en eso.

Un juego completo piensa en mucho más para poder perdurar en el tiempo, para poder gustarle a la exigente audiencia que cada día crece más y le exige más a los videojuegos. Ya hablamos sobre cómo Crear historias para videojuegos y un poco sobre Qué necesitas para crearlos.

En este post quiero llevar un paso más allá y conocer más elementos que pueden hacer tu videojuego brillar como un conjunto.

Mapa
Grand Theft Auto, Watch Dogs 2, Breath of the Wild y muchos otros son conocidos por ser juegos de mundo abierto, mapas que no tienen una restricción en cuanto a caminos o escenarios los cuales recorrer, puedes explorar y realizar lo que quieras.

Sin embargo, otros juegos como Super Mario Odyssey, Mario Kart o el ya mencionado Celeste cuentan con diferentes mapas para jugar o completar. En estos casos el nivel de dificultad o complejidad puede aumentar dependiendo del mundo donde estés.

Estos juegos también destacan por el diseño de los mismos haciendo cada uno igual o más divertidos que otros mapas.

Niveles
Ya dije cómo los niveles pueden ir de la mano con un mapa en especial, pueden estar incluidos en la dificultad de cada uno mientras se va avanzando en el juego.

También influye en el poder de los personajes. Cuando subimos un nivel podemos atacar con más fuerza, resistir más daño, tener más salud, desbloquear nuevos trajes, poderes, objetos, pociones y mucho más. Puede dar más jugabilidad e influenciar a tus jugadores a llegar al máximo nivel y así poder lograr todos los objetos disponibles en el juego.

Misiones
Son ese elemento perfecto para alargar o complementar nuestro videojuego, pueden ser la forma en la que avanza o tareas secundarias para nuestro jugador si quisiese completar el juego desbloqueando los elementos obtenidos solo al finalizarlas.

También se suelen incluir experiencia como premio, siendo esta la forma de subir de niveles a lo largo de nuestro videojuego. Las misiones deben estar bien estructuradas, pudiendo necesitar requisitos para iniciarlas, pueden estar disponibles a partir de cierto nivel o en diferentes mapas.

Enemigos
Estos pueden usarse como obstáculos para el personaje principal o dificultar las misiones, incluso pueden ser esos elementos que logren ayudarlo a subir de nivel mientras más enemigos elimine en el camino. Pueden ser el final de un mapa o misión con los conocidos Boss Fight.

Estos Boss Fights son complicados en algunos videojuegos como Cuphead o Dark Souls conocidos por desesperar y frustar a más de un jugador incontables veces

Música
Todos conocemos música increíble que hemos escuchado en los videojuegos, incluso podrías reproducir en tu mente ahora mismo la canción de Super Mario Bros o la reconocerías sin importar donde la escuches.

Esto también forma parte de crear un juego memorable capaz de enamorar a tus jugadores, debe ser la compañía perfecta para el mapa, nivel o velocidad a la que van a jugar. Me atrevería a decir que es uno de los elementos más importantes de los videojuegos.

Acá también podemos incluir los efectos de sonidos que realiza tu personaje al saltar, blandir una espada, lanzar o destruir un objeto.

Conclusión
Todos los elementos mencionados anteriormente son muy importantes y requieren cierta atención de manera individual, pero pueden mezclarse entre ellos para incrementar la calidad de tu videojuego y pueden planearse incluso antes de empezar la programación de nuestros personajes. Esto suele ser planeado meses antes y pueden cambiarse antes del lanzamiento oficial.



moyack

Cita de: Tellez Brayan en Marzo 11, 2020, 11:02:20 PM
Cita de: olarte joseph en Marzo 10, 2020, 04:34:15 PM
...
quizás podría ayudar esta información base de algunos lenguajes de programación usados en videojuegos, y bueno no sólo para eso, lo podrían tomar como base para el desarrollo de un futuro videojuego.

Java
Java está presente en todas partes y se puede utilizar de forma práctica en todas las plataformas. Utiliza metodologías POO, y tiene muchas similitudes con C++, lo que significa que los dos pueden aprenderse en paralelo.

La máquina virtual Java traduce el código Java en bytecodes que se ejecutan en prácticamente cualquier sistema. Esto lo hace extremadamente versátil y popular entre los desarrolladores de videojuegos.

Debido a la disponibilidad de módulos de código abierto, Java se utiliza ampliamente para crear juegos en muchas plataformas, pero especialmente en Android. Algunos frameworks populares como LibGDX y JMonkeyEngine, para juegos 2D y 3D respectivamente, también ayudan mucho en el desarrollo.

C++
C++ siempre se incluye en las mejores listas de programación para el desarrollo de videojuegos. Cuando se usa de manera eficiente, el lenguaje tiene un tiempo de ejecución súper rápido, lo cual es crítico cuando se trata de videojuegos.

C++ tomó C y agregó la Programación Orientada a Objetos (POO) para expandir sus capacidades. La desventaja para los principiantes es que la barrera de entrada es alta.

C++ es una herramienta de aprendizaje con fama de ser difícil de aprender, pero una vez que lo dominas, podrás dominar cualquier otro lenguaje. Se utiliza ampliamente para crear juegos en PlayStation y Xbox, y es uno de los más comunes con los que te vas a encontrar para crear juegos.

Permite a los usuarios tener un mayor control sobre el hardware, la gestión de la memoria y los gráficos, lo que lo hace perfecto para la creación de videojuegos. El hecho de conocer C++ aumentará drásticamente tu empleabilidad dentro de la industria de los videojuegos. Basta con hacer cualquier búsqueda para comprobarlo.

C#
C# es otro potente lenguaje con una gran variedad de usos. Es más fácil de aprender que C++, por lo que podría ser mejor aprenderlo primero.

Varios factores hacen de C# una gran elección para crear juegos. El primero es la disponibilidad de frameworks específicos para videojuegos, como el popular Unity y Xamarin, Wave engine de nuestros amigos de Plain Concepts, Godot o MonoGame, entre otras muchas. C# puede utilizarse para crear juegos en prácticamente cualquier plataforma, incluyendo iOS, Android, PlayStation, XBox y Windows.

Este es un lenguaje que abre muchas puertas y permite a casi todos los usuarios disfrutar de tu creación sin importar el hardware que utilicen.

Javascript y HTML5
Te guste o no, JavaScript es uno de los lenguajes más populares para desarrollar videojuegos. Como es natural, funciona bien con HTML y CSS y es muy adecuado para juegos on-line.

JavaScript puede ser utilizado tanto en el backend como en el frontend del desarrollo web y tiene una comunidad on-line muy grande y valiosa, así como un enorme número de frameworks disponibles. JavaScript se ha revelado como un lenguaje extremadamente versátil y, con la ayuda de bibliotecas especializadas, puede utilizarse para aplicaciones iOS y Android, aplicaciones de escritorio y en otro tipo de hardware.

Por otro lado, el humilde HTML ha progresado mucho desde que fue lanzado por primera vez y HTML5 es la versión actual. Con muchas APIs nuevas y algunas posibilidades alucinantes con los gráficos, trabaja codo con codo con JavaScript para crear una amplia gama de videojuegos on-line.

En la actualidad, hay infinidad de bibliotecas y frameworks especializados en la creación de juegos con este lenguaje, que se pueden llevar a cualquier plataforma. Cabe citar entre los más populares a Phaser, pixi.js o Babylon.js, pero hay muchos más. Todos son, además, de código abierto y gratuitos. También se puede utilizar JavaScript para scripts de Unity3D.

Python
Llamado así por el mítico colectivo de comedia británico Monty Python, este es otro potente lenguaje de programación utilizado para muchas cosas pero también para el desarrollo de juegos. Al igual que los anteriores, funciona con principios de POO y ha demostrado ser un lenguaje flexible utilizado en un gran número de aplicaciones.

Uno de los principales beneficios que ofrece Python es su framework Pygame, que permite a los desarrolladores crear prototipos de sus juegos de forma rápida y sencilla. También merecen especial mención Pyglet y PyOpenGL.

Python también es bastante sencillo de aprender con una comunidad online considerable para ayudar con el soporte.

Swift
Si lo tuyo son las aplicaciones de Apple, entonces Swift es el lenguaje para ti. Es fiable, rápido, relativamente fácil de aprender y multipropósito.

Si quieres crear aplicaciones para dispositivos Mac e iOS, Swift es una mejor solución que los lenguajes multiplataforma.

Los programadores de Swift pueden utilizar SceneKit y SpriteKit de Apple cuando se trata de desarrollar ideas, pero están limitados a utilizar el hardware de la marca de la manzana.
Fuente de la información???
Edité tu post para quitar TODA esa citación.

Cita de: olarte joseph en Marzo 15, 2020, 03:46:50 PM
Buenas tardes, en esta parte voy a hablar de los elementos que necesita un juego.

Crear videojuegos no solo es pensar en la programación de los mismos, no solo es programar nuestro personaje para que se mueva gracias a las órdenes del jugador. Juegos como God of War, Breath of the Wild, Spider-man o Celeste no se enfocaron solo en eso.

Un juego completo piensa en mucho más para poder perdurar en el tiempo, para poder gustarle a la exigente audiencia que cada día crece más y le exige más a los videojuegos. Ya hablamos sobre cómo Crear historias para videojuegos y un poco sobre Qué necesitas para crearlos.

En este post quiero llevar un paso más allá y conocer más elementos que pueden hacer tu videojuego brillar como un conjunto.

Mapa
Grand Theft Auto, Watch Dogs 2, Breath of the Wild y muchos otros son conocidos por ser juegos de mundo abierto, mapas que no tienen una restricción en cuanto a caminos o escenarios los cuales recorrer, puedes explorar y realizar lo que quieras.

Sin embargo, otros juegos como Super Mario Odyssey, Mario Kart o el ya mencionado Celeste cuentan con diferentes mapas para jugar o completar. En estos casos el nivel de dificultad o complejidad puede aumentar dependiendo del mundo donde estés.

Estos juegos también destacan por el diseño de los mismos haciendo cada uno igual o más divertidos que otros mapas.

Niveles
Ya dije cómo los niveles pueden ir de la mano con un mapa en especial, pueden estar incluidos en la dificultad de cada uno mientras se va avanzando en el juego.

También influye en el poder de los personajes. Cuando subimos un nivel podemos atacar con más fuerza, resistir más daño, tener más salud, desbloquear nuevos trajes, poderes, objetos, pociones y mucho más. Puede dar más jugabilidad e influenciar a tus jugadores a llegar al máximo nivel y así poder lograr todos los objetos disponibles en el juego.

Misiones
Son ese elemento perfecto para alargar o complementar nuestro videojuego, pueden ser la forma en la que avanza o tareas secundarias para nuestro jugador si quisiese completar el juego desbloqueando los elementos obtenidos solo al finalizarlas.

También se suelen incluir experiencia como premio, siendo esta la forma de subir de niveles a lo largo de nuestro videojuego. Las misiones deben estar bien estructuradas, pudiendo necesitar requisitos para iniciarlas, pueden estar disponibles a partir de cierto nivel o en diferentes mapas.

Enemigos
Estos pueden usarse como obstáculos para el personaje principal o dificultar las misiones, incluso pueden ser esos elementos que logren ayudarlo a subir de nivel mientras más enemigos elimine en el camino. Pueden ser el final de un mapa o misión con los conocidos Boss Fight.

Estos Boss Fights son complicados en algunos videojuegos como Cuphead o Dark Souls conocidos por desesperar y frustar a más de un jugador incontables veces

Música
Todos conocemos música increíble que hemos escuchado en los videojuegos, incluso podrías reproducir en tu mente ahora mismo la canción de Super Mario Bros o la reconocerías sin importar donde la escuches.

Esto también forma parte de crear un juego memorable capaz de enamorar a tus jugadores, debe ser la compañía perfecta para el mapa, nivel o velocidad a la que van a jugar. Me atrevería a decir que es uno de los elementos más importantes de los videojuegos.

Acá también podemos incluir los efectos de sonidos que realiza tu personaje al saltar, blandir una espada, lanzar o destruir un objeto.

Conclusión
Todos los elementos mencionados anteriormente son muy importantes y requieren cierta atención de manera individual, pero pueden mezclarse entre ellos para incrementar la calidad de tu videojuego y pueden planearse incluso antes de empezar la programación de nuestros personajes. Esto suele ser planeado meses antes y pueden cambiarse antes del lanzamiento oficial.
Y en este caso tenemos unas categorías. Pero no veo la fuente de la información. Por favor indicar.

Para este proyecto necesito ver por que línea se quieren acercar, pues ya con la información planteada ustedes ya tienen una base para tomar decisiones.