Freeglut กับ SDL เทียบกับ GLFW


26

ฉันต้องพอร์ตโครงการเกมของฉันจาก Android (เขียนใน C, OpenGL ES 2.0 ขอบคุณ NDK) ไปยังแพลตฟอร์ม Windows และ Linux แน่นอนว่าฉันจะต้องเขียนโค้ดที่ขึ้นอยู่กับบางแพลตฟอร์ม แต่ตอนนี้ฉันติดอยู่กับคำถามว่าไลบรารี่สำหรับการสร้าง OpenGL และการใช้งานการจัดการอินพุท

googling ที่รวดเร็วทำให้ฉันได้รับผู้สมัคร 3 คน:

1) Freeglut - เขียนใหม่และฟรีดี GLUT เก่า
2) SDL - รู้จักมากที่สุดหนึ่ง lib ที่ใช้ในหลาย ๆ เกม
3) GLFW - ชนิดใหม่ แต่ง่ายและใช้งานได้

ฉันเพิ่งใหม่ในการพัฒนาพีซีและไม่เห็นความแตกต่างที่สำคัญเกิดขึ้นกับพวกเขา คุณสามารถช่วยฉันเลือกอันไหนได้บ้าง? ฉันต้องการเพียงแค่อินพุตเมาส์ / คีย์บอร์ดและการสร้างบริบท OpenGL อย่างชัดเจนและฉันจะใช้ GLEW เพื่อเข้าถึง OpenGL สมัยใหม่ด้วยความง่าย


2
คำตอบจะได้รับการพิจารณาอย่างสูงและไม่ใช่คำถามที่ดีสำหรับรูปแบบ SE ที่กล่าวว่าคำตอบที่ให้ความเห็นอย่างสูงของฉัน - ทั้งสามใช้สำหรับโครงการจริงและอีกสองสามอย่างเช่น SFML, GLUT, Qt และการแก้ปัญหาด้วยมือ - คือ SDL ให้การผสมผสานของคุณสมบัติความเสถียรและความสะดวกสบายที่ดี การใช้งาน ฉันแนะนำรุ่น 2.0 ก่อนวางจำหน่ายโดยเฉพาะ (ดูได้จากการตรวจสอบ Mercurial repo และสร้างด้วยตัวคุณเอง แต่มันค่อนข้างง่าย) ประการที่สอง SFML ค่อนข้างดี ฉันพบข้อบกพร่องใน GLFW มากเกินไป GLUT ไม่ดีสำหรับเกมและการหมุนด้วยมือเป็นงานจำนวนมาก
Sean Middleditch

ฉันแนะนำ SDL เป็นการส่วนตัวเพราะมันรองรับทุกส่วนของเกมตั้งแต่อินพุตไปจนถึงกราฟิกไปจนถึงเสียงและอินพุต อย่างไรก็ตามมันอาจเป็นการ จำกัด แต่เนื่องจากคุณมาจากเกมที่พัฒนาแล้วสำหรับแพลตฟอร์มที่มี จำกัด มากขึ้นฉันคิดว่ามันจะเป็นตัวเลือกที่ดี
CobaltHex

ใช่มันเป็นแบบสำรวจความคิดเห็น คะแนนของฉันคือ GLFW ง่ายง่ายไม่เคยมีปัญหาใด ๆ ที่ไม่ได้รับการแก้ไข มันมีน้ำหนักเบาสุดและง่ายต่อการรวบรวมเช่นกัน
deceleratedcaviar

คำตอบ:


29

GLFW มีความทันสมัยและมีขอบเขตที่กำหนดไว้เป็นอย่างดี ภายใต้การพัฒนาที่ใช้งานอยู่

SDLในอีกด้านหนึ่งเป็นหินที่แข็งและมีคุณสมบัติมากมายในขอบเขตที่แตกต่างกัน แต่ค่อนข้างขาดในพวกเขาทั้งหมด (ตัวอย่าง: SDL สามารถทำเสียงได้ แต่คุณอาจชอบใช้ OpenAL เพราะเหนือกว่าในเรื่องนั้น) อาจเป็นที่น่าสังเกตว่า SDL ได้รับการพอร์ตไปยังแพลตฟอร์มที่แตกต่างกันซึ่งแตกต่างจาก GLFW ซึ่งใช้สำหรับแพลตฟอร์มเดสก์ท็อปเท่านั้น (win / linux / mac)

จำนวนที่มากเกินไปดีควรหลีกเลี่ยง มันไม่ได้เกี่ยวอะไรกับสิ่งที่ทำให้ดี


ในความคิดของฉันในฐานะที่เป็นผู้ยึดอุดมคติ GLFW เป็นตัวเลือกที่ดีกว่า เพราะมันทำสิ่งที่ต้องการอย่างแน่นอน การพัฒนาที่แอคทีฟมากเป็นสัญญาณที่ดีสำหรับโครงการระยะยาวเพราะโดยปกติจะหมายถึงข้อผิดพลาดที่จะได้รับการแก้ไขคุณสมบัติใหม่ที่จะถูกเพิ่มเข้ามามันจะเป็นไปตามมาตรฐานที่ใหม่กว่าและจะไม่ถูกยกเลิก นี่ไม่ใช่สิ่งสำคัญสำหรับพอร์ตเร็วหรือเกม 6 เดือน แต่สำหรับเครื่องยนต์หรือห้องสมุดที่คุณต้องการนำมาใช้ซ้ำฉันจะจำไว้


7
แต่ OP กำลังถามเกี่ยวกับFreeglutไม่ใช่GLUT !!!

@ user3473 "FreeGLUT เป็นทางเลือกโอเพนซอร์สสำหรับไลบรารี OpenGL Utility Toolkit (GLUT)"
YoYoYonnY

@YoYoYonnY เป็น GLFW และ SDL ดังนั้นคำถามนี้
ด่าน

@ ด่าน ... ไม่ GLFW และ SDL โดยเฉพาะนั้นไม่ใช่ทางเลือกสำหรับ GLUT แน่นอนเพราะคุณสามารถทำสิ่งต่าง ๆ กับสิ่งที่คุณไม่สามารถทำได้ด้วย GLUT และในทางกลับกัน
YoYoYonnY

@YoYoYonnY คุณสามารถทำสิ่งต่างๆด้วย FreeGLUT ที่คุณไม่สามารถทำได้ด้วย GLUT ประเด็นของฉันยังคงอยู่
ด่าน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.