Visão Geral
Requisitos
Descrição dos requisitos funcionais e não funcionais da engine, estabelecendo as funcionalidades essenciais que deverão ser oferecidas aos desenvolvedores que utilizarem a biblioteca para criação de jogos 2D.
Entre essas funcionalidades estão o gerenciamento do loop principal do jogo, renderização gráfica, gerenciamento de entidades, controle de entrada do usuário, sistema de colisão e organização de cenas.
A especificação de requisitos serve como base para as etapas posteriores do projeto, incluindo a definição da arquitetura do sistema, o planejamento da implementação e a validação das funcionalidades da engine.
Escopo
- Sistema de renderização 2D
- Gerenciamento de entidades
- Sistema de colisão
- Gerenciamento de recursos (imagens, mapas)
- Estrutura de loop principal de jogo
- Controle de entrada (input)
- Organização modular com foco em performance
Fora do Escopo
- Editor gráfico integrado
- Sistema de física avançado (3D)
- Interface gráfica para configuração
Requisitos Funcionais
-
RF01 – Inicialização da Engine
A engine deve permitir a inicialização do sistema através de uma interface de programação que configure os componentes principais necessários para execução do jogo. -
RF02 – Gerenciamento do Loop Principal
A engine deve fornecer um mecanismo responsável por controlar o loop principal do jogo, incluindo atualização lógica, processamento de entrada e renderização gráfica. -
RF03 – Renderização de Elementos Gráficos
A engine deve permitir a renderização de sprites e outros elementos gráficos bidimensionais na tela. -
RF04 – Gerenciamento de Entidades
A engine deve permitir a criação, atualização e remoção de entidades dentro do ambiente do jogo. -
RF05 – Sistema de Colisão
A engine deve fornecer mecanismos para detecção de colisões entre entidades presentes no ambiente do jogo. -
RF06 – Gerenciamento de Recursos
A engine deve permitir o carregamento e gerenciamento de recursos utilizados pelo jogo, como imagens e arquivos de mapas. -
RF07 – Sistema de Entrada do Usuário
A engine deve capturar e processar eventos de entrada do usuário provenientes de dispositivos como teclado e mouse. -
RF08 – Estrutura de Cenas
A engine deve permitir a organização do jogo em diferentes cenas ou estados, possibilitando a transição entre diferentes contextos do jogo. -
RF09 – Atualização de Entidades
A engine deve permitir que entidades sejam atualizadas a cada ciclo do loop do jogo, possibilitando o processamento de lógica e comportamento. -
RF10 – Encerramento do Sistema
A engine deve fornecer mecanismos para encerramento seguro da execução do jogo e liberação adequada dos recursos utilizados.
Requisitos Não Funcionais
-
RNF01 – Desempenho
A engine deve ser capaz de manter uma taxa mínima de 60 quadros por segundo em condições normais de execução. -
RNF02 – Modularidade
A arquitetura da engine deve ser organizada de forma modular, permitindo que diferentes componentes do sistema sejam desenvolvidos e mantidos de forma independente. -
RNF03 – Manutenibilidade
O código-fonte do sistema deve seguir boas práticas de organização e documentação, facilitando sua manutenção e evolução. -
RNF04 – Portabilidade
A engine deve ser desenvolvida de forma que possa ser executada em diferentes sistemas operacionais compatíveis com compiladores C++ modernos. -
RNF05 – Escalabilidade
A arquitetura do sistema deve permitir a adição de novos módulos e funcionalidades sem necessidade de alterações estruturais significativas. -
RNF06 – Usabilidade da API
A API da engine deve apresentar uma interface clara e consistente, facilitando sua utilização por desenvolvedores. -
RNF07 – Organização do Código
O código da engine deve ser estruturado em módulos ou componentes claramente definidos, com responsabilidades bem delimitadas.