Тайра
Игровой движок с открытым исходным кодом для PlayStation 2™
Демонстрационный видеоролик » Учебники на YouTube »
Сообщить об ошибке · Запросить функцию
Оглавление
- О проекте
- Описание
- Учебники
- Функции
- Содействие
- Игры
- Лицензия
- Построен с
- Сокращения
- Кредиты
О проекте
Описание
Tyra — проект, позволяющий легко создавать игры для консоли PlayStation 2.
Когда несколько лет назад я попытался создать игру для PS2, я понял, как много всего нужно сделать, чтобы приручить эту экзотическую консольную архитектуру. Решение было простым — мне нужно создать движок, который будет обрабатывать загрузку 3D-файлов, 2D/3D-рендеринг, анимацию, звук, обработку между процессорами PS2, синхронизацию. Он должен быть максимально простым — чтобы люди без опыта могли создать простой игра через несколько часов.
И в этом вся суть Тайры.
Учебники
- 01 – Среда настройки — Текстовое руководство или видео
- 02 – Кулинарные игровые ресурсы – Видео
- 03 – Создание репозитория игры – Видео
- 04 – Запуск игры с USB-накопителя на PS2 – Видео
- 01 - Код - Привет, мир
- 02 – Код – 2D-рендеринг
- 03 - Код - 3D блоки Minecraft
- 04 — Код — рендеринг
de_dust2.obj
- 05 – Код — 3D-анимация
- 06 - Код - Фоновая музыка и звуковые эффекты
- 07 — Код — Статическая карта освещения и динамическое направленное освещение
- 08 — Код — Skybox и отладка рендеринга
- 09 — Код — Ручной рендеринг (а-ля OpenGL)
- 10 - Код - Лист спрайтов (шрифт)
- 11 - Код - Повторение текстуры
- Демо-игра - Код
Функции
- Образ Docker с Тайрой, всеми инструментами и компилятором
PS2DEV
C++20. - 3D-рендеринг через сопроцессор
VU1
:- Статический рендеринг
- Рендеринг морф-анимации
- Супероптимизированный пользовательский рендерер блоков Minecraft
- Отладка рендеринга (линии, прямоугольники, bboxes)
- Ручной рендеринг (а-ля
OpenGL
)
- 2D-рендеринг
- Отбраковка усеченного конуса:
- Просто – удаление всей сетки
- Точный — отбраковка только видимых частей сетки.
- Вырезка:
- Стандартный «фейковый», но быстрый клип для PS2, сделанный в
VU1
- Программное отсечение выполнено в
EE Core
- Оптимизированные математические функции через сопроцессор
VU0
- Поддержка фоновой музыки и звуковых эффектов.
- Поддержка колодок
- Поддержка USB
- Поддержка карт памяти
- Поддержка аудиофайлов
.wav
- Поддержка 3D-файлов
.obj
- Поддержка 3D-файлов
.md2
- Поддержка файлов текстур
.png
Содействие
Список предлагаемых функций (и известных проблем) см. в разделе «Открытые проблемы».
Вклады — это то, что делает сообщество открытого исходного кода таким замечательным местом для обучения, вдохновения и творчества. Мы очень ценим любой ваш вклад.
- Форкнуть проект
- Создайте свою ветку функций (
git checkout -b feature/amazing-feature
) - Зафиксируйте свои изменения (
git commit -m 'Add some amazing-feature'
) - Нажмите на ветку (
git push origin feature/amazing-feature
) - Открыть запрос на включение
Игры
Список игр, разработанных с Тайрой.
Если вы его создали, пожалуйста, свяжитесь со мной - я добавлю его в список :)
- Тайракрафт от Wellinator
- Игра с машиной от freebytego
- Камень, бумага, ножницы от GuidoDQR
- TyraTale от Br4k2n
Лицензия
Распространяется по лицензии Apache License 2.0. См. LICENSE
для получения дополнительной информации.
Построен с
Сокращения
- EE (Emotion Engine) — целый набор процессоров и подсистем, входящих в состав PlayStation 2.
- EE Core — основной процессор PS2 (здесь выполнено на C++)
- GS (Графический синтезатор) — настраиваемый растеризатор и преобразователь текстур. Имеет всего 2 МБ памяти для текстур, но, наоборот, имеет очень высокую скорость передачи, поэтому вы можете переключать текстуры в мгновение ока.
- VU0 — программируемый (ASM) векторный процессор, доступ к которому осуществляется с помощью встроенного ассемблерного кода, внедренного в программу C.
- VU1 — программируемый (ASM) векторный процессор, аналог вершинного шейдера. Доступ через DMA.
- IOP — процессор ввода-вывода, обеспечивающий доступ к периферийным устройствам, таким как игровой контроллер.
Кредиты
Без этих ребят Тайры бы не было:
- Доктор Генри Фортуна — источники кода, учебные пособия Академии PS2.
- Всю команду PS2DEV и особенно Рика Гайзера, fjtrujy - за массу хороших советов!
- Веллингтон Карвалью, Андре Гильем, Матиас Исраэльсон, Гвидо Диего Киспе Роблес — за тестирование, помощь Тайре и обмен крутыми идеями!
- Леонардо Оно — для примера программного рендеринга (с обрезкой!)
- Лукаш Д.К. - за огромный архив материалов для PS2.
- Гильерме Ламперт - за исходники кода
- Джеспер Свенневид, Дэниел Коллин — за примеры кода openvcl
- Manieq - для красивых заставок!
- И многие другие ребята. Спасибо!
Ссылка на проект: https://github.com/h4570/tyra
Сандро Собчиньски - [email protected]