Skip to content

Commit 70848a6

Browse files
docs: reorganize documentation into functional modules
Replaced phase-based structure (fase2-6) with functional module organization: - docs/core/ — types, timer, game-loop, events - docs/memory/ — allocators, containers, memory-model - docs/math/ — vectors, quaternions - docs/concurrency/ — job-system - docs/input/ — input-system - docs/rendering/ — rhi, batch-renderer, camera-2d, camera-3d - docs/assets/ — asset-manager, caf-format, asset-pipeline, mesh-loading - docs/ecs/ — core, scene, README, examples - docs/physics/ — physics-2d, spatial-partitioning - docs/animation/ — animation-2d, skeletal-animation - docs/audio/ — audio-system - docs/ui/ — game-ui, editor-ui - docs/editor/ — scene-editor - docs/scripting/ — scripting - docs/debug/ — debug-tools, testing Updated: README.md, docs/README.md, docs/MASTER.md, docs/api/README.md Added: docs/HISTORY.md — development timeline and past plans Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
1 parent e32eb57 commit 70848a6

38 files changed

Lines changed: 10175 additions & 346 deletions

docs/HISTORY.md

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
# 📜 Histórico de Desenvolvimento
2+
3+
> Artefatos de desenvolvimento comprimidos — fases, roadmaps, planos e revisões.
4+
> Para documentação técnica real da engine, consulte o [`README.md`](README.md).
5+
6+
---
7+
8+
## Fases de Desenvolvimento
9+
10+
O projeto foi estruturado em 6 fases progressivas. Abaixo, o resumo de cada fase e seu status atual.
11+
12+
| Fase | Nome | Descrição | Status |
13+
|:----:|------|-----------|:------:|
14+
| 0 | Setup & Docs | Infraestrutura, repositório, CI, documentação base | ✅ Completo |
15+
| 1 | Fundação Atômica | Core types, custom allocators, containers, math library | ✅ Completo |
16+
| 2 | Concorrência | Timer, Job System, Game Loop, Input, Debug Tools | 📅 Pendente |
17+
| 3 | RHI & 2D | RHI (SDL_GPU), Batch Renderer, Camera 2D, Asset Manager | 📅 Pendente |
18+
| 4 | ECS & Sistemas | ECS Archetype, Scene, Events, Physics, Animation, Audio, UI | 📅 Pendente |
19+
| 5 | Transição 3D | Quaternions, Mesh Loading, Camera 3D, Spatial Partitioning | 📅 Futuro |
20+
| 6 | Caffeine Studio | Embedded UI (ImGui), Scene Editor, Asset Pipeline, Scripting | 📅 Pendente |
21+
22+
### Fase 0 — Setup & Documentação
23+
- Repositório GitHub, estrutura de branches, CI (GitHub Actions)
24+
- Build system CMake com testes
25+
- Documentação: MASTER.md, ROADMAP.md, SPECS.md, architecture_specs.md
26+
- Style guide e convenções de código
27+
28+
### Fase 1 — Fundação Atômica
29+
- Tipos de largura fixa (`u8..u64`, `f32`, `f64`, `usize`)
30+
- Custom allocators (Linear, Pool, Stack) com interface `IAllocator`
31+
- Containers (Vector, HashMap, StringView, FixedString)
32+
- Math library (Vec2, Vec3, Vec4, Mat4)
33+
- Testes: `test_core.cpp` (8), `test_allocators.cpp` (16+3), `test_containers.cpp` (14+1), `test_math.cpp` (18)
34+
35+
### Fase 2 — Concorrência *(planejado)*
36+
- High-Resolution Timer com precisão de microssegundos
37+
- Job System com work-stealing, lock-free queue, 3 níveis de prioridade
38+
- Fiber-based jobs (jobs podem suspender sem bloquear OS thread)
39+
- Game Loop com fixed timestep (60 updates/s) + interpolação
40+
- Input System com action mapping remapável
41+
- Debug Tools: LogSystem, Profiler, DebugDraw
42+
43+
### Fase 3 — RHI & 2D *(planejado)*
44+
- RHI: abstração sobre SDL_GPU com triple buffering
45+
- Batch Renderer: 50K sprites em 1 draw call
46+
- Texture Atlas com bin-packing
47+
- Camera 2D com follow e shake
48+
- Asset Manager com async loading e hot-reload
49+
- Formato `.caf` (Caffeine Asset Format) — zero-parsing, zero-copy
50+
51+
### Fase 4 — ECS & Sistemas *(planejado)*
52+
- ECS Archetype-based com cache locality
53+
- Command Buffer diferido (create/destroy seguro durante iteração)
54+
- Scene Manager com hierarquia parent/child e serialização `.caf`
55+
- Event Bus pub/sub com `Event<T>` tipado
56+
- Physics 2D (AABB/circle collision, rigid body)
57+
- Animation 2D (sprite clips, state machine)
58+
- Audio System (SDL_AudioStream, spatial 2D)
59+
- UI System retained mode (widgets ECS, bindValue)
60+
- Scripting bindings iniciais (Lua/AngelScript)
61+
62+
### Fase 5 — Transição 3D *(futuro distante)*
63+
- Quaternion + SLERP para rotações 3D
64+
- Mesh loading (.obj, .gltf) via Asset Manager
65+
- Shader system (HLSL/GLSL)
66+
- Octree para spatial partitioning + frustum culling
67+
- Camera 3D (perspectiva, lookAt, FPS e orbital)
68+
- Skeletal Animation (bones, skinning, blend trees)
69+
70+
### Fase 6 — Caffeine Studio IDE *(planejado)*
71+
- Dear ImGui integrado ao SDL3
72+
- Scene Editor com drag-and-drop, inspector, hierarchy
73+
- Transform gizmos (Translate/Rotate/Scale)
74+
- Asset Pipeline CLI (PNG/WAV/OBJ → `.caf`)
75+
- Scripting (Lua/AngelScript, hot-reload)
76+
77+
---
78+
79+
## Convenções e Padrões de Desenvolvimento
80+
81+
Extraído de `SPECS.md` — regras que guiaram o desenvolvimento:
82+
83+
### Princípios
84+
- **DOD** — Data-Oriented Design: dados organizados para cache locality
85+
- **YAGNI** — You Ain't Gonna Need It: não implementar o que não é necessário
86+
- **KISS** — Keep It Simple, Stupid: simplicidade acima de tudo
87+
- **Lock-free** onde possível, mutex onde necessário
88+
- **Zero-dependency**: reduzir ao máximo dependência da std, criar stdlib própria
89+
90+
### Convenções de Código
91+
- C++20, namespaces aninhados (`Caffeine::Module`)
92+
- Nomenclatura: PascalCase para tipos, camelCase para métodos/membros
93+
- Headers com documentação Doxygen
94+
- Sem `new`/`delete` soltos — usar custom allocators
95+
- Sem RTTI, sem exceções, sem virtual em hot paths
96+
97+
### Fluxo de Trabalho (R.I.C.O.)
98+
1. **Research** — Pesquisar padrões e referências
99+
2. **Idea** — Propor solução
100+
3. **Conflict** — Debater trade-offs
101+
4. **Order** — Implementar e documentar
102+
103+
---
104+
105+
## Planos e Revisões Anteriores
106+
107+
Documentos de planejamento detalhado e revisões foram mantidos durante o desenvolvimento. Estão disponíveis no histórico do git.
108+
109+
---
110+
111+
> ℹ️ Este documento substitui os antigos `ROADMAP.md`, `SPECS.md`, templates e READMEs de fase.
112+
> Para documentação técnica atualizada, consulte os diretórios funcionais em [`docs/`](README.md).

0 commit comments

Comments
 (0)