>_ DevTrendses

Idioma

Inicio

Lenguajes

Secciones

Frontend Backend Móvil DevOps AI / ML GameDev Blockchain Embebidos Seguridad
Go

Cómo los entusiastas reescribieron el motor de juegos de pelea MUGEN en Go

Si creciste en los años 2000, probablemente recuerdas el fenómeno M. U.G.E.N. Era un constructor de juegos de pelea 2D donde Naruto podía luchar contra Shrek en un escenario de Mortal Kombat. La comunidad de fans creó miles de personajes y escenarios para él, pero el motor en sí eventualmente se convirtió en una pieza de museo. Código cerrado, dependencia de x86 y Windows, sin juego en línea adecuado — todo quedó atrapado en la era de la conexión telefónica.

En algún momento, un grupo de desarrolladores se cansó de esto. Así nació el proyecto Ikemen GO — un motor de código abierto escrito en Go que toma los recursos antiguos y los hace funcionar en hardware moderno.

IKEMEN GO Logo

Qué es este proyecto y de dónde vino el nombre

Inicialmente, el proyecto se desarrolló bajo el nombre Ikemen y fue escrito por un desarrollador japonés. En algún momento, el autor abandonó el repositorio, así que la comunidad hizo un fork y reescribió el código en Go.

Por cierto, el nombre tiene un significado gracioso. IKEMEN es un acrónimo de la frase Itsu made mo Kansei shinai Eien ni Mikansei ENgine, que se traduce aproximadamente como "El motor que permanece eternamente inacabado". Humor autodesvalorizante japonés en su purest form.

El objetivo principal de Ikemen GO es simple: preservar el 100% de compatibilidad con los recursos de M. U.G.E.N 1.1 Beta, mientras se eliminan las limitaciones técnicas antiguas.

Qué hay dentro y por qué es interesante

El motor carga los archivos de personajes, escenarios, fuentes y sonidos familiares sin necesidad de convertirlos. Pero a diferencia del original, Ikemen GO les da a los desarrolladores de juegos y a los jugadores capacidades modernas adecuadas.

Esto es lo que destaca al explorar el repositorio:

  • Multiplataforma sin trucos. Gracias a Go, el motor compila para Windows, Linux (incluyendo arquitectura ARM64), macOS (Intel y Apple Silicon), e incluso genera APK para Android mediante Docker.
  • Código de red. En el M. U.G.E.N original, el multijugador era una característica faltante o requería software de terceros dudoso. Aquí, el modo de red está integrado en la arquitectura.
  • Depuración flexible. Si quieres profundizar en el funcionamiento interno del motor, puedes literalmente lanzarlo en modo depuración en VS Code o GoLand en un par de minutos.
  • Licencia MIT. El código del motor es completamente abierto. Solo hay matices con la biblioteca FFmpeg, que se enlaza dinámicamente, y los recursos gráficos de la interfaz predeterminada (se distribuyen bajo CC- BY 3).

Cómo funcionan el lanzamiento y la compilación

Para un usuario regular, todo es extremadamente simple. La sección de releases contiene binarios listos para usar. Descargaste el archivo, lo extrajiste y ejecutaste el ejecutable Ikemen_GO.exe o Ikemen_GO.command dependiendo de tu sistema.

Si planeas modificar el motor en sí o explorar el código, el proceso es ligeramente diferente.

Primero, clona el repositorio:

git clone https://github.com/ikemen-engine/Ikemen-GO.git
cd Ikemen-GO

Para ejecución local, una compilación de una sola fuente Go no es suficiente — el motor necesita recursos básicos de interfaz (sprites, sonidos, menús). Estos se obtienen del repositorio vecino Ikemen-GO-Screenpack y se extraen directamente en el directorio raíz del proyecto.

Después de eso, puedes lanzar la depuración a través del IDE o compilar un binario para la plataforma objetivo. Para compilar para Android, los autores han preparado contenedores Docker listos para usar, lo que elimina el dolor de configurar el NDK local.

Por qué un desarrollador debería ver este código

Hay dos escenarios para usar Ikemen GO.

El primero es — te encantan los juegos de pelea y quieres construir el tuyo propio. Escribir física de colisiones, manejo de hitboxes, carga de sprites y un stack de red desde cero es una tarea que lleva años. Tratar Ikemen GO como un framework listo para usar es mucho más eficiente. Tomas el motor, configuras scripts Lua, dibujas personajes y obtienes un producto terminado.

El segundo escenario es — estudiar la arquitectura de sistemas complejos en Go. En la comunidad, Go típicamente se asocia con microservicios, APIs REST, gRPC y utilidades CLI. Ikemen GO muestra un lado completamente diferente del lenguaje:

  • Cómo organizar un game loop y manejo de entrada con latencia mínima.
  • Cómo interactuar con multimedia a través de Cgo y FFmpeg.
  • Cómo estructurar un proyecto de juego grande sin usar motores pesados de terceros como Unity o Godot.

En resumen

Ikemen GO es un gran ejemplo de cómo el código abierto da una segunda vida a tecnologías abandonadas. El proyecto está activo, se aceptan PRs y constantemente se está trabajando en el repositorio.

Si estás buscando un proyecto de código abierto en Go poco común para estudiar o hace mucho que quieres construir tu juego de pelea soñado sin necesidad de escribir tu propio renderer — échale un vistazo al repositorio. El mejor lugar para comenzar a explorar es su Wiki, que detalla todas las características nuevas que nunca existieron en el M. U.G.E.N original.

Proyectos relacionados