为什么很难将游戏从游戏机移植到PC?[关闭]


27

主机游戏的PC端口通常会在一两个月后出现。为什么是这样?

游戏也是用也可以在PC上编译的语言编写的,因此游戏逻辑应该毫无问题地进行编译。那是什么阻碍了他们呢?它是呈现代码还是什么?


3
这可能是由于发布交易。他们因制作PS3 / PS4独家头衔而从索尼获得报酬。
奥鲁斯

我说的是一些主机上的游戏。他们说,“端口”将在控制台发布X个月后出现。问题是他们等待的原因是什么。我的意思是,营销可以做些事,但是我对程序员很感兴趣。
Bloodcount

但是Aurus是对的,这是最可能的答案。从控制台向PC移植代码并非易事,原因有很多。在主机发行后不久,大多数为PC推出的游戏最初都是为PC设计的,或者至少底层技术支持简易端口。否则,几个月可能还不够
Grimshaw 2013年

关于您的评论“游戏是用在PC上编译的语言编写的”并不总是正确的。特别是,我想修改一个著名的报价:“控制台和PC可能都是计算机,但并非所有计算机都是一样的”。
kurtzbot

Answers:


47

PC端口可能要花费一些时间,原因有很多。(如果我似乎要在某个地方重复我自己,我深感抱歉;这是即时写的。)

调整控件和游戏玩法

当您在控制台上玩游戏时,这仅会限制您的操作,因为所有用户都拥有一个游戏手柄。

仅在键盘按键和控制器输入之间创建1:1映射并不总是一个好主意-即使可能的话-有时要花更长的时间才能找到一个好的解决方案。

硬件抽象/碎片

当您开发Wii U时,您会确切地知道Wii U的行为,因为所有Wii Us都是相同的。对于PC而言并非如此。您有许多不同的图形卡和CPU,有时某些功能将无法使用。发现这些错误需要大量测试,并且修复它们还需要时间。

如果您从未使用过引擎来制作PC版本,则还需要相应地编写硬件抽象代码。有些游戏希望支持Linux / Mac的多个DirectX版本 OpenGL,如果以前没有做过,那么所有这些都需要时间来编写。

资源争夺

在游戏机上,游戏不必与操作系统争夺资源等。在后台并没有发生很多事情。

在PC上,您正在运行操作系统,并且有大量的后台程序,这一切都意味着您所获得的份额不会达到您的期望。这意味着您有时需要执行其他优化,尤其是对于低端系统上的播放器

改善资产

使用控制台时,您有一个固定的目标,因此您可以编写着色器等以匹配该目标。

在PC上,某些图形卡支持更高级的功能,也许您想为它们使用更好的着色器。好吧,这意味着您必须编写该着色器。

平台特定的东西

控制台SDK可能具有许多不方便映射到PC的便捷功能-例如,它可能提供对硬件计时器或良好声音API的访问。

这些东西通常在PC上不可用。您需要使用其他方式来完成这些任务,并且可能会改变您抽象平台差异的方式。


4
与控件,用户界面相关,您仍然可以看到很多内容,其中PC桌面上的菜单甚至无法使用鼠标,例如,它们已经完成了从d-pad到键盘的1:1映射。另一个潜在的问题是着色器语言和驱动程序支持。
卡斯珀·拜尔

1
总体来说很好的答案。但是,如果开发人员想从控制台中获得最大性能,通常仅靠底层特定平台代码是不够的,那么游戏本身必须经过精心设计,以利用控制台硬件的强大属性,这就是“不一定也是PC的理想解决方案!
Grimshaw

6

一个简单的原因是,控制台具有一套与每个控制台相同的硬件。

您的XBox,PS3和Wii都具有与邻居XBox,PS3和Wii相同的硬件。但是,您的计算机具有不同的CPU,不同的图形卡,不同数量的RAM,实际上,整个配置和操作系统设置,已安装的驱动程序都可能是世界上其他任何人都无法完全实现的唯一排列。

这就是很难移植到PC的原因。您需要考虑最低系统要求及以上的所有可能硬件。这是编程和调试的棘手且困难的过程。对于开发人员来说,很难知道每种配置都要编程,并且几乎不可能在这些配置上运行测试。

一旦他们为PC开发了它,开发人员就会进行大量的内部测试,但是它也可能依赖于用户长达数周到数月的Beta测试。在正式发布PC端口之前,将测试版测试外包出去的典型原因是,您发现控制台和PC之间的发布日期存在差距。


5

将代码移植到新平台需要花费时间。为Xbox 360创建一个纳秒计时器(我从未在XNA中开发过)将需要与Linux,Mac或Windows中相同的纳秒计时器不同的实现。现在想象一下,您有数百种需要移植的功能类型,如果引擎足够强大,则有数千种功能需要移植。

要为新平台添加这些不同的实现,可能需要花费一两个月的编码。最重要的是,您不能总是在Xbox 360上使用与Windows,Playstation 3或其他平台上相同的库。这意味着您可能必须使用全新的库才能执行与Xbox 360版本相同的操作。

总体而言,这些事情加起来要花费大量时间。对于大型AAA游戏而言,移植到新平台几乎是不容易的。


3

在许多情况下,这几乎与努力无关。

这不是优先事项。他们正在努力勉强及时赶出大门。每分钟的差异都需要花费时间来解决。如果您可以在截止日期前在一些控制台或PC上发布,请先执行此操作,然后再打包端口。提前发布,赚更多钱。尽管上一代盒装游戏已经开始转变,但总体上来说它们在台式机游戏上的表现要好一些-新游戏机可能会扭转这种局面。

同样,在某些情况下,主机制造商可以享受独家发行的好处,因此,如果发行商首先在特定的主机上发行,然后在其他平台上发行,则可以获得折扣或类似优惠。没什么技术性的。


1

最初,在游戏机上制作游戏要比在PC上制作游戏难。最重要的是,在任天堂,索尼和微软之间,控制台具有非常不同的规格和不同的硬件,这不仅导致性能不同,而且意味着不同的瓶颈问题。

通常,游戏只是调整引擎以在每个控制台上最大化质量和性能。

适应PC时,还有其他问题。控制台是同质的,这意味着所有控制台都具有相同的硬件(所有PS3都具有相同的硬件性能)。当您为PC制作游戏时,您的目标是最低规格,但同时也允许用户提高功能更强大的PC的质量。针对PC的游戏优化程度较差,但对于程序员而言更容易制作。

在控制台上编程具有一个优势,它允许程序员最大化性能,因此任何控制台游戏都将始终表现出色。

在PC上,情况更糟,因为那里有许多硬件,但是,当然,它具有更大的自由度,因此效果最好的游戏始终在PC上,因为PC始终处于最前沿,但要付出一定的代价。

将游戏从游戏机移植到PC可能会很棘手,因为游戏机是为提高游戏性能而设计的,而PC并不是为了游戏性能而设计的,但是总的来说,将游戏从游戏机移植到PC的过程要容易得多,因为游戏机的内存要少得多,少2到4倍。

更改代码以适应此内存限制通常将始终意味着完全重新编程。

我认为将游戏从主机移植到PC并不困难,这只是API的问题。只使用控制台的公司和程序员将很难移植到PC,这是因为他们不习惯PC,而且还因为他们不断适应控制台API,因此这意味着他们的代码通常会满足控制台编译器的限制,并且不一定需要PC api。

当然,可以对引擎进行编程以使其在所有控制台和PC上运行,一旦完成,将变得更加容易,总比告诉您的程序员在3到4年内从未计划过将引擎移植到PC上要好。

TL; DR控制台是同类的,并且是上一代控制台,PC是异构的,并且硬件和API不断发展。成本分散在编程和硬件构建之间,这是一个折衷方案。

一件好事是允许所有硬件运行所有东西,但是控制台价格得到补偿,因为游戏公司向控制台制造商支付了许可证,因此他们将其硬件锁定为仅运行付费的游戏公司。太乱了

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.