ทำไมบางครั้งเกมที่สร้างขึ้นด้วยเอนจิ้นข้ามแพลตฟอร์มบางครั้งเป็นเอกสิทธิ์ของ Windows?


99

หากเอ็นจิ้นรองรับ Windows, OS X และ Linux ทำไมบางครั้งเราเห็นเกมที่ใช้เอ็นจิ้นเหล่านี้เช่นSpace Hulk: Deathwingจำกัด เฉพาะ Windows เท่านั้น


25
มันหมายความว่ามันสามารถสร้างข้ามแพลตฟอร์มมันไม่ได้หมายความว่ามันไม่ต้องใช้ความพยายามเพิ่มเติม
มาร์ช

เหตุผลง่ายๆคือเกมส่วนใหญ่นั้นอยู่บนพีซี
Fattie

คำตอบ:


150

เหตุผลทางเทคนิค:

  • แพลตฟอร์มที่สร้างเกมโดยเฉพาะ : เมื่อนักพัฒนาซอฟต์แวร์บางรายสร้างเกมขึ้นมาพวกเขาสามารถพึ่งพาฟังก์ชั่นเฉพาะแพลตฟอร์มได้ ในขณะที่เอ็นจิ้นเกมอาจสร้างเกมสำหรับหลายแพลตฟอร์มได้รหัสเฉพาะที่ไม่ใช่เกมอาจทำการโทรแบบเฉพาะของ Windows ซึ่งอาจไม่มีอยู่ในแพลตฟอร์มอื่นหรืออาจต้องการการ remaking ส่วนที่ยากของเกม ระบบบันทึกไฟล์ ฯลฯ )
  • Lack of Capable Machines : เป็นเวลานานคอมพิวเตอร์ Apple ส่วนใหญ่ไม่มีพลังกราฟิกเพียงพอที่จะเรียกใช้เกมส่วนใหญ่ เหตุใดจึงเผยแพร่บางแห่งซึ่งผู้ใช้มักจะมีประสบการณ์ที่ไม่ดีเท่านั้น นี่คือการเปลี่ยนแปลงอย่างช้า ๆ ขอบคุณกราฟิกแบบบูรณาการที่ดีขึ้น แต่อาจจะเป็นเหตุผลว่าทำไมบางคนไป Windows เท่านั้น
  • ความเข้ากันได้ของปลั๊กอิน / ไลบรารี : นักพัฒนาเกมอาจใช้ไลบรารีบุคคลที่สามเพื่อช่วยเร่งการพัฒนาหรือใช้รหัสมาตรฐาน / การตรวจสอบความถูกต้องของอุตสาหกรรม (SSL, ไลบรารีการทำให้เป็นอนุกรมเป็นต้น) หากสิ่งเหล่านี้ไม่สนับสนุนแพลตฟอร์ม X เกมส่วนใหญ่จะไม่สามารถทำงานได้อย่างน่าเชื่อถือดังนั้นพวกเขาจึงได้รับการยกเว้น
  • เพิ่ม QA : ในระหว่างการพัฒนาเกมมีส่วนย่อยของทีมที่ทำให้แน่ใจว่าไม่มีข้อบกพร่องและเกมนั้นตรงตามมาตรฐานประสิทธิภาพ เมื่อคุณเพิ่มแพลตฟอร์มเกมจะต้องได้รับการทดสอบสองครั้งเป็นหลัก! ส่วนทั่วไปของเกมอาจถูกปล่อยไว้ตามลำพัง แต่ยังมีการทดสอบอีกมากที่ต้องทำก่อนปล่อย สิ่งนี้สามารถนำไปสู่ค่าใช้จ่ายที่เพิ่มขึ้นไม่เพียง แต่ต้องใช้เวลาเพิ่มเติม แต่ยังต้องใช้ฮาร์ดแวร์เฉพาะขึ้นอยู่กับแพลตฟอร์ม (Apple, Xbox, PlayStation, โทรศัพท์ ฯลฯ )
  • การสนับสนุนที่เพิ่มขึ้น : เมื่อมีการวางจำหน่ายเกมพวกเขาจะมีข้อบกพร่อง (บางเกมมากกว่าเกมอื่น) ในขณะที่คุณเพิ่มแพลตฟอร์มจำนวนการสนับสนุนหลังการพัฒนาจะเพิ่มขึ้น ข้อผิดพลาดเฉพาะแพลตฟอร์มจะต้องได้รับการแก้ไขในลักษณะที่แก้ไขได้สำหรับแพลตฟอร์มที่ใช้งานไม่ได้และจะไม่ส่งผลกระทบต่อแพลตฟอร์มที่ไม่ได้รับผลกระทบ หากแพลตฟอร์มเปลี่ยนไปพูดว่า Windows 7 ถึง 8 หรือการทำซ้ำ OSX จะต้องมีระดับ QA เพื่อให้แน่ใจว่าไม่มีข้อบกพร่องในเวอร์ชันใหม่ และหากมีนั่นเป็นอีกแพลตฟอร์มหนึ่งที่ต้องรองรับควบคู่กับเวอร์ชั่นเก่า นี่อาจมีผลกระทบอย่างมากต่อค่าใช้จ่ายโดยเฉพาะอย่างยิ่งหลังจากที่เกมเปิดตัว (เป็นเกมที่ไม่ทำเงินมาก) 3-6 เดือนหลังจากการเปิดตัว

เหตุผลที่ไม่ใช่ด้านเทคนิค:

  • ข้อตกลงผู้เผยแพร่ : นักพัฒนาซอฟต์แวร์บางรายจะมีข้อตกลงกับเจ้าของแพลตฟอร์มเพื่อเผยแพร่เฉพาะบนแพลตฟอร์มของพวกเขา แม้ว่าสิ่งนี้จะเกิดขึ้นกับคอนโซลมากกว่านี้ก็อาจเป็นกรณีสำหรับแพลตฟอร์มพีซี (เช่น Windows)
  • ผู้พัฒนาบุคคลที่หนึ่ง : ผู้พัฒนาบางรายเป็นเจ้าของโดยเจ้าของแพลตฟอร์มและไม่ได้รับอนุญาตให้เผยแพร่เกมของพวกเขาบนแพลตฟอร์มเฉพาะ คุณอาจจะไม่เห็น Halo บน PS4 หรือ Forza บน Mac
  • ผู้ชมขาด : นักพัฒนามีสถิติจำนวนมากเกี่ยวกับแนวโน้มของผู้บริโภคบนแพลตฟอร์มเฉพาะโดยเฉพาะอย่างยิ่งหากพวกเขามีผู้เผยแพร่รายใหญ่ที่มีข้อมูลจำนวนมาก หากพวกเขามีข้อมูลที่ระบุว่า 90% ของกลุ่มเป้าหมายของพวกเขาอยู่บน Windows พวกเขาอาจไม่ต้องปล่อยบนแพลตฟอร์มอื่น ๆ เพื่อลองและลดข้อผิดพลาดที่อาจเกิดขึ้นหรือ / และทำให้สื่อการตลาดเพ่งความสนใจไป
  • ไม่เป็นไปตามข้อกำหนดของแพลตฟอร์ม : บางแพลตฟอร์มเช่น Apple App Store มีข้อกำหนดที่เข้มงวดเกี่ยวกับรูปแบบและการออกแบบที่ต้องปฏิบัติตามเพื่อให้สามารถเผยแพร่ได้ หากเกมไม่ตรงตามข้อกำหนดเหล่านี้สำหรับแพลตฟอร์มการจำหน่ายเฉพาะมันอาจจะไม่คุ้มค่ากับเวลาทางวิศวกรรมในการปรับเกมและวางจำหน่ายหากมียอดขายที่คาดการณ์ไม่เพียงพอ
  • การขาดประสบการณ์กับแพลตฟอร์ม : หากผู้พัฒนาได้ทำงานกับ Windows เพียงอย่างเดียว (และไม่มีคนจำนวนไม่มากนักที่มีประสบการณ์เกี่ยวกับระบบอื่น ๆ ) มันอาจเป็นงานจำนวนมากที่ต้องเรียนรู้ถึงความแตกต่างเล็ก ๆ น้อย ๆ ที่อาจทำให้เกิดปัญหา อาจมีงบประมาณไม่เพียงพอที่จะจ้างพนักงานใหม่ให้รับผิดชอบงานสร้าง Linux / OSX
  • ค่าใช้จ่ายทางการตลาด : หากทั้งสองแพลตฟอร์มมีกลุ่มเป้าหมายหรือกลุ่มอายุที่แตกต่างกันอย่างมีนัยสำคัญวัสดุการตลาดสำหรับหนึ่งอาจไม่ถึงความหมายอื่น ๆ ที่ต้องใช้เงินมากขึ้นในการตลาด หากทั้งสองกลุ่มต้องการการตลาดที่แตกต่างกันมันจะต้องถูกสร้างขึ้นใหม่โดยคำนึงถึงกลุ่มเป้าหมายใหม่ การตลาดอาจมีราคาแพงมากโดยเฉพาะอย่างยิ่งเมื่อมีการวางจำหน่ายครั้งใหญ่ยิ่งแพลตฟอร์มจำเป็นต้องทำการตลาดมากเท่าไหร่ต้นทุนก็จะเพิ่มขึ้นเร็วขึ้นเท่านั้น

ฉันแน่ใจว่ามีมากขึ้น นี่เป็นเพียงส่วนบนของหัวของฉัน หวังว่านี่จะช่วยได้


26
นี่เป็นคำตอบที่ดี แต่ฉันคิดว่าคุณพลาดองค์ประกอบสำคัญอีกอย่างหนึ่ง: ค่าใช้จ่ายในการทดสอบ / QA เอนจิ้นข้ามแพลตฟอร์มไม่ทำงานที่สมบูรณ์แบบในการซ่อนความแตกต่างของแพลตฟอร์มดังนั้นจึงเป็นสิ่งสำคัญในการทดสอบกับแพลตฟอร์มเป้าหมายทั้งหมด อาจมีข้อบกพร่องที่แสดงบนแพลตฟอร์มเดียวเท่านั้นหรือมีความแตกต่างด้านประสิทธิภาพที่สำคัญเกี่ยวกับการใช้งานที่แตกต่างกันในแพลตฟอร์มที่แตกต่างกัน อาจมีพฤติกรรมที่แตกต่างในการทำงานที่ควรจะเป็นแพลตฟอร์มข้าม คุณต้องเพิ่มเวลา QA และให้ผู้ทดสอบด้วยฮาร์ดแวร์เพิ่มเติม นักพัฒนาบางคนจะต้องการฮาร์ดแวร์และซอฟต์แวร์เพิ่มเติม
mattnewport

2
ฉันคิดว่าฉันพูดถึงเรื่องนี้ในส่วนที่ขาดประสบการณ์ .... แต่ฉันสามารถเพิ่มได้ :) ดีกว่าเสมอที่จะคิดว่า
user3797758

5
ฉันจะเห็นด้วยกับ @mattnewport ว่าค่าใช้จ่ายนั้นถูกเข้าใจที่นี่ - มันค่อนข้างใช้แรงงานมากในการพัฒนาสร้างทดสอบตรวจแก้จุดบกพร่องล้างออกทำซ้ำสำหรับหลายแพลตฟอร์ม มันยากพอที่จะทดสอบกับการกำหนดค่าฮาร์ดแวร์ที่หลากหลายสำหรับแพลตฟอร์มเดียว!
AC

3
นอกจากนี้ "สนับสนุน" บางครั้งก็พูดเกินจริงไปอย่างมาก เอ็นจิ้นจำนวนมาก "รองรับ" Windows แต่จริงๆแล้วคุณจะต้องติดตั้ง Visual Studio และ Python และ Perl และ Cygwin และ Msys และ MinGW และกิกะไบต์ของไลบรารี 5 รสชาติเพื่อใช้งานจริง
AndreKR

2
"นักพัฒนามีสถิติจำนวนมากเกี่ยวกับแนวโน้มของผู้บริโภคบนแพลตฟอร์มเฉพาะ" - แน่นอนว่าการใช้เพื่อกำหนดว่าแพลตฟอร์มใดบ้างที่จะสนับสนุนทางเทคนิคเป็นบิตของการทำนายผลด้วยตนเอง
หรือผู้ทำแผนที่

30

เพราะความพร้อมใช้งานไม่ได้หมายถึงการเป็นอิสระและทันที

สนับสนุนอีกหนึ่งระบบปฏิบัติการในรูปแบบที่ง่ายที่สุดหมายถึงอีกแพลตฟอร์มหนึ่งที่ให้การสนับสนุนทางเทคนิคสำหรับ

แพลตฟอร์มที่คุณสนับสนุนมากขึ้น = แพลตฟอร์มที่มากขึ้นคุณต้องให้การสนับสนุนสำหรับ = ใช้เวลากับการสนับสนุนมากขึ้น = การสูญเสียเวลาทำงานที่อาจต้องใช้เวลาในการปรับปรุงเกมของคุณ

การสนับสนุนแพลตฟอร์มทั้งหมดมาพร้อมกับความมั่นใจว่าหากเกมของคุณสามารถดึงดูดฐานผู้เล่นที่เพียงพอในแพลตฟอร์มเป้าหมายนั้นได้ดังนั้นจึงเป็นเวลาที่คุณให้การสนับสนุนแพลตฟอร์ม


2
อีกทั้งงานที่สูญเสียไปกับการพัฒนาตลาด (App Store, Steam, Google play) และการรวมแพลตฟอร์มเฉพาะโดยเฉพาะอย่างยิ่งในแผนกสังคม (เพื่อนการแบ่งปันการรับรองความถูกต้อง)
CostelloNicho

18

มีคำตอบที่ดี แต่เรามาที่บรรทัดล่าง

จากการสำรวจฮาร์ดแวร์มิถุนายน 2017 ของ Steam พบว่าผู้ใช้ 96.24%ใช้ Windows ตัวอย่าง ของผู้ใช้ Windows 87.37% เป็น Windows 10 หรือ 7, 64 หรือ 32 บิต ตัวแปร OSX แสดงถึง 2.95% ของผู้ใช้และตัวแปร Linux รวม 0.72%

เวลาคือเงิน. นอกจากว่าตลาดของคุณจะเป็นโพรงและตั้งเป้าไปที่ OSX หรือ Linux โดยเฉพาะคุณจะต้องขายเกมจำนวนมากก่อนที่ตลาดของคุณจะเสียเวลาโดยเฉพาะอย่างยิ่ง <4% ของตลาดโดยเฉพาะอย่างยิ่งผู้พัฒนาเกมมักจะยืดเวลา


3
... และสิ่งนี้ถือว่าผู้ใช้ทุกคนจ่ายเงินเทียบเท่ากับเกมโดยเฉลี่ย ฉันจำได้ว่าสถิติสำหรับ Android เทียบกับ Windows Phone ซึ่งในขณะที่ Android มีส่วนแบ่งอุปกรณ์ที่ใหญ่กว่ามากรายได้โดยตรง (ไม่ใช่โฆษณา) ก็ค่อนข้างเหมือนกัน - และทั้งคู่ก็เล็กมากเมื่อเทียบกับ iOS หากคุณขายเกมคุณต้องรู้ว่ามีคนยินดีจ่ายเท่าใด การสร้างเกมสำหรับเซ็กเมนต์ 0.7% ของตลาดที่ไม่ค่อยซื้อเกมถือเป็นเงินเดิมพันที่ถูกต้อง: D มันอาจจะไม่คุ้มค่าเลยแม้ว่าเครื่องยนต์จะมีหลายแพลตฟอร์มอย่างสมบูรณ์ (ไม่มี gotchas แปลก ๆ บนแพลตฟอร์มที่ต่างกัน)
Luaan

1
@Luaan ตาม Humble Bundle รายได้สำหรับ Linux นั้นน้อยกว่า Mac เล็กน้อยถึงแม้ว่า Mac จะเป็นที่นิยมมากกว่าสามเท่า อาจอธิบายได้ว่าคอมพิวเตอร์ลีนุกซ์ระดับไฮเอนด์มีแนวโน้มที่จะมีการ์ดกราฟิกที่ดีกว่า Macs ในราคาเดียวกันเพราะการแลกเปลี่ยนของเครื่องเหล่านี้อยู่ที่อื่น
stommestack

1
@JopV Bundle ที่อ่อนน้อมถ่อมตนค่อนข้างยุ่งยากเนื่องจากปัจจัยบันเดิล ถ้าฉันสนใจแค่เกมเดียวในชุดนี้ฉันไม่อยากจ่ายมากกว่านี้เพราะฉันได้รับเกมพิเศษที่ฉันจะไม่เล่น (หรือเกมที่ฉันจ่ายไปก่อนหน้าแล้วบางครั้งก็หลายครั้ง; บ้า: P) อาจมีผลกระทบจากความจริงที่ว่า Linux ถูกเพิกเฉยต่อการเล่นเกมจนกระทั่งเมื่อไม่นานมานี้ดังนั้นคนที่มีคอมพิวเตอร์ Mac หรือ Win อาจมีเกมบางเกมอยู่แล้วในขณะที่อาจเป็น Linux รุ่นแรก อาจจะ. พวกเขามีสถิติจากร้านค้าฮัมเบิลหรือไม่?
Luaan

2
@Luaan ทุกครั้งที่มี Humble Indie Bundle จะมีสถิติอยู่ด้านล่างของหน้ารวมถึงจำนวนเงินทั้งหมดและโดยเฉลี่ยต่อระบบปฏิบัติการ พวกเขาอยู่อย่างสม่ำเสมอทุกชุด
stommestack

14

คำตอบอื่น ๆ ที่นี่ดี แต่นี่คือคำตอบที่ไม่ได้กล่าวถึง

ฉันพบปัญหานี้แล้ว - ทีมของฉันกำลังจะเปิดตัวเกมที่ทำใน Unity สำหรับ Windows / Mac เราได้รับคำถามมากมายว่าทำไมเกมของเราจึงไม่อยู่ในมือถือ มี 2 ​​คำตอบหลัก:

1) โทรศัพท์ไม่แรงพอที่จะไล่ตามเกม บางทีเราสามารถลดความน่าเชื่อถือของงานศิลปะ (รูปหลายเหลี่ยมน้อยลงในแบบจำลอง, พิกเซลน้อยลงในพื้นผิว ฯลฯ ) แต่มันไปไกลแค่นี้ เกมส่วนใหญ่จะต้องมีการเขียนใหม่เพื่อที่จะได้รับการปรับให้เหมาะสมสำหรับโทรศัพท์ที่ใช้งาน เราลองแล้ว แต่เราได้แค่ 0.5 เฟรมต่อวินาทีเท่านั้น เห็นได้ชัดว่าเล่นไม่ได้

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

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


1
โทรศัพท์ของฉันสามารถเล่น GTA Vice City ได้อย่างไม่มีปัญหา ดูเหมือนว่าเอ็นจิ้นการเรนเดอร์ของคุณไม่มีประสิทธิภาพ! :)
Lightness Races ในวงโคจร

2
อย่างไรก็ตามคำตอบนี้เพิ่มเติมเกี่ยวกับการย้ายเกมไปยังแพลตฟอร์มฮาร์ดแวร์ / กระบวนทัศน์ที่แตกต่างกันและน้อยกว่าเกี่ยวกับระบบปฏิบัติการบนพีซี
Lightness Races ใน Orbit

2
@LightnessRacesinOrbit มันเป็น Unity ... จริง ๆ เรามีเอฟเฟกต์หนึ่งอย่างที่เป็นศูนย์กลางของเกมและไม่มีประสิทธิภาพจริงๆ คนที่เขียนมันหายไปและเราไม่สามารถหาวิธีทำให้ดีขึ้นได้ นั่นคือชีวิต ...
โคดี้

3
@JopV อืมมม ประวัติความเป็นมาเป็นเล็ก ๆบิตซับซ้อนกว่านั้น แต่มันไม่มีประโยชน์ที่จะพูดถึงเรื่องนี้ที่นี่ ฉันเพิ่งทราบว่า OpenGL เป็น API การแสดงผล 3 มิติ DirectX กว้างกว่านั้นมาก หากคุณต้องการมีส่วนร่วมในการถกเถียงอย่างไม่มีจุดหมายอย่างน้อยเปรียบเทียบ OpenGL กับ Direct3D :) OpenGL ได้รับการออกแบบสำหรับงาน 3D มืออาชีพ ("เปิด" IrisGL ที่เป็นกรรมสิทธิ์) แพลตฟอร์มอื่น ๆ รองรับ OpenGL ในเวลานั้น? ไม่มี "การพัฒนาข้ามแพลตฟอร์มที่ขัดขวาง" - Windows มีการสนับสนุน OpenGL ดั้งเดิม OpenGL ไม่เคยมีจุดประสงค์เพื่อการทำงานระดับมืออาชีพ แต่อย่างใด
Luaan

2
gpus ของโทรศัพท์นั้นมีพลังน้อยกว่ากราฟิกของ Intel มากเพราะมันมีข้อ จำกัด ด้านความร้อนและขนาด หลายคนมีโทรศัพท์ที่ไม่รองรับ opengl es 3.0 ดังนั้นมีเพียงไม่กี่คนเท่านั้นที่จะสามารถใช้แอพของคุณได้เว้นแต่คุณจะเขียนเกมใหม่สำหรับ opengl es 2.0 ดั้งเดิม
Suici Doga
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.