Tại sao việc chuyển các trò chơi từ máy chơi game sang PC lại khó khăn đến vậy? [đóng cửa]


27

Cổng PC của các game console thường ra mắt sau một hoặc hai tháng. Tại sao lại thế này?

Các trò chơi cũng được viết bằng các ngôn ngữ biên dịch trên PC, do đó logic trò chơi sẽ được biên dịch mà không gặp sự cố. Cái gì giữ chúng lại sau đó? Nó là mã kết xuất hay cái gì?


3
Nó có thể là do các thỏa thuận xuất bản. Họ được trả tiền từ ví dụ Sony để tạo ra một tiêu đề độc quyền ps3 / ps4.
Aurus

Tôi đang nói về các trò chơi phát hành cho một số máy chơi game. Họ nói rằng 'cổng' sẽ ra mắt X tháng sau khi phát hành giao diện điều khiển. Câu hỏi là lý do họ chờ đợi là gì. Ý tôi là, tiếp thị có thể có một cái gì đó để làm, nhưng tôi quan tâm từ phía lập trình viên.
Huyết thống

Nhưng Aurus đã đúng, đó là câu trả lời rất có thể. Mã chuyển từ bảng điều khiển sang PC không phải là nhỏ vì nhiều lý do. Hầu hết các trò chơi được phát hành cho PC ngay sau khi phát hành giao diện điều khiển được thiết kế cho PC ngay từ đầu hoặc ít nhất là công nghệ cơ bản hỗ trợ một cổng dễ dàng. Nếu không thì một vài tháng có lẽ là không đủ
Grimshaw

Về nhận xét của bạn "các trò chơi được viết bằng ngôn ngữ biên dịch trên PC" không phải lúc nào cũng đúng. Cụ thể, tôi muốn sửa đổi một câu nói nổi tiếng, "Máy chơi game và PC có thể đều là máy tính, nhưng không phải tất cả các máy tính đều được tạo ra như nhau".
kurtzbot

Câu trả lời:


47

Có một số lý do tại sao một cổng PC có thể mất một lúc. (Tôi xin lỗi nếu tôi dường như đang lặp lại chính mình ở đâu đó; đây là loại văn bản đang hoạt động.)

Điều chỉnh và điều chỉnh lối chơi

Khi bạn đang chơi trên bảng điều khiển, điều này một mình đặt ra những hạn chế nhất định cho những gì bạn có thể làm, vì tất cả người dùng có là một gamepad.

Chỉ cần tạo ánh xạ 1: 1 giữa các phím bàn phím và đầu vào bộ điều khiển không phải lúc nào cũng là một ý tưởng hay - nếu thậm chí có thể - vì vậy đôi khi phải mất nhiều thời gian hơn để tìm ra một giải pháp tốt.

Trừu tượng / phân mảnh phần cứng

Khi bạn phát triển ví dụ Wii U, bạn sẽ biết chính xác cách Wii U hoạt động, bởi vì tất cả Wii Us đều giống hệt nhau. Điều này không đúng với PC; bạn có nhiều card đồ họa và CPU khác nhau, và đôi khi một số thứ sẽ không hoạt động trên một số trong số chúng. Phải mất rất nhiều thử nghiệm để phát hiện ra các lỗi này và việc sửa chúng cũng mất thời gian.

Nếu bạn chưa bao giờ sử dụng công cụ của mình để tạo phiên bản PC, bạn cũng cần mã hóa phần trừu tượng cho phù hợp. Một số trò chơi muốn hỗ trợ nhiều phiên bản DirectX OpenGL cho Linux / Mac và tất cả những điều đó cần có thời gian để viết nếu nó chưa được thực hiện trước đó.

Sự tranh chấp tài nguyên

Trên bảng điều khiển, trò chơi không phải cạnh tranh với HĐH về tài nguyên, v.v. - không phải toàn bộ nội dung diễn ra trong nền.

Trên PC, bạn có HĐH đang chạy, bạn có rất nhiều chương trình chạy nền và tất cả điều này có nghĩa là bạn sẽ không nhận được một phần lớn như bạn mong muốn. Điều này có nghĩa là đôi khi bạn cần thực hiện tối ưu hóa bổ sung, đặc biệt đối với người chơi trên các hệ thống cấp thấp hơn

Cải thiện tài sản

Với bảng điều khiển, bạn có một mục tiêu cố định, vì vậy bạn viết shader, v.v. để phù hợp với mục tiêu đó.

Trên PC, một số card đồ họa hỗ trợ các tính năng nâng cao hơn và có thể bạn muốn sử dụng một shader tốt hơn cho những thứ đó. Chà, điều đó có nghĩa là bạn sẽ phải viết shader đó.

Công cụ dành riêng cho nền tảng

SDK Console có thể có nhiều tính năng tiện lợi không dễ dàng ánh xạ tới PC - ví dụ: nó có thể cung cấp quyền truy cập vào bộ hẹn giờ phần cứng hoặc API âm thanh tốt.

Những thứ đó thường không có sẵn trên PC; bạn cần sử dụng những cách khác để hoàn thành những điều đó và có thể điều đó thay đổi cách bạn phải trừu tượng hóa sự khác biệt của nền tảng.


4
Liên quan đến điều khiển, giao diện người dùng, bạn vẫn có thể thấy rất nhiều điều này, trong đó menu trên màn hình PC thậm chí không hoạt động với chuột, ví dụ như họ đã thực hiện ánh xạ 1: 1 từ d-pad sang bàn phím. Một vấn đề tiềm năng khác là ngôn ngữ shader và hỗ trợ trình điều khiển.
Casper Beyer

1
Câu trả lời tốt quá mức. Tuy nhiên, trong trường hợp các nhà phát triển muốn giảm hiệu suất tối đa ra khỏi bảng điều khiển, một lớp mã cụ thể nền tảng cấp thấp thường không đủ, bản thân trò chơi phải được thiết kế để tận dụng các thuộc tính mạnh của phần cứng của giao diện điều khiển, đó là ' T nhất thiết phải là giải pháp lý tưởng cho PC!
Grimshaw

6

Một lý do đơn giản là một bàn điều khiển có một bộ phần cứng giống nhau trên mỗi bàn điều khiển.

XBox, PS3 và Wii của bạn đều có phần cứng giống như hàng xóm XBox, PS3 và Wii của bạn. Tuy nhiên, máy tính của bạn có CPU khác nhau, card đồ họa khác nhau, dung lượng RAM khác nhau, trên thực tế, toàn bộ cấu hình và cài đặt hệ điều hành, trình điều khiển được cài đặt đều có thể là một hoán vị hoàn toàn độc nhất mà không ai khác trên thế giới có được.

Đây là điều gây khó khăn cho việc chuyển sang PC. Bạn cần tính đến mọi phần cứng có thể trong các yêu cầu hệ thống tối thiểu của bạn trở lên. Đó là một quá trình khó khăn và khó khăn để lập trình và gỡ lỗi. Các nhà phát triển rất khó biết mọi cấu hình để lập trình và gần như không thể chạy thử nghiệm trên các cấu hình này.

Một khi họ phát triển nó cho PC, sẽ có các thử nghiệm mở rộng được thực hiện bởi các nhà phát triển nhưng nó cũng có thể phụ thuộc vào thử nghiệm beta từ người dùng trong vài tuần đến vài tháng. Việc thuê ngoài các thử nghiệm với người chơi beta trước khi bản port sang PC được phát hành chính thức thường là lý do tại sao bạn thấy khoảng cách về ngày phát hành giữa Consoles và PC.


5

Chuyển mã sang một nền tảng mới cần có thời gian. Tạo bộ đếm thời gian nano giây cho Xbox 360 (tôi chưa bao giờ phát triển trong XNA) sẽ cần một triển khai khác so với bộ hẹn giờ nano giây tương tự trong Linux, Mac hoặc Windows. Bây giờ hãy tưởng tượng bạn có hàng trăm loại chức năng cần chuyển, hàng ngàn nếu động cơ đủ lớn.

Có thể dễ dàng mất một hoặc hai tháng mã hóa để thêm vào các triển khai khác nhau này cho các nền tảng mới. Trên hết, bạn không thể luôn sử dụng cùng các thư viện trên Xbox 360 như trên Windows, Playstation 3 hoặc một số nền tảng khác. Điều này có nghĩa là bạn có khả năng phải sử dụng một thư viện hoàn toàn mới để làm điều tương tự như bạn đã làm trên phiên bản Xbox 360.

Nhìn chung, những thứ này cộng lại thành một lượng lớn thời gian. Chuyển sang một nền tảng mới hiếm khi dễ dàng cho các tựa game AAA lớn.


3

Nó gần như không có gì để làm với khó khăn trong nhiều trường hợp.

Nó không phải là một ưu tiên. Họ đang quay cuồng để kịp ra khỏi cửa. Mỗi phút khác nhau cần có thời gian để tính toán. Nếu bạn có thể phát hành trên một vài máy chơi game hoặc PC trước hạn chót, hãy làm điều đó trước, sau đó kết thúc các cổng. Phát hành sớm, kiếm nhiều tiền hơn. Nói chung, các máy chơi game đã làm tốt hơn cho các trò chơi đóng hộp ở thế hệ cuối cùng này, mặc dù nó đã bắt đầu thay đổi - các máy chơi game mới có thể thay đổi điều đó.

Ngoài ra, trong một số trường hợp, các nhà sản xuất bảng điều khiển cung cấp lợi ích cho các bản phát hành độc quyền, do đó, nhà xuất bản được giảm giá hoặc một số như vậy nếu họ phát hành trên một bảng điều khiển cụ thể trước và các nền tảng khác sau. Không có gì kỹ thuật về nó.


1

Ban đầu, các trò chơi khó thực hiện trên bảng điều khiển hơn trên PC. Trên hết, máy chơi game có thông số kỹ thuật rất khác nhau và phần cứng khác nhau giữa nintendo, sony và microsoft, điều này không chỉ dẫn đến hiệu suất khác nhau, mà còn có nghĩa là các vấn đề tắc nghẽn khác nhau.

Thông thường, trò chơi sẽ chỉ điều chỉnh công cụ của họ để tối đa hóa chất lượng và hiệu suất trên mỗi bảng điều khiển.

Khi thích ứng với PC, có những vấn đề khác. Bảng điều khiển là đồng nhất, có nghĩa là tất cả các bảng điều khiển có cùng phần cứng (tất cả PS3 có cùng hiệu suất phần cứng). Khi bạn tạo trò chơi cho PC, bạn nhắm mục tiêu thông số tối thiểu, nhưng bạn cũng cho phép người dùng tăng chất lượng cho các PC mạnh hơn. Các trò chơi được nhắm mục tiêu cho PC ít được tối ưu hóa, nhưng dễ thực hiện hơn cho các lập trình viên.

Lập trình trên console có một lợi thế, nó cho phép lập trình viên tối đa hóa hiệu suất, do đó, bất kỳ game console nào cũng sẽ luôn hoạt động tốt.

Trên PC, điều đó còn tệ hơn, bởi vì có rất nhiều phần cứng ngoài kia, nhưng được cho là, nó tự do hơn, trò chơi có kết quả tốt nhất sẽ luôn có trên PC, bởi vì PC luôn ở trong tình trạng khó khăn.

Việc chuyển một trò chơi từ console sang PC có thể khó khăn, bởi vì console được thiết kế để thực hiện trò chơi, trong khi PC thì không, nhưng về tổng thể, việc chuyển một trò chơi từ console sang PC dễ dàng hơn nhiều so với ngược lại, bởi vì console có bộ nhớ rất ít, một cái gì đó như ít hơn 2 hoặc 4 lần.

Thay đổi mã để thích ứng với hạn chế bộ nhớ này sẽ luôn có nghĩa là lập trình lại hoàn chỉnh.

Tôi không nghĩ rằng thật khó để chuyển một trò chơi từ bảng điều khiển sang PC, đó chỉ là vấn đề về API. Các công ty và lập trình viên chỉ làm việc với bảng điều khiển sẽ gặp khó khăn khi chuyển sang PC, vì họ không quen với nó, nhưng cũng vì họ liên tục thích ứng với API bảng điều khiển, do đó, mã của họ sẽ thường trả lời hạn chế trình biên dịch bảng điều khiển và không nhất thiết phải chăm sóc cho PC apis.

Tất nhiên, các động cơ có thể được lập trình để chạy trên tất cả các máy chơi game và PC, một khi mọi việc trở nên dễ dàng hơn, tốt hơn là bảo các lập trình viên của bạn chuyển động cơ sang PC sau khi họ được bảo rằng nó không bao giờ được lên kế hoạch trong 3 hoặc 4 năm.

Các bảng điều khiển TL; DR là đồng nhất và một thế hệ console cuối cùng, PC không đồng nhất, và phần cứng và API liên tục phát triển. Chi phí được trải đều giữa lập trình và xây dựng phần cứng, đó là sự thỏa hiệp.

Một điều tốt là sẽ cho phép tất cả phần cứng chạy mọi thứ, nhưng giá bàn điều khiển được bù bởi vì các công ty trò chơi trả tiền cho nhà sản xuất bàn điều khiển, vì vậy họ khóa phần cứng của họ để chỉ chạy các công ty trò chơi trả tiền. Nó lộn xộn.

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.