SurrealEngine: การนำ Unreal Engine กลับมาสร้างใหม่แบบโอเพนซอร์สที่สามารถเล่น UT99 ได้
(github.com/dpjudas)Surreal Engine
เป้าหมายของโปรเจ็กต์นี้คือการนำต้นฉบับของ UnrealEngine กลับมาสร้างใหม่ เพื่อให้สามารถเล่นแผนที่ของ Unreal Tournament (UT99) ได้
สถานะปัจจุบัน
- เอนจินสามารถโหลดและเรนเดอร์แผนที่ได้
- Unrealscript VM เกือบเสร็จสมบูรณ์แล้ว แต่การทำงานของอาร์เรย์และการรันแบบมีเงื่อนไขบนเครือข่ายยังไม่ได้ถูกนำมาใช้
- พยายามโหลดเลเวลแอ็กเตอร์ทั้งหมดและเริ่มต้นแผนที่
- เมนูและ HUD แสดงผลได้ แต่ฟังก์ชันเนทีฟจำนวนมากยังไม่ได้ถูกนำมาใช้
- อีเวนต์บางอย่างอาจทำงานไม่ถูกต้อง และอาจเกิด exception ระหว่างการโต้ตอบ
ขณะนี้ SurrealEngine สามารถตรวจจับเกม UE1 ต่อไปนี้ได้:
- Unreal Tournament (v436, v451b, v469(a, b, c, d))
- Unreal (v200, v209, v220, v224v, v225f, v226f)
- Unreal Gold (v226b, v227(i, j, k_11))
- Deus Ex (v1002f, v1112fm)
- Klingon Honor Guard (219)
- NERF Arena Blast (v300)
- TNN Outdoors Pro Hunter (v200)
- Rune Classic (v1.10)
- Clive Barker's Undying (v420)
- Tactical-Ops: Assault on Terror (v3.4.0 and v3.5.0 - ทำงานบนเอนจิน UT436 และ UT469)
- Wheel of Time (v333)
ในรายการข้างต้น มีเพียง Unreal Tournament v436 และ Unreal Gold v226 เท่านั้นที่อยู่ในสถานะเล่นได้ค่อนข้างดี ส่วนเกมอื่น ๆ อาจเกิดการแครชเมื่อรัน
Unreal Tournament v436
- เกมรันได้ ตัวเลือกในเมนูทำงาน และสามารถเล่นแมตช์กับบอทได้
- AI ของบอทแทบไม่มี และฟีเจอร์ของบางแผนที่ยังขาดหายไป (เช่น หน้าจอ "X is leading the match" ใน DM-Morpheus ไม่ทำงาน)
Unreal Gold v226
- เกมรันได้ และตัวเลือกในเมนูส่วนใหญ่ทำงาน
- สามารถเล่นแผนที่แบบซิงเกิลเพลเยอร์และแมตช์กับบอทได้
- AI ทำงานคล้ายกับใน UT
- โมเดลวัตถุใน Return to Na Pali แสดงผลผิดเพี้ยน
Deus Ex v1112fm
- ใช้งานได้เฉพาะอินโทร flyby
- ไม่ตรวจจับอินพุตจากคีย์บอร์ดหรือเมาส์ (Deus Ex จัดการอินพุตต่างจาก Unreal/UT)
พารามิเตอร์บรรทัดคำสั่ง
SurrealEngine [--url=<mapname>] [--engineversion=X] [เส้นทางโฟลเดอร์เกม]
- สามารถคัดลอกไฟล์รันของ SurrealEngine ไปไว้ในโฟลเดอร์ System ของเกม UE1 แล้วรันได้
- หากไม่ได้ระบุโฟลเดอร์เกม เอนจินจะค้นหาคีย์รีจิสทรีที่ Epic ตั้งไว้จากรีจิสทรี (เฉพาะ Windows)
- หากไม่ได้ระบุ URL จะใช้ URL เริ่มต้นจากไฟล์ ini (ค่าเริ่มต้นคือแผนที่อินโทร)
- อาร์กิวเมนต์
--engineversionจะเขียนทับเวอร์ชันภายในที่เอนจินตรวจจับได้ และควรใช้เพื่อการดีบักเท่านั้น
คำแนะนำการบิลด์บน Windows
- บิลด์โปรเจ็กต์ด้วย CMake
- ต้องใช้ Visual Studio เวอร์ชันล่าสุดและคอมไพเลอร์ MSVC ที่รองรับ C++17
- SDL2 เป็น dependency แบบเลือกใช้ ซึ่งต้องเตรียมไว้ในเครื่องเอง (ดาวน์โหลด SDL2 เวอร์ชัน Visual C++ แล้วระบุโฟลเดอร์นั้นในการตั้งค่า CMake)
- ไม่มี dependency ภายนอก third-party อื่นนอกจากนั้น
คำแนะนำการบิลด์บน Linux
- บิลด์โปรเจ็กต์ด้วย CMake
- พิมพ์คำสั่งต่อไปนี้ตามลำดับเพื่อบิลด์:
git clone https://github.com/dpjudas/SurrealEngine.git
cd SurrealEngine
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j 16
-
หากคอมไพล์สำเร็จ จะได้ไฟล์รัน
SurrealEngine,SurrealEditor,SurrealDebuggerในโฟลเดอร์build -
ต้องใช้แพ็กเกจสำหรับพัฒนาต่อไปนี้:
- cmake
- g++
- pthreads
- dl
- alsa (libasound2)
- SDL2
- waylandpp (ทางเลือก, C++ binding ของ Wayland, ใช้ใน ZWidget Wayland backend)
-
บน Linux นั้น SDL2 เป็นสิ่งจำเป็น และ SurrealEngine ใช้มันสำหรับฟังก์ชันหน้าต่างและการรองรับ Wayland แบบเนทีฟ (
SDL_VIDEODRIVER=wayland)
สรุปโดย GN⁺
- Surreal Engine เป็นโปรเจ็กต์ที่นำ UnrealEngine กลับมาสร้างใหม่ เพื่อให้สามารถเล่นแผนที่ของ Unreal Tournament (UT99) ได้
- ปัจจุบันมีเพียง Unreal Tournament v436 และ Unreal Gold v226 ที่อยู่ในสถานะเล่นได้ค่อนข้างดี ส่วนเกมอื่นอาจแครชได้
- สามารถบิลด์ได้ทั้งบน Windows และ Linux ด้วย CMake และต้องใช้ dependency บางตัว เช่น SDL2
- โปรเจ็กต์นี้ช่วยให้เกมเก่ากลับมาเล่นได้อีกครั้งบนระบบสมัยใหม่ และอาจน่าสนใจสำหรับนักพัฒนาเกมและวิศวกร
- โปรเจ็กต์ที่มีแนวคิดคล้ายกัน ได้แก่เอนจินเกมโอเพนซอร์สอย่าง OpenRA
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
มีการพอร์ต Quake III ไปยังเว็บและเพิ่มการรองรับผู้เล่นหลายคนกับมือถือ
ตอนแรกคิดว่าโปรเจ็กต์นี้คล้ายกับโปรเจ็กต์ที่โฮสต์เกม UE1 บน UE5
ดีใจกับโปรเจ็กต์นี้มากและทำให้นึกถึงความทรงจำมากมาย
Unreal Tournament 99 และ Deus Ex เป็นหนึ่งในความทรงจำเกี่ยวกับเกมที่มีความสุขที่สุด
Epic สามารถโอเพนซอร์สเอนจินต้นฉบับได้เหมือนที่ id Software ทำ
มีนักพัฒนาอีกคนกำลังสร้าง Surreal 98 เพื่อให้เล่นเกม UE1 บน UE5 ได้พร้อม VR, ม็อด และฟีเจอร์สมัยใหม่
ขอแนะนำ "Epic Unreal Megaspecial" ของ Civvie 11
มีการทำ Unreal Tournament 2004 ให้รันใน Docker และมันทำงานได้ดีบน Linux x86_64
สงสัยว่าถ้าจะเขียน Quake/Unreal ใหม่ทั้งหมดตั้งแต่ต้นจะต้องใช้เวลาในการพัฒนามากแค่ไหน
คิดถึง UT99 มาก และไม่ค่อยชอบเกม FPS สมัยใหม่เท่าไร