Tyra
Open-Source-Spiel-Engine für PlayStation 2™
Präsentationsvideo » YouTube-Tutorials »
Fehler melden · Funktion anfordern
Inhaltsverzeichnis
- Über das Projekt
- Beschreibung
- Tutorials
- Merkmale
- Mitwirken
- Spiele
- Lizenz
- Gebaut mit
- Akronyme
- Credits
Über das Projekt
Beschreibung
Tyra ist ein Projekt, mit dem Sie ganz einfach Spiele für die PlayStation 2-Konsole erstellen können.
Als ich vor ein paar Jahren versuchte, ein Spiel für PS2 zu entwickeln, wurde mir klar, wie viele Dinge getan werden mussten, um diese exotische Konsolenarchitektur zu bändigen. Die Entscheidung war einfach – ich muss eine Engine erstellen, die das Laden von 3D-Dateien, 2D/3D-Rendering, Animation, Audio, die Handhabung zwischen PS2-CPUs und die Synchronisierung übernimmt. Es sollte so einfach wie möglich sein – damit auch Leute ohne Erfahrung ein einfaches erstellen können Spiel in ein paar Stunden.
Und genau darum geht es bei Tyra.
Tutorials
- 01 – Setup-Umgebung – Text-Tutorial oder Video
- 02 – Kochspiel-Assets – Video
- 03 – Erstellen Sie ein Spiele-Repository – Video
- 04 – Spiel von USB in PS2 ausführen – Video
- 01 – Code – Hallo Welt
- 02 – Code – 2D-Rendering
- 03 – Code – 3D-Minecraft-Blöcke
- 04 – Code –
de_dust2.obj
-Rendering - 05 – Code – 3D-Animation
- 06 – Code – Hintergrundmusik und Soundeffekte
- 07 – Code – Statische Lichtkarte und dynamische Richtungslichter
- 08 – Code – Skybox und Debug-Rendering
- 09 - Code - Manuelles Rendern (a'la OpenGL)
- 10 - Code - Sprite-Sheet (Schriftart)
- 11 – Code – Texturwiederholung
- Demospiel – Code
Merkmale
- Docker-Image mit Tyra, allen Tools und
PS2DEV
C++20-Compiler - 3D-Rendering über
VU1
Coprozessor:- Statisches Rendering
- Rendern von Morph-Animationen
- Super optimierter, benutzerdefinierter Minecraft-Block-Renderer
- Debug-Rendering (Linien, Boxen, Bboxes)
- Manuelles Rendern (a'la
OpenGL
)
- 2D-Rendering
- Kegelstumpftötung:
- Ganz einfach – das gesamte Netz aussortieren
- Präzise – nur sichtbare Teile des Netzes werden aussortiert
- Ausschnitt:
- Standardmäßiger „Fake“, aber schneller PS2-Ausschnitt in
VU1
- Software-Clipping in
EE Core
- Optimierte Mathematikfunktionen über
VU0
Coprozessor - Unterstützung für Hintergrundmusik und Soundeffekte
- Pad-Unterstützung
- USB-Unterstützung
- Unterstützung für Speicherkarten
- Unterstützung für
.wav
Audiodateien - Unterstützung für
.obj
3D-Dateien - Unterstützung für
.md2
3D-Dateien - Unterstützung für
.png
Texturdateien
Mitwirken
Eine Liste der vorgeschlagenen Funktionen (und bekannten Probleme) finden Sie unter „Offene Probleme“.
Beiträge machen die Open-Source-Community zu einem so wunderbaren Ort zum Lernen, Inspirieren und Schaffen. Jeder Beitrag, den Sie leisten, wird sehr geschätzt .
- Forken Sie das Projekt
- Erstellen Sie Ihren Feature-Zweig (
git checkout -b feature/amazing-feature
) - Übernehmen Sie Ihre Änderungen (
git commit -m 'Add some amazing-feature'
) - Push to the Branch (
git push origin feature/amazing-feature
) - Öffnen Sie eine Pull-Anfrage
Spiele
Liste der mit Tyra entwickelten Spiele.
Wenn Sie eines erstellt haben, kontaktieren Sie mich bitte – ich werde es der Liste hinzufügen :)
- Tyracraft von Wellinator
- Spiel mit Auto von Freebytego
- Stein, Papier, Schere von GuidoDQR
- TyraTale von Br4k2n
Lizenz
Verteilt unter der Apache License 2.0-Lizenz. Weitere Informationen finden Sie unter LICENSE
.
Gebaut mit
Akronyme
- EE (Emotion Engine) – eine ganze Reihe von Prozessoren und Subsystemen, aus denen die PlayStation 2 besteht
- EE Core – Haupt-PS2-CPU (C++ hier erstellt)
- GS (Grafiksynthesizer) – konfigurierbarer Rasterizer und Texture Mapper. Hat nur 2 MB Speicher für Texturen, verfügt aber im Gegenteil über eine sehr hohe Übertragungsrate, sodass Sie Texturen im Handumdrehen wechseln können
- VU0 – programmierbarer (ASM) Vektorprozessor, auf den über Inline-Assemblercode zugegriffen wird, der in das C-Programm eingefügt wird.
- VU1 – programmierbarer (ASM) Vektorprozessor, der dem Vertex-Shader ähnelt. Zugriff über DMA.
- IOP – I/O-Prozessor, der den Zugriff auf Peripheriegeräte wie den Gamecontroller ermöglicht
Credits
Ohne diese Jungs gäbe es Tyra nicht:
- Dr. Henry Fortuna – für Codequellen, PS2 Academy-Tutorials
- Das gesamte PS2DEV-Team und insbesondere Rick Gaiser, fjtrujy – für viele gute Tipps!
- Wellington Carvalho, André Guilheme, Matías Israelson, Guido Diego Quispe Robles – für das Testen, den Beitrag zu Tyra und den Austausch cooler Ideen!
- Leonardo Ono – Beispiel für einen Software-Renderer (mit Ausschnitt!)
- Lukasz DK – für ein riesiges Archiv mit PS2-Sachen
- Guilherme Lampert – für Codequellen
- Jesper Svennevid, Daniel Collin – für die Codebeispiele von openvcl
- Manieq – für schöne Splash-Screens!
- Und so viele andere Leute. Danke!
Projektlink: https://github.com/h4570/tyra
Sandro Sobczyński – [email protected]