ฉันควรพิจารณาอะไรเมื่อประเมินไลบรารีเอ็นจิ้นและกรอบการทำเกม


10

ฉันจะสร้างเกม ฉันสังเกตเห็นว่ามีเอ็นจิ้นเกมจำนวนมากไลบรารีและเฟรมเวิร์กที่พร้อมใช้งานและฉันมีปัญหาเล็กน้อยในการตัดสินใจว่าจะใช้อันไหน

ฉันค่อนข้างดีกับภาษาการเขียนโปรแกรม แต่มีคนอื่นที่ไม่รู้จักเลย ฉันไม่ได้ต่อต้านการเรียนรู้ภาษาการเขียนโปรแกรมใหม่ถ้ามันจะช่วยได้ แต่เป้าหมายที่แท้จริงของฉันคือการสร้างเกมของฉัน

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


11
สำหรับสิ่งที่คุ้มค่าฉันใช้วิธีสองขั้นตอน: (1) เลือกหนึ่งอย่างอิสระ (2) เสียใจในการตัดสินใจในภายหลัง ข้อดีคือทำให้คุณผ่านขั้นตอนแรกไปอย่างรวดเร็ว
Cameron Fredman

2
นี่ไม่ควรเป็นคำถาม Community Wiki หรือ
Marton

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

@Marton ทำไมคุณคิดว่ามันควรจะเป็น CW?
MichaelHouse

1
@ Byte56 เพราะคำถามนี้เกิดขึ้นเสมอเมื่อมีคนต้องการเริ่มพัฒนาเกม มีเฟรมเวิร์ก / เอ็นจินจำนวนมากอยู่แล้วและรายการทั่วไป "สิ่งที่ควรพิจารณา" สำหรับวิกินั้นจะมีประโยชน์จริง ๆ ฉันคิดว่ามันจะตอบคำถาม "ฉันควรใช้เครื่องมือใด" ซึ่งจะปรากฏบนเว็บไซต์นี้ การใช้ถ้อยคำหลังนี้จริง ๆ แล้วทำให้คำถามดังกล่าว 'ไม่สร้างสรรค์'
Marton

คำตอบ:


14

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

  1. ทำรายการคุณสมบัติที่คุณสนใจเช่นการสนับสนุน 2D / 3D, แสง, ฟิสิกส์, ใช้ภาษาที่คุณรู้จักดีเป็นต้น
  2. จัดอันดับตามความสำคัญกับคุณตามโครงการปัจจุบันของคุณ
  3. ทำการวิจัยตัวเลือกของคุณและสำหรับแต่ละตัวเลือกพยายามจัดอันดับคุณสมบัติการสนับสนุนของพวกเขาโดยพิจารณาจากความสอดคล้องกับเป้าหมายโครงการ
  4. ใช้อันที่ตรงกับเป้าหมายของคุณมากที่สุด อีกทางเลือกหนึ่งคุณสามารถเลือกอันดับต้น ๆ และทดลองขับได้ ใช้คุณสมบัติที่เรียบง่ายของเกมและดูว่าคุณชอบอะไรมากขึ้น

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


3

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

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

หากคุณกำลังจะเป็น Windows เท่านั้นไลบรารี DirectX และ C # จะเป็นตัวเลือกที่ดี หากคุณต้องการเป็นหลายแพลตฟอร์มคุณต้องดูห้องสมุดที่ใช้ OpenGL และ C / C ++ หรือ Flash หากเกมของคุณเป็นแบบ 2D และคุณสามารถซื้อเครื่องมือของ Adobe ได้ เช่นเดียวกับแพลตฟอร์มของคุณภาษาการเขียนโปรแกรมของคุณจะมีผลกับไลบรารีที่มีอยู่ของคุณ โปรแกรมที่เขียนด้วย C ++ จะมีเวลายากในการเรียกใช้ไลบรารี Java

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

เมื่อมองไปที่ห้องสมุดตรวจสอบให้แน่ใจว่ามีการพัฒนาและชุมชนอย่างไร ฉันเชื่อถือห้องสมุดที่มีชื่อเสียงและมีการดูแลมากกว่าหนึ่งแห่งที่โฮสต์อยู่ในหน้าเว็บของมหาวิทยาลัยที่ไม่ได้รับการปรับปรุงตั้งแต่ปี 1999

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


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

1

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

  1. โครงสร้างการสนับสนุน - แม้ว่าเอ็นจิ้นเกมจะสมบูรณ์แบบ แต่การสนับสนุนอาจมีราคาแพงเกินไปหรือไม่มีอยู่จริง
  2. มันง่ายแค่ไหนในการเรียนรู้ - คุณอาจไม่ต้องการสิ่งที่ใหญ่เกินไปเพราะเวลาในการเรียนรู้อาจถูกห้าม
  3. มันครอบคลุมแผนในอนาคตของคุณหรือไม่คุณอาจไม่ต้องการลงทุนเวลาเรียนรู้กลไกที่สมบูรณ์แบบสำหรับตอนนี้เพียงเพื่อเรียนรู้เครื่องยนต์ใหม่เอี่ยมจากศูนย์สำหรับโครงการถัดไป หรือบางทีคุณต้องการที่
  4. สิทธิ์การใช้งาน - หากคุณกำลังสร้างเกมที่มาปิดตรวจสอบให้แน่ใจว่าใบอนุญาตของเครื่องยนต์ไม่ได้ทำให้เป็นโอเพนซอร์ส

0

ชีตสั้น ๆ สำหรับการประเมินไลบรารีเฟรมเวิร์กเอ็นจิ้นและ SDK และเลือกสิ่งที่ดีที่สุด

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

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

ภาพจำลองจะกำหนดว่าความต้องการมาจากไหน (ใครเป็นผู้ตัดสินใจว่าอะไรคือสิ่งที่ต้องการและอะไรที่ไม่ได้เป็นไป)


สถานการณ์ทั่วไปคือ:

ภาพจำลองโครงการที่แย่ที่สุด

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

ความต้องการโดยนัยคือคุณอาจต้องการเรียนรู้สิ่งที่เฉพาะเจาะจง (ภาษากรอบงาน / กลไกเฉพาะ)

สถานการณ์ของนักเรียน

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

ข้อกำหนดเกี่ยวกับความชั่วร้าย (ชีวิตจริง) ที่มากขึ้น: ทุกอย่างจะต้องมีการเขียนตั้งแต่เริ่มต้น (แต่อนุญาตให้ใช้ห้องสมุดได้) ดังนั้นจึงไม่อนุญาตให้ใช้โปรแกรมแก้ไข (เช่น Unity3D) ดังนั้นคุณไม่ได้มองหาเอ็นจิ้น / sdks แต่เป็นห้องสมุด

สถานการณ์เกมอินดี้

คุณต้องการทำเงินกับเกมในภายหลัง ดังนั้นคุณจะต้องขายมันอย่างใดซึ่งจะนำคุณไปตรวจสอบที่ needmnts มาจากร้านค้าที่คุณต้องการขายเกมของคุณ

มันอนุญาตเกม Java, เกม HTML5, .... )

มันต้องการให้คุณรวมไลบรารีเฉพาะหรือไม่ (ถ้าใช่มีห้องสมุดเหล่านั้นในภาษาใดบ้าง)

Google Playstore จะให้คุณเขียนเกมเป็นเกม Android โดย Apple AppStore จะให้คุณเขียนเกมเป็นแอป iOS หรือคุณมีความต้องการที่จะเลือกเอนจิ้นหลายแพลตฟอร์ม

สถานการณ์มืออาชีพ

คุณไม่เพียงมีร้านค้าที่ให้บริการตามความต้องการ แต่ส่วนใหญ่ผู้เผยแพร่หรือลูกค้าที่มีความต้องการของตนเองไม่ได้ ในสถานการณ์นี้คุณจะมีทีมนักพัฒนาที่มีงานทำที่ใหญ่กว่า ความต้องการใหม่เกิดขึ้น (โปรแกรมเมอร์ของเราสามารถเขียน c ++ เท่านั้นดังนั้นเราจึงไม่สามารถใช้เอ็นจิ้นเกม Java / Android แท้ๆโดยไม่ต้องใช้เวลา (มาก) ในการเรียนรู้สิ่งใหม่)

ฉันไม่ได้ลงรายละเอียดสำหรับสถานการณ์นี้เมื่อคุณจัดการเพื่อสร้างทีมจ้างและค้นหาลูกค้า / ผู้เผยแพร่คุณรู้แล้วว่าคุณกำลังมองหาสิ่งที่ประเมิน


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

ถามคำถามตนเองเกี่ยวกับเป้าหมายและเกมของคุณ?

  • เกมของฉันควรเป็นอย่างไร มือถือ, พีซี, เว็บ (html / Js) ซึ่งฉันจะใช้คอนโทรลเลอร์ใด (หน้าจอสัมผัส, ไจโรสโคป, แพดเกม)

  • มีอะไรใหม่ในเกมของฉันและเกมอื่น ๆ มีอะไรบ้าง ส่วนอื่น ๆ ของเกมนั้นมี (การเรนเดอร์เสียงการจัดการอินพุต) โดยเครื่องมือส่วนใหญ่ (เกมเอ็นจิ้น) ที่คุณสามารถหาได้

  • โครงการของฉันมีมิติอย่างไร: นกโกรธหรือสกายริม? Angry Birds สามารถทำได้ในเกือบทุกเครื่องมือและ skyrim จะถูก จำกัด ด้วยเครื่องมือประสิทธิภาพสูงที่มี (สมมติ) ปีของการปรับแต่งเพิ่มเติม (เครื่องยนต์ภูมิประเทศที่มีประสิทธิภาพสูงไม่ใช่เรื่องง่าย)

  • เป้าหมายเดียวของฉันคือทำเกมให้สำเร็จหรือไม่? ใช่? สมบูรณ์แบบคุณสามารถใช้บางสิ่งที่ทันสมัยอย่าง Unity, Unreal ... มีเครื่องมือแก้ไขที่มีประโยชน์และชุมชนขนาดใหญ่ที่ให้บทเรียนและตอบคำถามของคุณ มันช่วยลดภาระในการจัดการงานระดับต่ำเช่นการโหลดแบบตาข่ายการใช้ฟังก์ชั่นคณิตศาสตร์ของคุณเอง ...

  • เป้าหมายของฉันคือการเรียนรู้สิ่งที่เฉพาะเจาะจงหรือไม่? ใช่? คุณต้องการเรียนรู้อะไร?

  • ฉันควรเลือกภาษาใด หากเป้าหมายยังคงอยู่ที่จะทำให้เกมของคุณสำเร็จเลือกคนที่คุณ / ทีมรู้ดีที่สุด? หากคุณต้องการเรียนรู้ภาษาเฉพาะคุณจะเลือกเครื่องมือในภาษานั้น

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


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


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

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


0

ไปที่นี่

แม้จะมีเอ็นจิ้นเกมจำนวนมากแต่คุณยังไม่มีทางเลือกมากมาย

  1. ข้อ จำกัด ใบอนุญาต เอ็นจิ้นบางตัวจะขัดขวางความสามารถของคุณในการเปิดตัวผลิตภัณฑ์โดยไม่ต้องเสียค่าธรรมเนียมใบอนุญาตจำนวนมากเช่นUnityซึ่งเคยคิดค่าใช้จ่ายเพิ่มเติมในการรวบรวม iOS เช่น ( เปลี่ยนแปลงในปี 2559 )
  2. แพลตฟอร์ม คุณสนใจเกี่ยวกับการกำหนดเป้าหมายหลายแพลตฟอร์มหรือไม่ อันไหน?
  3. 2D หรือ 3D? บางเครื่องยนต์รองรับ 2D
  4. ต้องใช้ฟิสิกส์? เครื่องมือบางอย่างให้ฟิสิกส์
  5. FPS, RTS หรือไม่ อาจเป็นการดีถ้าใช้เอ็นจิ้นที่มีความเฉพาะสำหรับประเภทเกมที่คุณกำลังสร้าง
  6. เห็นได้ชัดว่าคุณต้องการที่จะทำงานในภาษาที่คุณชื่นชอบ ไม่ชอบ C ใช่ไหม จากนั้นอย่าใช้ Allegro!
  7. คุณเป็นแฟนตัวยงของ OOP หรือไม่? รูปแบบ "overuse" OGRE ที่รู้จักกันดี
  8. การพัฒนาที่ใช้งานอยู่? คุณควรพิจารณาถึงการแลกเปลี่ยนระหว่างความพร้อมใช้งานของคุณสมบัติ edge edge (DX11 / OGL 4) กับความเสถียรของเครื่องยนต์ที่การพัฒนาลดลงเมื่อไม่กี่ปีที่ผ่านมา
  9. ฐานผู้ใช้? ฐานผู้ใช้ขนาดใหญ่มักจะหมายถึงฟอรัมที่ดีขึ้นง่ายต่อการตอบคำถามของคุณ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.