Làm thế nào các nhà phát triển không độc lập có thể ngừng phát minh lại bánh xe?


8

Có vẻ như hiện trạng trong ngành công nghiệp trò chơi là viết hầu hết các phần mềm nội bộ, có thể loại trừ động cơ nếu bạn sử dụng một trong số hàng tá hoặc rất lớn. Trước khi làm việc ở đây, tôi chủ yếu là một nhà phát triển nguồn mở, vì vậy suy nghĩ này có vẻ hết sức điên rồ đối với tôi. Có cách nào tốt để tất cả chúng ta có thể ngừng xây dựng những thứ như người xem nhật ký, chẩn đoán mạng và hệ thống vá lỗi không?

Câu trả lời:


15

Chúng ta có thể ngừng phát minh lại bánh xe bằng cách ... ngừng phát minh lại bánh xe. Sử dụng thư viện bên ngoài, công cụ trò chơi, v.v.

Tôi có cảm giác rằng người ta phát minh lại bánh xe để:

  • Tránh bản quyền, tiền bản quyền, vv trên các thư viện hoặc mã mượn
  • Tránh trả tiền cho một công cụ trò chơi (đối với trò chơi AAA đầy đủ, điều này có thể rất tốn kém)
  • Duy trì sự quen thuộc gần gũi với toàn bộ cơ sở mã - thêm các thư viện bên ngoài, liên kết với các công cụ trò chơi, v.v. chỉ có nghĩa là có nhiều mã hơn để làm quen và có thể duy trì
  • Tự viết tất cả mã của bạn có nghĩa là bạn có thể tối ưu hóa mã cụ thể cho trò chơi của mình
  • Mã đó sau đó có thể được cấp phép cho người khác nếu muốn, sử dụng lại cho các dự án khác, v.v. trong khi bạn duy trì quyền kiểm soát độc quyền

Tôi đồng ý với tất cả điều đó! Bản thân tôi đã phải phát minh lại một số thứ để tránh mã được cấp bằng sáng chế, tôi cũng phải tránh trả tiền cho một công cụ trò chơi, và cuối cùng, tôi thường gặp vấn đề không phải là lỗi của tôi (như trò chơi hiện tại của tôi có 3 lỗi, một là công cụ vật lý có hành vi phản trực giác ... điều này có nghĩa là tôi sẽ cần đọc sâu nguồn của nó ... khác là máy trộn dường như có một số cách tùy ý để chọn các ưu tiên, và cuối cùng, chính công cụ trò chơi với trình chỉnh sửa bản đồ, phân tách ngẫu nhiên khi tôi dỡ bản đồ ... Một lần nữa, điều này có nghĩa là quét mã ...)
tốc

Câu hỏi là nhiều hơn một xã hội, làm thế nào chúng ta có thể khuyến khích điều đó? Có, ví dụ, các công cụ để vá lỗi là bất khả tri? Có một số thuật toán và thư viện cơ bản để thao tác dữ liệu (thuật toán rsync, zlib) nhưng tôi không biết bất cứ điều gì đi xa như một giao diện người dùng.
coderanger

1
Bạn đã bỏ lỡ thực sự có thể lội vào và khắc phục các sự cố trong thư viện trong quá trình phát hành mà không phải tính đến thời gian quay vòng của bên thứ ba trên nguồn đóng của họ và để tối ưu hóa các thư viện cho trường hợp sử dụng chính xác của bạn. Những thứ đó có thể khá có giá trị.
trăng

1

Nó phụ thuộc. Tôi nghĩ rằng thực sự có một số lượng lớn các sản phẩm trung gian ngoài kia, được sử dụng, ... nếu bạn sẵn sàng trả tiền cho nó.

Đồng thời đôi khi thật dễ dàng để hack một cái gì đó để có được thực sự nhanh chóng mà không cần nhiều phụ thuộc bên ngoài, nếu phạm vi nhỏ.

Tôi nghĩ trên highend, bạn phải so sánh các công ty như EA và Ubisoft với các công ty phần mềm lớn khác, như Apple, Google, Facebook, những gì có bạn.

Tất cả họ đều viết một số lượng rất lớn mã tùy chỉnh, khi có các lựa chọn thay thế hiện có, vì họ muốn có được lợi thế cạnh tranh.

Như @Sean James nói có những lý do pháp lý và nhiều lý do khác, nhưng tôi nghĩ ngay cả khi không có rào cản, các công ty phần mềm sáng tạo vẫn sẽ phát triển các lựa chọn thay thế tùy chỉnh cho các thành phần phần mềm hiện có nếu họ nghĩ rằng họ có thể làm cho chúng tốt hơn.

Tuy nhiên tôi cũng đồng ý rằng luôn có chỗ để bắt đầu một số dự án mà tất cả chúng ta đều có thể hưởng lợi. Chẳng hạn, tôi nghĩ rằng chúng ta cần thay thế COLLADA bằng một thứ đơn giản hơn nhiều dựa trên JSON. Có thể một cái gì đó chỉ xử lý các mắt lưới tùy ý, nhưng không có gì khác. Tôi nghĩ rằng chúng tôi thực sự cần một định dạng lưới tốt hơn.


Không chỉ có lợi thế cạnh tranh để viết 'phần mềm trung gian' của riêng bạn mà còn có nghĩa là hỗ trợ trong nhà. Điều đó có thể có ích vào những thời điểm khủng hoảng lớn hoặc khi một lỗi không thể tái tạo mà không bàn giao toàn bộ trò chơi của bạn.
Kaj

Không quá đề cập đến nếu công ty công cụ trò chơi được mua, hoặc mã của họ bị sao chép trái phép, danh sách sẽ tiếp tục. Tùy thuộc vào người khác, mã là một trách nhiệm khó có thể định lượng được, không có nhiều người dùng, đó là trường hợp có rất nhiều phần mềm trung gian chuyên nghiệp
Jonathan Fischoff

Tôi không nghĩ rằng mã tùy chỉnh sẽ biến mất, nhưng việc thiếu (các) định dạng khả thi để chia sẻ dữ liệu không giúp ích gì cho việc phát triển các công cụ.
Jonathan Fischoff

Ít nhất, tại công ty của tôi, ít nhất, mọi người thà xây dựng lại công cụ trong nhà chỉ vì số tiền đã được ngân sách và mua phần mềm trung gian thương mại không (và việc yêu cầu lập trình viên làm việc 10 giờ một ngày sẽ dễ dàng hơn nhận HQ để ủy quyền chi phí vốn lớn). Không phải lợi ích từ sự hợp tác tự do sẽ là một lợi ích lớn hơn lợi thế cạnh tranh từ các công cụ độc quyền?
coderanger

Tôi nghĩ rằng nó có thể được cải thiện, nhưng nó nghĩ rằng đó là một vấn đề vượt ra ngoài các công ty trò chơi. Có rất ít mã tái sử dụng sau đó nên nói chung, không chỉ với các trò chơi. Ở cấp độ cá nhân, tôi rất muốn giúp thực hiện một số dự án.
Jonathan Fischoff

1

Có cách nào tốt để tất cả chúng ta có thể ngừng xây dựng những thứ như người xem nhật ký, chẩn đoán mạng và hệ thống vá lỗi không?

Theo kinh nghiệm của tôi, những điều này được coi là các tính năng bổ sung đơn giản có thể được củng cố cùng với chương trình 'thực' của bạn. Tất nhiên, chúng hóa ra không đơn giản và xa 'phụ', là phần phức tạp và quan trọng của hệ thống, nhưng sau đó đã có quá nhiều đầu tư vào phiên bản bespoke.

Có các thư viện thương mại hoặc nguồn mở tốt cung cấp loại chức năng này không? Tôi không chắc là có, và cho đến khi ai đó bước lên và cung cấp một cái, nó sẽ giữ nguyên như vậy. Các nhà phát triển kinh doanh thường không thể tạo ra các thư viện phù hợp với trò chơi (" ý bạn là gì, bạn không thể loại bỏ hoàn toàn tất cả các cuộc gọi trong Bản phát hành?! ") Và các nhà phát triển trò chơi thường không quan tâm đến việc tạo ra loại này điều như một gói độc lập khi họ có một trò chơi để bắt đầu.

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.