昨晚,苹果正式发布了Apple Watch,预计将于4月24日在中国大陆和香港地区开始发售。为了配合Apple Watch的发布,相应的iOS测试版已经更新到了8.2,XCode也更新到了 6.2 Beta3。Apple Watch离我们已经越来越近了,那么目前的Apple Watch是如何运作的?上面的程序要如何开发?对于游戏开发者而言,我们目前能在上面实现哪些和游戏相关的功能?本文就从软件开发的角度而言,看看我们能拿Apple Watch来干些什么。
硬件
切入正题之前,我们先来看看参数。
Apple Watch有两种尺寸:38mm和42mm,对应的分辨率分别是 272×340, 312×390。 宽高比是4:5。 作为智能手表的初代产品,跑上来就玩两个分辨率会不会让某些完美主义的程序员头痛不已呢……
官方对处理器的叫法是“Apple S1”,目前关于这款处理器的信息还是相当的匮乏,只知道苹果将其描述成SiP(System in Package),里面集成了运算处理模块,内存模块,存储模块,无线模块,传感模块,IO模块——几乎就是把所有的东西集成到了一起。
软件开发
作为软件开发者,我们最关心的自然还是开发环境和例子程序,以便快速了解Apple Watch的特性。
目前可以在Apple Watch上运行的内容可以分成三个类型: Glances,Actionable Notifications和Watch App。Glance简单的说就是只读信息,说它是只读,是因为你不能和Glance有任何的交互;Actionable Notifications相比Glance来说多了一些很简单的互动, 比如HomeKit可以通知你说家里的灯忘记关了,附带一个选项:关灯。
WatchKit Apps就不一样了,既然叫App,那自然可以做很多事情:显示文字,展现图片,可以有列表选择,有按钮输入反馈等等。
如果你的Xcode还没有升级,请到开发者网站上下载最新的Beta版本。我这里使用的是Xcode 6.2 Beta3,里面有iOS 8.2 Beta SDK和相应的模拟器。
在项目工程中选择File——New——Target,已经可以看到WatchKit App选项了。
如何利用
那么,目前游戏开发者可以利用Apple Watch做些什么呢?
WatchKit App本身并没有运算能力,以目前的WatchKit而言,也不能让你随心所欲地进行控件的排布。具体来说,所有的控件只能一个接一个的垂直排列,加上对Group的运用,可以将多个控件水平排列。而且这些排布目前只能在storyboard中完成,不能在代码运行时动态地添加或改变其大小。WatchKit对于界面做出的种种限制使得一般的App应用都要好好地考虑设计一番,对于没有定式的游戏来说就更加难以满足需求了。
目前游戏可能可以这样利用Apple Watch:
1. 游戏中的通知
随身的手表相对于iPhone来说,更适合通知消息的弹出,游戏可以将原本在iPhone端弹出的通知消息放到Apple Watch上,让用户快速得到游戏的最新动态。如果愿意,也可以点击通知启动iPhone上的游戏。此功能使用简单的Glance或者Actionable Notifications就可以胜任了。
2. 游戏中的游戏
在WatchKit这样有种种限制的设备上开发一个复杂的游戏显然是不行的,但是作为游戏的衍生则完全可行。有些游戏为了打发长时间无聊的Loading等待,会事先加载一个无关痛痒的小互动。《Zelda》为了让你拿到“心之碎片”,也会在游戏中加入有一定难度的小游戏。
我们可以根据自己的需要,在Apple Watch上放上游戏中的小游戏。举个例子,如果我们的iOS游戏是个很有特色的RPG,你带着你的宠物在魔幻世界闯荡,获得各种奇珍异宝。那么在手表上,完全可以做一个宠物养成的扩展。你可以在手表上随时与你的战斗宠物发生亲密互动:抚摸宠物,给宠物喂食,给宠物洗澡等,这样宠物的体力可以更快地恢复,参加到下一场战斗中。又或者我们可以在手表上制作一个777开宝箱的游戏,玩家把钱投进老虎机,然后转出宝贝。
就目前的AppleKit Framework而言,我们可以看出苹果一贯的套路:一开始别想得到那么多功能,给我老老实实的从简单的做起。在Apple Watch上跑3D程序是不可能了,就目前Framework里面提供的控件来看,大体上只能做一个拼字类的游戏。
但相信随着时间的推移,更多功能都将开放给开发者,让我们能做更多有趣的事情。说不定等第二代、第三代Apple Watch产品推出的时候,其性能已经强大到可以在上面直接执行代码,成为个人设备。到那个时候,说不定还可以直接移植一个精简版的Mono上去,用Unity直接开发Apple Watch原生程序呢。