2009-12-02 15 views
6

với một vài người bạn chúng tôi bắt đầu dự án dựa trên nền tảng java độc lập nghiệp dư này cho một trò chơi mô phỏng chiến đấu không gian (một cái gì đó giống như saga chết lâu của chỉ huy cánh). Không ai trong chúng ta là một lập trình viên 3D, vì vậy con đường sẽ dài.OpenGL cho không gian mô phỏng

Câu hỏi của tôi là: ở vị trí của chúng tôi bạn sẽ bắt đầu học OpenGL (có thể thông qua GLUT) hoặc có khả năng tốt hơn hôm nay không? Còn Direct3D thì sao? Bất kỳ cuốn sách nào bạn có thể đề xuất? Chúng tôi ra lệnh cho một cặp vợ chồng, đặc biệt

  • Dave Shriner của OpenGL Programming Guide
  • Beginning OpenGL game Luke Benstead của trình

Cảm ơn :-)

+1

Nếu bạn chưa bao giờ thực hiện lập trình 3D trước đây, có thể bạn sẽ muốn đặt điểm tham quan của mình thấp hơn một chút so với trình mô phỏng không gian. ít nhất là lúc đầu. Có lẽ một khối quay? Nếu bạn bắt đầu với mục tiêu làm cho người chỉ huy cánh tiếp theo, bạn sắp đặt cho mình thất bại. – Breton

+1

Bạn nói đúng, ban đầu nó sẽ giống như "cuộc chiến tranh khối" –

+1

Hãy chắc chắn lấy nguồn cập nhật cho 'Lập trình trò chơi OpenGL của Luke Benstead's Beginning'. Mã trên đĩa CD không hoạt động 'ra khỏi hộp'. Bạn có thể nhận mã được cập nhật tại đây: http://www.kazade.co.uk/downloads/boglgp/ –

Trả lời

5

Cân nhắc sử dụng công cụ 3d nguồn mở như Ogre3D hoặc Irrlicht. Bằng cách này bạn có thể tập trung vào việc tạo ra một trò chơi: nội dung, lối chơi.

Cả hai công cụ đều xác định lớp trừu tượng có thể ánh xạ tới các phụ trợ Direct3D hoặc OpenGL.

EDIT: lúc đầu tôi không nhận thấy bạn đã đề cập Java, dù sao cả hai công cụ đều hỗ trợ các ràng buộc Java.

+1

Tuyệt vời, tôi không biết Irrlicht. Nó có vẻ được tối ưu hóa cho các trò chơi fps, nhưng tôi đoán đó là một khởi đầu tốt. –

+0

Ngoài ra còn có công cụ trò chơi Yake (http://www.yake.org/) được xây dựng trên Ogre. –

0

Nếu bạn muốn ở lại nền tảng độc lập DirectX thắng không làm vì nó bị giới hạn đối với Nền tảng Windows của Microsoft

1

Vâng, nếu bạn chưa bao giờ thực hiện lập trình đồ họa 3D trước đây, hãy đơn giản và học hỏi khi bạn đi. Đã từng là một bộ hướng dẫn thực sự hay của NeHe (Neon Helium) cho OpenGL, đó là con đường tôi đã chọn.

2

Bạn có thể chọn một công cụ 3D nguồn mở như Ogre3D.

Nhưng nếu bạn thực sự muốn tự viết engine đồ họa (khá thú vị), hãy bắt đầu bằng cách học đại số tuyến tính. Không phải là những thứ khá tiên tiến, nhưng bạn sẽ rất thoải mái khi thể hiện bản thân trong các bản dịch vectơ, ma trận xoay vòng và những thứ tương tự.

Nếu bạn đã quen với các khái niệm đó, hãy chọn Direct3D hoặc OpenGL - điều này phụ thuộc nhiều hơn vào nền tảng sẵn có. Nếu bạn thích viết mã trong môi trường Mircosoft, chọn Direct3D, mọi thứ khác, chọn OpenGL.

Việc chọn các thư viện bổ sung tùy thuộc vào ngôn ngữ lập trình. Lựa chọn thay thế tốt hơn GLUT có lẽ là SDL (C) hoặc Qt (C++).

1

Tôi thấy OpenGL dễ bắt đầu hơn khi đường cong học tập không quá dốc. Bạn có thể nhận được kết quả nhanh chóng giúp rất nhiều với sự thất vọng ban đầu/động lực. Tấn giúp đỡ vv Lời cảnh báo mặc dù - Lập trình 3D vốn đã phức tạp và bạn sẽ dành nhiều năng lượng hơn vào xây dựng công nghệ đồ họa hơn là bản thân trò chơi. Xem xét việc áp dụng Ogre3D nếu bạn thực sự muốn xem trò chơi kết thúc: o) (từ chối trách nhiệm: Tôi biết cũng có các công cụ khác nhưng Ogre ổn định, được chứng minh và có tài liệu tốt)

3

Nếu bạn quyết định tìm hiểu đồ họa ở mức độ thấp lập trình thay vì sử dụng công cụ 3D cấp cao hơn như Ogre3D hoặc Irrlicht, tôi khuyên bạn nên bắt đầu với OpenGL ES 2.X, đó là một tập hợp con của OpenGL.

OpenGL ES 2.X là một tập con OpenGL được đơn giản hóa cho các hệ thống nhúng có phần cứng có thể lập trình như điện thoại. Ví dụ, trong OpenGL có thể có nhiều cách để hoàn thành nhiệm vụ, nhưng trong Open GL ES 2.X, chỉ có một cách.Bởi vì có ít sự lựa chọn hơn trong OpenGL ES 2.X, có ít hơn nhiều để học cách làm chủ OpenGL ES 2.X. Hướng dẫn lập trình OpenGL ES 2.0 là 480 trang và Hướng dẫn lập trình OpenGL, Phiên bản thứ bảy là 936 trang.

Hơn nữa, sử dụng OpenGL ES 2.X sẽ cung cấp cho bạn đối tượng phần cứng rộng hơn cho trò chơi của bạn. Bởi vì nó là một tập hợp con của OpenGL, mã được viết cho OpenGL ES 2.X sẽ hoạt động trên một hệ thống OpenGL đầy đủ với ít hoặc không có sửa đổi. Đồ họa của trò chơi của bạn có thể hoạt động trên một loạt các máy mục tiêu từ máy tính để bàn đến điện thoại thông minh.

+0

Cảm ơn bạn, thực sự tôi nghĩ OpenGL ES chính xác là tập con OpenGL mà tôi đang tìm kiếm. –

+0

lời khuyên rất tốt! (và WebGL cũng dựa trên ES 2) –