C # มีอนาคตในการพัฒนาเกมหรือไม่?


18

ฉันเพิ่งรู้ว่า MMO Minecraft นั้นขับเคลื่อนโดย Java จากการสัมภาษณ์เมื่อเร็ว ๆ นี้ที่ CVG.co.uk เกี่ยวกับความร่วมมือที่เป็นไปได้ระหว่างเพื่อนร่วมงานสองคนในอดีตและปัจจุบัน ในการสัมภาษณ์เขากล่าวอย่างตรงไปตรงมาว่าผู้ก่อตั้ง Minecraft เป็นผู้ทำโค้ด Java และเขาเป็นรหัส C หรือ C ++ ดังนั้นพวกเขาจึงไม่สามารถเข้ากันได้ ดังนั้นการร่วมมือกับโครงการในอนาคตจึงเป็นเรื่องยาก

นี่ทำให้ฉันคิดว่าถ้า Java สามารถทำเช่นนั้น? อนาคตจะเป็นอย่างไรสำหรับ MS ภาษา C # ที่เป็นที่นิยมมากและแพลตฟอร์ม. Net เท่าที่เกมหรือการพัฒนาเกมกระแสหลักเกี่ยวข้อง



3
ทุกอย่างเกี่ยวกับการแสดงที่คุณต้องการ Minecraft เป็นภาษาที่มีการจัดการ แต่สำหรับเกมกราฟิกระดับสูง, C หรือ C ++ หรือภาษาพื้นเมืองอื่น ๆ ที่ต้องการ

19
Minecraft ไม่ใช่ MMO จริงๆ
DeadMG

3
@ Guillaume86: รหัส Jittered ในขณะนี้สามารถทำได้ดีกว่ารหัสเนทิฟและ Jits เริ่มดีขึ้นตลอดเวลา นอกจากนี้ภาษาที่ได้รับการจัดการจะผลิตโปรแกรมที่มีประสิทธิภาพมากกว่า ดังนั้นในตอนท้าย C ++ จะสูญเสียความได้เปรียบด้านประสิทธิภาพและเป็นเรื่องยากที่จะเขียนโปรแกรมที่มีประสิทธิภาพใน (ซึ่งหมายถึงเวลาในการพัฒนาที่ยาวนานขึ้นและค่าใช้จ่ายที่มากขึ้น)
Martin

4
JIT สามารถเอาชนะโค้ดเนทีฟที่เขียนได้ไม่ดีและไม่ได้รับการปรับแต่งอย่างดี ได้รับแม้กับ C # คุณมีตัวเลือกในการเขียนเซกเมนต์ที่ละเอียดอ่อนเหล่านั้นใน C / C ++ หากคุณต้องการ
coderanger

คำตอบ:


22

คุณควรตรวจสอบXNA แพลตฟอร์มสำหรับสร้างเกมสำหรับ Windows, Xbox 360 และ Windows Mobile 7 ทั้งหมดใน C # และ. NET


11

ฉันทำงานด้านการพัฒนาเกมมืออาชีพมานานกว่า 5 ปีแล้ว เวลานี้ฉันใช้ C # เกือบทั้งหมด

โดยทั่วไปแล้ว C # และ. NET stack นั้นยอดเยี่ยมมากสำหรับเทคโนโลยีฝั่งเซิร์ฟเวอร์ ฉันทำงานกับเกม MMO อย่างน้อย 4 เกมพร้อมเซิร์ฟเวอร์ที่เขียนใน C # นอกจากนี้ด้วย Unity3D ที่ได้รับความนิยมเบราว์เซอร์และเกมมือถือจำนวนมากต้องการ C # อย่าลืมเฟรมเวิร์ค XNA: มันไม่ใช่เอ็นจิ้นที่เหมาะกับเกมคอนโซล AAA แต่มีเกมที่ยอดเยี่ยมมากมายที่ทำกับมัน

โดยรวม C # มีอนาคตที่แน่นอนในการพัฒนาเกม


มันเป็นคำถามเก่า แต่มีสิ่งหนึ่งที่รบกวนจิตใจฉัน "เทคโนโลยีฝั่งเซิร์ฟเวอร์" - คุณหมายถึงอะไรอย่างนั้น? WindowsService ทำงานบน Windows Server บางเครื่องโดยใช้. NET Framework หรือไม่ ฉันคิดเสมอว่าเซิร์ฟเวอร์นั้นทำใน c ++ และทำงานบน unix os ฉันแค่อยากรู้อยากเห็น
มาร์แชลล์

ใช่ว่า มีเซิร์ฟเวอร์จำนวนมากที่ใช้งาน Windows บนนั้นรวมถึงเซิร์ฟเวอร์ที่ทำงานบนไซต์นี้อย่าง AFAIK
ไม่เป็นไร

ขอบคุณที่กลับมาหาฉัน เพื่อชี้แจง - "ทำงานบน Windows" ในฐานะบริการ Windows ที่ไม่มีส่วนหัวหรือโปรแกรมเช่น WinForms (มีการกำหนดค่าในตัวหรืออะไรทำนองนั้น)
มาร์แชลล์

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

10

ดังที่ได้กล่าวไว้Monoนำ C # ไปสู่หลายแพลตฟอร์ม ในพื้นที่เดียวกันนั้นคุณจะพบTaoซึ่งเป็นไลบรารีที่มีหลายแพลตฟอร์มสำหรับ Mono และ. NET ที่อนุญาตให้เข้าถึง Cg, DevIL, FreeGLUT, GLFW, GLU, ODE, OpenE, OpenGL, PhysicsFS, SDL และ WGL เห็นได้ชัดว่าไม่แข็งแกร่งเท่าฟีเจอร์ XNA (ซึ่งเป็นส่วนประกอบพื้นฐานของเครื่องยนต์โดยตรงกับผู้พัฒนา) แต่มันมีพลังมาก

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

ตามที่ได้รับการกล่าวถึง XNA ควบคู่กับ C # ช่วยให้นักพัฒนาอิสระสามารถเผยแพร่ไปยัง 360, PC และ Windows Phone 7

โดยรวมแล้ว C # ยังมีชีวิตอยู่และพัฒนาได้ดีในฐานะภาษาเครื่องยนต์ / เกม

ในฐานะที่เป็นภาษาเครื่องมือมันใช้งานได้ทุกที่ ฉันได้สร้างเครื่องมือสำหรับ EA, THQ และตอนนี้ Arkadium ทั้งหมดใช้ C #


5

C # ไม่เพียง แต่มีอนาคตในการพัฒนาเกมเท่านั้น แต่ยังมีของขวัญ - Check out Magickaเกมที่วางจำหน่ายเมื่อเร็ว ๆ นี้ (และขายดี) ที่พัฒนาโดยใช้ XNA ดูที่รายการDream.Build.Play ที่ชนะ C # เป็นวิธีที่ทำงานได้ (แม้ว่าตอนนี้ฉันไม่เชื่อว่ามันเป็นตัวเลือกที่เหมาะสมสำหรับเกมทั้งหมด )

เมื่อเวลาผ่านไปเราจะเห็นว่ามันกลายเป็นที่นิยมมากขึ้นในอุตสาหกรรมเกมคอมพิวเตอร์ แต่ฉันไม่คาดหวังว่าจะเปลี่ยนเป็น C # ทันที


4

Java เป็นภาษาที่หลากหลายมากและมีความสามารถสำหรับผู้คนในการเขียนโค้ดเกมตั้งแต่เกมบนเว็บทั่วไป (Java applets / GWT พร้อมปลั๊กอินเสริม) จนถึงสัตว์สามมิติเต็มรูปแบบ (ชำระเงินJMonkey ) ดังนั้นฉันจะไม่พูดความจริงว่า Java สามารถทำสิ่งนั้นเป็นนักฆ่า C # เพราะคนส่วนใหญ่รู้ว่า Java สามารถทำสิ่งนั้นได้แล้ว

C # จะยังคงได้รับความนิยมแม้ว่ามันจะเชื่อมโยงกับ Windows, Windows mobile และ Xbox ดีกว่า Java อย่างหลีกเลี่ยงไม่ได้ (ซึ่งจริงๆแล้วผู้พัฒนาเกมทั้งหมดสนใจเรื่องการกำหนดเป้าหมายดังนั้นข้อดีข้ามแพลตฟอร์มที่ Java เสียไปส่วนใหญ่) ยังได้ XNA ซึ่งถอดได้จริงๆในแง่ของการพัฒนาเกม

ดังนั้นใช่ Java เป็นแพลตฟอร์มที่ดีอย่างสมบูรณ์แบบสำหรับการพัฒนาเกมหากใครต้องการที่จะลงเส้นทางนั้น แต่แน่นอนว่าไม่มีนักฆ่า C # หรือ. NET


4

ลองดู Unity 3D; การเขียนสคริปต์ C # (และ JavaScript และ Boo) ในเอนจิ้น 3D ประสิทธิภาพสูง

เพิ่ม XNA เข้ากับมิกซ์และคุณกำลังดูสองแพลตฟอร์มที่ยอดเยี่ยมสำหรับการใช้ C # เพื่อพัฒนาเกม


ความสามัคคียังมีเครื่องเล่นเว็บเพื่อให้คุณสามารถเล่นในเบราว์เซอร์ ปลั๊กอินไม่มีส่วนแบ่งการตลาดขนาดใหญ่เช่นแฟลชหรือจาวา แต่ก็เป็นไปได้
Michael Coleman

ใช่เพื่อความสามัคคี !!
Daniel Pendergast

1

ใช่ C # มีอนาคตด้วย XNA framework ส่วนใหญ่ชอบ c ++ เพราะความเร็ว แต่ C # ไม่ว่าช้าอีกต่อไป ...


2
มันไม่ได้ช้าเลย มันไม่ค่อยเลวร้ายไปกว่า 70% ของความเร็วของซีพลัสพลัสและบางครั้งก็อาจเร็วขึ้น!
Noldorin

4
การทำงานของ CPU ที่ถูกผูกไว้ใน C # นั้นค่อนข้างเร็ว แต่มีการตรวจสอบพิเศษบางอย่างซึ่งช่วยเพิ่มความปลอดภัยของรหัสอย่างมากมายโดยมีค่าใช้จ่ายเล็กน้อยในการทำงาน แต่ที่แย่กว่า C ++ มากคือการใช้หน่วยความจำและการจัดการ มันง่ายกว่ามากและมีแนวโน้มที่จะรั่วไหลน้อยลงใน C # แต่ประสิทธิภาพการทำงานของ GC นั้นสามารถเป็นสุนัขที่สมบูรณ์ได้
justin.m.chase

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


1

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

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


1

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

ไม่มีอะไรที่จะไกลไปจากความจริง

C # และ Java ถูกใช้ในเกมมาเป็นเวลานาน C และ C ++ มีให้นานขึ้นและยังคงเป็นอยู่ Lua ใช้เป็นภาษาสคริปต์สำหรับเกมยอดนิยมบางชิ้นโดยมีเอ็นจิ้นเขียนเป็นภาษา C / C ++

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

กุญแจสำคัญในขณะนี้คือประสิทธิภาพ หากภาษาการเขียนโปรแกรม / ไลบรารีใด ๆ ที่ใช้ทำให้เกิดการหยุดชั่วคราว / ไม่สามารถควบคุมได้ในแอปพลิเคชั่นในเกมแอคชั่นนั่นจะทำให้หน้าไม่แบน ในเกมผจญภัยแบบข้อความที่อาจไม่เป็นไร

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