Balanceamento com Planilhas
Tutorial: como usar planilhas (Google Sheets, Excel) para balancear sistemas de jogo, calcular progressão e tuner economy.
Balanceamento com Planilhas🔗
Definição curta: Planilhas são a ferramenta mais prática para balanceamento de jogos — permitem calcular números, modelar economia e simular progressão antes de implementar, economizando tempo de desenvolvimento.
Antes de começar
- Ter lido O que é Game Design
- Um projeto ou ideia de jogo em que aplicar o que está aqui — o material não funciona no vazio
O que você vai aprender
- Explicar Estrutura básica de planilha com suas palavras
- Explicar Modelando progressão com suas palavras
- Explicar Calculando DPS e combat balance com suas palavras
- Aplicar o conteúdo desta página a um jogo que você conhece
O que é🔗
Spreadsheets são a tool de choice para game designers balancearem números. São:
- Flexíveis para experimentar
- Visíveis (números na tela, não em código)
- Compartilhaveis (Google Sheets, Excel)
- Capazes de simular sistemas complexos
flowchart LR
subgraph Design["Design"]
D["Designer define\ntargets de balance"]
end
subgraph Spreadsheet["Spreadsheet Model"]
S["Fórmulas\n(Economy, progressão)"]
C["Cálculos\n(DPS, costs, rewards)"]
end
subgraph Output["Output"]
V["Valores ajustados\npara implementar"]
end
D --> S --> C --> VÍndice de sub-tópicos🔗
- Estrutura básica de planilha
- Modelando progressão
- Calculando DPS e combat balance
- Economia básica
- Simulação de loops
- Exportando para game
Estrutura básica de planilha🔗
Abas recomendadas🔗
[1] Core_Stats <- HP, damage, speed base
[2] Characters <- cada personagem/classe
[3] Enemies <- mobs, bosses
[4] Progression <- curva de XP/level
[5] Economy <- currency, rewards
[6] Combat_Sim <- simulação de combatePadrão de layout🔗
| Coluna A | Coluna B | Coluna C | Coluna D |
|---|---|---|---|
| Name | Base Value | Modifier | Final |
| Player_HP | 100 | level * 10 | =B2+C2 |
Boas práticas🔗
- Nomes consistentes — same item = same name everywhere
- Units claras — “damage”, “seconds”, “percent”
- Cores para tipos — verde for player, vermelho for enemies
- Comments — explicar onde números vieram
Modelando progressão🔗
Linear progression🔗
Level 1: 0 XP
Level 2: 100 XP
Level 3: 200 XP
Level 4: 300 XP
XP_to_level = (level - 1) * 100Exponential progression🔗
Level 1: 0 XP
Level 2: 100 XP
Level 3: 300 XP (100 * 2)
Level 4: 700 XP (300 * 2 + 100)
Level 5: 1500 XP (700 * 2 + 100)
XP_to_level = prev_XP * growth_rate + baseFórmula na planilha🔗
# Excel/Google Sheets
# Level N requires:
= IF(N=1, 0, (N-1)^exponent * base)Simulating progression curve🔗
Level Goals Difficulty
1 100 Easy
5 500 Medium
10 1500 Hard
20 8000 Very Hard
50 50000 Extreme
Use gráfico de linha para visualizar se a curva está suave.
Calculando DPS e combat balance🔗
DPS formula básica🔗
# DPS = (Damage per hit) * (Hits per second)
DPS = (Base_Damage * (1 + Damage_Mods)) * (Attack_Speed)Exemplo: Character balance sheet🔗
| Character | Base DMG | ATK Speed | DPS | HP | Survivability |
|---|---|---|---|---|---|
| Warrior | 50 | 1.0 | 50 | 500 | High |
| Mage | 80 | 0.7 | 56 | 250 | Low |
| Rogue | 35 | 1.8 | 63 | 300 | Medium |
Verificação: DPS devem estar próximos (+-10%) se classes são “balanceadas”.
Time-to-kill (TTK)🔗
# TTK (em segundos) = Enemy_HP / Player_DPS
TTK_Warrior_vs_Elite = Elite_HP / Warrior_DPS
Se TTK é muito alto → jogador frustrated (tiroteo longo demais). Se TTK é muito baixo → inimigo não threat.
Simulating combat🔗
# Simplified combat sim
def combat(player_hp, player_dps, enemy_hp, enemy_dps):
while player_hp > 0 and enemy_hp > 0:
enemy_hp -= player_dps # player attacks
if enemy_hp <= 0:
return "Player wins"
player_hp -= enemy_dps # enemy attacks
return "Enemy wins"Economia básica🔗
Income vs Expense🔗
Moeda por hora (income):
- Quests: 500g/h
- Mobs: 200g/h
- Total: 700g/h
Moeda gasta por hora (expense):
- Repairs: 100g/h
- Consumables: 150g/h
- Upgrades: 200g/h
- Total: 450g/h
Net gain: 250g/h (acceptable leak)Balance check🔗
Se net > 0 → gold se acumula (problema de longo prazo)
Se net < 0 → gold se esgota (jogador frustrated)
Se net ≈ 0 → economia estávelCurrency sinks🔗
Sink 1: Repair (10% de equipment value por death)
Sink 2: Upgrade (custo exponencial por tier)
Sink 3: Consumables (potion, ammo)
Sink 4: Convenience (fast travel, storage)Simulação de loops🔗
Como simular loop de 100 iterações🔗
# Google Sheets / Excel
# Linha 1: headers
# Coluna A: Iteration (1-100)
# Coluna B: Gold (começa em 0)
# Coluna C: Gold per iteration (+50)
# Coluna D: Gold spent (-20)
# Coluna E: Running total
= A2 + 1 # iteration
= B1 + C2 - D2 # gold runningLoop com condições🔗
Iteration Action Gold Change
1 Kill mob +50
2 Buy potion -30
3 Upgrade armor -100
4 Kill boss +200
...repeat
Se total vai negative: adjust rewards or costs.
Exportando para game🔗
Método 1: Copy-paste🔗
Simples: select cells, paste into JSON/CSV.
// exportar como JSON
{
"characters": [
{"name": "Warrior", "hp": 500, "dmg": 50},
{"name": "Mage", "hp": 250, "dmg": 80}
]
}Método 2: CSV export🔗
# CSV format
name,hp,damage
Warrior,500,50
Mage,250,80Método 3: Google Sheets API🔗
Para integração direta:
- Publicar planilha como CSV
- Game downloads CSV on startup
- Parse como game data
Validação antes de exportar🔗
- Números fazem sentido?
- Não há valores negativos onde não deve
- Crescimento é smooth (sem saltos bruscos)
- Testei com edge cases (level 1, level 100)?
Veja também🔗
- Balanceamento (enciclopedia) — teoria de balanceamento
- Tutorial: Como Escrever GDD — documentando design
- Economia Virtual (enciclopedia) — sistemas econômicos
Você aprendeu
- Estrutura básica de planilha
- Modelando progressão
- Calculando DPS e combat balance
- Economia básica
- Simulação de loops
Perguntas para reflexão
- O que Estrutura básica de planilha resolve, e o que se perde sem isso?
- O que Modelando progressão resolve, e o que se perde sem isso?
- O que Calculando DPS e combat balance resolve, e o que se perde sem isso?
- Que parte desta página você conseguiria explicar a alguém que nunca fez um jogo?
Artigos relacionados
Referências🔗
- Schreiber, Ian & Romero, Brenda (2021). Game Balance. CRC Press. ISBN 978-1-351-64341-2.
- Sylvester, Tynan (2013). Designing Games: A Guide to Engineering Experiences. O’Reilly Media. ISBN 978-1-4493-3793-3.
- Schell, Jesse (2014). The Art of Game Design: A Book of Lenses (2ª ed.). CRC Press. ISBN 978-1-4665-9864-5. Materiais suplementares