Thư viện C # nào có thể được sử dụng để hỗ trợ phát triển trò chơi? [đóng cửa]


58

Vì các trò chơi dựa trên nhiều hệ thống con khác nhau như đồ họa (DirectX, OpenGL, ...), âm thanh (OpenAL, Ogg Vorbis, ...) hoặc vật lý (va chạm, ...), những thư viện nào bạn biết là hữu ích để phát triển trò chơi trong C # và họ mang lại lợi ích gì?

Câu trả lời:


63

Đồ họa / Âm thanh

  • Trình bao bọc cấp cao XNA trên DirectX9. Cho phép bạn đứng dậy và chạy nhanh. Hỗ trợ PC, Xbox360 và windows phone 7. Hỗ trợ âm thanh Xact cũng như API SoundEffect của riêng nó.
  • SlimDX Trình bao bọc cấp thấp hơn trên DX9 / 10/11. Nếu nó nằm trong DX SDK, nó được gói ở đây.
  • OpenTK Wrapper trên OpenGL / AL.
  • SDL.net Một cổng của lib SDL phổ biến.

Động cơ

  • Kiến trúc công cụ trò chơi dựa trên thành phần WaveEngine , công cụ vật lý C # api, 2d và 3d, hiệu ứng hình ảnh đẹp mắt, hỗ trợ đa nền tảng Android, Linux, Mac, iOS và Windows, hệ thống bố cục tiên tiến và nhiều hơn nữa.
  • NeoAxis Một công cụ 3D hỗ trợ công cụ vật lý NVIDIA PhysX, liên kết C #, hỗ trợ WPF & Windows Forms, lựa chọn phong phú các công cụ như bản đồ, đối tượng, mô hình, vật liệu, trình chỉnh sửa địa hình, trong trình duyệt trò chơi bằng Chromium, Pathfinding với Navigation Mesh và hơn thế nữa.
  • Mô-men xoắn Một động cơ 2D / 3D cho XNA. Suppport biên tập tốt, trò chơi trong nhà để xe gần đây đã tái đầu tư vào công cụ sau một thời gian bỏ bê.
  • công cụ trò chơi truevision 3d C ++ với các ràng buộc c #
  • Tiên đề Một bản viết lại của Ogre trong c #. Hỗ trợ nhiều API kết xuất được hỗ trợ.
  • Unity là một công cụ đồ họa / trò chơi C ++ hỗ trợ kịch bản trò chơi trong C #
  • AngelXNA Một cổng của khung sắp xếp trước góc mở nguồn của EALA

Vật lý

  • Farseer Một công cụ vật lý 2D phổ biến, hỗ trợ .net (máy tính để bàn), nhỏ gọn (xbox) và micro (silverlight).
  • Jitter một công cụ vật lý 3D tương đối mới, tốt hơn nhiều so với hoàn thành của nó.
  • Box2Dx Một cổng trực tiếp của box2D
  • Box2D.XNA Một cổng khác của Box2D cho XNA; gần đây hơn Box2Dx
  • JigLib
  • BulletX Một cổng c # của Bullet, dường như bị bỏ rơi.

1
Tổng quan tuyệt vời, đó chính xác là loại câu trả lời tôi đang tìm kiếm!
Michael Klement

2
Bởi vì XNA là một cộng đồng lớn như vậy, tôi muốn thêm Henge3D vào vật lý, Sunburn cho Đồ họa, và sgMotion và XNAnimation vào Đồ họa (hoặc Hoạt hình).
Chris Ridenour

TorqueX không còn được hỗ trợ bởi các trò chơi trong nhà để xe.
Markus

3
Trong những năm kể từ khi câu trả lời này được đăng lần đầu tiên, Microsoft đã ngừng hỗ trợ XNA. Thư viện đó có lẽ không còn là ý tưởng hay để sử dụng nữa, thay vào đó hãy sử dụng MonoGame.
jhocking

10

Rõ ràng có XNA từ chính microsoft: http://creators.xna.com/en-US/ Các trò chơi được tạo bằng XNA hoạt động trên Windows và (thông qua câu lạc bộ Creators) trên Xbox360. Tôi nghĩ rằng điều này là hoàn hảo để có được một bàn chân ướt trong phát triển trò chơi nhanh chóng. Tôi chưa bị ướt chân trong XNA, vì vậy tôi chưa thể đánh giá được. Nhưng, nhìn từ bên lề có vẻ như điều tốt nhất kể từ khi bánh mì cắt lát. Chắc chắn, bạn không thể làm mọi thứ với nó. Nhưng bạn có thể tạo ra các nguyên mẫu nhanh và các trò chơi làm việc có chất lượng độc lập và hơn thế nữa.

Thư viện khác là SlimDX - http://slimdx.org/ mà một số người có thể nói là gần với kim loại / thực tế hơn nếu bạn không muốn làm việc với XNA. Do đó, rất tốt để thực hiện tạo mẫu nhanh - đặc biệt nếu phát triển trò chơi chính của bạn là C hoặc C ++. Ngoài ra, tuyệt vời để làm công cụ.


3
SlimDX cũng có lợi ích là tương thích với hỗ trợ tương tác Direct3D của WPF, điều này (tùy thuộc vào loại trò chơi bạn đang phát triển) có thể rất hữu ích. Không có hỗ trợ chính thức cho sự can thiệp của WPF / XNA và trong khi tôi tin rằng một số người đã cố gắng để hai người làm việc cùng nhau, thì quá trình này rất khó khăn.
Mike Strobel

Tôi nên thêm rằng có một nỗ lực để có được XNA làm việc cross-platform với Mono (xem MonoXNA), mà có thể ảnh hưởng tới việc ra quyết định trong đó khuôn khổ để sử dụng.
Mike Strobel

@Mikw Strobel: +1, nhưng hãy nhớ rằng một điểm bán hàng lớn cho XNA là khả năng triển khai / bán cho 360 và tất cả những thứ WPF / XNA tôi từng thấy sẽ không chạy trên 360.
Steven Evers

4

Ngoài ra còn có một cổng của Thư viện C SDL sang .NET, SDL.NET . Cá nhân tôi sẽ sử dụng XNA trong C # vì đây chỉ là một thư viện kết hợp tốt, rất tùy biến và cũng thân thiện với người mới bắt đầu.


XNA thân thiện với người mới bắt đầu, nhưng hiện tại nó cũng đang trong tình trạng thay đổi (đặc biệt). 4.0 sẽ có một số thay đổi đột phá và thật khó chịu để theo kịp khi bạn bị ướt chân.
Steven Evers

4

Tuyên bố miễn trừ trách nhiệm: Khuyến nghị sau đây có thể hoặc không thể bị sai lệch do sự tham gia của cá nhân tôi vào việc phát triển động cơ này.

Duality là một công cụ trò chơi 2D có thể mở rộng đi kèm với hệ thống soạn thảo WYSIWYG. Tổng quan nhanh:

  • Đó là dựa trên plugin . Bạn không viết một ứng dụng mới, nhưng một plugin chứa tất cả mã của bạn.
  • Plugin tính năng thời gian chạy tải lại từ trình chỉnh sửa. Cho phép lặp nhanh.
  • Nguồn mở , được viết hoàn toàn bằng C #, dựa trên OpenTK / OpenGL / OpenAL
  • Tương đối mới (2 - 3 năm) và vẫn đang trong quá trình phát triển - nhưng đã có thể sử dụng được .
  • Xử lý kết xuất, âm thanh, đầu vào của người dùng, vật lý, tuần tự hóa, quản lý tài nguyên và đối tượng
  • Rất nhiều lớp trợ giúp và các Thành phần mặc định để giúp bạn bắt đầu.

Trong trường hợp bạn muốn thử, bạn có thể trực tiếp tải xuống bản phát hành nhị phân mới nhất hoặc tự biên dịch nó bằng mã nguồn từ GitHub . Để có thêm thông tin, truy cập vào trang web thông tin và các diễn đàn cộng đồng có thể được đền đáp. Chỉ cần theo các liên kết từ trang web thông tin tôi đã bao gồm ở trên.

Một ảnh chụp màn hình của môi trường chỉnh sửa.


Thông thường tốt nhất là tiết lộ rằng bạn có liên quan đến việc phát triển bất kỳ phần mềm nào mà bạn đề xuất.
Josh

@JoshPetrie Bạn có thể đúng. Tôi không chắc liệu nó có quan trọng trong bối cảnh cụ thể này hay không - dù sao, tôi đã thêm từ chối trách nhiệm ngay bây giờ. :)
Adam


3

Về phía các công cụ, một thư viện hữu ích đáng kinh ngạc là " Khung mở rộng được quản lý ", giờ đây thực sự là một phần của .Net 4.0. Nó cho phép bạn tạo các trình cắm hoặc tự động phát hiện các thể hiện của các lớp một cách dễ dàng, điều này rất hữu ích cho các công cụ của bạn.


2

Cái lớn nhất (và được chứng minh nhiều nhất) cho đến ngày nay là khung XNA. Bạn thậm chí có thể tận dụng XNA để xây dựng bộ công cụ của mình. Lợi ích là bạn có một khung bao gồm các thư viện bạn cần (vật lý, âm thanh, đồ họa) được gói trong một gói và điểm cộng rất lớn là nếu bạn làm gì đó thực sự tốt, bạn có thể thử và bơm nó vào XBLA.


2

XNA là một thư viện khá lớn cho PC / Xbox360, xử lý đồ họa, âm thanh, đầu vào, v.v.


2

Các Tao khung (được sử dụng trong cuốn sách này mà tôi đã tìm thấy khá hữu ích: C # Game Programming Đối với game Creation nghiêm trọng ), mà kết thúc tốt đẹp OpenGL và nhiều tính năng lập trình trò chơi hữu ích khác (truy cập thông qua C #) là đáng xem. Tuy nhiên, nó đã được Thư viện công cụ mở (OpenTK) áp dụng, được đề cập trong một câu trả lời khác. Tôi thấy thật kỳ lạ khi cuốn sách sử dụng Tao Framework thay vì OpenTK, vì Tao đã không hoạt động được khoảng 2 năm (và cuốn sách hoàn toàn mới). Tuy nhiên, một khung hữu ích đáng để kiểm tra.


1

Không chính xác những gì bạn yêu cầu nhưng Unity là một công cụ trò chơi hỗ trợ kịch bản trong c #


0

AngelXNA (http://www.jeffongames.com/2009/05/angelxna-v10/) là một thư viện / công cụ định hướng nguyên mẫu đẹp được xây dựng trên XNA, nếu bạn đang tìm kiếm thứ gì đó cao cấp hơn.


0

Tôi thấy SFML.Net là một lựa chọn tuyệt vời và đó là những gì cá nhân tôi sử dụng. Hãy cẩn thận, đừng sử dụng các tệp nhị phân được cung cấp trên trang web, mà thay vào đó hãy lấy bản mới nhất từ ​​SVN. Phiên bản trang web đã rất lỗi thời.


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.