ไทร่า
เอ็นจิ้นเกมโอเพ่นซอร์สสำหรับ PlayStation 2™
วิดีโอตัวอย่าง » บทช่วยสอน YouTube »
รายงานข้อผิดพลาด · คุณสมบัติคำขอ
สารบัญ
- เกี่ยวกับโครงการ
- คำอธิบาย
- บทช่วยสอน
- คุณสมบัติ
- มีส่วนร่วม
- เกมส์
- ใบอนุญาต
- สร้างด้วย
- คำย่อ
- เครดิต
เกี่ยวกับโครงการ
คำอธิบาย
Tyra เป็นโปรเจ็กต์ที่ให้คุณสร้างเกมสำหรับคอนโซล PlayStation 2 ได้อย่างง่ายดาย
เมื่อฉันพยายามสร้างเกมสำหรับ PS2 เมื่อไม่กี่ปีก่อน ฉันตระหนักได้ว่าต้องทำอะไรหลายอย่างเพื่อทำให้สถาปัตยกรรมคอนโซลแปลกใหม่นี้เชื่องได้ การตัดสินใจนั้นง่ายมาก - ฉันจำเป็นต้องสร้างกลไกที่จะจัดการการโหลดไฟล์ 3D, การเรนเดอร์ 2D/3D, แอนิเมชั่น, เสียง, การจัดการระหว่าง CPU PS2, การซิงโครไนซ์... มันควรจะง่ายที่สุดเท่าที่จะเป็นไปได้ - ดังนั้นผู้ที่ไม่มีประสบการณ์สามารถสร้างสิ่งที่ง่าย ๆ ได้ เกมในอีกไม่กี่ชั่วโมง
และนั่นคือสิ่งที่ Tyra เป็นเรื่องเกี่ยวกับ
บทช่วยสอน
- 01 - สภาพแวดล้อมการตั้งค่า - ข้อความบทช่วยสอนหรือวิดีโอ
- 02 - เนื้อหาเกมทำอาหาร - วิดีโอ
- 03 - สร้างที่เก็บเกม - วิดีโอ
- 04 - เรียกใช้เกมจาก USB ใน PS2 - วิดีโอ
- 01 - รหัส - สวัสดีชาวโลก
- 02 - โค้ด - การเรนเดอร์ 2D
- 03 - รหัส - บล็อก minecraft 3 มิติ
- 04 - รหัส - การเรนเดอร์
de_dust2.obj
- 05 - โค้ด - แอนิเมชัน 3 มิติ
- 06 - รหัส - เพลงประกอบและเอฟเฟกต์เสียง
- 07 - รหัส - แผนที่แสงแบบคงที่และไฟบอกทิศทางแบบไดนามิก
- 08 - รหัส - Skybox และการแสดงผลการแก้ไขข้อบกพร่อง
- 09 - รหัส - การเรนเดอร์ด้วยตนเอง (a'la OpenGL)
- 10 - รหัส - สไปรท์ชีต (แบบอักษร)
- 11 - รหัส - การทำซ้ำพื้นผิว
- เกมสาธิต - รหัส
คุณสมบัติ
- อิมเมจนักเทียบท่าพร้อม Tyra เครื่องมือทั้งหมดและคอมไพเลอร์
PS2DEV
C ++ 20 - การเรนเดอร์ 3 มิติผ่านโปรเซสเซอร์ร่วม
VU1
:- การเรนเดอร์แบบคงที่
- การเรนเดอร์ภาพเคลื่อนไหว Morph
- ตัวเรนเดอร์บล็อก minecraft แบบกำหนดเองที่ได้รับการปรับให้เหมาะสมที่สุด
- การเรนเดอร์การแก้ไขข้อบกพร่อง (บรรทัด กล่อง bbox)
- การเรนเดอร์ด้วยตนเอง (a'la
OpenGL
)
- การเรนเดอร์ 2D
- การคัดแยก Frustum:
- ง่าย ๆ - คัดแยกทั้งตาข่าย
- แม่นยำ - คัดแยกเฉพาะส่วนที่มองเห็นได้ของตาข่าย
- การตัด:
- มาตรฐาน "ปลอม" แต่การตัด PS2 อย่างรวดเร็วทำได้ใน
VU1
- การตัดซอฟต์แวร์เสร็จสิ้นใน
EE Core
- ฟังก์ชันทางคณิตศาสตร์ที่ปรับให้เหมาะสมผ่านตัวประมวลผลร่วม
VU0
- รองรับเพลงพื้นหลังและเอฟเฟกต์เสียง
- แผ่นรองรับ
- รองรับยูเอสบี
- รองรับการ์ดหน่วยความจำ
- รองรับไฟล์เสียง
.wav
- รองรับไฟล์
.obj
3D - รองรับไฟล์
.md2
3D - รองรับไฟล์พื้นผิว
.png
มีส่วนร่วม
ดูปัญหาที่เปิดอยู่สำหรับรายการคุณลักษณะที่นำเสนอ (และปัญหาที่ทราบ)
การมีส่วนร่วมคือสิ่งที่ทำให้ชุมชนโอเพ่นซอร์สเป็นสถานที่ที่น่าทึ่งสำหรับการเรียนรู้ สร้างแรงบันดาลใจ และสร้างสรรค์ การมีส่วนร่วมใด ๆ ที่คุณทำจะ ได้รับการชื่นชมอย่างมาก
- ส้อมโครงการ
- สร้าง Feature Branch ของคุณ (
git checkout -b feature/amazing-feature
) - ยอมรับการเปลี่ยนแปลงของคุณ (
git commit -m 'Add some amazing-feature'
) - พุชไปที่สาขา (
git push origin feature/amazing-feature
) - เปิดคำขอดึง
เกมส์
รายชื่อเกมที่พัฒนาร่วมกับ Tyra
หากคุณสร้างมันขึ้นมา โปรดติดต่อฉัน ฉันจะเพิ่มมันเข้าไปในรายการ :)
- Tyracraft โดย Wellinator
- เกมกับรถโดย freebytego
- ร็อค กระดาษ กรรไกร โดย GuidoDQR
- TyraTale โดย Br4k2n
ใบอนุญาต
เผยแพร่ภายใต้ใบอนุญาต Apache License 2.0 ดู LICENSE
สำหรับข้อมูลเพิ่มเติม
สร้างด้วย
- PS2DEV
- วีซีแอลพีพี
- โซนี่ วีซีแอล
คำย่อ
- EE (Emotion Engine) - ชุดโปรเซสเซอร์และระบบย่อยทั้งชุดที่ประกอบเป็น PlayStation 2
- EE Core - CPU PS2 หลัก (c ++ ทำที่นี่)
- GS (Graphic synthesizer) - แรสเตอร์ไรเซอร์ที่กำหนดค่าได้และตัวทำแผนที่พื้นผิว มีหน่วยความจำเพียง 2MB~ สำหรับพื้นผิว แต่สำหรับหน่วยความจำตรงกันข้ามมีอัตราการถ่ายโอนที่สูงมาก คุณจึงสามารถสลับพื้นผิวได้ในพริบตา
- VU0 - ตัวประมวลผลเวกเตอร์แบบตั้งโปรแกรมได้ (ASM) ที่เข้าถึงได้โดยโค้ดแอสเซมบลีแบบอินไลน์ที่ฉีดเข้าไปในโปรแกรม C
- VU1 - ตัวประมวลผลเวกเตอร์แบบตั้งโปรแกรมได้ (ASM) ซึ่งคล้ายกับจุดยอดเชเดอร์ เข้าถึงได้ผ่าน DMA
- IOP - โปรเซสเซอร์ I/O ที่ช่วยให้สามารถเข้าถึงอุปกรณ์ต่อพ่วง เช่น ตัวควบคุมเกม
เครดิต
หากไม่มีคนเหล่านี้ Tyra ก็คงไม่เกิดขึ้น:
- Dr Henry Fortuna - สำหรับซอร์สโค้ด, บทช่วยสอน PS2 Academy
- ทีม PS2DEV ทั้งหมด และโดยเฉพาะสำหรับ Rick Gaiser, fjtrujy - สำหรับเคล็ดลับดีๆ มากมาย!
- 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]