c++ - 跨平台游戏开发需要注意什么?

标签 c++ linux macos

我将在大约 3 周后开始制作一款游戏,我真的希望这款游戏至少能在另一个平台(Linux、MacOS)上运行,但我的团队认为这需要大量工作。我支持它,但想知道我应该注意哪些不会移植到 linux 的东西(除了 Windows 特定的 API,如 DirectXsound)?

我一直在网上阅读和 Windows“_s”函数,如 sprintf_s 似乎只存在于 Windows 上;这是正确的还是它们也在 linux 上实现?

最佳答案

不,_s 函数没有在标准 gcc 库中实现。 (至少,grep 查找“sprintf_s”的包含文件根本没有结果。)

可能值得查看像 boost 这样的跨平台库和 apr做一些繁重的工作。

要查找的特定事物的示例:

  • 输入/输出(DirectX/SDL/OpenGL)
  • Win32/windows.h 功能(CreateThread 等)
  • 在 UI 上使用 Windows 控件
  • 同步原语(临界区、事件)
  • 文件路径(目录分隔符、根名称)
  • 宽字符实现(Windows 上 16 位,Linux 上 32 位)
  • Linux 上不支持 MFC(CString 等)

关于c++ - 跨平台游戏开发需要注意什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/721548/

相关文章:

linux - 标记两个文件中的差异

windows - Google Maps api v3 + canvas + chrome 导致 youtube 视频和 map 元素出现黑框

c++ - 串行端口轮询在 Beaglebone Black 上不起作用

c++ - 树的直径

python - 当我们在文件上使用 "open with"时,它提供什么参数?

c - numa、mbind、段错误

macos - 在 macOS High Sierra 上安装 flutter 时遇到问题

eclipse - 在 Mac 上设置良好的 Clojure

c++ - 构建二进制字符串 C++

c# - 在 Racket 上实现 RC4