Slide 1

Slide 1 text

Desenvolvimento de Jogos com Elixir Ruan Brandão

Slide 2

Slide 2 text

RUAN BRANDÃO Engenheiro de Software Estudante de Filosofia Fã de basquete Jogador de jogos digitais @ruan.s.brandao /ruanbrandao @ruan-brandao

Slide 3

Slide 3 text

+ 🎮 ?

Slide 4

Slide 4 text

Arquitetura ECS

Slide 5

Slide 5 text

● Entidades: objetos que compõem o mundo do jogo, são representados por um ID ● Componentes: atributos que diferenciam entidades entre si. São representadas pelo ID da entidade a que pertencem, mais um valor ● Sistemas: Executam a lógica do jogo

Slide 6

Slide 6 text

Exemplo: carros em um ambiente 2D

Slide 7

Slide 7 text

Exemplo: carros em um ambiente 2D

Slide 8

Slide 8 text

Componente Entidade Valor Cor 123 Azul Cor 456 Vermelho Posição 123 {20, 30} Posição 456 {25, 40} Direção 123 oeste Direção 456 norte Velocidade 123 5 Velocidade 456 7 Exemplo: carros em um ambiente 2D

Slide 9

Slide 9 text

Exemplo: carros em um ambiente 2D

Slide 10

Slide 10 text

ECSx ecsx-framework/ECSx

Slide 11

Slide 11 text

ETS para guardar os componentes

Slide 12

Slide 12 text

GenServer para executar os sistemas

Slide 13

Slide 13 text

LiveView para ver a interface

Slide 14

Slide 14 text

Coding Time

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

Próximos passos ● Adicionar sons ● Criar assets próprios ● Criar uma tela de pause ● Adicionar logins de usuário ● Persistir high scores ● Criar níveis diferentes de dificuldade ● Implementar multiplayer ● O que o ❤ mandar

Slide 19

Slide 19 text

Tecnologia inicial

Slide 20

Slide 20 text

Caso de uso específico

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

Obrigado @ruan-brandao @ruan.s.brandao @ruanbrandao