MUGEN Database
Advertisement

Ikemen GO
IKEMEN GO TitleScreen
The default motif for Ikemen GO

Creator

Various

Download

Ikemen GO - Open Source Fighting Engine

Version

0.99.0

Version Date

October 28 2023

Ikemen
IKEMEN TitleScreen
The default motif for Ikemen

Creator

SuperSuehiro

Download

OSDN

Version

2017.05

Version Date

May 14 2017

Ikemen (short for Itsumademo Kanseishinai Eienni Mikansei ENgine) is a free and open-source fighting game engine designed to be compatible with M.U.G.E.N content, while also expanding on its feature set to allow for more flexible customization. The engine is notable for introducing stage zoom prior to the release of the M.U.G.E.N 1.1 beta, and for allowing netplay matches, a feature that is not supported in any official build of M.U.G.E.N.

Unlike M.U.G.E.N, the engine is open source[1], which allows users to modify the engine outside of simple content additions, as well as the addition of new features, such as new state controllers and menus. Because of its open source nature, the engine has been split into multiple versions handled by different individuals; the original Ikemen was created by SuperSuehiro, which was later forked and extended into Ikemen Plus by K4thos, and later rewritten in the GO language as Ikemen GO by SuperSuehiro, which is currently maintained by multiple individuals.

History[]

Ikemen began development in 2010 by SuperSuehiro on the now-archived Google Code service[2], using a proprietary programming language called S-SIZE, also created by Suehiro.[3] In 2013, Suehiro's Google Code capacity had reached its limit, which prompted a move to OSDN (known at the time as SourceForge.jp).

The earliest available build of Ikemen dates back to July 7, 2010. Ikemen came bundled with a slightly edited version of Kung Fu Man and a single stage, a low-resolution version of SpaceRainbow. Initially, its only netplay features were simple online play and replay, and gameplay-wise functioned identical to early versions of M.U.G.E.N 1.0 with the addition of stage zoom, which would later be added in the M.U.G.E.N 1.1 beta.

Starting in 2016[4], SuperSuehiro began rewiting the engine in the programming language Go, calling it Ikemen GO. Later on, two community members named K4thos and Shinlucho forked the engine's source code onto GitHub and began adding their own features and bug fixes, under the name Ikemen GO Plus.[5] K4thos became less active as time went on, and SuperSuehiro merged the changes of Ikemen GO Plus into the main branch of Ikemen GO. Shortly after, Neat Unsou made his own fork of the engine and directly helped with SuperSuehiro in development.[6]

Another user, Gacel, created his own fork a year later, and around this time Suehiro's fork seemingly ceased further development. With the latter's fork becoming inactive and the eventual comeback of K4thos in 2020, both Gacel and K4thos' forks were considered the "dominant" fork of the engine. In early 2022, K4thos and Gacel created the ikemen-engine Github organization to serve as a central repository for the engine.[7]

In January 2023[8], a Github Pages site was created for the engine, and later refined in October, to make it easier for those unfamiliar with Github to download the engine. Around March 2023[9], the Ikemen GO repository began releasing nightly builds; builds that are automatically created every time changes are made to the main Ikemen GO repository. These builds are similar to M.U.G.E.N's Alpha and Beta versions, in that they allow the public to test new features and bugfixes prior to a new "stable" release of the engine, at the cost of lack of documentation or possible unknown bugs.

Game modes[]

Main article: M.U.G.E.N's game modes

The original Ikemen includes seven modes, those being: Watch Mode, 1P vs. Com, 1P vs. 2P, Netplay, Replay, Com vs. 1P, and Auto Random Test. Ikemen GO add several additional modes, and through the use of Ikemen GO's LUA scripting support, it is possible for screenpack and fullgame authors to add new game modes as well.

Tag Team[]

Tag Team is a game mode that can be used in addition to the existing Single, Simul, and Team modes, and allows for up to four characters for each player to be used in a match. Unlike the existing Team mode, Tag allows for players to switch to other characters on the team on the fly, by pressing the (also new) D and W buttons. In order to swap, the player must be on the ground, able to control their character, and not currently being hit by the opponent.

Ratio Team[]

Ratio Team is a mode heavily inspired by the Ratio Battle mode from Capcom vs. SNK 2. Each player selects a ratio of four "levels" to be split across three characters, who then fight in a similar matter to Team mode. The ratio affects each characters' Life and Attack by a percentage, the value of which can be configured in the options menu on a per-level basis.

Training[]

Training mode functions very similarly to how it does in M.U.G.E.N, allowing a player to practice combos by removing the timer and not allowing either character to be K.O'd. Ikemen adds a new Training Menu accessible from the pause menu that can be used to change the opponent's behavior. The menu includes options to do things such as keep the opponent a certain distance from the player, have them spam a given button endlessly, change their blocking and movement behavior, and toggle whether they are controlled by player 2 or by the AI.

Netplay[]

Netplay allows two computers running Ikemen to connect and fight with eachother. When selecting the option, a window will appear and ask for the host's IP address. If no address is given, the client will become a host, ready for a client to connect to (assuming the host has port-forwarded). Ikemen will use port 7500 for netplay by default, but the host can change this using the "Port Change" option on the main menu.

In order to connect, the client must have an Ikemen installation that is identical to the host in terms of content, as any deviation will cause the client and host to become desynchronized from eachother. Once the host and client are both connected, Netplay functions similarly to that of Team Versus, where players can choose either Single, Simul, or Team for their side. Any match played over Netplay will also automatically generate a replay file, for use in Replay mode.

Replay[]

Replay mode will replay the inputs of the last Netplay match. Like Netplay, Replay also requires the content of the Ikemen installation to be identical in terms of content to when the replay file was generated, else the replay will desynchronize (as it also replays the inputs of the character select screen).

Auto Random Test[]

Auto Random Test is a mode that will endlessly select two random A.I.-controlled characters in random palettes and then have them fight eachother, in a manner similar to M.U.G.E.N's Watch mode. It will log the results of these matches in a file named autolevel.txt.

Time Challenge[]

Time Challenge, as the name implies, is a mode where the player is tasked with defeating the opponent as quickly as possible. The player can select any character on their roster as the opponent, and must only knockout the opponent once. The timer starts as soon as the player gains control of their character and stops as soon as a K.O. is achieved. The best recorded time, along with the character and initials of the player that obtained it, can also be displayed on the character select screen in this mode. This mode was removed from default distributions of Ikemen GO starting in 0.98, but can be added back via external modules.

Score Challenge[]

Score Challenge is virtually identical to Time Challenge, with the major difference that the player is aiming for the largest score in a match rather than the fastest time. This mode was removed from default distributions of Ikemen GO starting in 0.98, but can be added back via external modules.

Vs. 100 Kumite[]

Vs. 100 Kumite is a mode that puts the player against 100 rounds of opponents. Each round only requires one K.O. to advance to the next round, and will advance even if the player loses the round. The mode is named after the 100-man kumite, an endurance test in karate where one must endure 100 rounds of kumite against opponents of similar skill. This mode was removed from default distributions of Ikemen GO starting in 0.98, but can be added back via external modules.

Boss Rush[]

Boss Rush is a mode where the player must fight all of their roster's "boss" characters in a row, as defined by the boss parameter for character entries in select.def.

Bonus Games[]

Bonus Games is a special section of the menu that can be populated with bonus games. The menu will be populated with any character entry in select.def that includes the bonus parameter. Additional parameters can be used to specify other attributes, such as how many rounds the bonus game lasts. At least one bonus game must be defined in order for this section to appear on the menu.

Features[]

This section contains an overview of features introduced by Ikemen GO. Due to the engine's open-source and modular nature, new functionality can be added to it by both creators and other source-code forks to suit their respective needs; as such, this will only cover features that are available within the base engine.

ZSS[]

Alongside M.U.G.E.N's CNS format, Ikemen supports a scripting language known as Zantei State Script, or ZSS for short. The language is functionally identical to CNS, but with a completely different syntax designed to be more in line with conventional programming languages. ZSS files can be used in tandem with or as a substitute for CNS files, although the two cannot be mixed within the same file. ZSS has many advantages over CNS such as reduced boilerplate code and redundancy, support for labelled functions, and if-else conditions instead of triggers. Below is an example of a CNS statement and its ZSS equivalent:

; Example CNS statement
[State Sample]
type = PosAdd
triggerall = time = 0
trigger1 = stateType = S
y = -50

[State Sample]
type = VelAdd
triggerall = time = 0
trigger1 = stateType = A
y = 0.1

[State Sample]
type = PosSet
triggerall = time = 0
trigger1 = stateType != S
trigger1 = stateType != A
y = -20
# Example ZSS statement
if time = 0 {
    if stateType = S {
        PosAdd{y: -50}
    } else if stateType = A {
        VelAdd{y: 0.1}
    } else {
        PosSet{y: -20}
    }
}

Modules[]

Modules are script files written using the Lua language, used to control many things in Ikemen such as menu functionality and game mode parameters. By creating custom modules, the engine's functionality can be expanded even further to include custom game modes and specialized arcade mode paths similar to those provided by Mugen Story Mode.

Associated contributors[]

References[]

External links[]

Advertisement