对于像游戏这样的软件应用程序,这是否意味着软件公司需要大量额外的代码来维护某些库的 3 个分支?
我知道这很难说,但是对于一般的游戏开发,软件中是否有特定的区域需要编写 3 次才能在所有 3 种风格的窗口中工作?
我猜核心软件将保持不变,但也许某些驱动程序需要特定于版本?
对于像游戏这样的软件应用程序,这是否意味着软件公司需要大量额外的代码来维护某些库的 3 个分支?
我知道这很难说,但是对于一般的游戏开发,软件中是否有特定的区域需要编写 3 次才能在所有 3 种风格的窗口中工作?
我猜核心软件将保持不变,但也许某些驱动程序需要特定于版本?
这取决于您与操作系统的距离。如果您只是使用 .NET 框架或 DirectX,则操作系统之间可能没有太大变化。如果您正在编写驱动程序或依赖 Win32 API,那么肯定会有细微或不那么细微的变化。
如果您的代码一开始就正确编写,那么在支持操作系统升级方面不应该进行大量投资。使用 .NET 框架之类的东西有助于进一步保证这一点。
另外,为什么游戏会有“驱动程序”?
并不真地。如果您使用 DirectX 9,则在所有 3 个 Windows 版本上都可以。额外的维护围绕着诸如安装程序/卸载程序、关于 Vista 中新的游戏选项卡(如果你想使用它)等的东西而发展,但如前所述,DirectX 9 是所有 3 上的稳定 API。
您将通过 DirectX 10(不在 WinXP 上)和 OpenGL(Vista 中的支持很奇怪)获得一些乐趣。
即使您使用 DirectX 或 .Net 之类的“便携式”接口或任何应该提供相同功能的接口,负责任的软件开发人员也必须在每个受支持的平台上进行 QA 和测试。
(请注意,我并不声称自己是负责任的软件开发人员。:-))
许多游戏开发者,包括我工作的工作室,都使用管理跨平台问题的引擎。我们在游戏中使用虚幻引擎,它可以移植到 PS3、Xbox 和 PC 上,除了它们之间的性能差异之外没有任何问题。引擎通常处理平台的差异。
作为一名 .Net 开发人员,我在运行使用 XP 作为原始目标构建的应用程序时看到的大多数问题都是我们做错了,而恰好在 XP 中工作(大多数使用在 XP 上看起来不错但错误的系统颜色)对于 Vista - 例如,默认的 Vista 主题会导致黑色背景上的黑色字体)。
它是最好的巧合编码(我们天真到不知道它是错误的)。但是,一旦我们开始在 Vista 和 XP 上进行测试,我们就开始生产更好的 Windows 产品。