258 lines
5.2 KiB
Markdown
258 lines
5.2 KiB
Markdown
< [Voltar](chapter-10.md) | [Sumário](table-of-contens.md) >
|
|
|
|
# 🌍 **Garantias de Portabilidade e Execução Multiplataforma**
|
|
|
|
## 1. Visão Geral
|
|
|
|
PROMETEU foi projetado desde o início para ser **portável por construção**, não por adaptação posterior.
|
|
|
|
Um cartucho PROMETEU:
|
|
|
|
- executa da mesma forma em qualquer plataforma suportada
|
|
- produz os mesmos resultados para as mesmas entradas
|
|
- mantém comportamento técnico previsível
|
|
|
|
> PROMETEU não depende da plataforma.
|
|
A plataforma depende do PROMETEU.
|
|
>
|
|
|
|
Este capítulo define **o contrato de portabilidade** do sistema.
|
|
|
|
---
|
|
|
|
## 2. Princípio Fundamental da Portabilidade
|
|
|
|
A portabilidade em PROMETEU se baseia em uma regra simples:
|
|
|
|
> Somente a PROMETEU VM define o comportamento do programa.
|
|
>
|
|
|
|
Isso significa:
|
|
|
|
- linguagens-fonte não importam após compilação
|
|
- hardware real não influencia lógica
|
|
- sistema operacional não altera semântica
|
|
|
|
Tudo que não pertence à VM é **adaptação**, não execução.
|
|
|
|
---
|
|
|
|
## 3. Separação de Responsabilidades
|
|
|
|
PROMETEU separa rigorosamente três camadas:
|
|
|
|
```
|
|
+----------------------------+
|
|
| CARTUCHO |
|
|
| (bytecode + assets) |
|
|
+-------------+--------------+
|
|
|
|
|
+-------------v--------------+
|
|
| PROMETEU VM |
|
|
| (lógica, tempo, memória) |
|
|
+-------------+--------------+
|
|
|
|
|
+-------------v--------------+
|
|
| CAMADA DE PLATAFORMA |
|
|
| janela, áudio,input, FS |
|
|
+----------------------------+
|
|
```
|
|
|
|
### O que a VM controla
|
|
|
|
- execução de bytecode
|
|
- tempo lógico (frames, ciclos)
|
|
- memória (stack, heap)
|
|
- determinismo
|
|
- custos e métricas
|
|
|
|
### O que a plataforma fornece
|
|
|
|
- exibição de pixels
|
|
- saída de áudio
|
|
- coleta de input físico
|
|
- acesso ao sistema de arquivos sandbox
|
|
|
|
A plataforma **nunca decide comportamento**.
|
|
|
|
---
|
|
|
|
## 4. Determinismo como Base da Portabilidade
|
|
|
|
PROMETEU garante determinismo por meio de:
|
|
|
|
- clock lógico fixo (60 Hz)
|
|
- ciclos abstratos, não tempo real
|
|
- input amostrado por frame
|
|
- ausência de concorrência implícita
|
|
- ausência de operações dependentes de sistema
|
|
|
|
Isso permite afirmar:
|
|
|
|
> “Se o cartucho é o mesmo, o jogo é o mesmo.”
|
|
>
|
|
|
|
---
|
|
|
|
## 5. Independência de Hardware Real
|
|
|
|
PROMETEU **não utiliza**:
|
|
|
|
- timers do sistema operacional
|
|
- clocks de alta resolução
|
|
- instruções específicas de CPU
|
|
- aceleração gráfica não controlada
|
|
|
|
Todo desempenho é medido em **ciclos PROMETEU**, não em milissegundos.
|
|
|
|
O hardware real:
|
|
|
|
- apenas executa a VM
|
|
- nunca interfere na semântica
|
|
|
|
---
|
|
|
|
## 6. Precisão de Ponto Flutuante
|
|
|
|
Para garantir consistência numérica:
|
|
|
|
- PROMETEU define operações matemáticas explícitas
|
|
- evita dependência de FPU específica
|
|
- padroniza comportamento de `number`
|
|
|
|
Isso evita:
|
|
|
|
- divergências entre arquiteturas
|
|
- erros acumulativos imprevisíveis
|
|
- diferenças sutis entre plataformas
|
|
|
|
---
|
|
|
|
## 7. Input Multiplataforma
|
|
|
|
PROMETEU abstrai input físico em **estado lógico**.
|
|
|
|
- teclado, gamepad e toque são mapeados externamente
|
|
- o cartucho só enxerga botões e eixos lógicos
|
|
- o momento da leitura é fixo por frame
|
|
|
|
O mesmo cartucho:
|
|
|
|
- reage da mesma forma em PC, mobile ou console
|
|
- não contém lógica dependente de dispositivo
|
|
|
|
---
|
|
|
|
## 8. Áudio Multiplataforma
|
|
|
|
O sistema de áudio:
|
|
|
|
- define canais e mixagem logicamente
|
|
- usa APIs nativas apenas como saída
|
|
- mantém sincronização por frame
|
|
|
|
Diferenças de hardware:
|
|
|
|
- não alteram timing lógico
|
|
- não alteram sequência sonora
|
|
- não afetam certificação
|
|
|
|
---
|
|
|
|
## 9. Gráficos Multiplataforma
|
|
|
|
O sistema gráfico:
|
|
|
|
- opera sobre framebuffer lógico
|
|
- usa paleta indexada
|
|
- não depende de GPU específica
|
|
|
|
A camada de plataforma:
|
|
|
|
- apenas exibe o framebuffer
|
|
- não reinterpreta comandos gráficos
|
|
|
|
PROMETEU **não delega decisões gráficas ao hardware**.
|
|
|
|
---
|
|
|
|
## 10. Sistema de Arquivos e Persistência
|
|
|
|
PROMETEU define um **filesystem lógico sandbox**:
|
|
|
|
- caminhos virtuais
|
|
- limites de tamanho
|
|
- comportamento determinístico
|
|
|
|
A plataforma mapeia esse filesystem para:
|
|
|
|
- disco
|
|
- storage móvel
|
|
- memória persistente
|
|
|
|
Sem alterar semântica.
|
|
|
|
---
|
|
|
|
## 11. Certificação e Portabilidade
|
|
|
|
A **Certificação PROMETEU** é válida para todas as plataformas.
|
|
|
|
Se um cartucho:
|
|
|
|
- passa em uma plataforma
|
|
- com as mesmas entradas
|
|
|
|
Ele:
|
|
|
|
- passará em todas
|
|
- produzirá os mesmos relatórios
|
|
|
|
Isso é possível porque:
|
|
|
|
> a certificação valida a VM, não o ambiente.
|
|
>
|
|
|
|
---
|
|
|
|
## 12. O que PROMETEU NÃO garante
|
|
|
|
PROMETEU **não promete**:
|
|
|
|
- desempenho absoluto igual (FPS real)
|
|
- latência física idêntica
|
|
- consumo energético equivalente
|
|
|
|
PROMETEU promete:
|
|
|
|
- **comportamento lógico idêntico**
|
|
- **decisões técnicas reproduzíveis**
|
|
|
|
---
|
|
|
|
## 13. Implicações Pedagógicas
|
|
|
|
Este modelo permite ensinar:
|
|
|
|
- diferença entre lógica e apresentação
|
|
- por que engines modernas quebram determinismo
|
|
- como isolar sistemas
|
|
- como projetar software portável
|
|
|
|
O aluno aprende:
|
|
|
|
> portabilidade não é sorte — é arquitetura.
|
|
>
|
|
|
|
---
|
|
|
|
## 14. Resumo
|
|
|
|
- PROMETEU define comportamento na VM
|
|
- plataformas apenas executam
|
|
- tempo é lógico, não físico
|
|
- input, áudio e gráficos são abstraídos
|
|
- certificação é universal
|
|
- portabilidade é garantida por design
|
|
|
|
< [Voltar](chapter-10.md) | [Sumário](table-of-contens.md) > |