Có khung nào cho phép tôi viết trò chơi bằng C # trên Linux không? [đóng cửa]


10

Tôi đang tìm kiếm thứ gì đó giống như một giải pháp thay thế cho XNA - Tôi không quan tâm đó là động cơ 2D hay 3D. Không phải vì tôi không thích Windows hay chống Microsoft; đó là vì tôi thích chạy Linux, mã hoàn toàn trong Linux (đối với C # tôi sử dụng Mono, rõ ràng) và không có nghĩa là có phần cứng nào thực sự hỗ trợ lập trình trong XNA, đơn giản vì card màn hình của tôi đã 6 tuổi. Tôi cũng không có CD Windows 7 / Vista cho DirectX 10.

Do đó, để phát triển trò chơi, tôi bị mắc kẹt trong thời kỳ đồ đá. Tuy nhiên, tôi rất thích C # và rất ghét phải bỏ nó làm ngôn ngữ.

Có bất cứ điều gì tôi có thể làm?


13
Tôi ghét khi một câu trả lời được chọn quá nhanh. Nó không để lại thời gian cho câu trả lời sâu hơn hoặc chi tiết hơn sẽ được đăng.
Tấn

6
@AttackingHobo Nếu bạn có câu trả lời chi tiết sâu hơn để đề xuất, bằng mọi cách hãy tiếp tục.
Jonathan Connell

1
@Jonathan Vấn đề là câu trả lời đầu tiên không thường xuyên là câu trả lời hay nhất. Trong thực tế, nó thường có thể được nghiên cứu ít nhất hoặc ít suy nghĩ nhất. Có một lý do chúng tôi có huy hiệu bạc để trả lời trước và đúng - đó là thành tích hoặc phần thưởng cho việc trả lời câu hỏi đã chết.
doppelgreener

@Jonathan Connell Tôi đã nghiên cứu một cái gì đó tương tự trong hơn một tuần rồi. Tôi đã tìm thấy một vài ứng cử viên khác nhau, nhưng tôi muốn thực sự sử dụng chúng, và xem những ứng cử viên nào thực sự khả thi. Chỉ cần gõ câu hỏi vào google và đăng một cách mù quáng một số liên kết là một câu trả lời không hữu ích lắm.
Tấn

Xin chào @AttackingHobo, thật tuyệt khi bạn đăng các ứng cử viên của mình, vì tôi đã tìm kiếm thứ gì đó tương tự với sự quan tâm thụ động trong 5 năm. Từ lúc đó, tôi chỉ có thể nhớ trình bao bọc Irrlicht và trình quản lý trình bao bọc Ogre hoạt động chính xác và tôi không thích chúng: Irrlicht có lỗi nhưng có lẽ có thể sửa được, và đối với Ogre được quản lý, tốt hơn là chọn NeoAxis. Có lẽ bạn đã may mắn tìm thấy thứ gì đó tốt mà tôi đã bỏ lỡ, tôi chỉ là một chàng trai, vì vậy sẽ rất tuyệt khi chia sẻ nó :)
EnoughTea

Câu trả lời:


9

Tôi e rằng không có thứ gì thay thế hoàn toàn cho XNA trong thế giới của các khung nền tảng đa nền tảng C #. Monoxna đã chết từ lâu và rất ít công cụ đa nền tảng khác sử dụng C # làm ngôn ngữ được lựa chọn.

Tuy nhiên, cổng XNA sắp ra mắt này trên iOS và Android có vẻ rất hứa hẹn: ExEn . Không biết về các yêu cầu mặc dù.

Vì bạn đã sử dụng từ "engine", bạn có thể muốn một cái gì đó phức tạp hơn. Tôi chỉ có thể nhớ một công cụ C # đầy đủ giá rẻ có thể chạy trên Linux và có các yêu cầu phần cứng khá dễ tha thứ: NeoAxis .

Tuy nhiên, nếu mục tiêu chính của bạn là trò chơi 2D, thì bạn có thể kiểm tra thư viện trò chơi đa nền tảng nhỏ này: AgateLib . Hai năm trước, thật tuyệt khi sử dụng nhưng có phần lỗi, có lẽ bây giờ mọi thứ đã tốt hơn.

Dù sao, nếu có bất cứ điều gì khác, bạn luôn có thể sử dụng OpenGL với SDL thông qua OpenTK hoặc SDL.Net .


3
Chỉ cần một lưu ý - ExEn được duy trì bởi chính Andrew Russel của chúng tôi !
BlueRaja - Daniel Pflughoeft

1
-1. Mặc dù ExEn có vẻ hữu ích và thú vị, nhưng nó không phải là một thay thế tương thích linux với XNA. "Công cụ 2D hoặc 3D" dường như đang đề cập đến công cụ đồ họa.
Tấn

MonoGame đã được phát triển trong vài năm và gần đây tiến triển có vẻ tốt, nhưng nhớ lại trải nghiệm của tôi với nó vào mùa xuân này, tôi có thêm niềm tin vào ExEn. Nếu nó có một chút kiến ​​trúc tốt, sẽ rất có thể thay thế MonoMac bằng OpenTk.
EnoughTea

Đối với 2D, thậm chí GTK # có thể là một tùy chọn để xem xét.
George Edison

20

Tại sao tìm kiếm một sự thay thế khi bạn có thể sử dụng một cổng?

"MonoGame là một triển khai OpenGL miễn phí của Khung XNA 4.0. Nó được xây dựng dựa trên phạm vi tuyệt vời của trình biên dịch Mono và tương thích với MonoTouch (iOS), Mono cho Android (Android), MonoMac (Mac OS X), Mono cho Windows và bây giờ là Linux!

Mục tiêu của chúng tôi là cho phép các nhà phát triển XNA trên Windows & Windows Phone 7 chuyển các trò chơi của họ sang iOS / Android / Mac OS X / Windows / Linux và ngược lại, với rắc rối tối thiểu. "

http://monogame.codeplex.com

https://github.com/mono/MonoGame


2

2 thư viện tốt cho kết xuất phần mềm:

  1. SDL (C / C ++) hoặc SDL.NET, vì chúng được xây dựng cho phần cứng OLD và có thể tùy chọn sử dụng OpenGL, nếu bạn muốn nâng cấp phần cứng của mình sau này. SDL hoàn toàn đa nền tảng cho các hệ thống máy tính để bàn.
  2. Allegro là một thư viện trường học cũ khác tốt cho việc đẩy từng pixel mà không cần phần cứng đồ họa đặc biệt.

Tôi coi Allegro mạnh hơn từ quan điểm đẩy pixel, nhưng tôi không nghĩ nó thấy mức độ hoạt động tương tự như SDL, và trong khi SDL được cập nhật bởi tác giả của nó, tôi nghĩ rằng điều này ít xảy ra với Allegro.


-1: Phiên bản 5 của Allegro đã ra mắt trong năm nay và nó có các bản cập nhật thường xuyên. Vì vậy, ... tôi không biết bạn đang nói về cái gì. Ngoài ra, tại sao không đề cập đến SFML?
Nicol Bolas

Nhân tiện, kinh nghiệm của tôi là với Allegro 4. "Ngoài ra, tại sao không đề cập đến SFML?" - Tôi có nghĩa vụ phải đề cập đến mọi thư viện ngoài kia, bao gồm cả những thư viện mà tôi không có hứng thú / kinh nghiệm trong đó? Tại sao Den hay Vigil không đề cập đến SFML? Có lẽ bởi vì họ không muốn? Bạn không cần phải cố gắng biện minh cho -1 của mình nữa.
Kỹ sư

1

Bạn có thể muốn kiểm tra ANX:

ANX.Framework là một khung tương thích nguồn với khung XNA của Microsoft 4.0. Khả năng tương thích nguồn có nghĩa là bạn có thể "dịch" dự án trò chơi XNA thành dự án trò chơi ANX bằng cách thay thế tất cả các không gian tên từ Microsoft.XNA.Framework sang ANX.Framework. Ưu điểm của ANX chỉ đơn giản là bạn có thể trao đổi RenderSystem, InputSystem và AudioSystem. Bằng cách hoán đổi các hệ thống này, bạn không còn bị giới hạn khi chạy trò chơi của mình bằng DirectX9 mà XNA đang sử dụng. ANX đi kèm với DirectX10 RenderSystem làm mặc định. DirectX 11, DirectX 11.1 và OpenGL 3 RenderSystem hiện đang được phát triển. Điều này sẽ giúp bạn có thể chạy các trò chơi của mình trên Linux và các bản đồ khác được OpenGL hỗ trợ, v.v ... chỉ bằng cách hoán đổi các không gian tên.

~ Trang web Codeplex: http://anxframework.codeplex.com/

Nó vẫn đang được phát triển mạnh mẽ nhưng hầu hết các tính năng XNA cơ bản được triển khai.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.