# Mugen (motor de jogo)

M.U.G.E.N. (também conhecido como MUGEN, ou Mugen) é um motor de jogo para jogos de luta desenvolvido pela Elecbyte e iniciado em 1999 usando a biblioteca Allegro. O conteúdo é criado pela comunidade e milhares de lutadores, originais e de ficção popular, foram criados. É escrito em C e originalmente usado na biblioteca Allegro. As versões mais recentes do mecanismo usam a biblioteca SDL .

## Gameplay

O motor usa quatro teclas direcionais junto com sete botões para jogabilidade (A, B, C, X, Y, Z e Start), a fim de acomodar lutadores de seis botões que usam três socos, três chutes e um botão de início que geralmente é uma provocação. No entanto, os personagens não usam necessariamente todos os sete botões, nem precisam seguir um formato tradicional de seis ou quatro botões. No máximo, dois jogadores podem controlar os personagens, sendo os outros controlados pela IA do motor (incluindo Watch Mode, um modo de demonstração onde o computador controla todos os personagens). As IAs podem ser brutais, fortes ou mesmo fracas. A IA padrão para o mecanismo, no entanto, pode andar, pular, raramente atacar e proteger os ataques do jogador quando o nível de IA é definido como Difícil. Além disso, vários modos de jogo estão disponíveis no menu principal.
O primeiro modo de jogo é o modo Arcade, onde um personagem controlado pelo jogador encontra personagens controlados pela CPU em uma ordem aleatória ou definida que pode ser totalmente personalizada. Existem também três tipos diferentes de modos de equipe: Single, Simul e Turns. Um quarto modo, Tag, está listado no EXE junto com dois controladores de script relacionados, mas nunca foi usado. No modo de equipe, qualquer um dos lados pode usar qualquer um dos modos de equipe. Single é idêntico a não ter uma equipe, Simul dá a esse lado um parceiro controlado por computador que luta simultaneamente, e Turns usa um personagem diferente para cada rodada de jogo, variando por um número definido (geralmente de 2 a 4) de personagens diferentes em uma fila. Se definido, a vida inicial dos personagens será ajustada de acordo com o número de jogadores de cada lado. Se um lado tiver dois personagens e o outro tiver apenas um em um dos modos de equipe, os dois personagens que estão no mesmo lado terão, cada um, metade de seus respectivos valores de vida máximos normais. As versões pré-Win M.U.G.E.N do mecanismo podem ter esse recurso ajustado ou desativado por meio da tela de opções ou do arquivo de configuração, mas devido à natureza do hack, a opção ainda não foi reativada. O Team Co-op é semelhante ao Simul, exceto que ambos os jogadores humanos lutam do mesmo lado e ao mesmo tempo.
No modo Survival, há um fluxo interminável de oponentes, lutando um a um ou dois em uma partida Simul. O objetivo é vencer o maior número de adversários possível, com o jogo terminando quando o personagem ou equipe do jogador for derrotado, dependendo do número de combatentes que o jogador encontrar naquela versão customizada do jogo. O jogador pode escolher jogar sozinho ou no modo Simul ou Turns, embora o modo Single Player dê a maior vida e a vida recuperada no final de cada rodada vencida. O modo de sobrevivência foi a última adição feita ao motor. Como tal, não está presente em nenhuma das versões DOS do M.U.G.E.N.

## Desenvolvimento

Mugen foi inicialmente criado para MS-DOS por um grupo de desenvolvedores de Ann Arbor, Michigan. Aprimeira versão beta pública foi lançada em 27 de julho de 1999. O desenvolvimento da versão DOS cessou quando a Elecbyte mudou para a plataforma Linux em novembro de 2001.. Por um tempo, a Elecbyte postou um pedido de doações em seu site para obter legalmente um compilador do Windows para fazer uma versão Windows do Mugen. No entanto, o grupo de desenvolvimento interrompeu o projeto em 2003 e fechou seu site. Especulações posteriores apontaram para vazamentos tornados públicos de um Mugen beta privado baseado no Windows que foi fornecido a uma pequena quantidade de doadores; uma investigação posterior em 2022 afirmou que os desenvolvedores originais originalmente criaram o Mugen como um projeto de faculdade e pararam o desenvolvimento depois que os desenvolvedores originais se formaram.
O significado de "mugen" (無限) em japonês, "ilimitado" ou "infinito", pode ter influenciado a nomenclatura. Mugen mais tarde se expandiu para uma ampla variedade de equipes e comunidades, como Mugen Fighters Guild, Mugen Infantry, Infinity Mugen Team, RandomSelect, TheHiddenElect, Mugen Free For All, Unleaded Mugen, Mugen Archive, MugenBR e Pao de Mugen, entre muitos outros. Grupos internos e externos da comunidade formados, com sites geralmente categorizados em facções de "criadores" que criaram conteúdo para o mecanismo como artistas e programadores e "armazéns" que procuraram redistribuir o conteúdo de outras pessoas para fins de arquivamento e uso justo. Mugen também ganhou mais destaque na imprensa com a criação da transmissão ao vivo do Twitch chamada Salty's Dream Cast Casino (SaltyBet), onde os espectadores podem apostar com dinheiro falso em partidas de CPU jogadas usando o motor.
O beta privado do WinMugen continha um limite de lista de dois caracteres, modos de jogo bloqueados e telas nag. Com o vazamento do beta e o desaparecimento do Elecbyte, um hack "sem limite" que removeu a maioria dessas limitações foi disponibilizado em 2004, seguido por atualizações subsequentes para lidar com bugs e outros problemas. Esta versão do Mugen é funcionalmente igual à última versão do Linux, embora com diferenças sutis e problemas únicos principalmente relacionados ao suporte adequado de música e plug-in de música. Por causa das mudanças entre as versões DOS e Linux do Mugen, no entanto, muitos personagens mais antigos exigiam que pelo menos os arquivos SFF fossem modificados para mostrar as paletas corretamente (principalmente em retratos), bem como algumas mudanças em como certos controladores de script CNS funcionavam, causando alguns um pequeno aborrecimento e aqueles que ainda podem executar a versão do DOS de alguma forma aderindo a isso, bem como patches do DOS para rebaixar os personagens para serem compatíveis com a versão mais antiga do mecanismo.
Em maio de 2007, uma versão hackeada do WinMugen foi lançada por um terceiro que adicionou suporte para estágios de alta resolução ao custo de perder o suporte para estágios Mugen de resolução padrão. Mais tarde naquele mês, outro hack adicionou suporte para telas selecionadas de alta resolução. Em julho de 2007, outro hack baseado no último hack de alta resolução permitia que apenas a tela selecionada fosse de alta resolução e não os estágios. Em dezembro de 2007, um hack de uma fonte anônima permitiu que os estágios de baixa e alta resolução funcionassem na mesma compilação. Em junho de 2007, um Winmugen não oficial também foi disponibilizado em um site japonês.
Em meados de 2007, o site da Elecbyte voltou, embora não sem alguma controvérsia quanto à sua legitimidade, pois exibia apenas um único logotipo com anúncios do Google ao lado. Em 26 de julho, um FAQ foi adicionado ao site, afirmando que eles lançariam uma versão corrigida do WinM.U.G.E.N antes das principais mudanças de formato na próxima versão, e observou que as mudanças de formatação removeriam a compatibilidade em relação a trabalhos mais antigos: "Não espere que personagens antigos funcionem. De jeito nenhum".
Em 19 de setembro de 2009, a Elecbyte fez um retorno inesperado, atualizando seu site com vários recursos - incluindo um fórum e uma seção de downloads, onde uma nova versão do Mugen estava disponível. Em setembro de 2009, uma versão completa do Mugen (MUGEN 1.0 Release Candidate) que inclui vários novos recursos - mais notavelmente suporte (oficial) para resoluções HD, telas de vitória e localização de idiomas - foi disponibilizado no site da Elecbyte. Embora esta compilação tenha várias falhas visuais e exigisse uma quantidade razoável de ajustes no conteúdo feito anteriormente para ser totalmente compatível com o novo mecanismo, a Elecbyte afirmou que é seu objetivo ter o novo Mugen totalmente compatível com o conteúdo projetado anteriormente. Em 18 de janeiro de 2011, a Elecbyte lançou uma versão 1.0 apenas para Windows, corrigindo a maioria dos bugs apresentados nos candidatos a lançamento. Era compatível com quase todo, senão todo, o conteúdo feito anteriormente. Após o lançamento da versão 1.0, a Elecbyte novamente interrompeu a atividade pública por um período prolongado. No final de abril/início de maio de 2013, uma cópia vazada do Mugen 1.1 alpha 4 chegou à Internet. Esta versão adicionou recursos de zoom de palco e alguns outros recursos, embora, como esperado com um alfa, tivesse vários bugs. Uma postagem foi feita no site em 11 de maio de 2013 sobre os problemas dos fóruns. No entanto, a partir de 28 de maio de 2013, os fóruns voltaram a ficar online.
Em agosto de 2013, o Mugen 1.1 beta 1 foi lançado ao público, o que corrige muitos dos bugs das versões 1.1 alpha. Versões adicionais para 1.1 foram planejadas e estão sendo trabalhadas. Esses lançamentos foram planejados para incluir mudanças significativas no mecanismo que removeriam certas restrições de desenvolvimento de personagem que existiam devido às limitações do código antigo. Em 8 de julho de 2014, uma porta feita por um fã de Mugen 1.0 para Mac OS X foi lançada pela Mugenformac, construída usando o invólucro "Wineskin Winery". Ele funcionou com poucos ou nenhum problema relacionado à porta. A versão 1.1 beta 1 da porta Mac foi lançada em 3 de janeiro de 2015.
Desde 2015, o site da Elecbyte ficou offline por motivos desconhecidos, exibindo uma mensagem 403, exceto para páginas pertencentes à documentação oficial; A última atividade da Elecbyte foi em 2016, promovendo um crowdfunding para o Rotten Core, um jogo de luta comercial que foi aprovado para usar o motor (a licença do motor normalmente proibia o uso comercial). Um projeto de reimplementação de código aberto chamado I.K.E.M.E.N começou a ser desenvolvido em 2010, adicionando recursos adicionais, como jogo online.

## Legalidade do M.U.G.E.N.

Tenha em mente que as licenças de uso da Elecbyte sobre o Mugen se expiraram, e parece que uma nova licença jamais será lançada. Certamente, qualquer distribuição do MUGEN não foi autorizada pela Elecbyte e por isso mesmo é ilegal, embora a Elecbyte nunca tenha tomado nenhuma ação legal, ela simplesmente sumiu sem nenhuma explicação. Muitas pessoas escolheram continuar usando o Mugen mesmo sem uma licença nova. No entanto, criações como personagens e cenários não são parte da licença de uso da Elecbyte, apenas o software. Então é uma escolha individual decidir se viola ou não a licença da Elecbyte usando o Mugen. Elecbyte não dá notícias ao público desde 2003 quando eles alegaram que o projeto "travou" (hit a snag). Essa, na verdade para muitas pessoas, foi uma desculpa para eles terem sumido do globo, deixando os usuários e criadores sem alternativa nenhuma.
Algumas pessoas questionam sobre a legalidade de personagens e cenários (somente os que são feitos com sprites e sons ripados de jogos comerciais). Algumas comunidades apostam numa fraca "regra de tempo de lançamento", aonde eles não permitem criações de jogos muito recentes, fato que é tão contestável como o próprio lançamento da Rom. Nas comunidades brasileiras, esta regra não se aplica, pois se há uma ROM disponível então não há problema algum de se usá-la para criar personagens e cenários de Mugen. Apesar disso não ter nenhum impacto na legalidade do material, isto foi usado para evitar pressão das detentoras originais dos direitos autorais. Mas, empresas como a Capcom, SNK e outras encaram isso como um fanart.
O material de trabalho tem dois tipos de direitos autorais: o conteúdo do SFF (formato de sprite, baseado em imagens PCX) e o SND (formato de áudio baseado em WAV) são propriedades dos respectivos detentores, como Capcom, SNK, etc; Os outros arquivos, como o CMD (arquivo de comandos), AIR (arquivo de animação) e CNS (constantes e definições de states, o principal arquivo do Mugen) são propriedades do autor do personagem, cenário e outros. A Elecbyte explicou que a razão dos códigos serem baseados em texto puro é justamente para que os criadores possam aprender um do outro (similar ao código aberto do software livre), mesmo que isso seja alvo de muita controvérsia a respeito de permissão (ou falta dela) entre os criadores.
Em 2011, no site oficial diz que a Elecbyte já renovou a licença e a versão 1.0 Final já foi lançada para Windows. A Elecbyte atualmente não tem planos para suportar Linux novamente.

## Formatos de Documentos

* SFF: Arquivo onde é localizado as sprites (imagens) dos chars, stages, intros ou endings, baseados no formato PCX (Atualmente o formato SFF2 suporta PNG). As imagens seguem uma regra de que devem possuir um fundo "transparente", que nada mais é do que uma cor não utilizada pelo char posicionada em um "box" estratégico para que o MUGEN, ao ler o pixel com a "cor transparente", não desenhe nada.
* ACT: Aqui é onde as cores utilizadas nos sprites dos chars são declaradas. Chamado de "paleta" pelos criadores, o MUGEN suporta até 12 delas de uma vez, cada uma escolhida por um botão - A, B, C, X, Y, Z - ou pela combinação dos botões anteriores com o botão START.
* SND: Onde é localizado os sons dos chars, baseado em arquivos de áudio no formato WAV.
* CMD: Arquivo onde é definido os comandos do personagem (ou "char" - abreviação do termo "Character", do inglês). A sintaxe se baseia em strings obedecendo algumas regras. Por exemplo, os botões listados em ACT são reconhecidos como a, b, c, x, y, z, respectivamente, e s, para o botão START. Os botões direcionais são reconhecidos como F, D, B, U, para "frente", "baixo", "trás" e "cima", respectivamente. Existe a combinação dos mesmos, como DF, DB, UB, UF, que significam "diagonal inferior frontal", "diagonal inferior traseira", "diagonal superior traseira" e "diagonal superior frontal", nesta ordem. Existem ainda demais caracteres reservados como o "/", que tem um significado como "pressione", entre muitos outros.
* AIR: Arquivo que contém as animações dos chars, feitos com as imagens do SFF. As animações são compostas por frames, que nada mais são do que a programação de uma ordem definida de sprites, setados em uma determinada posição em relação ao eixo do personagem e um tempo de duração desse sprite na tela. Além dos frames, cada animação possui as chamadas "caixas de colisão", que definem a área de acerto no corpo do char. Essas caixas devem ser definidas pelo criador.
* CNS: Aqui é onde são declarados as Constantes e as Definições dos States, considerado o principal arquivo dos Chars. Esses arquivos, por conterem os códigos dos chars, contém copyright de seu respectivo autor, portanto a cópia de qualquer código sem a devida autorização é severamente recriminada e punida nas maiores comunidades de M.U.G.E.N., embora a própria Elecbyte tenha decretado que pelo arquivo ser baseado em texto e processado pelo motor dessa maneira, os usuários/criadores poderiam aprender entre eles. No entanto, há uma grande controvérsia entre os criadores em questão ao uso de códigos não-autorizados. Existem criadores que permitem a total utilização de seus arquivos (tornando-os "Open Source", popularmente chamado), outros que exigem o chamado "crédito", que nada mais é do que citá-lo na documentação do char, e outros ainda que não permitem qualquer tipo de cópia, seja de código ou de sprites, embora esses últimos não pertençam a eles.
* DEF: O chamado "arquivo de definições". Esse arquivo, quando no char, define os arquivos utilizados pelo mesmo, tais como o de sprites SFF, de animações AIR, as paletas ACT, os arquivos de programação CNS e os de comando CMD. Também define-se, a partir de versões mais recentes, arquivos de "Intro" e "Ending", que são animações coordenadas em outros arquivos, um outro DEF e outro SFF. Como foi dito, o arquivo DEF também pode ser um arquivo de definição para uma intro ou um ending. Também é verdade que o arquivo DEF serve como um arquivo de definição para stages, de forma similar ao de intro e ending. Além da programação, é possível encontrar mais desses arquivos na pasta DATA do MUGEN, onde existe, junto com arquivos CFG, como definidores do "screenpack".
* ST: Igual ao CNS. Constante muito usada nos chars das novas versões de M.U.G.E.N. Melhor utilização do que CNS.
* TXT: Igual ao CNS e ST. Pode ocorrer vários erros se usar em ficheiro *.txt.

## Limitações do M.U.G.E.N.

Apesar de tudo, o Mugen é limitado em alguns pontos. Uma das maiores frustrações dos criadores é a ausência de uma forte interação entre chars e stages. Códigos limitados já foram propostos, mas o limite dos mesmos sempre recai em um (ou ambos) de dois pontos: consenso geral ou limites de programação para o caso geral.
O consenso geral seria a ideia de que todos os criadores deveriam seguir um padrão (template). Por exemplo, no Mugen existem os chamados sprites requeridos, que nada mais são do que sprites que todos os chars devem possuir, pois seu uso é universal, como por exemplo em arremessos ou agarrões. Dessa forma, para um char ser 100% compatível com os demais, ele deve possuir todos esses sprites requeridos. Existem ainda animações e states requeridos. Os últimos, no entanto, já vêm programados no arquivo COMMON1.CNS. Voltando à idéia do consenso geral, atualmente se discute a ideia de estabelecer alguns padrões, como, por exemplo, em sprites e animações requeridos extras, para deixar o jogo mais compatível com os novos personagens que vão surgindo.
Os limites de programação para o caso geral surgem devido ao fato de que o motor não oferece meios de executar alguma programação desejada,tanto em programações de chars, stages, e até no próprio sistema do Mugen, de tal forma que ou a mesma é feita de modo limitado (com muitas restrições) ou é impossível de ser realizada.

## Customização

Os usuários que desenvolvem conteúdo para o mecanismo de jogo são geralmente chamados de autores. Esses autores criam conteúdos customizados como personagens, cenários e screen packs/skins. Freqüentemente, os autores portam personagens populares de mecanismos de luta 2D, como a série Street Fighter, ou de séries de TV, livros e jogos, como Tartarugas Ninja, Os Simpsons, Pingu, Super Mario, Sonic the Hedgehog, Pokémon, Dragon Ball, Sailor Moon e Touhou. Muitos autores também criarão conteúdo original. Existem muitos sites para mostrar e divulgar o conteúdo e os formulários desenvolvidos no que costuma ser chamado de "Comunidade Mugen". Os jogos que são construídos usando o motor M.U.G.E.N geralmente se concentram em uma única franquia, como Hyper Dragon Ball Z.
Devido à natureza personalizável do motor de jogo, não há duas versões de M.U.G.E.N iguais. Cada pessoa é incentivada a baixar sua própria cópia do mecanismo de jogo e criar ou adicionar conteúdo de acordo com sua preferência pessoal. Grupos de autores M.U.G.E.N frequentemente colaboram para produzir um jogo completo usando o motor. Esses jogos completos estão disponíveis em vários níveis de qualidade e são lançados sob a licença geral M.U.G.E.N. "Sob esta licença, é concedida permissão para usar o Ambiente M.U.G.E.N gratuitamente para fins não comerciais... A Elecbyte fornece um pacote M.U.G.E.N redistribuível, contendo um Ambiente M.U.G.E.N mínimo, que pode ser incluído com conteúdo de terceiros para redistribuição."

## Recepção

Com o duplo status de ferramenta de desenvolvimento e de jogo em si, Mugen tem sido frequentemente resenhado em periódicos e revistas, geralmente exibindo uma grande variedade de trabalhos de vários autores. GamesRadar nomeou MUGEN como um dos "12 jogos de luta mais estranhos de todos os tempos". Em abril de 2017, Geek.com selecionou MUGEN como o "Jogo do Ano de 2017". Em dezembro de 2021, um artigo do Collider chamado "Top 5 Greatest Crossover Fighting Games of All Time" mencionou brevemente MUGEN na seção Super Smash Bros para comparar o número de personagens que estão na lista.