Bạn có nghĩ rằng có thể chuyển từ C ++ Straight sang 3D (bỏ qua 2D)


8

Bạn có nghĩ rằng có thể đi thẳng từ lập trình C ++ có kinh nghiệm (5 năm hoặc lâu hơn) để học DirectX 3d không?

Ý tôi là .... tôi sẽ bắt đầu với những điều cơ bản, tôi quan tâm nhiều hơn đến việc thiết lập Demos (như có được bản demo nước tốt và tương tự) hơn là thực sự làm một trò chơi đầy đủ.

Bạn có nghĩ rằng điều này là có thể?


3
Có thể, vâng. Dễ dàng? Không đời nào.
Vịt Cộng sản

Câu trả lời:


16

Hoàn toàn có thể. Điểm khởi đầu tuyệt vời Giới thiệu về Lập trình trò chơi 3D với DirectX 10 của Frank D. Luna . Nó rất dễ đọc, cho phép bạn nhanh chóng thực hiện nhiều chức năng phổ biến và đóng vai trò là cơ sở tuyệt vời để tìm hiểu thêm về DirectX và lập trình trò chơi.


1
Đó là cuốn sách chính xác tôi sẽ bắt đầu với lol.

2
+1 khác cho cuốn sách đó, đọc rất tốt. Từ đó tôi muốn giới thiệu sách của Wolfgang F. Engel. sách Shader X của ông đặc biệt rất hữu ích trong những năm qua.
James

Đây là một cuốn sách tuyệt vời mà tôi cũng đã đề nghị.
Reverbb

2

Tất nhiên, mặc dù tôi khuyên bạn nên bắt đầu với một ứng dụng 2D rất đơn giản vì đường cong học tập ban đầu (chỉ cần chạy ứng dụng DX có thể là một việc vặt) có thể khá khó khăn và thật hữu ích để biết liệu các vấn đề bạn gặp phải là Cụ thể 3D hoặc nếu bạn chỉ thiếu một cái gì đó rất cơ bản.

Triển khai Pong - bạn sẽ học những điều cơ bản như khởi động và chạy ứng dụng DX, xử lý đầu vào, phát hiện va chạm cơ bản và quan trọng nhất là cách vẽ nội dung trên màn hình.

Nếu đó là ứng dụng đầu tiên của bạn, bạn sẽ mất ít hơn một tuần để chạy nó. Tại thời điểm đó, bạn nên hiểu những điều cơ bản của khung DX và sẵn sàng bắt đầu một dự án khác, nơi bạn có thể tập trung vào các khía cạnh 3D - ma trận chuyển đổi, quản lý đối tượng / trạng thái, loại bỏ, chiếu sáng, v.v. Có thể triển khai pong 3D hoặc vợt.


0

Tất nhiên là có thể. Cũng có thể học C ++ như ngôn ngữ lập trình đầu tiên của bạn. Nhưng nó có lẽ không phải là cách nhanh nhất để đến đó.

Đi từ "lập trình" sang "lập trình trò chơi" đòi hỏi phải học một vài điều bất kể đồ họa: vòng lặp trò chơi, đầu vào thời gian thực, v.v. Những thứ đó dễ học hơn nếu bạn không phải đối phó với việc học một thư viện đồ họa mới cùng một lúc. Học một điều tại một thời điểm và có lẽ bạn sẽ có thời gian dễ dàng hơn nhiều. (Và nếu bạn là một lập trình viên có kinh nghiệm, việc học các công cụ 2D thực sự sẽ không mất nhiều thời gian như vậy.)


0

2D có điểm gì chung với 3D? Không nhiều. 2D là một thế giới phẳng hoặc 3D giả, trong khi có hình thức trực quan hơi giống 3D, có mã rất khác so với 3D thực.

Ngay cả đối với những thứ họ có chung, chẳng hạn như phát hiện va chạm, việc mở rộng mã thành 3D khó đến mức nào? Khá dễ.

Nói một cách đơn giản, học 2D sẽ không giúp bạn nhiều như bạn nghĩ trong hành trình học trò chơi 3D hoặc thiết kế động cơ. Họ có ít điểm chung và đối với những gì họ có điểm chung, 2D không thực sự là một "bước đệm" dễ dàng để đưa bạn đến với 3D.

Như David Lively đã đề xuất, bạn có thể muốn bắt đầu với một trò chơi 2D rất cơ bản như Pông, nhưng đừng nghĩ rằng bạn sẽ phải tạo lại Final Fantasy, Super Mario Brothers, Zelda, v.v. trước khi bạn có thể chuyển sang Xử lý 3D. Ngay cả công việc giới thiệu như thế này không nhằm mục đích thu được nhiều trải nghiệm 2D, mà là nhằm mục đích làm cho mọi thứ đơn giản nhất có thể để bạn có thể xem các khái niệm & phương pháp cơ bản (phát hiện va chạm, khởi tạo thư viện đồ họa, v.v. .,) có liên quan nhiều đến 3D như với 2D, càng nhanh càng tốt để bạn có thể chuyển sang bước tiếp theo. Bước tiếp theo có thể là tạo menu "Mới / Lưu / Tải / Thoát", một lần nữa bạn sẽ làm đơn giản nhất có thể, và sau đó bạn chỉ cần tiếp tục thêm nội dung (thứ nguyên +1 cho chuyển động, mô hình,

Mặc dù vậy, hãy đặt nó theo cách này. Sau khi học một số lý thuyết trong một khóa học đại học về thiết kế trò chơi, chúng tôi được giao nhiệm vụ chế tạo một công cụ 3D. Tôi đã làm nó trong khoảng một tuần. Nó đã vẽ các đối tượng 3D, đổ bóng, vẽ họa tiết, thực hiện mipmap, phát hiện va chạm, cho phép bạn nhảy và đưa ra một menu nếu bạn nhấp chuột phải hoặc nhấn {ENTER} hoặc {ESC}.

Phần tốn thời gian đang làm cho nó trở nên lạ mắt ... cho dù đó là tinh chỉnh động cơ hoặc tạo mô hình / kết cấu / hoạt hình, nội dung trò chơi, v.v.


0

Đúng. Vì bạn đã biết C ++, giờ bạn chỉ cần học API và lý thuyết. Rào cản chính trong việc học 3D cụ thể có lẽ là toán học liên quan. Mặc dù toán học 2D khá dễ hiểu ở mức tối thiểu, 3D đòi hỏi sự hiểu biết phức tạp hơn. Ngoài ra còn có rất nhiều thứ như shader chắc chắn phù hợp hơn với 3D so với 2D. Nếu bạn có kế hoạch làm một trò chơi, tôi sẽ thực hiện một lộ trình 2D nhanh chóng chỉ để có cảm giác làm một trò chơi từ đầu đến cuối (và có thể có một hệ thống GUI hoạt động mà bạn có thể chuyển qua!) Trước khi chuyển sang 3D.


IME, trở ngại lớn nhất trong việc học api 3d là đến điểm mà bạn thực sự có một cái gì đó để xem xét. Tôi đã dành một chút thời gian để cố gắng tìm ra lý do tại sao tôi không thể nhìn thấy bất cứ điều gì trong opengl sớm; thật khó để gỡ lỗi một màn hình trống.
StarWeaver
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.