Open-source project
ikemen-engine/Ikemen-GO avatar
ikemen-engine/Ikemen-GO

Ikemen GO review for M.U.G.E.N compatibility and custom fighting games

An open-source fighting game engine that supports MUGEN resources.

1,637 stars281 forksGoNOASSERTION

At a glance

What is it?
Ikemen GO is a Go-based fighting game engine for running M.U.G.E.N resources with broader feature support and selective compatibility changes. It suits resource authors and fighting game developers, but modern graphics, platform, and licensing requirements create concrete constraints.
Who is it for?
Ikemen GO is a practical choice for developers who want to preserve existing M.U.G.E.N character, stage, and font workflows while accessing a Go codebase and added engine features. It is less suitable for projects requiring exact bug-for-bug M.U.G.E.N behavior, old Windows systems, Intel macOS builds, or unlicensed redistribution assumptions.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Go, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Why Ikemen GO exists alongside M.U.G.E.N

Ikemen GO addresses a specific compatibility problem: creators often have characters, stages, fonts, effects, and other assets authored for M.U.G.E.N 1.1 Beta, but they need an engine that can load those resources without requiring a complete conversion. The project positions compatibility with M.U.G.E.N 1.1 Beta as its central goal while also adding features beyond that reference engine.

That compatibility claim has a deliberate boundary. The README explicitly says that Ikemen GO does not attempt bug-for-bug emulation. If matching M.U.G.E.N would preserve a bug, quirk, or unnecessary restriction, behavior may intentionally differ. This makes it more useful for projects that want M.U.G.E.N resource compatibility than for developers whose main requirement is deterministic reproduction of every historical engine behavior.

The intended users include fighting game authors working with M.U.G.E.N resources, developers interested in modifying an engine, and people who want to run existing content on the supported desktop and mobile platforms. The engine is not presented as a general-purpose game editor. The README sends resource creation guidance to the community forum, so the repository is primarily the runtime and its own development environment.

The Go engine structure behind rendering, rollback, and scripting

The repository layout exposes several distinct subsystems. Renderer-specific files include `render_gl33.go`, `render_gles32.go`, and `render_vk.go`, matching the documented requirement for OpenGL 3.3, OpenGL ES 3.2, or Vulkan. This indicates separate graphics backends rather than one renderer with every API embedded in a single file. Font rendering also has separate GL33, GLES32, and Vulkan implementations.

Network play and state synchronization are visible in `netplay.go`, `rollback.go`, and `state_clone.go`. Based on these file names, rollback sessions need explicit state handling, cloning, and network coordination rather than relying on a general-purpose networking library. The presence of `github.com/ikemen-engine/ggpo` in `go.mod` further ties the engine to a dedicated Go rollback networking dependency.

Fighting content compilation and behavior are divided among `compiler.go`, `script.go`, `char.go`, `stage.go`, and `storyboard.go`. The module also includes `github.com/yuin/gopher-lua`, while `bytecode.go` points toward a bytecode execution path. Audio, input, configuration, video decoding, and video playback have their own files. `input_sdl.go` corresponds to the SDL input layer, while `video_ffmpeg.go` corresponds to the documented FFmpeg linkage. This separation makes the codebase more approachable to contributors who work on one subsystem, although it also means compatibility behavior is spread across many files.

Installing a release and making the first launch

The README documents downloadable release archives rather than a package-manager installation. Download the ZIP matching the target operating system, extract it, and keep the extracted executable and accompanying files together. Stable releases use tags such as `v1.0.0`; release candidates use tags such as `v1.0.0-rc.1` and are marked as pre-releases. Nightly builds track commits to `develop` and may be less stable, so `v1.0.0` is the more conservative documented starting point than `nightly`.

On Windows, launch `Ikemen_GO.exe`. On macOS and Linux, launch `Ikemen_GO.command`. Android users install `ikemen-go.apk` from the Android archive. For iOS and iPadOS, the documented package is `Ikemen_GO-<version>-ios.ipa`, sideloaded through AltStore, SideStore, or Sideloadly. SideStore or AltStore updates use the `altstore-source.json` link from the same release. Free Apple IDs require refreshing the app every seven days.

A first successful launch is only the engine startup. The README does not document the exact menu sequence for adding a `chars` folder, selecting a character, or starting a match. Those instructions must come from community resources or the forum rather than being inferred from the repository. That omission matters for evaluation because engine startup does not establish whether an existing M.U.G.E.N character loads without conversion.

System requirements that can rule out an otherwise valid port

Ikemen GO does not support every environment that once ran M.U.G.E.N. The documented minimum is Windows 10 64-bit, macOS 13 Ventura on Apple Silicon, Linux x86-64 with glibc 2.35 or later, Android 13 API 33 on arm64, or iOS 17 on an arm64 device. The macOS requirement is particularly restrictive because Intel macOS builds are not currently published. A device meeting the operating-system version may still be rejected by the graphics requirement.

A GPU must support OpenGL 3.3, OpenGL ES 3.2, or Vulkan. Developers testing on a virtual machine, old workstation, emulator, or server without a suitable graphics driver must account for this separately. The iOS requirement also excludes simulators and uses sideloading rather than a documented App Store installation path.

These limits are clearer than the engine's broad mobile support might initially suggest. Windows 7, Windows 8, and 32-bit Windows are no longer supported, and the README directs users who need those systems to an older release. Older Linux distributions can also fall below the glibc requirement. Port work is therefore not simply a matter of choosing a target in the build system: the target needs an available runtime GPU interface, supported ABI, and a distribution or installation route.

Compatibility benefits and deliberate M.U.G.E.N differences

The strongest reason to choose Ikemen GO is continuity with M.U.G.E.N resources. Its stated target is M.U.G.E.N 1.1 Beta compatibility, and the engine is a complete rewrite of an earlier project also called Ikemen. Authors can therefore evaluate an existing asset ecosystem without first deciding that every character or stage must be rewritten.

The alternative approach is to treat M.U.G.E.N itself, or a more literal fork, as the baseline. That path may be preferable when preserving historical bugs matters, but it also preserves whatever platform constraints, rendering assumptions, and quirks came with the reference implementation. Ikemen GO instead accepts intentional behavioral differences and added features. The project wiki is identified as the source for a comprehensive list of those additions, but the README does not include the list itself. Any feature-by-feature adoption decision still needs a direct comparison against the candidate resource and feature.

For a content-focused developer, this is often the better boundary: preserve the asset format while reviewing where engine behavior differs. For a compatibility laboratory seeking exact historical behavior, the explicit departure from bug-for-bug emulation makes Ikemen GO the wrong baseline.

Release maintenance, source changes, and dependency work

The repository is not archived, and the last push was on 2026-10-16. Stable `v1.0.0` was released on 2026-09-12, followed by `nightly` on 2026-10-14. The README states that nightly builds are updated after each commit to `develop` and may be less stable. That division creates a real upgrade choice between a stable release and faster builds that include newer commits.

The Go module declares `go 1.27.0` and contains numerous direct dependencies for graphics, audio, input, Vulkan, glTF, fonts, configuration, scripting, rollback networking, and media. Upgrades can therefore involve more than changes to engine source files. A contributor should review `go.mod`, `go.sum`, `BUILDING.md`, and the relevant platform build scripts before choosing a new nightly.

For engine development, the README requires the separate `Ikemen-GO-Screenpack` dependencies to be unpacked into the Ikemen-GO source directory before debugging. It names GoLand and Visual Studio Code as usable debuggers, while `BUILDING.md` contains platform-specific build steps. Stable release users avoid this source setup, but engine contributors still face a multi-platform build and dependency maintenance cost.

Licensing the engine, screenpack, and FFmpeg distribution as one product

The repository metadata classifies the top-level license as custom, while the README states that the engine is under the MIT License. It also identifies several components with different terms. The default bundled screenpack is licensed under CC-BY 3 rather than the engine's MIT license. The README therefore directs users to `LICENCE.txt` for details instead of treating the repository as a single uniformly licensed bundle.

Media handling adds another consideration. Ikemen GO dynamically links FFmpeg under LGPL v2.1, while the iOS build links it statically. The project states that the engine and iOS application source is public and that the corresponding FFmpeg source is published as `src_ffmpeg.tar.gz` on the release page. It also says users may rebuild against modified FFmpeg. These are documented redistribution facts, not legal advice.

The practical implication is concrete: a studio shipping a game based on Ikemen GO should inspect `LICENCE.txt`, identify the exact screenpack and FFmpeg artifacts included, and preserve any corresponding source or attribution materials that apply to its distribution method. The engine license alone does not settle the licensing of every bundled file.

Editorial conclusion

Ikemen GO is a practical choice for developers who want to preserve existing M.U.G.E.N character, stage, and font workflows while accessing a Go codebase and added engine features. It is less suitable for projects requiring exact bug-for-bug M.U.G.E.N behavior, old Windows systems, Intel macOS builds, or unlicensed redistribution assumptions. Before adoption, verify the exact content you plan to use against the release, inspect `LICENCE.txt`, and confirm that the target device meets the stated graphics and operating-system requirements.

Frequently asked questions

What operating systems and graphics APIs does Ikemen GO support?

The documented targets are Windows 10 64-bit, macOS 13 Ventura on Apple Silicon, Linux x86-64 with glibc 2.35 or later, Android 13 API 33 arm64, and iOS 17 arm64. A GPU supporting OpenGL 3.3, OpenGL ES 3.2, or Vulkan is required.

Does Ikemen GO reproduce every bug in M.U.G.E.N 1.1 Beta?

No. The project targets compatibility with M.U.G.E.N resources but explicitly rejects bug-for-bug emulation, so behavior can differ where the older engine contains bugs, quirks, or unnecessary limitations.

Should I use an Ikemen GO stable release or a nightly build?

Use `v1.0.0` when stability matters. The `nightly` release is updated after each commit to `develop` and is documented as potentially less stable.

How are Ikemen GO binaries started on each platform?

Windows uses `Ikemen_GO.exe`, while macOS and Linux use `Ikemen_GO.command`. Android uses `ikemen-go.apk`, and iOS or iPadOS uses an IPA sideloaded through one of the documented tools.

Official sources

  1. ikemen-engine/Ikemen-GO on GitHub
  2. Issues
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/ikemen-engine-ikemen-go.svg)](https://hysenlabs.com/projects/ikemen-engine-ikemen-go)

Was this useful?