# 把 PC 游戏移植到移动端

> 引擎那部分是容易的。触摸操作、小屏幕、短时段游玩和发热限制，才决定这次移植的成败。

- URL: https://www.summerengine.com/zh/port-pc-game-to-mobile
- Keyword: 移植 PC 游戏到移动端
- Related: https://www.summerengine.com/zh/porting

把 PC 游戏移植到移动端，意思是为手机或平板重建一款你拥有的游戏的输入、界面和性能预算。把桌面构建缩小、再在上面画一个虚拟手柄，是移动移植失败最常见的方式。

有四条约束驱动所有决定。输入变成触摸，它不精确，而且手指会盖住一部分屏幕。屏幕很小，所以密集的 UI 变得看不清。单局很短又会被打断，所以游戏必须不停保存和恢复。硬件运行在发热和电池的包线内，所以持续帧率比峰值性能重要得多。

Summer Engine 目前导出桌面版本，iOS 和 Android 版本需要对应平台的工具链和签名（Android SDK 和密钥库，或用于 iOS 的装有 Xcode 的 Mac），还要针对触控输入做一轮适配。C++ 和 GDScript 都能迁移过来，C# 可在桌面编辑器中使用，不过在 Godot 4 工作流中，C# 在移动端仍属实验性。项目归你，两个平台上都不收分成。

## 重新设计操作，而不是重新映射

看看这款游戏需要哪些动词，再为它们找到触摸上的对应。指向点击几乎可以直接适配。即时战略需要一套新的选择模型。双摇杆射击需要自动瞄准或锁定。精确平台跳跃需要慷慨的输入缓冲和土狼时间。模拟和经营类游戏在平板上往往比在桌面上更好。为想要的玩家加上手柄支持，但游戏必须只靠触摸就完整。

## 为小屏幕重建界面

桌面 UI 默认有鼠标、悬停状态、右键菜单、提示条和密集信息。这些在手机上一样都没有。加大字号，把点击目标放大到至少 44 点，去掉依赖悬停的信息，用长按替代右键，并把拥挤的界面拆成少量清晰的界面。让主要动作区域避开拇指搁放的位置。在两个平台上都尊重刘海和安全区。

## 性能与下载预算

把贴图分辨率砍到手机屏幕上看得出来的程度，按平台使用压缩格式，减少绘制调用，简化光照和后期处理。测量几分钟之后的持续帧率，因为降频出现得晚。盯住内存，因为两个平台都会终止超出预算的应用。把下载做小：iOS 在大体积蜂窝下载前会提示，Android 的安装转化也会随体积变大而下降。

## 单局设计与商店预期

移动端的单局只有几分钟，还会被来电和通知打断。频繁自动保存，让玩家从离开的位置精确恢复，并让隔一周回来时进度依然读得懂。考虑把很长的 PC 关卡切成更短的单元。然后有意识地决定变现：买断价在移动端行得通，但要和免费产品竞争，而任何数字商品的应用内购买都必须走苹果或谷歌的结算。

## FAQ

### 我能直接给 PC 游戏加个虚拟摇杆吗？

那很少奏效。屏幕上的摇杆不精确，还会挡住画面。围绕点按、长按、滑动和拖拽重新设计操作方案，并在原作依赖精准的地方加入辅助。

### 先发 iOS 还是先发 Android 更容易？

Android 测试更快，因为你能立刻把构建装到手机上，不用审核。iOS 的流水线更严，但设备范围更一致。很多团队在 Android 上开发，然后两边都提交。

### 同一套代码能在移动端跑吗？

玩法代码基本可以。C++、GDScript 和 C# 在移动目标上都能用。变的是输入、UI、资源预算，以及挂起与恢复的生命周期处理。

### 移动端玩家一定期待免费游玩吗？

那是主流模式，但买断制手游确实卖得动，尤其是在 PC 上已有口碑的移植。早点决定，因为变现设计影响的是节奏和成长线，不只是价格标签。

### 从 PC 到移动端的移植要多久？

把预算算在重新设计上，而不是算在构建上。操作方案、UI 改造和性能打磨，通常比让引擎产出一个移动端二进制更花时间。

[开始重建](https://www.summerengine.com/zh/download)

---

## Machine-readable resources

- Site index for agents: https://www.summerengine.com/llms.txt
- Full inlined content: https://www.summerengine.com/llms-full.txt
- Porting catalog: https://www.summerengine.com/llms-porting.txt
- Structured catalog: https://www.summerengine.com/agent-catalog.json
- Sitemap: https://www.summerengine.com/sitemap.xml
- Developer resources: https://www.summerengine.com/docs
- Summer API (assets from any agent or code; public per-call model prices): https://docs.summerengine.com/api