타이라
PlayStation 2™용 오픈 소스 게임 엔진
쇼케이스 비디오 » YouTube 튜토리얼 »
버그 신고 · 기능 요청
목차
- 프로젝트 소개
- 기여
- 계략
- 특허
- 다음으로 제작됨
- 약어
- 크레딧
프로젝트 소개
설명
Tyra는 PlayStation 2 콘솔용 게임을 쉽게 만들 수 있는 프로젝트입니다.
몇 년 전 PS2용 게임을 만들려고 했을 때, 이 이국적인 콘솔 아키텍처를 길들이기 위해 얼마나 많은 일을 해야 하는지 깨달았습니다. 결정은 간단했습니다. 3D 파일 로딩, 2D/3D 렌더링, 애니메이션, 오디오, PS2 CPU 간의 처리, 동기화를 처리할 엔진을 만들어야 합니다. 가능한 한 간단해야 합니다. 따라서 경험이 없는 사람도 간단한 몇 시간 안에 게임.
이것이 바로 Tyra의 전부입니다.
튜토리얼
- 01 - 설정 환경 - 텍스트 튜토리얼 또는 비디오
- 02 - 요리 게임 자산 - 비디오
- 03 - 게임 저장소 만들기 - 비디오
- 04 - PS2의 USB에서 게임 실행 - 비디오
- 01 - 코드 - Hello World
- 02 - 코드 - 2D 렌더링
- 03 - 코드 - 3D 마인크래프트 블록
- 04 - 코드 -
de_dust2.obj
렌더링 - 05 - 코드 - 3D 애니메이션
- 06 - 코드 - 배경 음악 및 음향 효과
- 07 - 코드 - 정적 라이트맵 및 동적 방향 조명
- 08 - 코드 - 스카이박스 및 디버그 렌더링
- 09 - 코드 - 수동 렌더링(OpenGL과 동일)
- 10 - 코드 - 스프라이트 시트(글꼴)
- 11 - 코드 - 텍스처 반복
- 데모 게임 - 코드
특징
- Tyra, 모든 도구 및
PS2DEV
C++20 컴파일러가 포함된 Docker 이미지 -
VU1
보조 프로세서를 통한 3D 렌더링:- 정적 렌더링
- 모프 애니메이션 렌더링
- 매우 최적화된 맞춤형 마인크래프트 블록 렌더러
- 디버그 렌더링(라인, 상자, bbox)
- 수동 렌더링(
OpenGL
과 동일)
- 2D 렌더링
- 절두체 선별:
- 단순 - 전체 메쉬 컬링
- 정밀 - 메시의 보이는 부분만 선별
- 깎는:
- 표준 "가짜"이지만
VU1
에서 빠른 PS2 클리핑이 수행됨 -
EE Core
에서 수행된 소프트웨어 클리핑
-
VU0
보조 프로세서를 통해 최적화된 수학 기능 - 배경음악 및 음향효과 지원
- 패드 지원
- USB 지원
- 메모리 카드 지원
-
.wav
오디오 파일 지원 -
.obj
3D 파일 지원 -
.md2
3D 파일 지원 -
.png
텍스처 파일 지원
기여
제안된 기능(및 알려진 문제) 목록은 공개 문제를 참조하세요.
기여는 오픈 소스 커뮤니티를 배우고, 영감을 주고, 창조할 수 있는 놀라운 장소로 만드는 것입니다. 귀하의 기여 에 크게 감사드립니다 .
- 프로젝트 포크
- 기능 분기 만들기(
git checkout -b feature/amazing-feature
) - 변경 사항 커밋(
git commit -m 'Add some amazing-feature'
) - 지점으로 푸시(
git push origin feature/amazing-feature
) - 끌어오기 요청 열기
계략
Tyra로 개발된 게임 목록입니다.
만든 경우 저에게 연락해 주세요. 목록에 추가하겠습니다 :)
- Wellinator의 Tyracraft
- freebytego의 자동차 게임
- 가위바위보 - GuidoDQR 제작
- Br4k2n의 TyraTale
특허
Apache License 2.0 라이센스에 따라 배포됩니다. 자세한 내용은 LICENSE
참조하세요.
다음으로 제작됨
약어
- EE(Emotion Engine) - PlayStation 2를 구성하는 전체 프로세서 및 하위 시스템 세트
- EE Core - 메인 PS2 CPU(C++는 여기서 완료)
- GS(그래픽 신디사이저) - 구성 가능한 래스터라이저 및 텍스처 매퍼. 텍스처용 메모리는 2MB~에 불과하지만 그 반대의 경우 전송 속도가 매우 높기 때문에 눈 깜짝할 사이에 텍스처를 전환할 수 있습니다.
- VU0 - C 프로그램에 삽입된 인라인 어셈블리 코드로 액세스되는 프로그래밍 가능(ASM) 벡터 프로세서입니다.
- VU1 - 정점 셰이더와 유사한 프로그래밍 가능(ASM) 벡터 프로세서입니다. DMA를 통해 액세스됩니다.
- IOP - 게임 컨트롤러와 같은 주변 장치에 대한 액세스를 가능하게 하는 I/O 프로세서
크레딧
이 사람들이 없었다면 Tyra는 일어나지 않았을 것입니다.
- Dr Henry Fortuna - 코드 소스용, PS2 아카데미 튜토리얼
- 전체 PS2DEV 팀, 특히 fjtrujy의 Rick Gaiser에게 좋은 팁을 많이 제공합니다!
- Wellington Carvalho, André Guilheme, Matías Israelson, Guido Diego Quispe Robles - 테스트하고 Tyra에 기여하고 멋진 아이디어를 공유해 주세요!
- Leonardo Ono - 소프트웨어 렌더러 예제(클리핑 포함!)
- Lukasz DK - PS2 자료의 거대한 아카이브용
- Guilherme Lampert - 코드 소스용
- Jesper Svennevid, Daniel Collin - openvcl의 코드 샘플용
- Manieq - 멋진 스플래시 화면을 위해!
- 그리고 다른 많은 사람들. 감사해요!
프로젝트 링크: https://github.com/h4570/tyra
산드로 소브친스키 - [email protected]