Tyra
Mecanismo de jogo de código aberto para PlayStation 2™
Vídeo de demonstração » Tutoriais do YouTube »
Reportar bug · Solicitar recurso
Índice
- Sobre o projeto
- Descrição
- Tutoriais
- Características
- Contribuindo
- Jogos
- Licença
- Construído com
- Siglas
- Créditos
Sobre o Projeto
Descrição
Tyra é um projeto que permite criar facilmente jogos para o console PlayStation 2.
Quando tentei fazer um jogo para PS2 há alguns anos, percebi quantas coisas precisavam ser feitas para domar essa arquitetura exótica de console. A decisão foi simples - preciso criar um mecanismo que lide com carregamento de arquivos 3D, renderização 2D/3D, animação, áudio, manuseio entre CPUs PS2, sincronização.. Deve ser o mais simples possível - para que pessoas sem experiência possam criar um simples jogo em algumas horas.
E é disso que se trata Tyra.
Tutoriais
- 01 - Ambiente de configuração - Tutorial de texto ou vídeo
- 02 - Recursos de jogos de culinária - Vídeo
- 03 – Crie um repositório de jogos – Vídeo
- 04 – Execute o jogo via USB no PS2 – Vídeo
- 01 - Código - Olá mundo
- 02 - Código - Renderização 2D
- 03 - Código - blocos minecraft 3D
- 04 - Código - renderização
de_dust2.obj
- 05 – Código – Animação 3D
- 06 - Código - Música de fundo e efeitos sonoros
- 07 - Código - Lightmap estático e luzes direcionais dinâmicas
- 08 - Código - Skybox e renderização de depuração
- 09 - Código - Renderização manual (a'la OpenGL)
- 10 - Código - Folha Sprite (fonte)
- 11 – Código – Repetição de textura
- Jogo de demonstração - Código
Características
- Imagem Docker com Tyra, todas as ferramentas e compilador
PS2DEV
C++20 - Renderização 3D via coprocessador
VU1
:- Renderização estática
- Renderização de animação Morph
- Renderizador de blocos de minecraft super otimizado e personalizado
- Renderização de depuração (linhas, caixas, bboxes)
- Renderização manual (como
OpenGL
)
- Renderização 2D
- Abate de Frustum:
- Simples - selecionando malha inteira
- Preciso - selecionando apenas partes visíveis da malha
- Recorte:
- Recorte padrão "falso", mas rápido do PS2 feito no
VU1
- Recorte de software feito no
EE Core
- Funções matemáticas otimizadas via coprocessador
VU0
- Suporte para música de fundo e efeitos sonoros
- Suporte de almofada
- Suporte USB
- Suporte para cartão de memória
- Suporte a arquivos de áudio
.wav
- Suporte a arquivo
.obj
3D - Suporte a arquivos
.md2
3D -
.png
Suporte a arquivo de textura
Contribuindo
Consulte os problemas em aberto para obter uma lista dos recursos propostos (e dos problemas conhecidos).
As contribuições são o que tornam a comunidade de código aberto um lugar incrível para aprender, inspirar e criar. Qualquer contribuição que você fizer será muito apreciada .
- Bifurque o projeto
- Crie sua ramificação de recursos (
git checkout -b feature/amazing-feature
) - Confirme suas alterações (
git commit -m 'Add some amazing-feature'
) - Push to the Branch (
git push origin feature/amazing-feature
) - Abra uma solicitação pull
Jogos
Lista de jogos desenvolvidos com Tyra.
Se você criou um, entre em contato comigo - irei adicioná-lo à lista :)
- Tyracraft por Wellinator
- Jogo com carro por freebytego
- Pedra, papel e tesoura por GuidoDQR
- TyraTale por Br4k2n
Licença
Distribuído sob a Licença Apache License 2.0. Consulte LICENSE
para obter mais informações.
Construído com
Siglas
- EE (Emotion Engine) – conjunto completo de processadores e subsistemas que compõem o PlayStation 2
- EE Core - CPU principal do PS2 (c++ feito aqui)
- GS (Sintetizador gráfico) - rasterizador configurável e mapeador de textura. Tem apenas 2MB~ de memória para texturas, mas pelo contrário tem uma taxa de transferência muito alta, então você pode trocar de textura num piscar de olhos
- VU0 - processador vetorial programável (ASM) que é acessado por código assembly inline injetado no programa C.
- VU1 - processador vetorial programável (ASM), semelhante ao vertex shader. Acessado via DMA.
- IOP - Processador de E/S que permite acesso a dispositivos periféricos, como o controlador de jogo
Créditos
Sem esses caras, Tyra não existiria:
- Dr Henry Fortuna - para fontes de código, tutoriais da PS2 Academy
- Toda a equipe PS2DEV, e especialmente a Rick Gaiser, fjtrujy - por muitas dicas boas!
- Wellington Carvalho, André Guilheme, Matías Israelson, Guido Diego Quispe Robles - pelos testes, contribuição para Tyra e compartilhamento de ideias bacanas!
- Leonardo Ono - para exemplo de renderizador de software (com recorte!)
- Lukasz DK – para um enorme arquivo de coisas do PS2
- Guilherme Lampert - para fontes de código
- Jesper Svennevid, Daniel Collin - para exemplos de código do openvcl
- Manieq - para lindas telas iniciais!
- E tantos outros caras. Obrigado!
Link do projeto: https://github.com/h4570/tyra
Sandro Sobczyński - [email protected]