ทำไมผู้พัฒนาเกมถึงชอบ Windows


396

DirectX นั้นง่ายกว่าหรือดีกว่า OpenGL แม้ว่า OpenGL จะเป็นแพลตฟอร์มข้ามหรือไม่ ทำไมเราไม่เห็นเกมที่ทรงพลังจริง ๆ สำหรับลีนุกซ์เหมือนใน Windows?


55
หลักฐานเท็จ - หลักฐานที่แสดงว่าผู้พัฒนาเกมชื่นชอบ windows ฉันคิดว่า @ user17674 มีความถูกต้องมากขึ้น - พวกเขาต้องการพัฒนาสำหรับแพลตฟอร์มเพื่อให้พวกเขาสามารถขายได้มากขึ้นและสร้างรายได้มากขึ้น :-)
Rory Alsop

258
นักพัฒนาไวรัสก็ชอบ Windows มันคือทั้งหมดที่เกี่ยวกับฐานผู้ใช้
CesarGon

4
ทำไมผู้เขียนโปรแกรม Windows ถึงชอบ DirectX มากกว่า OpenGL น่าจะเป็นคำถามที่น่าสนใจมากกว่าในอดีต เนื่องจากลิงก์ไปยังการสัมภาษณ์ Carmack ด้านล่างอาจระบุว่า DX เคยเป็นที่รังเกียจ มันจะน่าสนใจที่จะรู้ว่ามันช่วยให้ผู้ใช้เพียงพอสำหรับ MS ที่จะสนับสนุนมันจนกระทั่ง Xbox และการเขียนใหม่ทำให้มันเป็นที่นิยมมากขึ้น หรือบางทีมันก็แค่ดีพอแล้วดังนั้นคนที่ติดอยู่กับมัน
CodexArcanum

100
ทำไมผู้คนถึงปล้นธนาคาร? เพราะ thats ที่เงินเป็น
GrandmasterB

7
@CararGon: ไม่เพียงเพราะฐานผู้ใช้ แต่ยังเพื่อความสะดวกในการพัฒนา
Giorgio

คำตอบ:


1154

คำตอบมากมายที่นี่ดีมากจริงๆ แต่ควรแก้ไขปัญหาOpenGLและDirect3D (D3D) และนั่นต้องมี ... บทเรียนประวัติศาสตร์

และก่อนที่เราจะเริ่มต้นผมรู้เพิ่มเติมเกี่ยวกับOpenGLกว่าที่ฉันจะทำอย่างไรกับDirect3D ฉันไม่เคยเขียนรหัส D3D ในชีวิตของฉันเลยและฉันได้เขียนบทช่วยสอนเกี่ยวกับ OpenGL ดังนั้นสิ่งที่ฉันจะพูดไม่ใช่เรื่องของอคติ มันเป็นเพียงเรื่องของประวัติศาสตร์

เกิดความขัดแย้ง

วันหนึ่งบางครั้งในช่วงต้นทศวรรษ 90 ไมโครซอฟท์ก็มองไปรอบ ๆ พวกเขาเห็นว่าSNESและSega Genesisนั้นยอดเยี่ยมเล่นเกมแอคชั่นมากมาย และพวกเขาเห็นDOS นักพัฒนาโค้ดเกม DOS เช่นเกมคอนโซล: ตรงไปที่โลหะ ซึ่งแตกต่างจากคอนโซลที่ผู้พัฒนาเกม SNES รู้ว่าผู้ใช้จะมีฮาร์ดแวร์อะไรนักพัฒนา DOS ต้องเขียนเพื่อกำหนดค่าที่เป็นไปได้หลายอย่าง และนี่ค่อนข้างยากกว่าที่คิด

และ Microsoft ก็มีปัญหาใหญ่กว่า: Windows ดู Windows ต้องการเป็นเจ้าของฮาร์ดแวร์ซึ่งแตกต่างจาก DOS ที่ให้นักพัฒนาทำอะไร การมีฮาร์ดแวร์เป็นสิ่งจำเป็นเพื่อให้เกิดความร่วมมือระหว่างแอปพลิเคชัน ความร่วมมือเป็นสิ่งที่ผู้พัฒนาเกมเกลียดเพราะใช้ทรัพยากรฮาร์ดแวร์ที่มีค่าซึ่งพวกเขาสามารถใช้เพื่อให้ยอดเยี่ยม

เพื่อส่งเสริมการพัฒนาเกมบน Windows, ไมโครซอฟท์จำเป็นต้องมี API เครื่องแบบที่เป็นระดับต่ำวิ่งบน Windows โดยไม่ต้องชะลอตัวลงโดยมันและที่สุดของทุกข้ามฮาร์ดแวร์ API เดียวสำหรับกราฟิกเสียงและฮาร์ดแวร์อินพุตทั้งหมด

ดังนั้นDirectXจึงเกิด

เครื่องเร่งความเร็ว 3 มิติเกิดในอีกไม่กี่เดือนต่อมา และ Microsoft ก็พบปัญหา ดู DirectDraw ซึ่งเป็นองค์ประกอบกราฟิกของ DirectX เท่านั้นที่จัดการกับกราฟิก 2D: การจัดสรรหน่วยความจำกราฟิกและการทำบิตบิตระหว่างส่วนต่างๆของหน่วยความจำที่จัดสรร

ดังนั้นไมโครซอฟท์จึงซื้อมิดเดิลแวร์สักเล็กน้อยแล้วนำไปทำเป็น Direct3D Version 3 มันเป็นคำสาปแช่งระดับสากล และด้วยเหตุผลที่ดี; การดูโค้ด D3D v3 เปรียบเสมือนการจ้องมองเข้าไปในหีบพันธสัญญา

Old John Carmack ที่ Id Software เอามาดูที่ถังขยะและพูดว่า "ขันนั่น!" และตัดสินใจเขียนไปยัง API อื่น: OpenGL

ดูอีกส่วนหนึ่งของสัตว์ร้ายที่ Microsoft กำลังยุ่งอยู่กับการทำงานกับ SGI ในการใช้งาน OpenGL สำหรับ Windows ความคิดที่นี่คือการพัฒนาศาลของแอปพลิเคชัน GL ทั่วไป: แอพเวิร์กสเตชัน เครื่องมือ CAD การสร้างแบบจำลองสิ่งนั้น เกมเป็นสิ่งที่ไกลที่สุดในใจ นี่คือสิ่งที่เป็น Windows NT เป็นหลัก แต่ Microsoft ตัดสินใจที่จะเพิ่มลงใน Win95 ด้วย

เป็นวิธีการดึงดูดนักพัฒนาเวิร์กสเตชันให้กับ Windows Microsoft ตัดสินใจที่จะลองติดสินบนพวกเขาด้วยการเข้าถึงการ์ดกราฟิก 3D แบบใหม่ที่มีขนาดใหญ่กว่านี้ Microsoft ใช้โปรโตคอล Installable Client Driver: ผู้ผลิตการ์ดกราฟิกสามารถแทนที่ซอฟต์แวร์ของ Microsoft ที่ใช้งาน OpenGL ด้วยฮาร์ดแวร์ที่ใช้ โค้ดสามารถใช้งานฮาร์ดแวร์ OpenGL ได้โดยอัตโนมัติหากมีอยู่

ในช่วงแรกผู้ใช้วิดีโอระดับผู้บริโภคไม่ได้รับการสนับสนุนสำหรับ OpenGL นั่นไม่ได้หยุด Carmack เพียงแค่ย้าย Quake ไปยัง OpenGL (GLQuake) บนเวิร์กสเตชัน SGI ของเขา ตามที่เราสามารถอ่านได้จาก GLQuake readme:

ในทางทฤษฎีจะเกิดแผ่นดินไหวขึ้นบน OpenGL ที่รองรับส่วนขยายวัตถุพื้นผิวใด ๆ เว้นแต่ว่าจะเป็นฮาร์ดแวร์ที่มีประสิทธิภาพมากที่เร่งทุกอย่างที่จำเป็นการเล่นเกมจะไม่เป็นที่ยอมรับ หากต้องผ่านเส้นทางการจำลองซอฟต์แวร์ใด ๆ ประสิทธิภาพจะอยู่ภายใต้หนึ่งเฟรมต่อวินาที

ในเวลานี้ (มีนาคม '97) ฮาร์ดแวร์ opengl มาตรฐานเดียวที่สามารถเล่นได้อย่างมีเหตุผลคือ realgm intergraph ซึ่งเป็นการ์ดราคาแพงมาก 3dlabs ได้รับการปรับปรุงประสิทธิภาพอย่างมีนัยสำคัญ แต่ด้วยไดรเวอร์ที่มีอยู่มันยังไม่ดีพอที่จะเล่น ไดร์เวอร์ 3dlabs ปัจจุบันบางตัวสำหรับบอร์ดแบบ glint และ permedia สามารถพัง NT เมื่อออกจากการทำงานแบบเต็มหน้าจอดังนั้นฉันจึงไม่แนะนำให้ใช้เกล็นไหวบนฮาร์ดแวร์ของ 3dlabs

3dfx ได้จัดให้มี opengl32.dll ซึ่งใช้ทุกสิ่งที่ต้องการแผ่นดินไหว แต่มันไม่ได้ใช้งานอย่างเต็มรูปแบบของ OpenGL แอปพลิเคชัน OpenGL อื่น ๆ นั้นไม่น่าใช้งานได้ดังนั้นให้พิจารณาโดยทั่วไปว่าเป็น "โปรแกรมควบคุมการเกิดแผ่นดินไหว"

นี่คือการเกิดของไดรเวอร์ miniGL สิ่งเหล่านี้พัฒนาไปสู่การใช้งาน OpenGL แบบเต็มรูปแบบในที่สุดเนื่องจากฮาร์ดแวร์มีประสิทธิภาพเพียงพอที่จะใช้งานฟังก์ชั่น OpenGL ส่วนใหญ่ในฮาร์ดแวร์ nVidia เป็นคนแรกที่เสนอการใช้งาน OpenGL แบบเต็ม ผู้ค้ารายอื่นหลายรายต้องดิ้นรนซึ่งเป็นสาเหตุหนึ่งที่ทำให้นักพัฒนาซอฟต์แวร์ต้องการ Direct3D: พวกเขาสามารถใช้งานร่วมกับฮาร์ดแวร์ได้หลากหลายกว่า ในที่สุดมีเพียง nVidia และ ATI (ตอนนี้ AMD) ยังคงอยู่และทั้งคู่มีการใช้งาน OpenGL ที่ดี

ลำดับสูงสุดของ OpenGL

ดังนั้นขั้นตอนจะถูกตั้งค่า: Direct3D กับ OpenGL มันเป็นเรื่องที่น่าทึ่งจริงๆเมื่อพิจารณาว่า D3D v3 นั้นเลวร้ายเพียงใด

OpenGL Architectural Review Board (ARB) เป็นองค์กรที่รับผิดชอบในการบำรุงรักษา OpenGL พวกเขาออกหมายเลขส่วนขยายดูแลที่เก็บส่วนขยายและสร้าง API รุ่นใหม่ ARB เป็นคณะกรรมการที่ทำจากผู้เล่นในอุตสาหกรรมกราฟิกจำนวนมากรวมถึงผู้ผลิตระบบปฏิบัติการบางราย Apple และ Microsoft ได้เป็นสมาชิกของ ARB หลายครั้ง

3Dfx ออกมาพร้อมกับ Voodoo2 นี่เป็นฮาร์ดแวร์ตัวแรกที่สามารถทำการ multitexturing ได้ซึ่งเป็นสิ่งที่ OpenGL ไม่สามารถทำได้มาก่อน ในขณะที่ 3Dfx นั้นแข็งแกร่งมากเมื่อเทียบกับ OpenGL แต่ NVIDIA ผู้ผลิตชิปกราฟิก multitexturing (TNT1) รุ่นต่อไปก็ชอบมาก ดังนั้น ARB จึงออกส่วนขยาย: GL_ARB_multitexture ซึ่งจะอนุญาตให้เข้าถึงการทำงานหลายอย่าง

ในขณะเดียวกัน Direct3D v5 ก็ออกมา ตอนนี้ D3D ได้กลายเป็นAPI ที่แท้จริงแทนที่จะเป็นอะไรที่แมวอาจอาเจียนขึ้นมา ปัญหา? ไม่มีการทวีคูณ

อุ่ย

ตอนนี้สิ่งนั้นจะไม่เจ็บเกือบเท่าที่ควรเพราะคนไม่ได้ใช้งานหลายอย่าง ไม่ได้โดยตรง การทำงานหลายอย่างที่เจ็บปวดทำให้ประสิทธิภาพลดลงเล็กน้อยและในหลาย ๆ กรณีมันก็ไม่คุ้มค่าเมื่อเทียบกับการผ่านหลายรอบ และแน่นอนว่านักพัฒนาเกมชอบที่จะตรวจสอบให้แน่ใจว่าเกมของพวกเขาทำงานบนฮาร์ดแวร์รุ่นเก่าซึ่งไม่ได้มีการทำมัลติเท็กซ์

D3D จึงได้รับการอภัยโทษ

เวลาผ่านไปและ NVIDIA ใช้ GeForce 256 (ไม่ใช่ GeForce GT-250 ซึ่งเป็น GeForce แรกสุด) ซึ่งเป็นการแข่งขันที่สิ้นสุดในการ์ดกราฟิกในอีกสองปีข้างหน้า จุดขายหลักคือความสามารถในการแปลงยอดและแสง (T&L) ในฮาร์ดแวร์ ไม่เพียงเท่านั้น NVIDIA รัก OpenGL มากจน T&L เอ็นจิ้นของพวกเขาได้อย่างมีประสิทธิภาพคือ OpenGL เกือบตัวอักษร; ดังที่ฉันเข้าใจการลงทะเบียนของพวกเขาบางคนใช้ตัวแจงนับ OpenGL เป็นค่าโดยตรง

Direct3D v6 ออกมาแล้ว หลายรายการในตอนท้าย แต่ ... ไม่มีฮาร์ดแวร์ T&L OpenGL ได้เสมอมี T & L ท่อแม้ว่าก่อนที่ 256 มันถูกนำมาใช้ในซอฟแวร์ ดังนั้นจึงเป็นเรื่องง่ายสำหรับ NVIDIA ที่จะแปลงการใช้งานซอฟต์แวร์เป็นโซลูชันฮาร์ดแวร์ มันจะไม่เป็นจนกว่า D3D v7 จนกระทั่ง D3D ในที่สุดได้รับการสนับสนุนด้านฮาร์ดแวร์ T&L

Dawn of Shaders, Twilight of OpenGL

จากนั้น GeForce 3 ก็ออกมา และหลายสิ่งหลายอย่างเกิดขึ้นในเวลาเดียวกัน

Microsoft ตัดสินใจว่าพวกเขาจะไม่มาสายอีกแล้ว ดังนั้นแทนที่จะดูว่า NVIDIA กำลังทำอะไรอยู่และคัดลอกมันหลังจากข้อเท็จจริงพวกเขาได้รับตำแหน่งที่น่าอัศจรรย์ในการไปหาพวกเขาและพูดคุยกับพวกเขา และจากนั้นพวกเขาตกหลุมรักและมีคอนโซลเล็กน้อยด้วยกัน

การหย่าร้างที่เกิดขึ้นภายหลัง แต่นั่นเป็นอีกครั้ง

สิ่งนี้หมายความว่าสำหรับพีซีคือ GeForce 3 ออกมาพร้อมกันกับ D3D v8 และมันก็ไม่ยากที่จะเห็นว่า GeForce 3 มีอิทธิพลต่อความแตกต่างของ D3D 8 อย่างไร พิกเซลเชดเดอร์ของ Shader Model 1.0 นั้นมีความเฉพาะเจาะจงกับฮาร์ดแวร์ของ NVIDIA ไม่มีความพยายามใด ๆ ในการทำให้ฮาร์ดแวร์ของ NVIDIA เป็นนามธรรม SM 1.0 เป็นเพียงสิ่งที่ GeForce 3 ทำ

เมื่อ ATI เริ่มกระโดดเข้าสู่การแข่งขันกราฟิกการ์ดกับ Radeon 8500 แสดงว่ามีปัญหา ไพพ์ไลน์การประมวลผลพิกเซลของ 8500 นั้นทรงพลังกว่าของ NVIDIA ดังนั้น Microsoft จึงออก Shader Model 1.1 ซึ่งโดยพื้นฐานแล้วก็คือ "สิ่งที่ 8500 ทำ"

นั่นอาจฟังดูเป็นความล้มเหลวในส่วนของ D3D แต่ความล้มเหลวและความสำเร็จเป็นเรื่องขององศา และมหากาพย์ความล้มเหลวก็เกิดขึ้นใน OpenGL-land

NVIDIA ชอบ OpenGL ดังนั้นเมื่อ GeForce 3 ได้รับความนิยม ส่วนขยาย OpenGL ที่เป็นกรรมสิทธิ์ : เฉพาะ NVIDIA เท่านั้น ตามธรรมชาติแล้วเมื่อ 8500 ปรากฏตัวมันก็ไม่สามารถใช้งานได้เลย

ดูอย่างน้อยใน D3D 8 land คุณสามารถรัน SM 1.0 shaders บนฮาร์ดแวร์ ATI แน่นอนว่าคุณต้องเขียนเฉดใหม่เพื่อใช้ประโยชน์จากความเย็นของ 8500 แต่อย่างน้อยโค้ดของคุณก็ใช้งานได้

เพื่อที่จะมีเฉดสีใด ๆใน Radeon 8500 ใน OpenGL ATI ต้องเขียนส่วนขยายของ OpenGL จำนวนหนึ่ง ส่วนขยาย OpenGL ที่เป็นกรรมสิทธิ์ : ATI-only ดังนั้นคุณจึงจำเป็นต้อง codepath NVIDIA และ ATI codepath เพียงที่จะมีเฉดสีที่ทุกคน

ตอนนี้คุณอาจถามว่า "OpenGL ARB อยู่ที่ไหนหน้าที่งานของเขาคือการทำให้ OpenGL เป็นปัจจุบัน" ที่คณะกรรมการหลายแห่งมักจะจบลงด้วยการเป็นคนโง่

เห็นไหมฉันพูดถึง ARB_multitexture ด้านบนเพราะมันคำนึงถึงปัจจัยทั้งหมดนี้ ดูเหมือนว่า ARB (จากมุมมองของคนนอก) เพื่อต้องการหลีกเลี่ยงความคิดที่ว่าจะแตกต่างกันโดยสิ้นเชิง พวกเขาคิดว่าหากพวกเขาตบความสามารถในการกำหนดค่าที่เพียงพอลงในไปป์ไลน์ที่มีฟังก์ชั่นคงที่พวกเขาสามารถเท่ากับความสามารถของไปป์ไลน์ Shader

ดังนั้น ARB จึงปล่อยส่วนขยายหลังจากส่วนขยาย ส่วนขยายทั้งหมดที่มีคำว่า "texture_env" อยู่ในนั้นเป็นอีกความพยายามที่จะแก้ไขการออกแบบที่มีอายุมากนี้ ตรวจสอบรีจิสตรี: ระหว่างส่วนขยาย ARB และ EXT มีส่วนขยายเหล่านี้แปดรายการ หลายคนได้รับการเลื่อนตำแหน่งเป็นรุ่นหลักของ OpenGL

Microsoft เป็นส่วนหนึ่งของ ARB ในเวลานี้ พวกเขาออกไปรอบ ๆ เวลาที่โดน D3D 9 ดังนั้นจึงเป็นไปได้ทั้งหมดที่พวกเขากำลังทำงานเพื่อก่อวินาศกรรม OpenGL ในบางวิธี ฉันเองสงสัยทฤษฎีนี้ด้วยเหตุผลสองประการ หนึ่งพวกเขาต้องได้รับความช่วยเหลือจากสมาชิก ARB คนอื่น ๆ เนื่องจากสมาชิกแต่ละคนได้รับการโหวตเพียงครั้งเดียว และที่สำคัญที่สุดสองข้อคือ ARB ไม่ต้องการความช่วยเหลือจาก Microsoft ในการแก้ไขปัญหา เราจะเห็นหลักฐานเพิ่มเติมว่า

ในที่สุด ARB อาจถูกคุกคามจาก ATI และ NVIDIA (สมาชิกที่ทำงานทั้งสอง) ในที่สุดก็ดึงหัวของพวกเขาออกมานานพอที่จะให้เฉดสีการชุมนุมที่แท้จริง

ต้องการบางสิ่งที่แม้แต่ทำให้งงงวย?

ฮาร์ดแวร์ T&L บางสิ่งบางอย่าง OpenGL มีครั้งแรก มันน่าสนใจ เพื่อให้ได้ประสิทธิภาพสูงสุดที่เป็นไปได้จากฮาร์ดแวร์ T&L คุณต้องจัดเก็บข้อมูลจุดสุดยอดของคุณบน GPU ท้ายที่สุดมันคือ GPU ที่ต้องการใช้ข้อมูลจุดสุดยอดของคุณ

ใน D3D v7 Microsoft ได้นำเสนอแนวคิดของ Vertex Buffers สิ่งเหล่านี้ได้รับการจัดสรรหน่วยความจำ GPU สำหรับการจัดเก็บข้อมูลจุดสุดยอด

ต้องการทราบว่าเมื่อ OpenGL ได้รับสิ่งนี้เทียบเท่าหรือไม่ โอ้ NVIDIA เป็นคนรักทุกสิ่ง OpenGL (ตราบใดที่พวกเขาเป็นส่วนขยายของ NVIDIA ที่เป็นกรรมสิทธิ์) ได้เปิดตัวส่วนขยายช่วงของจุดสุดยอดเมื่อ GeForce 256 ตีครั้งแรก แต่เมื่อไหร่ ARB ตัดสินใจที่จะให้ฟังก์ชั่นที่คล้ายกัน?

สองปีต่อมา นี่คือหลังจากที่พวกเขาได้รับการอนุมัติจุดสุดยอดและส่วนแตก (พิกเซลในภาษา D3D) นั่นคือระยะเวลาที่ ARB ใช้ในการพัฒนาโซลูชันข้ามแพลตฟอร์มสำหรับการจัดเก็บข้อมูลจุดสุดยอดในหน่วยความจำ GPU สิ่งที่ T&L ฮาร์ดแวร์ต้องมีเพื่อให้ได้ประสิทธิภาพสูงสุด

One Language to Ruin พวกเขาทั้งหมด

ดังนั้นสภาพแวดล้อมในการพัฒนาของ OpenGL จึงได้รับการแตกหักเป็นระยะเวลาหนึ่ง ไม่มีฮาร์ดแวร์ข้ามฮาร์ดแวร์ไม่มีจุดสุดยอดการจัดเก็บข้อมูล GPU ข้ามฮาร์ดแวร์ในขณะที่ผู้ใช้ D3D สนุกกับทั้งสองอย่าง มันแย่ลงไหม?

คุณ ... คุณสามารถพูดได้ ใส่3D Labs

พวกเขาเป็นใครคุณอาจถาม? พวกเขาเป็น บริษัท ที่ตายไปซึ่งฉันคิดว่าเป็นฆาตกรตัวจริงของ OpenGL แน่นอนว่าความไม่สมบูรณ์ทั่วไปของ ARB ทำให้ OpenGL มีความเสี่ยงเมื่อเป็นเจ้าของ D3D แต่ 3D Labs อาจเป็นเหตุผลเดียวที่ทำให้ฉันนึกถึงสภาวะตลาดปัจจุบันของ OpenGL พวกเขาทำอะไรได้บ้างเพื่อทำให้เกิดสิ่งนั้น

พวกเขาออกแบบภาษาการแรเงา OpenGL

ดูว่า 3D Labs เป็น บริษัท ที่กำลังจะตาย GPU ที่มีราคาแพงของพวกเขาถูกลดลงเนื่องจากแรงกดดันที่เพิ่มขึ้นของ NVIDIA ในตลาดเวิร์กสเตชัน และแตกต่างจาก NVIDIA ห้องทดลอง 3 มิติไม่ปรากฏตัวในตลาดหลัก ถ้า NVIDIA ชนะพวกเขาก็ตาย

ซึ่งพวกเขาทำ

ดังนั้นในการเสนอราคาเพื่อยังคงมีความเกี่ยวข้องในโลกที่ไม่ต้องการผลิตภัณฑ์ของตน Labs 3D ปรากฏตัวในการประชุม Game Developer Conference เพื่อนำเสนอสิ่งที่พวกเขาเรียกว่า "OpenGL 2.0" นี่จะเป็นการเขียนที่สมบูรณ์แบบตั้งแต่เริ่มต้นของ OpenGL API และนั่นทำให้รู้สึก; มีจำนวนมากของ cruft ใน OpenGL API ของในเวลานั้น (หมายเหตุ: ที่ cruft ยังคงมีอยู่) เพียงแค่ดูว่าการโหลดพื้นผิวและการทำงานมีผลผูกพัน; มันเป็นกึ่ง arcane

ส่วนหนึ่งของข้อเสนอของพวกเขาคือภาษาแรเงา เป็นธรรมชาติ อย่างไรก็ตามแตกต่างจากส่วนขยาย ARB ข้ามแพลตฟอร์มปัจจุบันภาษาการแรเงาของพวกเขาคือ "ระดับสูง" (C เป็นระดับสูงสำหรับภาษาการแรเงาใช่จริง ๆ )

ขณะนี้ Microsoft กำลังทำงานกับภาษาแรเงาระดับสูงของพวกเขาเอง สิ่งที่พวกเขาในจินตนาการรวมของ Microsoft เรียกว่า ... ภาษาระดับสูงการแรเงา (HLSL) แต่ภาษาของพวกเขาแตกต่างกันอย่างมากกับภาษา

ปัญหาที่ใหญ่ที่สุดกับภาษา shader ของ 3D Labs ก็คือมันมีอยู่แล้วในตัว ดู HLSL เป็นภาษาที่ Microsoft กำหนดไว้ พวกเขาเปิดตัวคอมไพเลอร์สำหรับมันและมันสร้างรหัสประกอบ Shader Model 2.0 (หรือรุ่นที่ใหม่กว่า Shader) ซึ่งคุณจะป้อนลงใน D3D ใน D3D v9 วัน HLSL ไม่เคยสัมผัสโดยตรงกับ D3D มันเป็นนามธรรมที่ดี แต่มันก็เป็นทางเลือกที่หมดจด และนักพัฒนามักจะมีโอกาสได้คอมไพล์เลอร์และปรับแต่งเอาต์พุตเพื่อประสิทธิภาพสูงสุด

ภาษา Labs 3D ไม่มีสิ่งนั้น คุณให้ภาษาที่เหมือน C กับคนขับและทำให้เกิด shader ตอนจบของเรื่อง. ไม่ใช่ shader ของแอสเซมบลีไม่ใช่สิ่งที่คุณป้อนอย่างอื่น วัตถุ OpenGL จริงที่เป็นตัวแทนของ shader

สิ่งนี้หมายความว่าผู้ใช้ OpenGL ได้เปิดรับความหลากหลายของนักพัฒนาที่เพิ่งได้รับการรวบรวมภาษาเหมือนการชุมนุม ข้อบกพร่องของคอมไพเลอร์วิ่งอาละวาดใน OpenGL Shading Language (GLSL) ที่ตั้งชื่อใหม่ ยิ่งไปกว่านั้นถ้าคุณจัดการให้ shader รวบรวมบนหลาย ๆ แพลตฟอร์มได้อย่างถูกต้อง (ไม่มีความหมายใด ๆ ) คุณก็ยังต้องเจอกับเครื่องมือเพิ่มประสิทธิภาพประจำวัน ซึ่งไม่ดีเท่าที่ควร

ในขณะที่เป็นข้อบกพร่องที่ใหญ่ที่สุดใน GLSL มันไม่ใช่ข้อบกพร่องเพียงอย่างเดียว โดยให้ห่างไกล

ใน D3D และในภาษาแอสเซมบลีที่เก่ากว่าใน OpenGL คุณสามารถผสมและจับคู่เฉดสียอดและพิกเซล (พิกเซล) ตราบใดที่พวกเขาสื่อสารกับอินเทอร์เฟซเดียวกันคุณสามารถใช้จุดสุดยอดใด ๆ กับส่วนที่เข้ากันได้ และมีระดับความไม่ลงรอยกันที่พวกเขาสามารถยอมรับได้ จุดสุดยอด shader สามารถเขียนผลลัพธ์ที่ shader ส่วนไม่ได้อ่าน และอื่น ๆ

GLSL ไม่มีสิ่งใดในนั้น จุดสุดยอดและชิ้นส่วนต่าง ๆ ถูกหลอมรวมเข้าด้วยกันในสิ่งที่ Labs 3D เรียกว่า "โปรแกรมวัตถุ" ดังนั้นหากคุณต้องการแบ่งปันโปรแกรมจุดสุดยอดและชิ้นส่วนคุณต้องสร้างวัตถุโปรแกรมหลายรายการ และสิ่งนี้ทำให้เกิดปัญหาใหญ่เป็นอันดับสอง

เห็นไหม Labs 3D คิดว่าพวกเขาฉลาด พวกเขาใช้รูปแบบการรวบรวมของ GLSL บน C / C ++ คุณใช้. c หรือ. cpp และคอมไพล์มันเป็นไฟล์วัตถุ จากนั้นคุณนำไฟล์ออบเจ็กต์หนึ่งไฟล์ขึ้นไปและลิงก์ไปยังโปรแกรม นั่นคือวิธีที่ GLSL รวบรวม: คุณรวบรวม shader (จุดสุดยอดหรือชิ้นส่วน) ลงในวัตถุ shader จากนั้นคุณวางวัตถุ shader เหล่านั้นในวัตถุโปรแกรมแล้วเชื่อมโยงเข้าด้วยกันเพื่อสร้างโปรแกรมจริงของคุณ

ขณะนี้ไม่ได้ช่วยให้ความคิดเย็นที่อาจเกิดขึ้นเหมือนมี "ห้องสมุด" ให้เฉดสีที่มีรหัสพิเศษที่ให้เฉดสีหลักจะเรียกสิ่งที่มันมีความหมายในทางปฏิบัติก็คือว่า shaders ถูกรวบรวมเป็นครั้งที่สอง หนึ่งครั้งในขั้นตอนการรวบรวมและอีกครั้งในระยะเชื่อมโยง โดยเฉพาะอย่างยิ่งคอมไพเลอร์ของ NVIDIA นั้นเป็นที่รู้จักกันดีในเรื่องของการรันคอมไพล์สองครั้ง มันไม่ได้สร้างตัวกลางรหัสวัตถุบางอย่าง มันรวบรวมเพียงครั้งเดียวและทิ้งคำตอบแล้วรวบรวมอีกครั้งในเวลาลิงค์

ดังนั้นแม้ว่าคุณต้องการที่จะเชื่อมโยง Shader ของคุณกับ Shader ที่แตกต่างกันสองชิ้นคุณต้องรวบรวมมากกว่าใน D3D โดยเฉพาะอย่างยิ่งเมื่อการคอมไพล์ของภาษาที่เหมือน C เสร็จสิ้นแบบออฟไลน์ไม่ใช่ที่จุดเริ่มต้นของการดำเนินการของโปรแกรม

มีปัญหาอื่น ๆ เกี่ยวกับ GLSL อาจเป็นเรื่องผิดที่จะกล่าวโทษผู้ใช้ในห้องทดลอง 3 มิติเนื่องจาก ARB ได้อนุมัติและรวมภาษาไว้ในที่สุด (แต่ไม่มีสิ่งอื่นใดในการริเริ่ม "OpenGL 2.0") แต่มันเป็นความคิดของพวกเขา

และนี่คือส่วนที่น่าเศร้าจริงๆ: 3D Labs นั้นถูกต้อง (ส่วนใหญ่) GLSL ไม่ใช่ภาษาเงาแบบเวกเตอร์ตามวิธีที่ HLSL ใช้ในขณะนั้น นี่เป็นเพราะฮาร์ดแวร์ของ 3D Labs เป็นฮาร์ดแวร์แบบสเกลาร์ (คล้ายกับฮาร์ดแวร์ NVIDIA รุ่นใหม่) แต่ท้ายที่สุดแล้วพวกเขาก็ถูกต้องในทิศทางที่ผู้ผลิตฮาร์ดแวร์หลายรายใช้ฮาร์ดแวร์ของพวกเขา

พวกเขาถูกต้องด้วยโมเดลออนไลน์คอมไพล์สำหรับภาษา "ระดับสูง" D3D ยังเปลี่ยนไปใช้สิ่งนั้นในที่สุด

ปัญหาก็คือ 3D Labs มีสิทธิ์ที่ผิดเวลา และในความพยายามที่จะเรียกอนาคตเร็วเกินไปในการพยายามที่จะเป็นหลักฐานในอนาคตพวกเขาโยนกันในปัจจุบัน ดูเหมือนว่า OpenGL จะมีความเป็นไปได้ในการทำงานของ T&L เสมอ ยกเว้นว่าท่อส่ง T&L ของ OpenGL ยังคงมีประโยชน์ก่อนฮาร์ดแวร์ T&L ในขณะที่ GLSL เป็นหนี้สินก่อนที่โลกจะทัน

GLSL เป็นภาษาที่ดีในขณะนี้ แต่สำหรับเวลา มันช่างน่ากลัว และ OpenGL ทนทุกข์กับมัน

ตกลงสู่ Apotheosis

ในขณะที่ฉันยืนยันว่าห้องทดลอง 3 มิติได้รับผลกระทบอย่างรุนแรง แต่เป็น ARB ที่จะตอกตะปูสุดท้ายในโลงศพ

นี่คือเรื่องราวที่คุณอาจเคยได้ยิน เมื่อถึงเวลาของ OpenGL 2.1 แสดงว่า OpenGL ประสบปัญหา มันมีจำนวนมากของ cruft มรดก API ไม่ใช่เรื่องง่ายที่จะใช้อีกต่อไป มี 5 วิธีในการทำสิ่งต่าง ๆ และไม่มีความคิดใดที่เร็วที่สุด คุณสามารถ "เรียนรู้" OpenGL ด้วยบทช่วยสอนง่าย ๆ แต่คุณไม่ได้เรียนรู้ OpenGL API ที่ให้ประสิทธิภาพที่แท้จริงและพลังกราฟิก

ดังนั้น ARB จึงตัดสินใจลองคิดค้น OpenGL อีกครั้ง สิ่งนี้คล้ายกับ "OpenGL 2.0" ของ 3D Labs แต่ดีกว่าเพราะ ARB อยู่ด้านหลัง พวกเขาเรียกมันว่า "Longs Peak"

อะไรคือสิ่งที่ไม่ดีเกี่ยวกับการใช้เวลาในการปรับปรุง API สิ่งนี้ไม่ดีเพราะ Microsoft ปล่อยให้ตัวเองอ่อนแอ ดูนี่เป็นช่วงเวลาที่การเปลี่ยนแปลง Vista

ด้วย Vista ทำให้ Microsoft ตัดสินใจที่จะทำการเปลี่ยนแปลงที่จำเป็นในไดรเวอร์การแสดงผล พวกเขาบังคับให้ไดรเวอร์ส่งไปยังระบบปฏิบัติการสำหรับการจำลองเสมือนหน่วยความจำกราฟิกและสิ่งอื่น ๆ

ในขณะที่เราสามารถถกเถียงข้อดีของสิ่งนี้หรือว่าเป็นไปได้จริงความจริงยังคงเป็นเช่นนี้: Microsoft ถือว่า D3D 10 เป็น Vista (และสูงกว่า) เท่านั้น แม้ว่าคุณจะมีฮาร์ดแวร์ที่สามารถใช้ D3D 10 ได้ แต่คุณไม่สามารถเรียกใช้แอปพลิเคชัน D3D 10 ได้หากไม่ได้ใช้งาน Vista

คุณอาจจำได้ว่า Vista ... อืมสมมติว่ามันใช้ไม่ได้ผล ดังนั้นคุณมีระบบปฏิบัติการที่มีประสิทธิภาพต่ำ API ใหม่ที่รันบนระบบปฏิบัติการนั้นเท่านั้นและฮาร์ดแวร์รุ่นใหม่ที่จำเป็นต้องใช้ API และ OS นั้นในการทำสิ่งใด ๆ ได้เร็วกว่ารุ่นก่อน ๆ

อย่างไรก็ตามนักพัฒนาสามารถเข้าถึงคุณลักษณะระดับ 10 D3D ผ่าน OpenGL พวกเขาทำได้ถ้า ARB ไม่ได้ยุ่งกับ Longs Peak

โดยทั่วไป ARB ใช้เวลาหนึ่งปีครึ่งในการทำงานที่ดีเพื่อให้ API นั้นดีขึ้น เมื่อถึงเวลาที่ OpenGL 3.0 ออกมาจริงการใช้ Vista ก็เพิ่มขึ้น Win7 อยู่ใกล้ ๆ กับการวาง Vista ไว้เบื้องหลังและนักพัฒนาเกมส่วนใหญ่ไม่สนใจคุณสมบัติของคลาส D3D-10 ท้ายที่สุดแล้วฮาร์ดแวร์ D3D 10 ก็สามารถรันแอพพลิเคชั่น D3D 9 ได้ และด้วยพอร์ต PC-to-console ที่เพิ่มขึ้น (หรือนักพัฒนาพีซีกระโดดมาสู่การพัฒนาคอนโซลเลือกของคุณ) นักพัฒนาไม่ต้องการคุณสมบัติระดับ D3D 10

ตอนนี้หากนักพัฒนามีการเข้าถึงคุณสมบัติเหล่านั้นก่อนหน้านี้ผ่านทาง OpenGL บนเครื่อง WinXP การพัฒนา OpenGL อาจได้รับการยิงที่จำเป็นมากในแขน แต่ ARB พลาดโอกาส และคุณต้องการที่จะรู้ว่าส่วนที่เลวร้ายที่สุด?

แม้จะใช้เวลาสองปีอันมีค่าพยายามที่จะสร้าง API ใหม่ตั้งแต่เริ่มต้น ... พวกเขายังคงล้มเหลวและเพิ่งเปลี่ยนกลับไปเป็นสถานะเดิม (ยกเว้นกลไกการคัดค้าน)

ดังนั้น ARB จึงไม่เพียง แต่พลาดโอกาสสำคัญเท่านั้น แต่พวกเขาไม่ได้ทำงานที่ทำให้พวกเขาพลาดโอกาสนั้น มหากาพย์ที่สวยมากล้มเหลวทุกรอบ

และนั่นคือเรื่องราวของ OpenGL กับ Direct3D เรื่องราวของโอกาสที่ไม่ได้รับความโง่เขลาขั้นต้นตาบอดโดยเจตนาและความโง่เขลาง่าย


24
คุณมีสิ่งนี้เขียนขึ้นที่ไหนสักแห่งหรือคุณเขียนถ้าออกจากหัวของคุณ?
Kristofer Hoch

38
@ Kristofer: ฉันไม่รู้ว่าคุณสามารถเรียกมันว่า "ปิดหัวของคุณ" สำหรับสิ่งที่ใช้เวลาประมาณหนึ่งชั่วโมงหรือมากกว่านั้นในการเขียน แต่ฉันไม่ได้เขียนมันที่ไหนสักแห่ง
Nicol Bolas

18
@ F.Aquino: ดังนั้นคุณยินดีที่จะให้ข้อมูลนี้กับระบบการเรนเดอร์ที่เกม FPS ใช้แทนที่จะเป็นเอ็นจิ้นเอง? แม้ว่า CS จะยึดตาม Half-Life 1 ซึ่งมาจาก Quake หรือไม่ ขออภัย; ไม่ซื้อ จริงอยู่ที่ฉันไม่ได้ซื้อหลักฐานที่ว่า FPSs ใหม่ไม่มีศักยภาพของ e-sport แม้ว่าจะมีการแข่งขัน e-sports จำนวนมากที่มีศูนย์กลางที่ FPS ที่ใหม่กว่า พวกเขาอาจไม่ได้ดึงดูดสิ่งเดียวกับที่ CS ทำกับผู้เล่นบางคน แต่อย่าทำผิดที่คิดว่าผู้เล่นเหล่านั้นประกอบไปด้วย FPS e-sports ทั้งหมด
Nicol Bolas

165
ว้าว. ฉันไม่สนใจเกี่ยวกับเรื่องนี้มากนักและมันก็ยังเป็นการอ่านที่ยอดเยี่ยม!
Peter Rowell

12
Which they, in all of Microsoft's collective imagination, called... the High Level Shading Language (HLSL).LOLled นานกว่า 6 นาทีที่นี้
ApprenticeHacker

133

ฉันพบว่ามันแปลกที่ทุกคนมุ่งเน้นไปที่ฐานผู้ใช้เมื่อคำถามคือ 'นักพัฒนาเกม' ไม่ใช่ 'ผู้แก้ไขเกม'

สำหรับฉันในฐานะนักพัฒนาลีนุกซ์เป็นโรคเลือด มีหลายเวอร์ชันผู้จัดการเดสก์ท็อปชุดคิท UI และอื่น ๆ ... ถ้าฉันไม่ต้องการกระจายงานของฉันเป็นโอเพ่นซอร์สซึ่งผู้ใช้สามารถ (ลอง) คอมไพล์ใหม่เพื่อให้เหมาะกับแพคเกจห้องสมุดและ การตั้งค่ามันเป็นฝันร้าย !

ในทางกลับกัน Microsoft ก็มอบความเข้ากันได้แบบย้อนหลังและความเสถียรของแพลตฟอร์ม (ส่วนใหญ่) เป็นไปได้ที่จะกำหนดเป้าหมายเครื่องทั้งหมดด้วยตัวติดตั้งแบบปิดแหล่งเดียวเช่นคอมพิวเตอร์ที่ใช้ Windows XP, Vista และ 7, 32 และ 64 บิตรสชาติโดยไม่ต้องติดตั้ง DX หรือ VC redistributables ที่เหมาะสม ฯลฯ ...

สิ่งสุดท้ายสิ่งหนึ่งกรุณาทุกคนบนอินเทอร์เน็ตหยุดเมื่อเปรียบเทียบกับ OpenGL และ DIRECTX! ทั้งเปรียบเทียบ Direct3D VS OpenGL หรือไม่ทำเช่นนี้ DirectX ให้การสนับสนุนอินพุตการสนับสนุนด้านเสียงการเล่นภาพยนตร์และอื่น ๆ ที่ OpenGL ไม่รองรับ


40
"สำหรับฉันในฐานะนักพัฒนา Linux เป็นสิ่งที่ทำให้เลือดไหล" แน่นอน! ฉันทำงานในสภาพแวดล้อมกับ Fedora และ Ubuntu เรามีปัญหาแม้ระหว่างสองคนนั้น (ฉันต้องเพิ่มฉันเป็นแฟนบอยของ Linux)
David Poole

48
@ jv42: ดูเหมือนว่ามีความเข้าใจผิดที่พบบ่อย: เกือบทุกเวอร์ชันและผู้จัดการเดสก์ท็อปและชุดคิท UI ฯลฯ แทบไม่เกี่ยวข้องเลยที่จะทำให้เกมทำงานได้ หากเกมของคุณ (ตามที่จัดส่ง) ขึ้นอยู่กับมากกว่า libGL, libX11 และ libasound (หรือ libopenal หรือ libao หรือ liboss) แสดงว่าคุณกำลังทำอะไรผิด
greyfade

19
@greyfade "หากเกมของคุณ (ตามที่จัดส่ง) ขึ้นอยู่กับมากกว่า libGL, libX11 และ libasound (หรือ libopenal หรือ libao หรือ liboss) คุณกำลังทำอะไรผิดไป" - จากนั้นคุณเชื่อมโยงไปยัง libao-0.0.4alpha และผู้ใช้ของคุณมี libao-0.0.5beta และไม่มีอะไรทำงาน
quant_dev

17
บรรจุไบนารีเพื่อให้มันรันบนลีนุกซ์ดิสทริบิวชันทั้งหมดนั้นไม่ยาก Heck ผู้พัฒนา Blender ทำได้ด้วยการเปิดตัวแต่ละครั้ง มีแพ็คเกจปล่อยลินุกซ์เพียงหนึ่งเดียว (ดีสอง, 32 บิตและ 64 บิต) ของ Blender
datenwolf

8
ผู้ใช้ Linux จ่ายเงินมากขึ้นสำหรับเกม ดู: koonsolo.com/news/linux-users-show-their-love-for-indie-gameและ2dboy.com/2009/10/26/pay-what-you-want-birthday-sale-wrap-up
Alexander

88

เป็นเพราะมีผู้ใช้ Windows บนโลกมากกว่า Linux และ Mac ความจริงก็คือผู้คนทำสิ่งต่าง ๆ ที่มีตลาดที่ใหญ่ที่สุด
สิ่งเดียวกันกับโทรศัพท์มือถือ: Android และ iPhone มีเกมที่ยอดเยี่ยม แต่ Windows Mobile และ Symbian ไม่มี ...


24
@Mahmoud Hossam: นั่นไม่เป็นความจริง การใช้ OpenGL ไม่ได้หมายความว่าแอปพลิเคชันของคุณทั้งหมดจะทำงานได้อย่างน่าอัศจรรย์ภายใต้สภาพแวดล้อมแบบ * nix หมายความว่าเอ็นจิ้นกราฟิกจะทำหน้าที่ (และถึงกระนั้นก็ไม่ได้หมายความว่าไม่มี Windows ในตัว มีอยู่บน Linux และในทางกลับกัน) นั่นไม่ใช่ตะกร้าทั้งหมดและมีค่าใช้จ่ายในการบำรุงรักษาโค้ดของพวกเขาสำหรับหลายแพลตฟอร์มอย่างแน่นอน
Ed S.

5
@Mahmoud: แน่นอน และถ้าคุณไม่อยากจะย้ายไปที่ Linux / Mac OS ล่ะก็ทำไมไม่ลองใช้ไลบรารี่ธรรมดาล่ะ? DirectX จะมากได้รับการสนับสนุนที่ดีกว่าบน Windows กว่า OpenGL เป็น
Dean Harding

10
@Mahmoud: หลักฐานทั้งหมดของคำถามคือ "ทำไมนักพัฒนาจึงชอบ Windows" คำตอบ: เพราะนั่นคือสิ่งที่นักเล่นเกมใช้ ไม่มีจุดที่จะย้ายไปยัง Linux / Mac หากตลาดของคุณมีมูลค่าเพียง 2% เท่านั้นและในกรณีนี้ไม่มีจุดที่ใช้ OpenGL หากคุณไม่ต้องการพอร์ต
Dean Harding

4
@Mahmoud ไม่ใช่หน้าที่ของผู้พัฒนาเกมในการให้ผู้คนเปลี่ยนมาใช้ Linux
GrandmasterB

6
@ ผู้เล่น John of World of Warcraft กว่า 10 ล้านคนอยากจะพูดอะไรกับคุณ และนี่เป็นเพียงหนึ่งเกม
Marcelo

50

เนื่องจาก Windows มีส่วนแบ่งการตลาดมากกว่า 90% และ Linux (เนื่องจากคุณถามเฉพาะเกี่ยวกับ Linux) มีชื่อเสียงว่ามีผู้ใช้จำนวนมากที่ไม่ต้องการจ่ายค่าซอฟต์แวร์ ไม่ว่าจะจริงหรือไม่จริงก็ตาม การรับรู้อยู่ที่นั่นและมันมีอิทธิพลต่อการตัดสินใจของผู้คน


1
หากนักพัฒนาใช้ OpenGL มันจะรองรับทั้ง Windows และ linux ดังนั้นจึงเป็นข้อได้เปรียบทางการตลาดเพื่อดึงดูดผู้ใช้ Linux ที่ยินดีจ่ายและใช้ Linux เพราะพวกเขาเชื่อว่าดีกว่า
M.Sameer

9
แม้แต่การใช้ OpenGL ก็ยังมีค่าใช้จ่ายในการพัฒนาและทดสอบข้ามแพลตฟอร์มซึ่งตลาด Linux ไม่ได้พิสูจน์ Directx ยังเป็นแพลตฟอร์มที่ดีกว่าสำหรับเกม PC ในขณะที่ OpenGL ซึ่งมีเกมใหม่ ๆ อยู่บนพีซีที่สร้างบน OpenGL
Martin Beckett

25
ข้ามแพลตฟอร์มไม่ตรงไปตรงมาเป็น "รหัสเพียงสำหรับ OpenGL"
ระบบ Down

13
ไม่เป็นความจริงเลยที่ผู้ใช้ Linux จะไม่จ่ายค่าซอฟต์แวร์ The Humble Indie Bundle (กลุ่มของเกมที่คุณสามารถรับได้ตามจำนวนเงินที่คุณต้องการจ่าย) ได้ถูกดำเนินการสองครั้งในขณะนี้และทุกครั้งที่มันแสดงให้เห็นว่าผู้ใช้ Linux จ่ายมากกว่าผู้ใช้ Windows สำหรับกลุ่ม
Htbaa

9
@Htbaa แน่นอนว่าพวกเขาจ่ายมากกว่าพวกเขาหมดหวังอาจเป็นเกมเดียวที่พวกเขาเล่นบนระบบปฏิบัติการ
Marcelo

11

เนื่องจาก Windows มีการสนับสนุนจากองค์กรขนาดใหญ่ที่มากขึ้นกว่าทศวรรษที่ผ่านมาตัดสินใจที่พวกเขาต้องการพัฒนาเกมที่จะเกิดขึ้นบนเวทีของพวกเขา

สิ่งนี้ไม่เป็นความจริงสำหรับ Mac และตอนนี้ไม่เป็นความจริง ไม่แม้แต่สำหรับ iOS Apple ไม่มีเครื่องมือสำหรับการพัฒนาเกม iOS แต่มันเป็นตลาดขนาดใหญ่ (มีไอโฟนมากกว่าที่นั่นมีพีซีในปี 1995) ที่มีการแข่งขันค่อนข้างน้อยดังนั้นผู้คนก็ทำมันได้

สำหรับลีนุกซ์นั้นไม่มีแม้แต่สถาบันกลางที่สามารถจัดลำดับความสำคัญได้ ทิศทางที่ลินุกซ์กำลังดำเนินอยู่นั้นถูกกำหนดโดยโปรแกรมเมอร์ที่ดีมาก ๆ แต่ไม่ค่อยดีเท่าที่ควร

ในการสร้างเกมพีซีในปัจจุบันคุณต้องมีศิลปิน 2d / 3d นักออกแบบเกมผู้เขียนบทนักทดสอบและสิ่งอื่น ๆ มากมาย สำหรับการเขียนโปรแกรมจริงคุณอาจใช้โปรแกรมเกมจริง (CryEngine, Unreal Engine, Quake Engine, Source Engine) ดังนั้นคุณอาจทำสิ่งทั้งหมดได้โดยไม่ต้องมีโปรแกรมเมอร์จริง

ด้วยเหตุนี้และเนื่องจากลักษณะของธุรกิจโปรแกรมเมอร์จึงไม่ค่อยพูดในสิ่งที่เลือกแพลตฟอร์ม และโดยทั่วไปแล้วผู้จัดการจะมองหาความช่วยเหลือซึ่งเป็นสิ่งที่ Microsoft อ้างเพื่อเสนอและจัดการกับสิ่งต่าง ๆ ที่ยึดครองความคิดของพวกเขาซึ่งโอเพนซอร์สนั้นไม่ใช่

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


2
"ดังนั้นคุณอาจทำสิ่งทั้งหมดได้โดยไม่ต้องมีโปรแกรมเมอร์จริง ๆ " คุณลืมคำถากถาง
Allon Guralnek

@AllonGuralnek: ไม่มีการเสียดสีที่นั่น ในการพัฒนาเกมคลาสสิกของเกมใหญ่โปรแกรมเมอร์จะสร้างเอ็นจิ้นและเครื่องมือเพื่อให้เนื้อหาและพฤติกรรม (ผ่านโปรแกรมแก้ไขภาพหรือสคริปต์จริง) จากนั้นผู้ออกแบบเกม / ระดับ / ภารกิจจะใช้วิธีการเหล่านั้น หากคุณซื้อเครื่องมือที่ใช้งานได้และมีประสิทธิภาพเพียงพอคุณสามารถตัดขั้นตอนที่หนึ่งได้
back2dos

2
คุณมีตัวอย่างเฉพาะของเกมที่มีชื่อเสียงที่สร้างขึ้นโดยไม่ต้องเขียนโค้ดบรรทัดเดียวหรือไม่?
Allon Guralnek

1
@AllonGuralnek: ผมไม่ได้พูดใครจะสร้างเกมโดยไม่ต้องรหัสแต่ไม่มีโปรแกรมเมอร์ คุณไม่จำเป็นต้องเป็นโปรแกรมเมอร์เพื่อสร้าง mod ที่เปลี่ยนแปลงเกมทั้งหมด DotAเป็นสิ่งที่ได้รับความนิยมมากที่สุดที่ฉันนึกได้
back2dos

1
@AllonGuralnek: ไม่ผู้ที่เขียนรหัสคือคนที่เขียนรหัส ผู้ออกแบบเลเวลจะต้องมีความเข้าใจในการเขียนสคริปต์ โปรแกรมเมอร์จำนวนมากมักต้องมีทักษะการจัดการในระดับหนึ่ง มันไม่ได้ทำให้คนแรกเป็นโปรแกรมเมอร์หรือคนที่สองเป็นผู้จัดการ การประเมิน DotA ของคุณนั้นผิดด้วย ประการแรกมันเปลี่ยนเกมทั้งหมดเปลี่ยน RTS ให้เป็นแนวใหม่และประการที่สองถือเป็นเกมที่แยกจากลีก eSports จำนวนมากรวมถึง ESWC
back2dos

10

อย่างที่บางคนบอกไปแล้วส่วนที่สำคัญที่สุดคือฐานผู้ใช้ 95% ของผู้ใช้พีซีใช้ Windows นักเล่นเกมพีซีใช้ Windows เกือบเฉพาะ แม้แต่คนที่ใช้ Mac หรือ Linux ส่วนใหญ่ก็มักจะเรียกใช้เกม Windows ผ่านการจำลองเสมือนหรือการจำลอง (มีข้อยกเว้นน้อยมาก)

แต่ข้อมูลประชากรไม่ใช่ทุกอย่าง ฉันจะไม่ดูถูกดูแคลนส่วนที่ Microsoft กำลังทำเพื่อทำให้แพลตฟอร์มน่าสนใจยิ่งขึ้นสำหรับนักพัฒนาเกม โดยทั่วไปคุณจะได้รับอย่างเต็มที่ให้ความสำคัญชุดของเครื่องมือฟรีที่สำคัญที่สุดXNA Game Studio สิ่งนี้ช่วยให้ไม่เพียง แต่การพัฒนาสำหรับ Windows แต่ยังสำหรับXbox360ด้วย และด้วยรุ่นล่าสุดแม้สำหรับโทรศัพท์ WP7 เห็นได้ชัดว่าเป็นเครื่องมือของ Microsoft จึงใช้ DirectX ไม่ใช่ OpenGL


3
หมายเหตุสำหรับผู้อ่านที่เดินทางข้ามเวลา: ณ เดือนเมษายน 2014 XNA จะตายอย่างเป็นทางการ รุ่นล่าสุด (4.0) ได้รับการเผยแพร่ในปี 2010 และจะไม่เห็นเวอร์ชั่นใหม่ระหว่างนี้ (2013) และพระอาทิตย์ตก
Aren

1
หมายเหตุอีกประการหนึ่งสำหรับผู้อ่านที่เดินทางข้ามเวลา: การพัฒนา Windows 8 (และสูงกว่า) จะไม่เปิดให้ใช้ฟรีในอนาคต
fouric

6

Ewwww ฉันทำไม่ได้ ฉันใช้ลีนุกซ์เกือบเฉพาะ ฉันบูทสองครั้งเป็น Windows เพื่อสร้าง Windows และใช้ Mac สำหรับ Mac ที่สร้าง แต่นั่นก็คือ

เคล็ดลับเป็นกรอบข้ามแพลตฟอร์มที่เราพัฒนาขึ้นในช่วงหลายปีที่ผ่านมา เกมของเราถูกสร้างขึ้นมาจากสิ่งนั้นและประพฤติตนเหมือนกันใน Linux / OpenGL, Mac / OpenGL และ Windows / Direct3D (และในไม่ช้าใน iOS / OpenGL)

บริษัท ของฉันไม่ยอมรับชื่อ AAA ดังนั้นจึงอาจไม่มีผลกับเกมเหล่านี้ แต่เราสร้างเกมแคชชวลชั้นนำ (ดูเว็บไซต์ - CSI: NY, Murder She Wrote และ 2011s สองรายการที่กำลังจะถึงนี้คือตัวอย่างของหนังสือที่มีลิขสิทธิ์ที่สำคัญ คดีที่สูญหายของ Sherlock Holmes 1 และ 2 ก็ประสบความสำเร็จเช่นกัน)

ฉันจะไม่ยอมแพ้ gedit + gcc + gdb + valgrind สำหรับสิ่งอื่น


3
gedit underrated สำหรับการเขียนโปรแกรม
อเล็กซานเด

2
@ อเล็กซานเดอร์ผู้ที่ยังไม่บรรลุนิติภาวะไม่ได้อธิบายแม้แต่คำ
Shahbaz

3
ขอโทษทีฉันยอมแพ้ gedit ในที่สุด ตอนนี้ฉันใช้ gvim และฉันมีความสุขมาก :)
ggambett

4
  1. ความเฉื่อย หากคุณเคยใช้ Windows มาก่อนการเปลี่ยนไปใช้สิ่งอื่นเป็นเรื่องยุ่งยาก หากคุณใช้ Windows DirectX ง่ายกว่าและมีแนวโน้มที่จะทำงานได้ดีกว่า OpenGL
  2. ส่วนแบ่งการตลาด. ส่วนแบ่งการตลาดของ Windows บนเดสก์ท็อปนั้นใหญ่กว่าของ OS X ซึ่งในทางกลับกันนั้นใหญ่กว่าของ Linux พูดถึงเงิน
  3. ยี่ห้อ. DirectX เป็นที่รู้จักกันดีกว่าสิ่งต่าง ๆ เช่น SDL (ซึ่งเป็นประเภทของสิ่งที่คุณจะต้องทำซ้ำคุณลักษณะบางอย่างของ DirectX ที่เหนือกว่า OpenGL)
  4. ความสับสนน้อยลง Linux ของผู้ใช้จะรองรับ OpenGL 1.4 หรือ OpenGL 2+ เท่านั้นหรือไม่ คุณสามารถใช้บทช่วยสอน OpenGL 2.0 เช่นคำนำของ OpenGL สมัยใหม่ได้หรือไม่ บทที่ 1: ท่อกราฟิกบน Linux เวอร์ชันของคุณหรือไม่

ทุกวันนี้ลีนุกซ์มีความเป็นคูรีมากกว่าเมื่อพูดถึงการพัฒนาเกมและนักพัฒนาส่วนใหญ่น่าจะดีกว่าที่จะทำเวอร์ชั่น OS X พอร์ตก่อนหน้าลีนุกซ์รุ่นลีนุกซ์ (ดูสิ่งต่างๆเช่น Steam) ถึงแม้ตลาดคอนโซลมีค่ามากกว่าแพลตฟอร์มทั้งสองนี้รวมกันสำหรับเกม ...

หากคุณต้องการโมโนแพลตฟอร์ม DirectX ก็ใช้ได้ หากคุณต้องการเป็นแพลตฟอร์มข้ามมีโอกาสที่ดีที่คุณจะต้องไปกับ OpenGL อย่างน้อยบางแพลตฟอร์มอื่น ๆ


2
คำตอบสำหรับคำถาม 4 คือ: 2+ Mesa3D รองรับ OpenGL 2.1 ซึ่งหมายความว่าไดรเวอร์กราฟิกทั้งหมดสำหรับฮาร์ดแวร์ 3D สำหรับ X11 รองรับ OpenGL 2.1 อย่างน้อยตั้งแต่ Mesa เวอร์ชัน 6.8 ซึ่งครอบคลุม Linux distros ทั้งหมดที่วางจำหน่ายในสองสามปีที่ผ่านมาและไดร์เวอร์ไบนารีที่ NVIDIA และ AMD จัดส่งรองรับ 3.0 ขึ้นไป สิ่งนี้ไม่รวมผู้ใช้ intel895 แต่พวกเขาเลิกใช้แล้ว
greyfade

1
ฉันกลัวว่านี่ไม่ใช่กรณี คอมพิวเตอร์ที่มีชิปเซ็ต i915 / i945 (GMA 900/950) (ยัง) มีการจำหน่ายและไม่ได้รับการคัดค้าน แม้ในการแจกแจงที่ทันสมัยจากไม่กี่เดือนที่ผ่านมา (Ubuntu 11.04 / Fedora 15) glxinfo จะส่งคืนเวอร์ชัน OpenGL ไม่สูงกว่า 1.4 (Mesa 7.11-devel) ฮาร์ดแวร์ของ Intel ดังกล่าวไม่สามารถทำรุ่นที่ใหม่กว่าได้โดยไม่ต้องใช้ซอฟต์แวร์ช่วยจนกว่าจะมี softpipe โดยค่าเริ่มต้น Linux บนการ์ดดังกล่าวจะไม่ทำ OpenGL เวอร์ชันที่สูงกว่า การกำหนดเป้าหมาย OpenGL 2.0 (หรือสูงกว่า) จะหยุดโปรแกรมที่รันบนระบบเดสก์ท็อป Linux ที่หลากหลาย ...
Anon

ถึงอย่างนั้นฉันก็ไม่เห็นความกังวล ชิปเซ็ตเดียวกันนั้นมีข้อ จำกัด ใน Windows ดังนั้นเกมที่มีกราฟิกหนักส่วนใหญ่จะไม่เป็นเช่นนั้น
greyfade

4

คำตอบนั้นชัดเจน วัตถุประสงค์ของการเขียนเกมคือการทำเงิน ผู้ใช้ปลายทางมากขึ้นที่ใช้ Windows ดังนั้นจึงมีตลาดที่ใหญ่กว่าและคุณคาดว่าจะสร้างรายได้จากเกม Windows มากกว่าเกม Linux มันง่ายมาก

หากคุณเคยถามตัวเองว่า 'ทำไมคนอื่นทำ ... ' เพียงจำไว้ว่าเงินทำให้โลกหมุนไป


1
ใช่ แต่คุณสามารถสร้างเกมข้ามแพลตฟอร์มและรับมากกว่าผู้ใช้ windows;)
M.Sameer

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

4

เครื่องมือเครื่องมือเครื่องมือ

นั่นคือสิ่งที่มันลงมา พัฒนาบน Windows และคุณจะได้รับเครื่องมือพัฒนาที่ดีที่สุดในโลก ไม่มีอะไรมาใกล้กับดีบักเกอร์ของ Visual Studio จากระยะไกล DirectX Debug Runtimes นั้นยอดเยี่ยม PIX นั้นยอดเยี่ยมและสิ่งที่เทียบเท่ากันนั้นไม่มีอยู่ในแพลตฟอร์ม / API อื่น ๆ แน่นอนว่ามีบางสิ่งที่ดีอยู่ที่นั่น ฉันไม่ได้บอกว่าเครื่องมือบนแพลตฟอร์มอื่น ๆ นั้นไม่ดี แต่เครื่องมือที่ MS ให้มานั้นล้ำหน้ากว่าแพ็ค (ยกเว้นที่มีเกียรติ: Valgrind) ที่มันไม่ตลกเลย

บรรทัดล่างคือเครื่องมือเหล่านี้ช่วยคุณ พวกเขาช่วยให้คุณทำสิ่งต่างๆได้สำเร็จพวกเขาช่วยให้คุณทำงานได้อย่างมีประสิทธิภาพพวกเขาช่วยให้คุณมุ่งเน้นไปที่ข้อผิดพลาดในรหัสของคุณเองมากกว่าที่จะต่อสู้กับ API ที่ไม่เคยมีพฤติกรรมเหมือนเอกสาร


PIX เป็นที่น่ากลัว แก้ไขข้อบกพร่องของเฉดสีโดยคลิกที่พิกเซลที่น่ารำคาญและดูว่าเกิดอะไรขึ้นยอดเยี่ยม!
Chris Pitman

4

ดังนั้นฉันจึงได้ตอบคำถามเหล่านี้ทั้งหมดและในฐานะผู้พัฒนาเกมที่มีรหัสในเกมคอนโซลที่วางบนชั้นวาง Walmart ฉันมีคำตอบที่แตกต่างกันมาก

การกระจาย

ดูถ้าคุณต้องการอยู่ในคอนโซล Nintendo คุณต้องได้รับอนุญาตจาก Nintendo ซื้อจากโรงงานของ Nintendo จ่ายค่าใช้จ่ายของ Nintendo เจรจากับ Walmart จัดการกับคลังสินค้าคุณต้องการเงินล่วงหน้าเพื่อผลิตพิมพ์กล่องเพื่อจัดส่ง เพื่อทำประกันทั้งหมดและอื่น ๆ

หากคุณต้องการเข้าสู่ XBox แน่ใจว่ามี XBLA แต่คุณยังต้องการการให้พรของ Microsoft คุณต้องรอการต่อแถวของคุณมันเป็นหมื่นดอลลาร์เพื่อปลดแพตช์ ฯลฯ

บน iOS คุณยังต้องใช้แอปเปิ้ลและพวกเขาสามารถ (และทำ) ตามอำเภอใจดึงคุณ

บน Steam คุณยังต้องได้รับอนุญาตจาก Valve หรือ Greenlight และเงินจำนวนมาก

.

บน Windows? คุณตั้งค่าเว็บไซต์และปุ่มดาวน์โหลด

.

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

"เราสามารถทำพอร์ต XBLA ได้ในภายหลังเมื่อความคิดมั่นคง"

และในระดับที่น้อยกว่านี้ก็เป็นสิ่งที่ดีสำหรับลีนุกซ์เช่นกันและหากลูกค้าเจ็ดรายดีคุณสามารถเริ่มต้นได้ที่นั่น

แต่ Windows มีข้อได้เปรียบใหญ่สามประการคือการพัฒนาแบบเปิดอย่างแท้จริงการปรับใช้แบบเปิดอย่างแท้จริงและฐานลูกค้าที่มีขนาดใหญ่และใช้งานมากซึ่งมีความสนใจในเรื่องแปลก ๆ

มันยากที่จะจินตนาการว่าฉันจะเริ่มจากตรงไหน


3

ฉันคิดว่าคุณควรอ่านเพิ่มเติมเกี่ยวกับประวัติของDirectXและบทความนี้

ฉันคิดว่า MS เลือก DX มากกว่า openGL เพราะพวกเขาต้องการล็อคผู้คนให้ใช้ระบบปฏิบัติการของตัวเอง


4
ไม่พวกเขาสร้าง DX เพราะ OGL ไม่เหมาะสำหรับ Windows ไม่สามารถขยายได้อย่างรวดเร็วเพื่อใช้ประโยชน์จากการพัฒนาฮาร์ดแวร์และระบบปฏิบัติการใหม่ไม่รวมเสียงอินพุตควบคุม ฯลฯ เป็นต้น
jwenting

2
iow DX นั้นมีความเฉพาะสำหรับ Windows สำหรับเหตุผลด้านประสิทธิภาพและเพื่อให้ Microsoft สามารถคงไว้ซึ่งวิธีการนั้นและนำเทคโนโลยีใหม่มาใช้ได้อย่างรวดเร็วเมื่อพร้อมใช้งาน OpenGL ติดอยู่ที่ระดับของการสนับสนุนฮาร์ดแวร์กราฟิกที่มีอยู่เมื่อ 5 ปีก่อนอาจจะมากกว่านั้นเพราะเป็นความพยายามของคณะกรรมการ
jwenting

1
@ jwenting ฉันไม่คิดว่าประสิทธิภาพเป็นเหตุผลเดียวที่พวกเขาไม่ได้พอร์ตไปยังแพลตฟอร์มอื่น ๆ ฉันหมายความว่าถ้าพวกเขาต้องการที่จะพอร์ตมันอย่างน้อยพวกเขาจะได้เปิดแหล่งที่มาและปล่อยให้ชุมชนดำเนินการ มัน.
Mahmoud Hossam

1
พวกเขาไม่ได้เปิดโอเพนซอร์ส C # พวกเขาส่งข้อกำหนดภาษาไปยังหน่วยมาตรฐาน Microsoft เป็นสมาชิกขององค์กรมาตรฐานเหล่านั้นและทำสิ่งต่าง ๆ ตลอดเวลา (มีส่วนร่วมอย่างมากกับ html, javascript และมาตรฐานอื่น ๆ ) เปิดการจัดหามันน่าจะหมายถึงการปล่อยซอร์สโค้ดสำหรับคอมไพเลอร์และไลบรารีภายใต้ APL
jwenting

1
@ jwenting: สำหรับเร็กคอร์ดมีการนำ Direct3D 10 และ 11 มาใช้บน Linux ที่กำหนดเป้าหมาย Gallium3D framework (และไม่มีส่วนเกี่ยวข้องกับไวน์) ฉันจะไม่เห็นด้วยกับการยืนยันของคุณว่า "OGL ไม่เหมาะสำหรับ Windows" นั่นเป็นปัญหาของการใช้งานไดรเวอร์ฮาร์ดแวร์ไม่ใช่ข้อ จำกัด ของ OpenGL
greyfade

1

มีหลายสิ่งที่ต้องทำเกี่ยวกับการเมืองและการควบคุม ในช่วงปลายยุค 90 SGI และ MS ได้ตกลงที่จะรวมความพยายามอย่างแท้จริง:

http://en.wikipedia.org/wiki/Fahrenheit_graphics_API

SGI ลงทุนอย่างหนักในโครงการ MS ไม่ได้ SGI ต้องการ MS มากกว่า SGI ที่ต้องการ ส่วนที่เหลือคือประวัติศาสตร์

D3D และ OpenGL เป็นสอง API ที่แตกต่างกันมากมันขึ้นอยู่กับนักพัฒนาที่จะเลือกสิ่งที่เหมาะสมกับความต้องการของคุณ


0

เพียงเพราะ Linux ล้มเหลวอย่างน่ากลัวในฐานะระบบเดสก์ท็อป อย่างที่ใครบางคนชี้ให้เห็นก่อนหน้านี้ Linux เป็นระเบียบสำหรับนักพัฒนา (ห้องสมุดที่แตกต่างกัน ui toolkits ฯลฯ )

ปัญหาอีกประการหนึ่งคือความอิสระและการขาดการสนับสนุนซอฟต์แวร์ที่เป็นกรรมสิทธิ์ Nvidia ให้บริการไดรเวอร์ (กรรมสิทธิ์) ที่ดีสำหรับ Linux เสมอ แต่ Ubuntu และ distros อื่น ๆ จะไม่จัดส่ง นอกจากนี้ยังไม่มีอินเตอร์เฟสไดรเวอร์ไบนารีสำหรับ Linux เช่นเดียวกับ Windows (มีไฟล์ข้อความชื่อ binaryApiNonsense.txt หรือบางอย่างในเคอร์เนลซอร์ส) ต้องบอกว่ามีเพียงฮาร์ดแวร์ของ Nvidia เท่านั้นที่รองรับ Linux ได้อย่างถูกต้อง คุณสามารถเล่นเกม ID ซอฟต์แวร์ส่วนใหญ่โดยใช้ฮาร์ดแวร์ Nvidia ภายใต้ Linux

เครื่องมือการพัฒนาสิ่งต่อไป MSFT ให้การสนับสนุน C ++ ที่ยอดเยี่ยมและดีบักเกอร์ Visual Studio นั้นดีกว่า gdb สำหรับ C ++ สุดท้าย แต่ไม่ท้ายสุดเครื่องมือเพิ่มเติมหายไปเช่น Photoshop นอกจากนี้. net ยังช่วยให้คุณสร้างเครื่องมือ gui ได้อย่างรวดเร็ว สตูดิโอเกมจำนวนมากมีรหัสเครื่องมือสำหรับใช้ภายในโดยใช้. net framework

ฉันเกือบลืมไปแล้วว่าระบบกราฟิกนั้นน่ากลัวมากในสมัยที่พวกเขาเพิ่งย้าย X11 มาเพราะมันเป็นสิ่งที่ง่ายที่สุดที่ทำงานได้ พวกเขาไม่สามารถออกแบบและใช้งานระบบกราฟิกที่ทันสมัยซึ่ง OSx และ Win มีได้อย่างเหมาะสม


4
อืม? การ์ด intel และ ati ของฉันทำงานได้ดีใน Linux ... และมีอะไรผิดปกติกับ X11? ฉันมักจะรู้สึกว่ามันดีกว่าทางเลือกสำหรับระบบปฏิบัติการอื่น (โดยเฉพาะ Windows) เพราะสถาปัตยกรรมไคลเอนต์ - เซิร์ฟเวอร์
ทางเลือก

ไม่พวกเขาไม่พิมพ์ glxinfo และดูสภาพอากาศดีหรือไม่! X11 แย่มากเสียแล้วเป็นตัวอย่างtheinvisiblethings.blogspot.com/2010/08/…
Nils

และถ้าคุณอ่านประโยคสุดท้าย Linus เองก็ใช้แพทช์ระดับเคอร์เนลไม่ใช่แพทช์ X11
ทางเลือก

1
ฉันไม่รู้เกี่ยวกับระบบกราฟิกมาก (คุณอาจมีประเด็น) แต่บอกว่า Linux ล้มเหลวเนื่องจากระบบเดสก์ท็อปไม่เป็นความจริงหรืออย่างน้อยก็ไม่ถูกต้อง ฉันย้ายจาก Windows ไปเป็น Linux และฉันก็รู้สึกได้ผลมาก ประสิทธิภาพของ Linux นั้นเหนือกว่า Windows ในทุกเครื่องที่ฉันใช้ ฉันยังไม่ได้รหัส C ++ และฉันต้องการทราบว่า Eclipse จะยืนเป็น IDE C ++ ได้อย่างไรเมื่อเทียบกับ Visual Studio
M.Sameer

วางเครื่องพ่นไฟลง ฉันคิดว่าความเห็นที่ยอมรับโดยทั่วไปคือ VS เป็น IDE ที่ดีที่สุด อย่างไรก็ตาม Eclipse ยังเด็กและมีทางไป - เราจะเห็น ฉันชอบที่ทุกอย่างสามารถใช้สคริปต์ได้อย่างง่ายดายและไพพ์ใน Linux!
Vorac
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.