你可能已经听过无数遍"开发游戏太难了"这样的利用量抱怨。但当我第一次用GameKit框架做出会动的架快小人时,突然觉得这事就像搭积木一样有趣。速开手机苹果的发出这个框架就像个百宝箱,里头装着现成的高质多人对战、成就系统、游戏排行榜这些硬核功能,利用量让我们这些普通开发者也能做出专业级游戏。架快

为什么选GameKit?速开手机看看这些硬核优势

上周我帮朋友改造他的像素风跑酷游戏时,发现GameKit这几个特点特别实在:

  • 成就系统自带存储功能,发出不用自己折腾数据库
  • 语音聊天模块直接调用,高质省去第三方SDK的游戏对接麻烦
  • 游戏中心整合了社交属性,玩家能看见好友的利用量进度

  • 在表格添加结构化数据 -->
  • 主流游戏框架对比表

    功能/框架GameKitUnitySpriteKit
    开发效率★★★★☆★★★☆☆★★★★★
    跨平台支持苹果全家桶全平台仅iOS/macOS
    物理引擎基础碰撞检测完整物理系统2D物理支持

    手把手教你搭个游戏骨架

    准备工作别马虎

    记得去年有个开发者因为没配置好证书,游戏中心功能死活调不起来。架快现在每次新建工程,速开手机我都会先做三件事:

    1. 在Xcode的Signing中勾选GameCenter
    2. 去苹果开发者后台添加游戏记录
    3. 把GKLocalPlayer的认证写在viewDidLoad最前面

    成就系统这样玩

    给游戏添加成就时,我发现个取巧的办法:把大成就拆成多个小进度。比如"收集100金币"可以分解成10个阶段,每次触发进度更新时,用GKAchievement的reportProgress方法分段上报,这样玩家更容易获得成就感。

    多人对战开发实录

    去年做联机桌游时,在匹配功能上栽过跟头。后来发现GKMatchmakerViewController这个现成的匹配界面,支持自动匹配和邀请好友两种模式。要注意的是网络延迟处理,我通常会在收到数据包时加个时间戳,用插值算法做动作补偿。

    语音聊天避坑指南

    • 测试时一定要关掉手机的静音键
    • 背景噪音过滤用GKVoiceChat的volume调节
    • iOS系统会强制压制后台应用的语音优先级

    那些年踩过的坑

    问题现象解决方案参考文档
    成就突然清零检查iCloud同步状态GameKit编程指南
    匹配超时关闭IPv6 Only网络WWDC2017 Session 709

    最近在做的AR射击游戏里,GameKit的实时通信功能帮了大忙。虽然它不像Unity有酷炫的粒子效果,但对想快速出活的小团队来说,这个框架就像瑞士军刀,该有的功能一个不少。有次凌晨三点调试排行榜时,看着模拟器里跳出的金色奖杯,突然觉得做游戏这件事,也没传说中那么可怕嘛。

    推荐两本枕边书:《GameKit by Tutorials》和苹果官方的《Human Interface Guidelines》,这些实实在在的参考资料,比网上零散的教程管用多了。希望这篇指南能让你少走弯路,早日看到自己的游戏出现在App Store排行榜上!