タイラ
PlayStation 2™ 用のオープンソース ゲーム エンジン
ショーケースビデオ » YouTube チュートリアル »
バグ報告・機能リクエスト
目次
- プロジェクトについて
- 貢献する
- ゲーム
- ライセンス
- で構築
- 頭字語
- クレジット
プロジェクトについて
説明
Tyra は、PlayStation 2 コンソール用のゲームを簡単に作成できるプロジェクトです。
数年前、PS2 用のゲームを作ろうとしたとき、このエキゾチックなコンソール アーキテクチャを手なずけるには、どれほど多くのことをしなければならないかに気づきました。決断は簡単でした - 3D ファイルのロード、2D/3D レンダリング、アニメーション、オーディオ、PS2 CPU 間の処理、同期を処理するエンジンを作成する必要がありました。できるだけシンプルであるべきです - 経験のない人でも簡単なツールを作成できるようにするため、数時間後の試合。
それがティラのすべてです。
チュートリアル
- 01 - セットアップ環境 - テキストチュートリアルまたはビデオ
- 02 - クッキング ゲーム アセット - ビデオ
- 03 - ゲーム リポジトリの作成 - ビデオ
- 04 - PS2 で USB からゲームを実行する - ビデオ
- 01 - コード - Hello world
- 02 - コード - 2D レンダリング
- 03 - コード - 3D マインクラフト ブロック
- 04 - コード -
de_dust2.obj
レンダリング - 05 - コード - 3D アニメーション
- 06 - コード - BGMと効果音
- 07 - コード - 静的ライトマップと動的ディレクショナル ライト
- 08 - コード - Skybox とデバッグ レンダリング
- 09 - コード - 手動レンダリング (OpenGL による)
- 10 - コード - スプライトシート(フォント)
- 11 - コード - テクスチャの繰り返し
- デモゲーム - コード
特徴
- Tyra、すべてのツール、および
PS2DEV
C++20 コンパイラーを含む Docker イメージ VU1
コプロセッサーによる 3D レンダリング:- 静的レンダリング
- モーフアニメーションのレンダリング
- 超最適化されたカスタム Minecraft ブロック レンダラー
- デバッグレンダリング (ライン、ボックス、Bボックス)
- 手動レンダリング (
OpenGL
による)
- 2D レンダリング
- 錐台のカリング:
- シンプル - メッシュ全体をカリングする
- 正確 - メッシュの目に見える部分のみをカリングします。
- クリッピング:
- 標準の「フェイク」だが、
VU1
で実行される高速 PS2 クリッピング EE Core
で行われるソフトウェアクリッピング
VU0
コプロセッサーによる最適化された数学関数- BGM と効果音のサポート
- パッドサポート
- 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 で開発されたゲームのリスト。
作成した場合は、私に連絡してください - リストに追加します:)
- タイラクラフト by Wellinator
- freebytegoによる車を使ったゲーム
- じゃんけん by GuidoDQR
- TyraTale by Br4k2n
ライセンス
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 は起こりませんでした。
- ヘンリー・フォーチュナ博士 - コード ソースについては、PS2 アカデミーのチュートリアル
- PS2DEV チーム全体、特に Rick Gaiser、fjtrujy に、たくさんの良いヒントをありがとう!
- Wellington Carvalho、André Guilheme、Matías Israelson、Guido Diego Quispe Robles - テスト、Tyra への貢献、クールなアイデアの共有に!
- Leonardo Hon - ソフトウェア レンダラーの例 (クリッピングあり!)
- Lukasz DK - PS2 に関する膨大なアーカイブ用
- Guilherme Lampert - コード ソース用
- Jesper Svennevid、Daniel Collin - openvcl のコード サンプルについて
- Manieq - 素敵なスプラッシュ スクリーン用!
- 他にもたくさんの人たち。ありがとう!
プロジェクトリンク: https://github.com/h4570/tyra
サンドロ・ソプチンスキー - [email protected]