prometeu-runtime/docs/topics/chapter-11.md

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