
portar um jogo em Flash
Porte um jogo em Flash para a web que ainda existe
A Adobe encerrou o suporte ao Flash Player em 31 de dezembro de 2020. Portar um jogo em Flash significa reconstruir um título que é seu para que rode em um navegador moderno.
Portar um jogo em Flash significa reconstruir um jogo que é seu para um navegador que não roda mais Flash. A Adobe encerrou o suporte ao Flash Player em 31 de dezembro de 2020 e bloqueou a execução do conteúdo em janeiro de 2021. Todo SWF que dependia do plugin parou de funcionar naquela data.
Você precisa dos direitos sobre o jogo. Porte um jogo em Flash que você fez ou um que você tem licença para refazer. Descompilar um SWF de outra pessoa, extrair os assets e republicar não entra aqui.
Reconstruído do jeito certo, um jogo em Flash combina bem com os destinos modernos. Ele foi feito para input de mouse, arte vetorial e sessões curtas. A Summer Engine o reconstrói como um projeto que é seu e exporta para web, desktop e mobile, sem royalties.
O que sobrevive de um projeto antigo em Flash
Se você ainda tem os arquivos FLA, sua arte vetorial é a coisa mais valiosa que você tem. Formas vetoriais reexportam em qualquer resolução, o que significa que um jogo feito para um palco de 550x400 pode ser reconstruído nítido em 4K. Animações de linha do tempo precisam ser recriadas como trilhas de animação ou sprite sheets, já que nenhum motor lê a linha do tempo do Flash. O ActionScript é material de referência: a lógica passa, a sintaxe não.
De ActionScript para uma linguagem moderna
ActionScript 3 e GDScript são linguagens de script baseadas em classes e amigáveis a tipagem dinâmica, então a tradução é mecânica na maior parte do tempo. Ouvintes de evento viram sinais. Manipuladores de enterFrame viram um callback de processamento. MovieClip vira um nó com um sprite e um reprodutor de animação. Código em ActionScript 2 é mais solto e normalmente precisa de reestruturação em vez de tradução. Você também pode escrever a reconstrução em C# no desktop, ainda que C# não esteja disponível em exports para web.
Timing por quadro precisa virar delta time
O Flash rodava na taxa de quadros do palco, muitas vezes 24 ou 30 quadros por segundo, e boa parte da lógica de jogo contava quadros em vez de segundos. Em telas modernas a 60, 120 ou 144 Hz, contar quadros quebra a velocidade do jogo. Converta cada contador de quadros em um valor baseado em tempo durante a reconstrução. Essa é a fonte de bugs mais comum em um port de Flash, e sai muito mais barato resolver durante a reconstrução do que depois.
Design pensado no mouse, agora no toque
Jogos em Flash foram feitos para um cursor de mouse com estados de hover, clicar e arrastar, e apontamento preciso. Telas de toque não têm hover, e a ponta do dedo é muito maior que um cursor. Dicas que apareciam no hover precisam de uma alternativa por toque, botões pequenos precisam de áreas de acerto maiores, e interações de arrastar precisam considerar que o dedo cobre o que está sendo arrastado. Jogos em Flash controlados por teclado precisam de um layout de controles na tela desenhado para o jogo, não de uma sobreposição genérica.
Para onde vai o jogo reconstruído
A exportação para web devolve o jogo à web aberta, embutível no seu próprio site ou em um portal. Do mesmo projeto você também tira builds de desktop para Steam e itch.io e builds mobile para iOS e Android. Muitos jogos da era Flash caem bem em celulares porque as sessões são curtas. Atenção ao limite de linguagem: C++ e GDScript rodam em todo lugar, e C# roda em todo lugar exceto na web.
Perguntas frequentes
Por que jogos em Flash não funcionam mais?
A Adobe encerrou o suporte ao Flash Player em 31 de dezembro de 2020 e bloqueou a execução de conteúdo Flash em 12 de janeiro de 2021. Os navegadores removeram o plugin por completo. Qualquer jogo distribuído como SWF que dependia do plugin não roda mais para quem joga.
Um arquivo SWF pode ser convertido em um jogo moderno?
Não em um projeto editável que você consiga manter. Descompiladores extraem alguns assets e bytecode, mas o resultado não é um projeto funcional em outro motor. Um port de Flash é uma reconstrução, de preferência a partir dos seus arquivos FLA e do seu código ActionScript originais.
Posso portar um jogo em Flash se perdi os arquivos FLA?
Sim, se você tem os direitos. Você reconstrói com o que ainda tiver: arte exportada, capturas de tela, gravações de jogo e anotações de design. Fontes vetoriais deixam a reconstrução muito mais barata, mas não são obrigatórias.
O código em ActionScript passa para o novo projeto?
A lógica passa, a sintaxe não. ActionScript 3 se mapeia bem direto para GDScript: ouvintes viram sinais, enterFrame vira um callback de processamento, e MovieClip vira um nó com um reprodutor de animação. ActionScript 2 normalmente precisa de reestruturação.
Qual é o bug mais comum em um port de Flash?
Timing baseado em quadros. O Flash rodava em uma taxa fixa de quadros do palco, muitas vezes 24 ou 30, e a lógica de jogo frequentemente contava quadros. Em uma tela de 60 ou 144 Hz essa lógica roda na velocidade errada. Converta cada contador de quadros para delta time durante a reconstrução.
O jogo reconstruído pode rodar em um navegador de novo?
Sim. A web é um destino de exportação suportado, ao lado de desktop, mobile e console. Lembre que C++ e GDScript rodam em todos os destinos, enquanto C# é suportado em todos exceto na web.
Continue explorando
Mais formas de criar com a Summer Engine
Criador de jogos com IA
O centro para criar jogos 2D e 3D completos descrevendo-os.
AbrirMake a game from a picture and the idea it holds
Bring a picture and Summer Engine builds a game inspired by its look and concept: scenes, gameplay, and matching art in one project you own.
AbrirPort a 3DS game by rebuilding it, not converting it
Porting a 3DS game means rebuilding a game you own as a new project that runs on platforms that still sell games. There is no file converter for this.
AbrirPort a Nintendo DS game to platforms that still sell games
A Nintendo DS port is a rebuild of a game you own. The stylus design is the asset worth keeping, because touch is native on every phone.
AbrirPort a Wii game and decide what happens to motion control
Porting a Wii game means rebuilding a title you own for hardware without a Wii Remote. The pointer and the motion gestures need a new input design.
AbrirPort a Wii U game off the smallest console audience
Porting a Wii U game means rebuilding a title you own for platforms with a single screen. The GamePad layer is the part that has to be redesigned.
AbrirPort a PSP game and give it a second analog stick
Porting a PSP game means rebuilding a title you own. The camera design is the biggest change, because the PSP had one analog nub and no right stick.
AbrirPort a PS Vita game before the platform disappears entirely
Porting a PS Vita game means rebuilding a title you own. The rear touch pad is the one input with no modern equivalent.
AbrirPort a GameCube game from 480p to a modern project
Porting a GameCube game means rebuilding a title you own. The analog triggers and fixed camera design are the parts that need deliberate decisions.
AbrirModelos de plataforma
Comece com um projeto pronto e descreva suas mudanças.
ExplorarVer todos os modelos de jogos
Comece com um projeto pronto e descreva suas mudanças.
Explorar
Comece a criar seu jogo agora
Baixe a Summer Engine, descreva o que você quer e veja tudo tomar forma. Grátis para começar, sem programar.