มีเฟรมเวิร์กใดบ้างที่อนุญาตให้ฉันเขียนเกมใน C # บน Linux? [ปิด]


10

ฉันกำลังมองหาบางอย่างที่เป็นทางเลือกของ XNA - ฉันไม่สนใจหรอกว่าเป็นเครื่องมือ 2D หรือ 3D ไม่ใช่เพราะฉันไม่ชอบ Windows หรือเป็น anti-Microsoft เป็นเพราะฉันชอบใช้ Linux โค้ดใน Linux อย่างสมบูรณ์ (สำหรับ C # ฉันใช้ Mono อย่างชัดเจน) และไม่เคยมีฮาร์ดแวร์ใด ๆ ที่จะสนับสนุนการเขียนโปรแกรมใน XNA จริง ๆ เพียงเพราะการ์ดวิดีโอของฉันอายุ 6 ปี ฉันยังไม่มีซีดี Windows 7 / Vista สำหรับ DirectX 10

ดังนั้นสำหรับการพัฒนาเกมฉันติดอยู่ในยุคหิน แต่ฉันชอบ C # มากและเกลียดที่จะต้องวางมันเป็นภาษาเนื่องจากสิ่งนี้

มีอะไรที่ฉันพอจะทำได้บ้าง?


13
ฉันเกลียดเมื่อเลือกคำตอบอย่างรวดเร็ว ไม่ต้องเสียเวลาในการโพสต์คำตอบที่ลึกกว่าหรือละเอียดกว่านี้
AttackHobo

6
@AttackingHobo หากคุณมีคำตอบที่ละเอียดยิ่งขึ้นเพื่อนำเสนอโดยทั้งหมดหมายความว่าไปข้างหน้า
Jonathan Connell

1
@ Jonathan ปัญหาคือคำตอบแรกไม่ใช่คำตอบที่ดีที่สุด ในความเป็นจริงมันมักจะเป็นอย่างน้อยการวิจัยหรือคิดน้อย มีเหตุผลที่เรามีป้ายเงินสำหรับการตอบก่อนและถูกต้อง - มันเป็นความสำเร็จหรือรางวัลสำหรับการตอบคำถามที่ตายแล้ว
doppelgreener

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

เฮ้ @AttackingHobo มันจะดีมากที่คุณโพสต์ผู้สมัครของคุณเนื่องจากฉันได้รับการมองหาบางสิ่งบางอย่างที่คล้ายกันออกมาจากความสนใจเรื่อย ๆ เช่น 5 ปี จากช่วงเวลานั้นฉันสามารถจำได้แค่เสื้อคลุมของ Irrlicht และเสื้อคลุม Ogre ที่ทำงานได้อย่างถูกต้องเท่านั้นและฉันไม่ชอบพวกเขา: Irrlicht เป็นรถม้าชนิดเล็ก แต่น่าจะแก้ไขได้และสำหรับ Ogre ที่จัดการมันจะดีกว่าถ้าเลือก NeoAxis บางทีคุณอาจโชคดีที่ได้พบกับสิ่งที่ดีที่ฉันพลาดไปฉันเป็นแค่ผู้ชายคนหนึ่งเท่านั้นดังนั้นมันจึงเป็นการดีที่จะแบ่งปัน :)
EnoughTea

คำตอบ:


9

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

อย่างไรก็ตามในเร็ว ๆ นี้เพื่อเป็นท่าเรือ XNA บน iOS และ Android รูปลักษณ์ที่มีแนวโน้มมาก: Exen ไม่ทราบเกี่ยวกับข้อกำหนด

เมื่อคุณใช้คำว่า "engine" คุณอาจต้องการบางสิ่งที่ซับซ้อนกว่านี้ ผมจำได้เพียงคนเดียวที่เต็มเปี่ยม C # เครื่องมือราคาถูกที่สามารถทำงานบนลินุกซ์และได้สวยให้อภัยความต้องการของฮาร์ดแวร์: NeoAxis

แต่ถ้าเป้าหมายหลักของคุณคือ 2D เกมแล้วคุณอาจตรวจสอบข้ามแพลตฟอร์มห้องสมุดเกมนี้น้อย: AgateLib สองปีที่ผ่านมามันดีที่จะใช้ แต่ค่อนข้างบั๊กนี่อาจจะเป็นสิ่งที่ดีกว่า

อย่างไรก็ตามถ้ามีอะไรอื่นล้มเหลวคุณสามารถใช้ OpenGL กับ SDL ผ่านOpenTKหรือSDL.Net


3
เพิ่งทราบ - ExEn ได้รับการดูแลโดยAndrew Russelของเราเอง!
BlueRaja - Danny Pflughoeft

1
-1 ในขณะที่ ExEn ดูเหมือนว่ามีประโยชน์และน่าสนใจ แต่ก็ไม่ได้เป็นทางเลือกที่เข้ากันได้กับลินุกซ์ของ XNA "เอนจิ้น 2D หรือ 3D" ดูเหมือนจะอ้างถึงเอ็นจิ้นกราฟิก
AttackHobo

MonoGame อยู่ในการพัฒนามาหลายปีและความคืบหน้าดูดีเมื่อไม่นานมานี้ แต่การจดจำประสบการณ์ของฉันเมื่อฤดูใบไม้ผลินี้ฉันมีศรัทธาใน ExEn มากขึ้น ถ้ามันมีสถาปัตยกรรมที่ดีสักหน่อยมันจะเป็นไปได้ที่จะแทนที่ MonoMac ด้วย OpenTk
EnoughTea

สำหรับ 2D แม้ GTK # อาจเป็นตัวเลือกในการพิจารณา
George Edison

20

หาทางเลือกอื่นทำไมเมื่อคุณสามารถใช้พอร์ตได้

"MonoGame เป็นการใช้งาน OpenGL ฟรีของ XNA 4.0 Framework มันถูกสร้างขึ้นบนช่วงที่ยอดเยี่ยมของคอมไพเลอร์โมโนและเข้ากันได้กับ MonoTouch (iOS), Mono สำหรับ Android (Android), MonoMac (Mac OS X), Mono สำหรับ Windows และ ตอนนี้ Linux!

เป้าหมายของเราคือการอนุญาตให้นักพัฒนา XNA บน Windows และ Windows Phone 7 เชื่อมต่อพอร์ตเกมของพวกเขาไปยัง iOS / Android / Mac OS X / Windows / Linux และวีซ่ากลับกันได้โดยไม่ยุ่งยาก "

http://monogame.codeplex.com

https://github.com/mono/MonoGame


2

2 ไลบรารี่ที่ดีสำหรับการเรนเดอร์ซอฟต์แวร์:

  1. SDL (C / C ++) หรือ SDL.NET เนื่องจากสร้างขึ้นสำหรับฮาร์ดแวร์OLDและสามารถเลือกใช้ OpenGL ได้หากคุณต้องการอัพเกรดฮาร์ดแวร์ในภายหลัง SDL ข้ามแพลตฟอร์มทั้งหมดสำหรับระบบเดสก์ท็อป
  2. Allegro เป็นห้องสมุดเก่าแก่อีกแห่งที่เหมาะสำหรับการผลักพิกเซลเป็นรายบุคคลโดยไม่ต้องใช้ฮาร์ดแวร์กราฟิกพิเศษ

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


-1: Allegro รุ่น 5 ออกมาในปีนี้และมีการอัปเดตเป็นประจำ ดังนั้น ... ฉันไม่รู้ว่าคุณกำลังพูดถึงอะไร นอกจากนี้ทำไมไม่มีการพูดถึง SFML
Nicol Bolas

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

1

คุณอาจต้องการตรวจสอบ ANX:

ANX.Framework เป็นเฟรมเวิร์กซึ่งเป็นซอร์สที่เข้ากันได้กับ Microsoft XNA Framework 4.0 ความเข้ากันได้ของแหล่งที่มาหมายความว่าคุณสามารถ "แปล" เกม XNA เป็นโครงการเกม ANX โดยเพียงแค่เปลี่ยนเนมสเปซทั้งหมดจาก Microsoft.XNA.Framework เป็น ANX.Framework ข้อดีของ ANX ก็คือคุณสามารถสลับ RenderSystem, InputSystem และ AudioSystem ได้ ด้วยการสลับระบบนี้คุณจะไม่ถูก จำกัด ให้เรียกใช้เกมของคุณอีกต่อไปโดยใช้ DirectX9 ซึ่ง XNA ใช้อยู่ ANX มาพร้อมกับ DirectX10 RenderSystem เป็นค่าเริ่มต้น ปัจจุบัน DirectX 11, DirectX 11.1 และ OpenGL 3 RenderSystem กำลังอยู่ในระหว่างการพัฒนา สิ่งนี้จะทำให้สามารถรันเกมของคุณบน Linux และแพลตฟอร์มอื่น ๆ ที่รองรับโดย OpenGL และอื่น ๆ เพียงแค่เปลี่ยนเนมสเปซ

~ เว็บไซต์ Codeplex: http://anxframework.codeplex.com/

มันยังอยู่ภายใต้การพัฒนาอย่างหนัก แต่คุณสมบัติ XNA พื้นฐานส่วนใหญ่ถูกนำไปใช้งาน

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