Cómo desarrollar juegos en Linux

Desarrollar tu propio videojuego en Linux ya no es tan complicado como antes, ahora, muchas herramientas populares pueden ser usadas en Linux y puedes empezar a crear tu propio videojuego.

Talvez la oferta no sea tan variada como en Windows, pero ya no estamos tan mal como antes, ahora contamos con buenos motores y frameworks para que puedas empezar a hacer tus juegos en Linux.

Vamos a ver motores y frameworks que te serviran para crear juegos, todos los que te voy a mostrar aquí son multiplataformas, esto es normal ya que la gran mayoría de los juegos que se crean están hecho en Windows, pero los que te muestro corren nativamente en Linux y los he probado de que corran en Ubuntu y Pop!_OS.

Godot

Empezamos con uno de los motores de juegos libres más populares (si no el más popular). Godot es un engine desarrollado en C++ que es libre y que puede ser descargado gratis desde su página o a través de de Steam.

Godot usa un lenguaje propio llamado GDScript que es muy parecido a Python, pero también puedes utilizar C# como lenguaje, pero recomiendo aprender GDScript ya que es el lenguaje oficial y hay mejor documentación.

Aún no han salido muchos juegos populares con Godot, pero últimamente se está haciendo popular por que no es pesado y porque tiene un motor dedicado a 2D, en el que trabajas con pixeles como unidad de medida, al contrario de Unity que el 2D en realidad es 3D sin hacer uso del eje Z.

Otra de las características de Godot es que viene incluido con herramientas para animación, un editor de mapas, luces y shaders.

Al principio su sistema basado en nodos puede parecerte algo extrañop, pero una vez que empiezas a tomarle la medida, vas a ver que se te hará muy fácil organizar tu proyecto.

Recomiendo Godot para empezar ya que está muy bien integrado en Linux, es ligero, es fácil de aprender y tiene una gran comunidad

Unity

Quizá el motor de videojuegos más popular, recientemente también tiene una versión de nativa de Linux, puedes descargar Unity Hub como AppImage y desde ahí descargar el motor.

Unity usa C# como lenguaje de programación, así que si sabes .NET te sentirás como pez en el agua. Es un motor muy poderoso y han salido juegos como

  • Cuphead
  • Hearthstone
  • Firewatch
  • Hollow Knight
  • Ori and the Blind Forest
  • Pilllars Of Eternity

Unity es uno de los mejores motores para empezar ya que al ser muy popular hay tutoriales, videos, cursos, documentación y recursos, además de su tienda donde podrás comprar y adquirir Scripts, Sonidos, Arte y plugins

RPG Maker MV

Esta es una de las sorpresas que encontré cuando buscaba sobre motores de videojuegos para Linux, yo pensaba que RPG Maker era solo para Windows y los más recientes también para Mac, pero entrando en la página de rpgmakerweb, la versión MV tiene soporte para Linux de forma oficial a través de Steam.

La versión más reciente de RPG Maker, la MZ, solamente soporta Windows y Mac, por lo cual nos tendremos que conformar con la versión anterior, aunque a decir de muchos, la MZ no tiene tantas novedades, y si quieres crear un RPG de forma más sencilla, RPG Maker MV es perfecta para iniciar.

Como lenguaje de programación usa Javascript, por lo cual será más sencillo de aprender a hacer scripts que con su lenguaje basado en Ruby. Este motor tiene un costo, pero yo creo que si lo encuentras en barata en Steam, puedes sacarle mucho provecho.

Hay muchos tutoriales en internet y plugins gratis.

Algunos juegos famosos hecho con RPG Maker son

  • To the moon
  • LISA

GDevelop

GDevelop es un motor que te permite crear juegos sin saber programar (sin escribir código en realidad, ya que estás programando al final). Es completamente gratis y puedes descargar el appimage desde su página.

Aunque no hay tantos juegos famosos creado con GDvelop, si es una buena herramienta para crear juegos de forma rápida y sencilla, ya que cuenta con su propio editor de sprites, eventos, objetos y tiene buenos tutoriales en su página.

Si estás empezando y no quieres escribir código, recomiendo que le eches un vistazo.

Monogame

A partir de aquí empezamos con frameworks, ya no son motores de videojuegos como tal, con su editor si no que es 100% código. En este caso, Monogame usa C# como lenguaje de programación.

Monogame salió como una biblioteca para poder portear tus juegos hechos con XNA de Microsoft a otras plataformas como Mac, Linux, Android y iOS, actualmente soporta las siguientes plataformas:

  • iOS
  • Android
  • MacOS
  • Linux
  • Windows
  • PS4
  • PSVita
  • Xbox One
  • Switch

Como puedes ver, ofrece una gran versatilidad por lo que ha sido elegido para crear juegos como

  • Celeste
  • Bastion
  • Fez
  • Axiom Verge
  • Stardew Valley

Es un framework que tiene mucho éxito en la comunidad indie porque te permite hacer juegos para muchas plataformas y tienes el control de tu código. Aunque no hay mucha documentación disponible, puedes encontrar tutoriales y libros que sean de XNA, ya que es prácticamente lo mismo.

En su página puedes ver cómo instalar Monogame en Ubuntu, al hacer uso de C#, es necesario tener instalado Netcore, pero si ya manejas ese lenguaje, te será muy fácil empezar a crear tus juegos con Monogame.

Raylib

Este es uno de mis favoritos, Raylib es un framework para hacer videojuegos hechos en C, y principalmente se ideó para aprender a programar videojuegos, y está inspirado en XNA y Borland BGI.

Una de las cosas que me gustan, es que, aunque la documentación no es tan extensa, sus ejemplos y código es muy limpio, por lo cual podrás aprender C como en los viejos tiemposs

Raylib cuenta con una comunidad muy activa, por lo que también se han hecho bindings a otros lenguajes como C#, Go, Python, Ruby, Lua y también hay otras tecnologías basadas en Raylib con el cual podrás crear efectos, interfaces gráficas, íconos.

Si estás aprendiendo C o C++, recomiendo que le des una checada.

SDL2

SDL2 es también un framework hecho en C y está apoyado por Valve. Es uno de los frameworks de videojuegos más utilizados, no solo para juegos, si no también para emuladores y otras aplicaciones gráficas.

SDL2 es un poco más avanzado de usar que Raylib, pero por ser algo viejo, encontrarás tutoriales y libros con lo cual podrás ir creando tus juegos.

SDL2 tiene un gran soporte de la comunidad y de hecho, gran parte de los controles en el mercado son detectados por la base de datos de SDL2 y otros motores y frameworks lo utilzan.

Entre los juegos más populares que usan SDL2 están

  • 0 A.D
  • Amnesia: The dark descent
  • Counter-Strike Source
  • Factorio
  • Team Fortress 2

Aquí un buen video si te quieres empapar un poco con SDL

Y estos son algunos de los motores y frameworks que hay en linux, hay más, pero considero que estos son los que tienen documentación, comunidad y que son sencillos de empezar.

Así que no hay más pretextos, puedes empezar a crear tus propios videojuegos en Linux.