Add study notes: 22 areas documented by Diego IA
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
# Lua — Estudo
|
||||
|
||||
_Fonte: project-based-learning + BYTEPATH_
|
||||
|
||||
---
|
||||
|
||||
## 📚 Recursos Estudados
|
||||
|
||||
| Tutorial | Stack | Tópicos |
|
||||
|----------|-------|---------|
|
||||
| [BYTEPATH #0-15](https://github.com/SSYGEN/blog/issues/30) | Lua + LÖVE | Game loop, ECS, skills, enemies |
|
||||
| [LÖVE Wiki](https://love2d.org/wiki/Main_Page) | Lua + LÖVE | 2D game engine |
|
||||
|
||||
## 🎯 Aplicações no Mundo Telecom
|
||||
|
||||
1. **Redis Scripting** — Lua embutido no Redis para scripts atômicos
|
||||
- `EVAL` / `EVALSHA` / `SCRIPT LOAD`
|
||||
- Operações atômicas server-side
|
||||
- Nosso cache futuro pode usar Lua
|
||||
|
||||
2. **Nginx/OpenResty** — NPM roda em OpenResty!
|
||||
- Custom locations com Lua
|
||||
- Autenticação, rate limiting, caching
|
||||
- Plugins sem precisar de módulos C
|
||||
|
||||
3. **Neovim** — Configuração e plugins em Lua
|
||||
- Lua substituiu Vimscript como linguagem primária
|
||||
|
||||
4. **Jogos** — LÖVE para prototipação rápida de jogos 2D
|
||||
|
||||
## 📝 Conceitos Aprendidos
|
||||
|
||||
### Lua Core
|
||||
|
||||
- **Tudo é tabela**: a única estrutura de dados (array + dict)
|
||||
- **Metatables**: __index, __newindex, __call — herança e overload
|
||||
- **First-class functions**: closures, coroutines
|
||||
- **Nil como delimitador**: valores não declarados = nil
|
||||
- **1-indexed**: arrays começam em 1 (diferente de Python/JS)
|
||||
|
||||
### LÖVE (Love2D)
|
||||
|
||||
| Componente | Função |
|
||||
|-----------|--------|
|
||||
| `love.load()` | Setup inicial (uma vez) |
|
||||
| `love.update(dt)` | Lógica por frame (delta time) |
|
||||
| `love.draw()` | Renderização por frame |
|
||||
| `love.run()` | Game loop completo (customizável) |
|
||||
|
||||
### BYTEPATH — Arquitetura de Jogo
|
||||
|
||||
```
|
||||
Sistema principal:
|
||||
├── love.run() → game loop
|
||||
├── Gamestate → máquina de estados (menu, jogo, pausa)
|
||||
├── Entity System → entidades + componentes
|
||||
├── Rooms/Areas → fases do jogo
|
||||
├── Player → stats, ataques, progressão
|
||||
└── Enemies → AI, spawn, balanceamento
|
||||
```
|
||||
|
||||
### Lua vs Python
|
||||
|
||||
| Aspecto | Lua | Python |
|
||||
|---------|-----|--------|
|
||||
| Performance | ~2x mais rápido | Mais lento |
|
||||
| Embedding | Excelente (C API) | Limitado |
|
||||
| Tabelas vs Dicts | Tabelas = array+dict | Listas e dicts separados |
|
||||
| Concorrência | Coroutines | threading/asyncio |
|
||||
| Tipagem | Dinâmica | Dinâmica |
|
||||
| Ecosistema | Pequeno (LÖVE, Redis, Nginx) | Gigantesco |
|
||||
| Ideal para | Embedding, scripts leves, jogos | Aplicações gerais, data science |
|
||||
|
||||
## ✅ Progresso
|
||||
|
||||
- [x] Lua Core (tabelas, metatables, closures)
|
||||
- [x] LÖVE Framework (game loop, render)
|
||||
- [x] BYTEPATH (arquitetura de jogos)
|
||||
- [x] Redis scripting com Lua
|
||||
- [x] Nginx/OpenResty + Lua
|
||||
Reference in New Issue
Block a user