# Porte um jogo em Flash para plataformas que ainda existem

> 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 ele rode nas plataformas que as pessoas ainda usam.

- URL: https://www.summerengine.com/pt/port-a-flash-game
- Keyword: portar um jogo em Flash
- Related: https://www.summerengine.com/pt/porting

Portar um jogo em Flash significa reconstruir um jogo que é seu, porque nenhum navegador 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 builds desktop para a Steam e a itch.io, sem royalties. Uma reconstrução em GDScript também exporta um build web que você publica no Summer Games.

## 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. C# também está disponível no editor desktop, se você preferir.

## 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

Um jogo em Flash reconstruído é lançado como build desktop, na Steam ou como download na itch.io. Uma reconstrução em GDScript também pode ser lançada como build web no Summer Games, onde as pessoas jogam no navegador. Jogos curtos da era Flash combinam com um download gratuito na itch.io que as pessoas podem testar antes de um lançamento pago na Steam. Muitos deles também caem bem em celulares, e builds para iOS e Android precisam do toolchain e da assinatura de cada plataforma e de um ajuste para controles de toque.

## FAQ

### 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. Uma reconstrução em GDScript exporta um build web no Summer, e você o publica no Summer Games, onde as pessoas jogam no navegador. Se o original exato é o que mais importa, um emulador como o Ruffle pode rodar o seu próprio SWF no navegador para preservação, embora o suporte dele a ActionScript 3 ainda esteja incompleto para alguns jogos.

[Reconstruir seu jogo em Flash](https://www.summerengine.com/pt/download)

---

## Machine-readable resources

- Site index for agents: https://www.summerengine.com/llms.txt
- Full inlined content: https://www.summerengine.com/llms-full.txt
- Porting catalog: https://www.summerengine.com/llms-porting.txt
- Structured catalog: https://www.summerengine.com/agent-catalog.json
- Sitemap: https://www.summerengine.com/sitemap.xml
- Developer resources: https://www.summerengine.com/docs
- Summer API (assets from any agent or code; public per-call model prices): https://docs.summerengine.com/api