Chuyển từ XNA / C # sang C ++? [đóng cửa]


8

Lâu nay, tôi đã làm việc với XNA để thiết kế và phát triển trò chơi (mặc dù chỉ dành cho ATM sử dụng cá nhân.) Nói chung, tôi là một fan hâm mộ lớn của chính XNA và nói chung là "cảm giác". Tuy nhiên, do thực tế là:

  1. XNA dường như thiếu sự hỗ trợ (không hỗ trợ Metro, không cập nhật kể từ năm 2010, v.v.)
  2. Tôi dự định thử và kiếm một công việc trong ngành phát triển trò chơi, và do sự thống trị của C ++, việc làm quen với nó sẽ rất hữu ích
  3. XNA chỉ hỗ trợ Windows (không phải Metro) và Xbox 360, trong khi tôi quan tâm đến Mac và (ở mức độ thấp hơn) hỗ trợ Linux.

Tôi đã cố gắng chuyển sang C ++ làm ngôn ngữ chính của mình. Tuy nhiên, tôi không muốn tập trung vào việc học DirectX / C ++ thô tại thời điểm này, vì vậy tôi đã tìm kiếm API C ++ cấp cao hơn (một cái gì đó ở cùng cấp độ với XNA, mặc dù mức độ thấp hơn một chút sẽ ổn ) với cảm giác tương tự như XNA. Vì vậy, đối với ai đó chuyển từ C # / XNA sang C ++, lựa chọn tốt nhất của tôi sẽ là gì đối với API tương tự XNA, mặc dù không được quản lý và chạy trên C ++?


ĐỪNG BAO GIỜ sử dụng DirectX với C ++ ... Sử dụng OpenGL;)
CoffeeandCode

Câu trả lời:


14

Trước hết, nếu bạn muốn gắn bó với C # / XNA và vẫn hỗ trợ Mac / Linux, bạn có thể xem xét MonoGame . Thêm vào đó họ cũng có một cổng Metro trong công trình. Vì vậy, tôi sẽ không gọi API XNA chết ngay bây giờ . (Về mặt trái, chất lượng mã của MonoGame để lại rất nhiều mong muốn.)

Ngoài ra, tôi sẽ không giảm khả năng phiên bản chính thức mới của XNA.

Nếu bạn muốn thưởng thức một số lớp trình trợ giúp tốt đẹp của XNA (ví dụ : SpriteBatch, SpriteFont), trong khi chuyển sang DirectX / C ++, bạn có thể thử Bộ công cụ DirectX . Và đừng quên rằng phần lớn tính hay của XNA nằm trong hệ thống nội dung của nó - vì vậy DirectXTex có thể giúp ích. Nó được tạo bởi một số người đã tạo XNA, vì vậy bạn biết điều đó tốt ( bài đăng trên blog ).

Bạn có thể xem xét dùng thử Unity - sử dụng C #, hỗ trợ Mac và Linux và một loạt các nền tảng khác và được sử dụng trong "Công nghiệp".

Nếu bạn muốn hỗ trợ Metro, muốn tìm hiểu DirectX, nhưng không muốn rời khỏi C #, bạn có thể kiểm tra SharpDX .

Cuối cùng, bạn có thể xem Cocos2d-X , có vẻ như khá phổ biến và có lẽ là thư viện C ++ đa nền tảng gần nhất với XNA mà tôi có thể nghĩ đến.


1

Để hoàn thiện, tôi muốn đề cập đến SFML. Mọi người sử dụng C ++ ít nhất nên xem xét nó vì SFML hoàn toàn hướng đối tượng trong khi SDL về cơ bản là C.


0

IMHO, các thư viện này rất thú vị để giải quyết việc di chuyển của bạn, đặc biệt nếu bạn muốn lập trình trong C ++:

  • SDL, Simple DirectMedia Layer , rất dễ dàng, với "cảm giác" tốt và đa nền tảng;
  • Allegro , như SDL và cũng được hỗ trợ và cập nhật.
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.