Những công nghệ được sử dụng để phát triển trò chơi ngày nay? [đóng cửa]


14

Bất cứ khi nào tôi đặt câu hỏi về phát triển trò chơi trong một diễn đàn trực tuyến, tôi luôn nhận được các đề xuất như học thuật toán vẽ đường thẳng, thao tác hình ảnh ở cấp độ bit và giải nén video, v.v.

Tuy nhiên, nhìn vào các game như God of War 3, tôi thấy khó tin rằng những game này có thể được phát triển bằng các kỹ thuật cấp thấp như vậy.

Sự tuyệt vời của những trò chơi như vậy bất chấp mọi phương pháp lập trình dễ hiểu (đối với tôi).

Bên cạnh đó phần cứng chơi game thực sự là một con quái vật ngày nay. Vì vậy, lý do là các nhà phát triển sẽ làm việc ở mức độ trừu tượng cao hơn.

Phương pháp phát triển mới nhất trong ngành công nghiệp game là gì? Làm thế nào mà một nhóm gồm 30 - 35 nhà phát triển (trong đó phần lớn là quản lý và tiếp thị lông tơ) có thể tạo ra những trò chơi gây chú ý như vậy?

Nếu câu hỏi có vẻ quá chung chung, bạn có thể giải thích kiến ​​trúc của God of War 3 không? Hoặc làm thế nào bạn sẽ đi về sản xuất một bản sao? Điều đó tôi nghĩ nên được khách quan trả lời.


2
Ai đó sẽ quan tâm để giải thích downvote?
Monika Michael

2
Downvote là do câu hỏi không "mang tính xây dựng". Để trích dẫn, "câu hỏi này không phù hợp với định dạng Hỏi & Đáp của chúng tôi. Chúng tôi hy vọng câu trả lời sẽ được hỗ trợ bởi các sự kiện, tài liệu tham khảo hoặc chuyên môn cụ thể, nhưng câu hỏi này có thể sẽ thu hút tranh luận, tranh luận, bỏ phiếu hoặc thảo luận mở rộng" . Đó là, câu hỏi không thể được trả lời với bất kỳ độ chính xác. Tôi vẫn nghĩ rằng câu hỏi của bạn có giá trị, nhưng cần phải được cải cách.
9000

2
@ 9000 Và làm thế nào để câu hỏi này đủ điều kiện là không mang tính xây dựng?

1
@delnan: có lẽ những người chơi downvoters không hài lòng với những cụm từ như "phương pháp phát triển mới nhất trong ngành công nghiệp game là gì?" . Đối với tôi, "làm thế nào bạn sẽ tạo ra một bản sao" tốt hơn nhiều.
9000

4
Điều này sẽ không có ý nghĩa hơn tại gamedev.stackexchange.com ?
Dan Neely

Câu trả lời:


12

Tuyên bố miễn trừ trách nhiệm: Tôi không phải là nhà phát triển trò chơi video. Nhưng tôi có một "sở thích" quan tâm đến nó.


Hầu hết các trò chơi AAA bạn thấy đều được thực hiện bằng Động cơ. Họ không viết từ dưới lên. Hãy nghĩ về một động cơ giống như một khung. Bạn có .NET framework, Java SDK, bộ công cụ Cacao.

Tất cả mọi thứ để làm cho công việc tạo phần mềm của bạn dễ dàng hơn và trừu tượng hóa mã chìm bếp. Điều đó là cần thiết, nhưng viết nó mỗi lần là rất không hiệu quả.

Sử dụng các công cụ này, nhà phát triển có thể xây dựng trò chơi của họ và không phải lo lắng về một số mã cơ bản. ( Đừng nhầm lẫn, phát triển trò chơi là một trong những ngành khó nhất của công nghệ phần mềm. )

Ví dụ, Unreal Engine 4 có bộ công cụ và studio phát triển sát thủ:

http://www.youtube.com/watch?v=MOvfn1p92_8

nhập mô tả hình ảnh ở đây

Có nhiều động cơ khác nhau ngoài kia. Một số trả tiền, một số miễn phí, một số khác xuống kim loại, một số khác cung cấp một sự trừu tượng cao hơn.

Ví dụ:

  • OGRE
  • Động cơ không thật
  • Đoàn kết
  • Nguồn
  • và nhiều thứ khác nữa...

5

Liên quan đến nhận xét của gbjbaanb, một số điều làm cho chương trình trò chơi trở nên thú vị là tuổi thọ giới hạn của cơ sở mã và thiếu các yêu cầu trước. Ví dụ: nếu bạn đang thiết kế một trò chơi FPS và thuật toán chuyển động của bạn đôi khi khiến nhân vật trò chơi của bạn tắt một vài pixel, thì đó không phải là vấn đề lớn và rất có thể sẽ không có ai chú ý. Nếu bạn đang thiết kế một phần mềm kinh doanh và đôi khi chức năng tổng của bạn khiến bạn mất một vài đô la, đó là một lỗi nghiêm trọng hơn nhiều. Vì vậy, khi thiết kế trò chơi, một số khía cạnh có thể kém chính xác hơn nhiều (và chỉ phải vượt qua thử nghiệm của con người, thay vì bộ kiểm tra tự động kiểm tra xem các câu trả lời có chính xác không).

Kinh nghiệm của tôi là lập trình trò chơi, đặc biệt là các trò chơi thời gian thực, là một trải nghiệm khác với ... hầu hết mọi phát triển phần mềm khác mà tôi đã thực hiện, có thể ngoại trừ công việc GUI. Đó là thứ bạn phải thử!


4

Câu trả lời là "động cơ". Rất nhiều trò chơi được xây dựng với nhiều công cụ đồ họa và trò chơi khác nhau, về cơ bản là các thư viện hoặc khung lớn.

Trong thế giới OSS, hãy xem ví dụ về Ogre , đối với các trò chơi thương mại bạn có những thứ như Nguồn.

Có nhiều yếu tố khác, như rất nhiều mã là dùng một lần và sẽ không vượt qua được trong môi trường kinh doanh - nhưng đó là vì tuổi thọ của trò chơi bị hạn chế và thời gian phát triển được tăng tốc, có nghĩa là mã được thiết kế (gần như) Chỉ để làm việc, không được duy trì.


Tất nhiên, các công cụ này chỉ là các bản tóm tắt xây dựng mã C / C ++ thông thường (mặc dù được tối ưu hóa cao) trên các API cấp thấp hơn (ví dụ DX hoặc OpenGL cho đồ họa).

Nhưng đó là một ý tưởng tốt để có kinh nghiệm tạo ra một trò chơi rất đơn giản bằng C hoặc C ++ chỉ để cho tác giả biết ý tưởng phát triển trò chơi như thế nào.
KyelJmD

4

Unity3D thực sự rất hay. Đây là một số điểm tôi thích về nó:

  • nó cho phép bạn xây dựng các trò chơi theo kiểu bất khả tri của nền tảng và sau đó tự động tạo các triển khai cho cả Windows, Mac OS X, Android, IOS. Điều này đúng với phiên bản hiện tại (3.x). Rõ ràng phiên bản 4 cũng sẽ cho phép bạn triển khai trên Linux:

http://en.wikipedia.org/wiki/Unity_(game_engine)#Major_features

  • Mặc dù bạn cần một giấy phép phải trả tiền để thực sự sử dụng nó (về mặt thương mại), bạn có thể tải một phiên bản miễn phí trong đó bạn có thể sử dụng hầu hết các tính năng (ví dụ: bạn không thể tạo triển khai cho nền tảng di động). Nó cung cấp một cách tuyệt vời để xem trước điều đó trước khi bạn quyết định mua nó hay không:

http://unity3d.com/unity/licenses

  • Hoạt động với hầu hết các phần mềm mô hình 3d (tôi thích 3d Studio Max, nhưng nó cũng hỗ trợ các phần mềm khác):

http://unity3d.com/unity/editor/importing (cuộn xuống một chút)

  • Mã hóa (kịch bản) có thể được thực hiện bằng C #, một ngôn ngữ hay, với API tốt và kiểm tra thời gian biên dịch. Đi kèm với một môi trường dev tốt (IDE và mọi thứ). Nếu bạn muốn một cái gì đó khác biệt, nó cũng hỗ trợ Javascript.

  • Có hỗ trợ vật lý rất tốt (va chạm, trọng lực, lực, v.v.):

http://docs.unity3d.com/Documentation/Manual/Physics.html

  • Có một cửa hàng tài sản cho phép bạn mua nhiều mô hình, kịch bản, hoạt hình, v.v. và tùy thuộc vào kỹ năng (và ví) của bạn, bạn có thể nhận / sửa đổi chúng để nhanh chóng có được tài nguyên tốt cho trò chơi của mình.

  • Cuối cùng nhưng không kém phần quan trọng, nó nhanh chóng. Kiểm tra các bản demo trên thiết bị di động, IMHO chúng di chuyển khá tốt và có đồ họa rất tốt:

http://unity3d.com/gallery/ADE-with-unity/game-list

Đây là một dự án Unity tuyệt vời mà tôi hiện đang chờ đợi:

Đất hoang 2 của Brian Fargo

Họ có một mục blog thú vị về lý do tại sao họ chọn Unity , cũng như thảo luận về cách làm việc với nó .


3

Phần mềm ID là một trong những nhà cung cấp thường xuất bản các trò chơi hiện đại. Một vài năm sau họ thường phát hành chúng dưới dạng nguồn mở. Trên http://fabiensanglard.net/quake3/index.php, bạn có thể tìm thấy một phân tích về mã nguồn Quake3. Đây là một mô tả khá dài dòng và mặc dù Quake3 khá cũ trong khi các khái niệm vẫn có liên quan đến các trò chơi hiện đại.

Và vâng, nếu bạn muốn xây dựng một công cụ trò chơi cạnh tranh nhanh, hiện đại, hiện đại, bạn sẽ phải biết tất cả những phần cấp thấp đó. Nếu bạn không muốn quan tâm đến những điều đó: Có những công cụ khác nhau (công cụ quake3 hoặc những câu trả lời khác) có sẵn nhưng tốt, thì bạn không tạo ra một trò chơi mang tính cách mạng mới ;-)


Từ vẻ ngoài của phân tích đó, Quake 3 có khá nhiều kỹ thuật "cấp thấp" quan trọng trong phát triển trò chơi ngày nay. Để bắt đầu, các shader (do OpenGL cung cấp).

trận động đất 3 đã được phát hành vào năm 1999. vâng, đó là một thời gian dài trước đây. Nhưng nó cho thấy cách mọi người làm việc cố gắng đi đến giới hạn của những gì có thể sau đó. Hầu hết các công cụ có sẵn khác nghiêng về khả năng sử dụng lại, mã "sạch", v.v. thay vì hiệu suất tối đa. (Điều này không có nghĩa là các công cụ khác xấu và chậm, nhưng tôi nghĩ vẫn đáng để xem nếu bạn muốn tìm hiểu về kiến ​​trúc và triển khai công cụ chơi trò chơi 3D)
johannes

Một bài viết liên quan khác về toán học cấp thấp nhị phân trong các trò chơi 3D, sử dụng Quake làm ví dụ: blog.quenta.org/2012/09/0x5f3759df.html
johannes

1

Như nhiều câu trả lời đề cập, công cụ trò chơi và thư viện đóng một vai trò lớn. Tuy nhiên, xin lưu ý rằng điều này áp dụng cho các trò chơi thương mại tầm trung hơn là các trò chơi "độc lập" nhỏ.

Ví dụ, trên các nền tảng di động, hầu hết các trò chơi được viết chỉ sử dụng một tập hợp các thư viện tương đối nguyên thủy thay vì dựa vào các công cụ trò chơi toàn diện, một khung. Chúng tồn tại, nhưng phần lớn là về việc sử dụng lại mã của riêng bạn từ các dự án trướ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.