1 程序员visonOS开发指南
作为iOS开发者,切换到visionOS开发非常简单啊,过去的一些技术基本上都用得上。目前根据苹果WWDC官方的文档,视频,我们可以知道:
开发语言,使用的是swift object-c c c++等,swift当然作为首选。
开发界面,使用的是swiftUI, 如果要展示3D模型,
用RealityKit. 空间计算以及交互,
有ARKit。如果你只是过去的iOS应用,
重新打包发布下也可以直接在visionOS上用,甚至可以直接使用iOS的软件。 所以会使用swift,swiftUI, 学习下ARKit,RealityKit就能够胜任visionOS应用开发。
深入的visionOS开发
熟悉3D领域的知识。OpenGL不知道是否继续支持,首选的肯定是Metal。
3D领域的模型格式啊,uv,纹理,贴图,光照,顶点变换管线,渲染管线这些也是基础的知识,各种3D格式,fbx/gltf/glb/usdz等等。
开发3D,你最好还要懂得一个建模软件,官方前列推荐的是blender。
除了3D,音视频也是重头戏,H265格式,3D视频格式。还有流媒体等领域的知识,都是作为资深visionOS开发必须掌握的基础。
2 软件开发也是一场豪赌.
软件开发者,选择一个技术方向,抱谁的大腿,也是一场自己命运的赌博。 尤其是程序员,如果长期做某一项技术,容易形成宗教一般的信仰,崇拜。要他改变,非常难。
比如我自己,我大学四年,死磕linux,qt。 于是我在2008年,就开始研究Nokia的手机开发方案,Meego, symbian。用Qt去开发诺基亚的手机应用。一方面因为自己长期使用的技术很难切换,另一方面相信Nokia,Intel,三星这些公司。结果发现,操作系统领域,是微软,谷歌,苹果的天下。
虽然从技术的角度,学习Qt也是很好的,但是从编程投入产出比,相对于iOS,Android就很低了。我也是毕业做了一年嵌入式linux Qt音视频后,才快速切换到手机音视频开发赛道。相当于浪费了三年时间。
所以程序员做开发,选择一个技术,最好未来能够大规模应用流行,否则你也是上了贼船。职业生涯跟押对宝的开发者来说,就差太远。所以选择正确的技术方向,然后All in它。
3 苹果头显游戏开发 游戏引擎1 Unity3d
Unity3D是一个很好用的游戏引擎,对于初学者也很友好,尤其是它的c#作为主要开发语言,也非常好用。 当年iOS上最初一些成功的游戏,都是unity3D开发的,比如滑雪大冒险,神庙逃亡。
后来国内大量的游戏公司,基本上也都是用Unity3d作为游戏开发首选。游戏公司也非常好招人。Unity3d,入门开发比较简单,但是想深入也需要花很多时间去学习。
游戏开发行业,程序员所占的权重,不像普通应用那么高。游戏策划,2D 3D美术啊,技术美术啊,服务器开发啊,所占的权重都跟游戏客户端程序员差不多甚至更高。
所以普通个人,你如果想开发一个普通工具软件,一两个人就能完成,最多自己学习下UI设计。 但是如果你想做一个独立2D,3D游戏开发者,就相对困难一些。
2D,3D美术资源,shader,都没那么容易,更适合团队协作去完成。3D领域的开发投入太高,这也是这些年元宇宙比较困难的因素之一。
4 苹果头显游戏开发 游戏引擎2 Godot
VR AR头显游戏开发,除了Unity3D,其实还有UE,cocos3D这些游戏引可以选择。当然UE母公司跟苹果关系好像有点不好。
那么最像Unity3D的开源游戏引擎,Godot也是一个不错的选择。
Godot支持c#开发,官方推荐的额是自家的GDScript一种类似python的脚本,学习起来也很快。Godot有些好处,比如跟Blender操作无缝衔接。shader开发也是glsl那一套东西,支持所有的平台,免费开源。 而且可以支持GDExtension 最近写c c++插件,本身似乎也支持ARKit,如果什么东西不支持,自己封装一些,写个插件也很容易。
重点是开源免费,适合个人,小工作室。
我个人2012年开始用Unity3d写过几个应用,但后来因为这些应用都没怎么赚到钱,以及国内上架游戏需要版号,所以买了几年Unity3D,就没用它了。但是不妨碍Unity3d很好用啊。
2017年以后,我更多的使用OpenGL,Metal开发了一些软件,很多时候都在自己写渲染引擎。
今年我有两个软件,想用回unity3d, 但看了下关注了很多年的Godot, 就决定用Godot代替Unity3d了。用了大半年,写了两个项目,发现Godot也很好用。无论你用GDScript或者C#都可以。
VR AR MR开发时代,音视频,图像处理开发技术,尤其是OpenGL ES是最基础的技术。
这里给大家推荐我个人的音视频,图像处理开发系列课程。