ข้อดี / ข้อเสียของ Unity3D เป็นตัวเลือกในการทำเกมมีอะไรบ้าง [ปิด]


64

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

ข้อดี:

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

จุดด้อย:

  • หลายคน?
  • กรรมสิทธิ์คุณทั้งหมดขึ้นอยู่กับเอกภาพและขีด จำกัด และไม่สามารถขยายได้
  • มันน้อยกว่า "การสร้างเกมตั้งแต่เริ่มต้น"
  • C ++ คงเป็นสิ่งที่ยอดเยี่ยม

ฉันคิดว่าเครื่องมือชนิดนี้น่าสนใจ แต่ควรใช้ที่โรงเรียนสำหรับโครงการที่มีผู้เขียนโปรแกรมมากกว่า 3 คนหรือไม่ เราเรียนรู้อะไรในแง่ของการเขียนโปรแกรมจากการใช้เครื่องมือประเภทนี้ (ฉันโอเคกับ python และ js แต่ฉันเกลียด C #)? เราสามารถใช้ Ogre แทนแม้ว่าเราจะเรียนรู้โดยตรง x เริ่มมกราคม ...


คุณต้องการที่จะทำความคุ้นเคยกับการสร้างแบบจำลอง 3 มิติ / การออกแบบอื่น ๆ แต่ดูที่เว็บไซต์และนี่ไม่ใช่กรณีของเกม .. เนื่องจากเกม 2D เป็นไปได้
Johnny Quest

1
@Johnny Quest ไม่จริง ๆ แล้วมันมีความหมายว่าอย่างไรอาจทำให้อึดอัดใจในการใช้งาน
Spooks

7
'C ++ คงเป็นสิ่งที่เจ๋ง' - จริงจังอะไรนะ การเขียนใน C ++ ตอนนี้ 'เจ๋ง' หรือยัง? โดยส่วนตัวแล้วฉันเกลียดภาษา (การพิมพ์ทั้งหมด, Python ไปตลอดทาง: p) แต่แน่นอนว่ามันเป็นคุณสมบัติทางภาษาที่ยอดเยี่ยมและมีห้องสมุดที่ชาญฉลาด
คอมมิวนิสต์คอมมิวนิสต์

1
Unity เป็นเอ็นจิ้นที่น่าทึ่ง แต่ ... ข้อเสียเล็กน้อยที่ควรระวัง: 1) Unity มีแนวโน้มที่จะเป็นหน่วยความจำ ใช้หน่วยความจำมากกว่าที่คุณคิด อาจเป็นเพราะแคชสิ่งต่าง ๆ เช่นพื้นผิว สิ่งนี้อาจทำให้เกิดปัญหาในการดีบักและแม้แต่ข้อผิดพลาดของ OOM บนอุปกรณ์มือถือ 2) ปัญหาด้านประสิทธิภาพอาจยากต่อการค้นหาที่อยู่และการแก้ไขเนื่องจากคุณกำลังจัดการกับกล่องดำ (ไม่มีซอร์สโค้ด) ตรวจสอบเฉดสีอย่างใกล้ชิดและดูว่าคุณจัดการฉากนั้นอย่างไร
milkplus

2
@ milkplus: นั่นเป็นสาเหตุที่ฉันคิดว่าความสามัคคีไม่ใช่สิ่งที่นักเรียนควรเรียนรู้ด้วย ตัวอย่าง: ฉันไม่เป็นไรที่จะสอนนักเรียนเกี่ยวกับการเขียนโปรแกรมการสอนพวกเขาหลามในตอนแรก แต่ ณ จุดหนึ่งหรืออื่นคุณต้องสอนพวกเขาเกี่ยวกับวิธีการทำงานระดับแม้กระทั่งพื้นฐาน ผู้คนควรใช้เครื่องมือเมื่อพวกเขารู้ทุกอย่างเกี่ยวกับสิ่งที่เครื่องมือทำ ถ้าไม่มันเป็นหายนะที่รอให้เกิดขึ้น คุณไม่สามารถแสดงให้เห็นถึงการอ้างอิงของ Knuth ด้วยบางสิ่งที่ซับซ้อนเท่าความสามัคคี
jokoon

คำตอบ:


66

"โปร" หลักของ Uinty3D คือมันเร็วอย่างบ้าคลั่ง ฉันไม่ได้พูดถึงประสิทธิภาพที่นี่ แต่เกี่ยวกับความเร็วในการพัฒนา คุณมี:

  • ไปป์ไลน์ของสินทรัพย์แบบรวม ไม่จำเป็นต้องใช้เวลากับระบบย่อยของทรัพยากรเลยไม่มีขั้นตอนการนำเข้า buggy ในการเขียนและแก้ไข: เพียงแค่วางไฟล์ลงในโฟลเดอร์และใช้งานได้
  • ตัวแก้ไขระดับรวม ไม่จำเป็นต้องใช้เวลากับเครื่องมือระดับ: เพียงติดต่อกับธุรกิจโดยตรง
  • การสนับสนุนการปรับแต่งและการดีบักที่ยอดเยี่ยม: ตัวแปรการเล่นเกมทั้งหมดของคุณจะถูกแสดงในขณะที่คุณเล่นและสามารถเปลี่ยนแปลงได้ทันทีเช่นกัน - และทั้งหมดนี้โดยไม่ต้องเขียนโค้ดบรรทัดเดียว หยุดเกมชั่วคราวเมื่อใดก็ได้หรือผ่านรหัสหนึ่งชุดคำสั่งพร้อมกัน
  • ไลบรารีที่รวบรวมไว้ค่อนข้างแน่นของส่วนประกอบสำเร็จรูป การแสดงผล, เสียง, ฟิสิกส์, ส่วนควบคุม - โค้ด "สำเร็จรูป" จำนวนมากถูกเขียนขึ้นแล้ว
  • Mono เป็นโฮสต์สคริปต์ ในขณะที่ใคร ๆ ก็เถียงกันเกี่ยวกับข้อดีของ C # เป็นภาษาห้องสมุดฐานของ Mono มีฟังก์ชั่นมากมาย คอลเล็กชัน I / O การมัลติเธรดและการแสดง LINQ อย่างบ้าคลั่งนั้นทำให้การพัฒนาเร็วขึ้นอย่างมาก

นอกจากนี้ Unity3d ยังดีมากในหลาย ๆ แพลตฟอร์ม แน่นอนว่าคุณไม่สามารถสร้างพูดได้เกม windows .exe จากนั้นมี "เพิ่งทำงาน" บน iPhone อย่างน่าอัศจรรย์ แต่ความสามัคคีนั้นใกล้เคียงกันมาก สิ่งที่จำเป็นต้องมีคือ "การปรับแต่ง" มากกว่า "การพอร์ต"

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

และแน่นอนว่า Unity3D นั้นมีความยืดหยุ่นน้อยกว่า "เอ็นจิ้นเกม" เช่น OGRE เพียงเล็กน้อยซึ่งมีเพียงไลบรารี / ซอร์สโค้ดเท่านั้น ประสิทธิภาพการทำงานนั้นไม่ได้ยอดเยี่ยมอย่างแน่นอนและเนื่องจากคุณมีสคริปต์แซนด์บ็อกซ์เท่านั้นคุณจึงไม่สามารถใช้แฮ็กระดับต่ำที่ชาญฉลาดเพื่อปรับปรุงให้ดีขึ้นได้ ตัวอย่างเช่นหาก Tree renderer แบบในตัวของ Unity ไม่พอใจคุณด้วยเหตุผลบางอย่างคุณไม่สามารถเขียนตัวของคุณเอง (ได้คุณทำได้ แต่มันจะทำงานผ่านสคริปต์และส่วนใหญ่อาจช้าเกินไปและยุ่งยากมากเกินไป ) ถึงกระนั้นก็เป็นไปได้ที่จะทำอะไรก็ได้กับ Unity ตราบใดที่คุณไม่รังเกียจที่จะสูญเสียประสิทธิภาพ

อย่างไรก็ตาม "con" ที่ใหญ่ที่สุดของ Unity3D คือการควบคุมแหล่งที่มา ดังที่กล่าวไปแล้วสินทรัพย์เซิร์ฟเวอร์ของ Unity มีค่าใช้จ่ายค่อนข้างมาก และมันก็ยากจริง ๆ มันไม่ได้มีการแตกแขนง ในขณะที่ Unity3D สนับสนุนระบบ SCM ของบุคคลที่สามในทางทฤษฎีการใช้มันถูกสร้างขึ้นด้วยอันตรายเช่นกัน ฉันเห็นการตั้งค่าการนำเข้าเปลี่ยนแปลงอย่างน่าอัศจรรย์หลังจาก SVN ส่งมอบหรือพารามิเตอร์ของวัตถุทั้งหมดหายไปหลังจากใช้ Perforce สิ่งเหล่านี้สามารถแก้ไขได้ แต่อย่างไรก็ตาม Unity3D + Source control = pain

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

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


3
ฉันจะอ้างอิง "ไปป์ไลน์แบบรวมสินทรัพย์ไม่จำเป็นต้องใช้เวลากับระบบย่อยของทรัพยากรเลยไม่ต้องมีขั้นตอนการนำเข้า buggy เพื่อเขียนและแก้ไข: เพียงวางไฟล์ลงในโฟลเดอร์และใช้งานได้"
nkint

7
และ "แย้ง" ที่ใหญ่ที่สุดของ Unity3D คือการควบคุมแหล่งที่มา
nkint

2
และ "ที่กล่าวว่าหากเรากำลังพูดถึงโครงการการศึกษาฉันขอแนะนำต่อต้านมัน"
nkint

เกี่ยวกับปัญหา "tree gen" ของคุณ ฉันคิดว่า esepcially ใน C # คุณสามารถเขียน C tree tree วางไว้ใน. dll และจัดการเป็น c ++ ได้ ดังนั้นคุณสามารถเข้าถึง "การแก้ไขเอนจิน" ของคุณเองในทางทฤษฎีได้อย่างเป็นเอกภาพ
daemonfire300

ฉันยอมรับว่าระบบ Unity GUI 2.0 นั้นไม่มีอะไรอื่นนอกจาก "แสดงผลส่วนที่เป็นข้อความ" - ระบบ แต่มันสามารถขยายได้ง่ายมาก ดู @AffinityUI หรือโครงการ Unity UI อื่น ๆ ที่มีน้ำหนักเบามากโอเพ่นซอร์สและทำให้คุ้มค่ากับระบบ UI
daemonfire300

28

ฉันจะเริ่มต้นด้วยการแสดงความคิดเห็นในรายการของคุณ:

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

  • การสนับสนุนผู้เล่นหลายคน (หรือขาดมัน) เป็นเพียงปัญหาเดียวหรืออย่างอื่นถ้าโครงการของคุณต้องการ

  • ฉันล้มเหลวที่จะดูว่า "กรรมสิทธิ์" คือการต่อต้าน หากนี่เป็นโครงการโรงเรียนคุณอาจไม่อยากใช้เวลาแฮ็คข้อมูลแหล่งที่มาของกรอบงานที่คุณใช้หรืออะไรก็ตาม นอกจากนี้ DirectX ก็เป็นกรรมสิทธิ์เช่นกัน

  • การใช้กรอบหรือเครื่องมือระดับสูงอย่าง Unity นั้นไม่มีอะไรผิดปกติอย่างแน่นอน "การสร้างเกมตั้งแต่เริ่มต้น" ไม่ใช่ความสำเร็จ - คุณคิดว่าอะไร "ตั้งแต่เริ่มต้น" คุณยังคงกำลังใช้กราฟิก API ของคนอื่นอยู่ runtime ของคนอื่น (แม้ C ต้องมี runtime library) "การสร้างเกม" คือสิ่งที่ได้รับความเคารพไม่ใช่ "การสร้างเกมโดยไม่ใช้เครื่องมือที่มีประโยชน์"

  • C ++ เป็นสิ่งที่ "เจ๋ง" เป็นเรื่องส่วนตัว ภาษามีการใช้บ่อยโดยผู้เชี่ยวชาญในอุตสาหกรรม แต่อาจไม่ใช่เพราะเหตุผลที่คุณคิด ในฐานะที่เป็นภาษาก็เริ่มที่จะแสดงอายุและอาจยุ่งยากมากเมื่อเทียบกับตัวเลือกที่ทันสมัย ไม่ว่าในกรณีใดภาษาเป็นเพียงเครื่องมือและโปรแกรมเมอร์ที่ดีควรสามารถเลือกภาษาใหม่ ๆ ได้อย่างง่ายดาย

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

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


13
ฉันจะพูดว่า "การสร้างเกม" เป็นสิ่งที่ได้รับความเคารพไม่ใช่ "การสร้างเกมโดยไม่ใช้เครื่องมือที่มีประโยชน์"
nkint

2
"ไม่มีอะไรผิดปกติกับการใช้เฟรมเวิร์กระดับสูงหรือเครื่องมืออย่าง Unity" การสร้างเกมตั้งแต่เริ่มต้น "นั้นไม่ใช่ความสำเร็จ - คุณคิดว่า" ตั้งแต่เริ่มต้นเป็นอย่างไร "มีอะไรผิดปกติ แต่มาถึง โปรดทราบว่าผู้ที่สร้างเทคโนโลยีใหม่จะมีระดับต่ำที่สุดเท่าที่จะเป็นไปได้เช่น Uncharted 2 แม้แต่ใช้กราฟิกที่ดัดแปลงภายใน API
concept3d

1
นักพัฒนาที่ต้องการอยู่ในระดับสุดยอดของกราฟิกคอมพิวเตอร์จะต้องมุ่งเน้นที่ระดับต่ำสุดและสร้างเอ็นจิ้นของตัวเองด้วยเกมของพวกเขา แต่นี่เป็นประมาณ 1% ของนักพัฒนาเกมทั้งหมดที่ดูเหมือนว่า หาก บริษัท กำลังสร้างเกมขั้นสูงเป็น Uncharted 1 ในขณะที่ Uncharted 3 กำลังจะออกมาพวกเขาก็น่าจะใช้เฟรมเวิร์กที่มีอยู่ได้บ้าง คำถามคือ: คุณกำลังสร้าง Uncharted 4 หรือไม่?
Katana314

9

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

คุณสามารถใช้เซิร์ฟเวอร์สินทรัพย์ของ Unity แต่ต้องมี 1) Unity Pro ($ 1,500) และ 2) ใบอนุญาตเซิร์ฟเวอร์สินทรัพย์ต่อที่นั่ง ($ 500) ฉันสมมติว่าคุณจะได้รับส่วนลดทางการศึกษาบางอย่าง แต่มันไม่ฟรี

หรือคุณสามารถใช้บางอย่างเช่น SVN กับ Unity ในการสนับสนุนอย่างถูกต้องคุณยังคงต้องใช้ Unity Pro

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


ฟังก์ชั่นผู้เล่นหลายคนนั้นค่อนข้างดีแม้ว่าตามจริงแล้วฉันยังไม่ได้ส่งเกมมาด้วย ในทางทฤษฎีคุณเพียงแค่แนบมุมมองเครือข่ายกับสิ่งต่าง ๆ และบอกสิ่งที่คุณต้องการทำให้เป็นอันดับเพื่อตั้งค่าการจำลองแบบอย่างถูกต้อง จากตรงนั้น UI บางอันทำงานเพื่อเชื่อมต่อกับเพื่อนอื่นและตั้งค่า แม้ว่าส่วนใหญ่จะเป็นแบบ peer-to-peer คุณอาจสามารถทำการเขียนโปรแกรมไคลเอนต์ / เซิร์ฟเวอร์ที่ทำงานด้วยความสามัคคีในโหมด headless แต่ฉันไม่ได้ยุ่งกับมัน แต่การทำให้คน A วิ่งไปรอบ ๆ บนหน้าจอของคน B นั้นทำได้ง่ายและรวดเร็ว

นอกจากนี้ C # ยังเป็นแง่บวกเท่าที่ฉันกังวล LINQ แสดงออกได้อย่างยอดเยี่ยม มีการจัดการข้อยกเว้นที่เหมาะสมและการรวบรวมขยะ มันมีกระบวนทัศน์ที่ทันสมัยมากขึ้นเช่นผู้ได้รับมอบหมาย, lambdas, อินเตอร์เฟสและการสนับสนุนทั่วไปที่ดีกว่า C ++ ( แก้ไข : นี่เป็นการโต้เถียงอย่างชัดเจนประเด็นของฉันคือ C # นั้นแทบจะเป็นภาษาที่ไม่ดีฉันไม่ต้องการถกเถียงกันเกี่ยวกับข้อดีข้อเสียของภาษาเทียบกับ C ++)

ข้อดีที่ใหญ่ที่สุดของการใช้ Unity นั้นอาจเป็นไปได้ คุณสามารถนำไฟล์ PSD หรือ Max (สมมติว่าคุณติดตั้ง 3ds max) ไว้ในโฟลเดอร์และนำเข้าแล้ว


3
@DeadMG ใช่ดีจริง ๆ ใช่ฉันรู้เกี่ยวกับการเพิ่มเทมเพลตการเขียนโปรแกรมและอื่น ๆ แต่ฉันคิดว่า C # เป็นภาษาที่ทันสมัยกว่า
Tetrad

3
@ เดเดอร์ฉันคิดว่าประเด็นคือ C # นั้นราบรื่นมากสำหรับกรณีการใช้งานหลายอย่างที่ C ++ ทิ้งไว้ให้เป็นที่ต้องการ ไม่ใช่ว่า C ++ จะทำสิ่งเหล่านั้นไม่ได้
เนท

3
สิ่งเดียวในรายการของเขาที่ฉันอาจไม่เห็นด้วยคือ 'การสนับสนุนทั่วไปที่ดีกว่า C ++'
Kylotan

1
@Kylotan "สำหรับ (เวกเตอร์ <vector <int>> :: iterator iterator = score.begin (); iterator! = score.end (); iterator ++) {" VS "foreach (var scoreet ในคะแนน)" .. .yup ฉันใช้ C #
Katana314

3
@ Katana314 แน่นอนใน C ++ for ( auto x : xs )11:
Eric

6

อัปเดต: ตอนนี้ Unity มีฟีเจอร์ทั้งหมดเหล่านี้แม้ในเวอร์ชั่นฟรีดังนั้นโปรดเพิกเฉยต่อคำตอบด้านล่าง


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


1
สิ่งนี้ไม่ถูกต้องอีกต่อไปและควรได้รับการปรับปรุงหรือลบออก
MichaelHouse

@ Byte56 ขอบคุณ ในอนาคตคุณจะสามารถอัปเดตโพสต์เก่า ๆ ได้ด้วยตนเองโดยไม่จำเป็นต้องแสดงความคิดเห็น
Michael Younkin

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

3

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

  • ก่อนอื่นใช่เซิร์ฟเวอร์สินทรัพย์มีราคาแพงและค่อนข้างน่ากลัวสำหรับทุกคนยกเว้นการใช้งานพื้นฐาน ประโยชน์ที่สำคัญคือการรวมเข้ากับ Unity และในขณะที่มีประโยชน์สำหรับการใช้งานง่ายและคุ้มค่าในโครงการที่ง่ายขึ้นสำหรับสิ่งที่ใหญ่กว่า (ซึ่งโดยทั่วไปจะเป็นโครงการที่มีงบประมาณสำหรับ AS) มันไม่ยืดหยุ่นเพียงพอ
  • การย้ายไปยังการควบคุมเวอร์ชันภายนอกเป็นเรื่องสำคัญที่จะต้องตระหนักว่า Meta Files ต้องได้รับการปฏิบัติเหมือนสินทรัพย์อื่น ๆ และเพิ่ม / ปรับปรุงในการควบคุมเวอร์ชันเสมอ การไม่ทำสิ่งนี้อาจเป็นสิ่งที่เกิดขึ้นในสถานการณ์การตั้งค่าของ Nevermind ที่หายไป
  • ในที่สุดการทำงานกับระบบควบคุมเวอร์ชันใด ๆ ใน Unity (รวมถึง Asset Server) การสื่อสารแบบทีมมีความสำคัญเมื่อทำงานกับสินทรัพย์ไบนารีเพื่อหลีกเลี่ยงการทำงานของกันและกัน

ในกรณีที่คุณต้องการรายละเอียดเพิ่มเติมเกี่ยวกับประเด็นเหล่านี้ฉันโพสต์เมื่อไม่นานมานี้เกี่ยวกับการใช้คอมไพล์กับ Unity จากประสบการณ์ของฉันในโครงการ Unity ที่มีขนาดใหญ่พอสมควร: http://goo.gl/ivJVR


เอาล่ะว้าวขอโทษด้วย ฉันเพิ่งสังเกตเห็นสิ่งนี้ถูกถาม (และตอบ) ในปี 2011! ฉันเพิ่มไปเพราะมันโผล่ขึ้นมาในจดหมายข่าว gamedev stackexchange ในสัปดาห์นี้
FlintZA

ไม่มีสิ่งเช่น "necro" ใน SE ในกรณีที่ความคิดเห็นของฉัน : P
Cypher

2

แท้จริง รองรับผู้เล่นหลายคน เป็นเพียงเรื่องของการเลือกเซิร์ฟเวอร์ที่คุณต้องการเรียกใช้เกมของคุณ

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

หากคุณเลือกที่จะอัพเกรดราคาค่อนข้างสูงชันสำหรับนักพัฒนาอินดี้ ดังนั้น ... ในระยะยาวหากคุณมีผู้เล่นจำนวนมากบนเซิร์ฟเวอร์ของคุณมากกว่าที่คุณจะต้องเสียค่าใช้จ่ายสำหรับเกมของคุณแทนที่จะอัปโหลดไปยังเว็บไซต์เช่น Download.com เป็นเกมเต็มรูปแบบฟรี นี่อาจไม่ใช่ปัญหาสำหรับบางคน แต่ส่วนใหญ่เราไม่สามารถจ่าย $ 2,500 จากกระเป๋าสำหรับเซิร์ฟเวอร์

ตัวอย่างเช่น - SmartFox pro อนุญาตให้ผู้เล่น 20 คนฟรี หากคุณต้องการอัพเกรดจะมีค่าใช้จ่ายคุณ 500 ยูโรซึ่งเป็นอีกเล็กน้อยในสหรัฐอเมริกาประมาณ 600-700 และที่อนุญาตสำหรับการเชื่อมต่อ 100

การอัปเกรดครั้งต่อไปสำหรับผู้เล่นสูงสุด 500 คนและเท่ากับ 1,000 ยูโร แต่ ... คุณไม่ต้องจ่าย 1,000 คุณจ่ายส่วนต่าง

ดังนั้นคุณจะต้องจ่ายเงินเพิ่มเพียง 500 ยูโรเท่านั้นแทนที่จะเป็น 1,000 ทั้งหมดการอัพเกรดครั้งล่าสุดรองรับการเชื่อมต่อไม่ จำกัด จำนวน 2,000 ยูโร ซึ่งเกือบ 3,000 เหรียญสหรัฐ

ดังนั้นหากคุณอัปเกรดจากการเชื่อมต่อ 500 ครั้งคุณต้องจ่าย 1,000 ยูโรถ้าคุณอัปเกรดจากการเชื่อมต่อ 100 ครั้งคุณต้องจ่ายเงิน 1,5000 ยูโรและแน่นอน 2,000 ยูโรจะอัปเกรดได้ฟรี

นอกจากนี้เซิร์ฟเวอร์นี้ติดตั้งง่ายด้วย Unity และมีวิดีโอแนะนำมากมายเกี่ยวกับวิธีการทำบน Youtube อย่างแน่นอน


ฉันทำงานกับ SmartFox Server อย่างกว้างขวางมาตั้งแต่ปี 2548 และมันก็ยิ่งใหญ่มาก มีเสถียรภาพมากและเป็นผู้ใหญ่
PippoApps.com
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.