Mà Cảnh nào là tối ưu để bắt đầu với lập trình trò chơi nhỏ?


8

Tôi là một nhà phát triển ứng dụng web Java (chủ yếu là phía máy chủ) từ 7 năm gần đây đã quan tâm đến phát triển trò chơi (tôi không biết tại sao, có lẽ tôi thấy chán). Hôm nay tôi đã tìm kiếm các khung. Tôi đọc về một vài biểu đồ cảnh và xem jMonkeyEngine . Nó đã được đề nghị ở đâyở đây .

Mục tiêu đầu tiên của tôi là tạo ra một mặt phẳng đơn giản và một quả cầu có thể di chuyển xung quanh bằng bàn phím. Vâng, như tôi đã đề cập, tôi là một nhà phát triển web và không bao giờ lập trình bất cứ điều gì khác nên tôi bắt đầu với các hướng dẫn của jMonkey. Nhưng tôi đã không thể làm cho họ làm việc. Tôi đã xem wiki nhưng tôi nhận thấy rằng tài liệu này có vẻ rất kém, ít nhất là so với những gì tôi đã quen. Sau đó tôi đã xem xét một vài biểu đồ cảnh khác (cũng cho C ++) nhưng dường như chúng cũng có một tài liệu kém hoàn chỉnh, không đầy đủ.

Ai đó có thể giới thiệu cho tôi một biểu đồ cảnh được ghi lại bằng các mẫu làm việc không? Hoặc có một cái gì đó giống như "hướng dẫn cuối cùng" để đi vào chủ đề này? Trước tiên tôi có cần biết cách phát triển biểu đồ cảnh của riêng mình để làm cho nó hoạt động hay có thể chỉ cần hiểu các nguyên tắc trừu tượng và sử dụng nó từ quan điểm cao hơn?

Bằng cách nào đó tôi có cảm giác tôi cần phải hiểu sâu bên trong của biểu đồ cảnh để sử dụng nó tốt (như trường hợp của các công cụ ORM trong nhà phát triển web, bạn không thể sử dụng chúng tốt nếu bạn không hiểu cơ sở dữ liệu)

Tôi xin lỗi nếu câu hỏi này quá 'noobish', nhưng tôi chỉ muốn đứng lên và thực hiện những bước đầu tiên.

Câu trả lời:


5

Một đồ thị cảnh là một công cụ. Nó không thực sự là một công cụ phù hợp khi bạn mới bắt đầu phát triển trò chơi.

Tôi nghĩ những gì bạn đang theo sau không phải là một biểu đồ cảnh mà chỉ là một khuôn khổ của một số loại.

Thông thường tôi muốn giới thiệu XNA vì nó thực sự tốt (mạnh mẽ, hiện đại, tài liệu tốt, thân thiện với người mới bắt đầu). Nhưng đó là C # và tôi có thể thấy bạn là một người đàn ông Java. Nếu bạn thích gắn bó với Java, có lẽ một nơi tốt để bắt đầu sẽ là các cổng Java của Hướng dẫn OpenGL NeHe cũ (đây không phải là một khung - nhưng đó là một bộ hướng dẫn về cách thực hiện (ở mức độ thấp ) loại công việc mà một khung công tác dành cho bạn - tải và kết xuất mô hình, tải họa tiết, v.v.).

Trong một vài bài học đầu tiên, bạn sẽ tìm hiểu về ma trận biến đổi, về cơ bản là tất cả các biểu đồ cảnh là gì (trong trường hợp phổ biến).

Để mô tả ngắn gọn về biểu đồ cảnh: Giả sử bạn có mô hình cối xay gió - nó được xác định trong không gian riêng của nó. Bạn dịch nó đến nơi bạn muốn nó xuất hiện trong không gian thế giới của bạn . Cối xay gió đó sẽ có một đối tượng con cho các lưỡi quay của nó - vì vậy bạn sẽ áp dụng chuyển đổi xoay cho các lưỡi dao, và nó cũng sẽ kế thừa bản dịch của cha mẹ để đặt lưỡi dao chính xác vào thế giới.

Khi bạn bắt đầu, tạo ra các trò chơi nhỏ, bạn không cần phải lo lắng quá nhiều về việc có cấu trúc dữ liệu phức tạp lớn này. Thông thường, bạn sẽ chỉ có một vài mô hình mà bạn sẽ áp dụng ma trận biến đổi trực tiếp.

(Biểu đồ cảnh cũng được sử dụng cho những thứ liên quan đến hiệu suất như sắp xếp theo vật liệu, loại bỏ, v.v. - tất cả đều không cần thiết cho người mới bắt đầu và cho hầu hết các trò chơi nhỏ.)


Tôi chưa bao giờ sử dụng XNA, nó có bản đồ chính không?
Calvin1602

Số XNA thấp hơn một chút so với mức đó. Bạn sẽ phải viết của riêng bạn.
Andrew Russell

8

Biểu đồ cảnh đã hơi mất vị trí của họ là phải có. Chủ yếu là bởi vì một công cụ trung tâm đồ thị cảnh được gắn kết trong ý tưởng của một cảnh quan đến mức nó nhầm lẫn chính nó. Thực tế là các bộ phận khác nhau của động cơ cần một cái nhìn khác về thế giới, trong khi đó, một động cơ trung tâm phối cảnh có xu hướng muốn áp đặt cùng một quan điểm lên tất cả các bộ phận của động cơ.
Khung cảnh như được xem theo truyền thống, một hệ thống phân cấp của các đối tượng cha và các đối tượng con là tốt cho các phép biến đổi, nhưng có thể hoàn toàn không phù hợp để hiển thị, nơi bạn quan tâm hơn đến những vật liệu nào được sử dụng (cũng ổn, vị trí cũng vậy, nhưng có khác nhau cách để đối phó với điều đó và cha mẹ-con không đảm bảo họ ở gần nhau, chúng ta chỉ có xu hướng nhìn theo cách đó).
Trong nhiều trò chơi, bạn sẽ thấy rằng bạn có một cảnh gốc với rất nhiều trẻ em, nhưng những đứa trẻ đó hiếm khi có con của chúng. Một số ít có con bạn cũng có thể tự cập nhật và bỏ qua khung cảnh vì nó làm tăng thêm độ phức tạp và hiệu suất không cần thiết (mọi biến đổi đều kiểm tra xem cha mẹ có bẩn không trong khi chỉ một số ít thực sự có cha mẹ sẽ bị bẩn (hiếm khi gốc thế giới di chuyển).


2

Tại sao không sử dụng một công cụ trò chơi như Unity3d ? Nó rất nổi tiếng vì dễ sử dụng và với tài liệu tuyệt vời. Bản thân tôi đã thử nó một thời gian ngắn và rất ấn tượng bởi mọi thứ được tài liệu hóa tốt như API và một số hướng dẫn tốt. Tôi gặp vấn đề với cánh tay và một số giai đoạn và phải nhờ vợ giúp đỡ. Cô không có đầu mối về lập trình nhưng nghĩ rằng Unity3D thực sự rất tuyệt. Bạn có thể thực hiện rất nhiều từ chỉ cần kéo và thả. Bạn có thể sử dụng một số ngôn ngữ script với công cụ. Nó hỗ trợ JavaScript trong số những thứ khác, mà tôi đoán cung cấp cho bạn nền tảng nên hấp dẫn. Bạn có thể có được một phiên bản miễn phí với tất cả các tính năng mà một nhà phát triển trò chơi bắt đầu sẽ cần.

Nếu bạn không cần 3D, thì GameMaker là một lựa chọn tuyệt vời. Nó thực sự dễ dàng để có được vào và làm cho các trò chơi. Tôi đã sử dụng nó tại trường đại học và thực hiện một vài trò chơi với nó. Rất vui Nó cho phép bạn thực sự tập trung vào việc tạo ra trò chơi và bạn không phải suy nghĩ quá nhiều về công nghệ. Bạn có thể kết hợp một trò chơi hoàn toàn chỉ với điểm và nhấp. Nhưng khi bạn tiến bộ và hiểu làm thế nào tất cả hoạt động, bạn bắt đầu viết các kịch bản của riêng bạn.

Theo tôi thì nó hoạt động tốt hơn rất nhiều so với việc nói GameSalad không có ngôn ngữ script. Ngay khi bạn bắt đầu làm những việc phức tạp hơn, nó thực sự gây phiền nhiễu chỉ với điểm và nhấp vào tôi nghĩ.


0

Tôi hoàn toàn đồng ý với Kaj. Để biết thêm thông tin chi tiết về chủ đề này, hãy xem gamearchitect (nhân tiện, nếu bạn quan tâm đến việc phát triển trò chơi, chỉ cần đọc toàn bộ trang web, đặc biệt là trang web cũ)

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.