เครื่องยนต์เล็ก ๆ น้อย ๆ
เครื่องยนต์ C ++ 3D พัฒนาขึ้นในระดับปริญญาโทในการพัฒนาวิดีโอเกม AAA

ไฮไลท์
- สร้างบันทึกและโหลดฉาก
- สร้าง gameObjects และปรับเปลี่ยนพฤติกรรมของพวกเขาโดยใช้ระบบส่วนประกอบ
- สำรวจฉากโดยใช้กล้องเหมือน Unity
- กำหนดค่าคุณสมบัติของเครื่องยนต์ที่แตกต่างกัน: Renderer, การจัดการเวลา, ...
การติดตั้ง
- ดาวน์โหลดรุ่นล่าสุด (หรืออะไรก็ได้ที่คุณต้องการ) จากส่วนเผยแพร่
- สารสกัด
Build.zip - ดำเนินการ
LittleOrionEngine.exe
การใช้งาน
โปรดดูวิกิของเราเพื่อเรียนรู้วิธีการใช้เครื่องยนต์
การตั้งค่าการพัฒนา
เพื่อให้มั่นใจได้ว่าคุณมีสิ่งต่อไปนี้:
- คอมพิวเตอร์
- การ์ดกราฟิกที่มีการรองรับ OpenGL
- Visualstudio 2017 หรือสูงกว่า
การบริจาค
เพราะนี่เป็นโครงการทางวิชาการที่ไม่สามารถมีส่วนร่วมโดยตรงกับ repo นี้ กล่าวว่าอย่าลังเลที่จะแยกมัน (https://github.com/unnamed-company/littleorionengine/fork) และขยายมันในแบบของคุณเอง!
ผู้เขียน
Mario Fernández Villalba
| Anabel Hernández Barrera
| Enrique Alexandre González Sequeira
| Joan Ginard Mateo
| Jordi Sauras
| Jordi Romagosa
| Toni Ferrari Juan
|
Luis Moyano
| Marco Rodríguez
| Artemis Georgakopoulou
| Pau Casas Garcia
| RaúlGonzález
| Ricard Vivó
| Vidal Melero
|
วิธีการพัฒนา
โครงการนี้ได้รับการพัฒนาตามปรัชญาวิธีการที่คล่องตัว หากคุณสนใจที่จะรู้ว่าการกระจายงานอย่าลังเลที่จะเยี่ยมชมกระดาน Trello ของเรา!
สร้างขึ้นด้วย
- SDL 2.0 - ใช้ในการจัดการการสร้างหน้าต่างและอินพุต
- Glew 2.1.0 - ใช้ในการจัดการส่วนขยาย OpenGL
- Mathgeolib 3.0.0 - ใช้ทำคณิตศาสตร์
- เรียน Imgui 1.73 - ใช้ในการสร้าง GUI
- Imgui FileBrowser - ใช้เพื่อเปิดไดเรกทอรีไฟล์ด้วย Imgui
- ปีศาจ 1.8 - ใช้ในการโหลดภาพ
- Assimp 5.0 - ใช้ในการโหลดรุ่น 3D
- Font Awesome 5 - ใช้เพื่อแสดงไอคอนแฟนซี
- ไอคอนตัวอักษรส่วนหัว CPP - ใช้เพื่อนำเข้าไอคอนที่ยอดเยี่ยมใน C ++
- PCG - ใช้เพื่อสร้างตัวเลขสุ่ม ที่ดี ใน C ++
- Rapidjson 1.1.0 - ใช้ในการจัดการไฟล์ JSON
- Debug Draw - ใช้เพื่อวาดรูปร่างพื้นฐาน
- par_shapes - ใช้เพื่อสร้างพื้นฐานพื้นฐาน
- Imguizmo - ใช้ในการวาด gizmos
- Physfs 3.0.2 - ใช้ในการจัดการระบบไฟล์
- Bullet Physics - ใช้เพื่อจำลองฟิสิกส์
- spdlog - ใช้ในการบันทึกสิ่งของ
ใบอนุญาต
โครงการนี้ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT - ดูไฟล์ใบอนุญาตสำหรับรายละเอียด
ประวัติการปลดปล่อย
- [1.0.1] การทำข้อผิดพลาดและการขัด
- แก้ไขข้อบกพร่องมากมาย
- ปรับการควบคุมเพื่อให้ประสบการณ์การใช้งานที่ดีที่สุด
- การปรับปรุงประสิทธิภาพเมื่อโหลดทรัพยากร
- [1.0.0] การเปิดตัว v1.0.0 อยู่ที่นี่!
- วัสดุตาข่าย มันตาข่ายมีวัสดุของตัวเองที่เก็บพื้นผิวและพารามิเตอร์แสงที่แตกต่างกัน
-
ComponentLight ใหม่ซึ่งแสดงถึงแหล่งกำเนิดแสงสำหรับฉาก มันใช้ตามวัสดุตาข่าย - การเก็บเมาส์ วัตถุเกมสามารถเลือกคลิกที่หน้าต่างที่เกิดเหตุ
- Gizmos พวกเขาใช้เพื่อปรับเปลี่ยนการแปลงของวัตถุที่เลือก
- [0.2.2] ไฟล์ไบนารีและการทำให้เป็นอนุกรมฉาก
- การจัดการทรัพยากรที่ดีขึ้น
- สินทรัพย์จะถูกเปลี่ยนเป็นรูปแบบที่ใช้เวลาน้อยลง
- แคชใหม่ที่หลีกเลี่ยงการทำซ้ำของทรัพยากร
- การทำให้เป็นอนุกรมของฉากที่อนุญาตให้โหลดและบันทึกฉาก
- [0.2.1] เร่งเครื่องยนต์!
- โมดูลโมดูลใหม่ มันมี frustums กล้องที่สามารถติดอยู่กับ gameObjects
- สองแท็บใหม่ฉากและเกม อดีตมีฉากที่เห็นจากกล้องบรรณาธิการในขณะที่ในภายหลังมีฉากที่เห็นจากกล้องเกม
- Frustum Culling ด้วยการปรับปรุงนี้ตาข่ายที่อยู่ด้านนอกของกล้อง frustum จะถูกทิ้งในกระบวนการเรนเดอร์
- โหมด CAMERA CLEAR กล้องสามารถล้างออกเป็นสกายบ็อกซ์หรือสีธรรมดา
- พื้นผิวจะแสดงผลโดยใช้พื้นผิวแทน OpenGL Primitives
- Quadtree และ Octtree ด้วยการปรับปรุงนี้เราสามารถเร่งกระบวนการเรนเดอร์ได้มากขึ้นโดยการลดจำนวนการตรวจสอบ
- โมดูลโมดูลใหม่ มันมีฟังก์ชั่นการดีบักที่เป็นประโยชน์
- [0.2.0] และมี gameobjects
- GameObjects เข้ามา GameObject แต่ละตัวแสดงถึงเอนทิตีที่สามารถแก้ไขได้โดยใช้ส่วนประกอบ
- ส่วนประกอบเป็นวัตถุที่มีชิ้นส่วนเอนทิตีที่แตกต่างกันเช่นตาข่ายวัสดุ ฯลฯ
- หน้าต่างลำดับชั้นใหม่ที่แสดงถึงลำดับชั้นของฉาก GameObject
- หน้าต่างคุณสมบัติที่ปรับปรุงใหม่ ที่นี่พารามิเตอร์ส่วนประกอบสามารถแก้ไขได้
- [0.1.5] รุ่นสุดท้าย 0.1 (นี่คือครูคนหนึ่ง)!
- แก้ไขข้อบกพร่องต่าง ๆ
- refactors หลายตัวเพื่อปฏิบัติตามแนวทางปฏิบัติ C ++ ที่ดี
- readme สุดเจ๋งสุด ๆ
- [0.1.4] บันทึกใหม่การเตรียมการสำหรับรุ่นสุดท้าย 0.1 อัลฟ่า!
- บันทึกที่ปรับปรุงใหม่ มันแสดงข้อความอย่างชัดเจนและอ่านได้มากขึ้น
- ข้อความการดีบักถูกบันทึกจาก Assimp และ OpenGL
- กรองข้อความโดย Soruce!
- พื้นผิวรุ่นสามารถเขียนทับการลากและวางไฟล์ PNG ลงในหน้าต่างเครื่องยนต์
- [0.1.3] ว้าว ui ตัวเลือกการกำหนดค่ามากมาย
- ใหม่ GUI ที่งดงาม
- ตัวเลือกการกำหนดค่าใหม่มากมายสำหรับโมดูลที่แตกต่างกัน (กล้อง, เรนเดอร์, ... )
- ฉากถูกแสดงในหน้าต่างแยกต่างหาก
- คุณสมบัติของโมเดลจะแสดงในหน้าต่างใหม่
- ความเร็วของกล้องและโฟกัสคำนวณจากขนาดรุ่นที่โหลด
- [0.1.2] เวลาเริ่มไหลเข้าสู่การแสดง GUI ใหม่ที่กำลังจะมาถึงในขอบฟ้า ...
- เพิ่มโมดูลเวลาที่ควบคุมการไหลของเวลา มันใช้นาฬิกาสองนาฬิกานาฬิกาเรียลไทม์และนาฬิกาเกม
- เวลาสามารถหยุดชั่วคราวและก้าวหนึ่งเฟรมหนึ่งเฟรม นอกจากนี้ยังสามารถเปลี่ยนแปลงมาตราส่วนเวลาได้
- FPS สามารถ จำกัด ได้
- เริ่มการดำเนินการใหม่ของ GUI เพิ่มข้อมูลใหม่ในการกำหนดค่ากล้อง
- [0.1.1] นี่เป็นเรื่องเกี่ยวกับการโหลดรุ่นและกล้อง
- ปรับปรุงการโหลดรุ่น เป็นไปได้ที่จะโหลดโมเดลการลากและวางไฟล์. fbx ลงในหน้าต่างของเครื่องยนต์ กล้องจะถูกปรับขนาดตามขนาดรุ่นใหม่
- ปรับปรุงการควบคุมกล้อง การกด F จะโฟกัสกล้องในรุ่นที่โหลด นอกจากนี้การกด Alt จะทำให้กล้องวงโคจรรอบรุ่นปัจจุบัน
- เพิ่มกล่องขอบเขต การกด B จะเปิดใช้งาน/ปิดการใช้งานกล่องขอบเขตของรุ่นปัจจุบัน
- [0.1.0] มาที่นี่รุ่นพื้นฐานมาถึงแล้ว!
- มันสามารถโหลดโมเดลจากไฟล์ FBX โดยใช้พื้นผิวแบบกระจาย
- กล้องสามารถควบคุมได้ในสไตล์ที่เหมือนกัน
- เอ็นจิ้นมี UI พื้นฐานที่มีตัวเลือกการกำหนดค่าและการดีบักหลายตัว