游戏开发技术上的难点主要在于其涉及面非常之广泛,而且涉及到的每一个技术点都有相当的深度可挖,这点已经有很多答主提到过我这边就不展开了。
更复杂的是,每种游戏类型,其涉及到的数据结构、基础算法、shader、UI架构、AI.....等等方面都有着大量的差异。即便是最有经验数十年的开发者,也只能敢说自己精通某一类型的游戏开发,换个类型也只能慢慢再积累经验。另外,游戏引擎的迭代速度相对于其它IT行业的开发工具相当之快,往往每隔两三年就能有较大的改进和性能提升。因此对开发者的学习能力有着相当高的要求,赖在某个技术或者引擎上吃老本是万万行不通的,这一点在游戏行业尤其突出。当然这也带来toolchain不稳定的弊端,很多人就是因此放弃游戏开发。
在引擎之外的工程实现上面,游戏开发存在着需求多变的现实。在互联网行业,一个应用的核心功能一旦确定,架构上就很少会有大改动或者全部推翻重来的情况,同类型的网站甚至完全可以使用通用的框架和架构进行开发,也有很多高水平的开源架构可供学习。而在游戏行业,核心玩法在确定下来之前,进行反复修改试错甚至全部推倒重来是常见现象。即使渡过了确立核心玩法的阶段进入内容开发期,仍然要考虑到架构的稳定性、易用性和可扩展性。与互联网行业不同的是,策划的脑洞程度往往和黑洞差不多,你永远无法预料到需求会如何变化。因此在写游戏架构时,往往需要一些更高程度的抽象和模块化封装。
但是,“更高程度的抽象和模块化封装”是需要花时间和人力成本的。在时间人力有限的情况下,是保证尽快出可用的demo,还是把时间花在这些基础和工具性质的开发上?这当中的选择本身就是一个难点,而且并没有任何通用的答案。
当然,以上这几点在互联网、软件行业属于共性,但从我个人的体验上来说,游戏行业尤其突出。
最后,当在游戏行业历练过一段时间之后,就会发现游戏开发最大的难点并不在技术本身,而在于如何把技术和艺术结合起来,就好像“站在技术与人文的十字路口”一样。游戏本身是一种艺术形式,开发者的技术水平决定了游戏质量的下限;而艺术和人文修养,就决定了成就的上限。
以上我提到的任何一个方面,要做到精通恐怕都需要用十年为单位的时间。何况每个方面都很重要呢?
不算。
这就和黑客技术中最难以防范的技术要点往往和技术无关,
属于社工类的一样。
IT行业中,最难做到的也不是尖端的图形技术或者虚拟技术,
而是说服老板浪费那么多钱做积累沉淀。
很多技术宅可能不太愿意承认这一点,
但他们可能没办法否认《原神》是现在技术表现最好的手游之一。
而原神为什么可以诞生,为什么别的厂抄不了,为什么就是没有竞品呢?
是因为技术吗?
显然不是的。
就是因为只有米忽悠的老板愿意砸钱在二次元手游上做工业化的沉淀和积累的缘故。
我可以不客气的说一句,别的厂,哪怕腾讯,没这个底蕴。
而这个底蕴,方向换一换,
就是3A游戏门槛,优秀工业软件门槛之类的,
“软件工程铁王座”,
或者叫“软件工程王冠上的珍珠”。
麟之趾
(先秦)佚名
麟之趾,振振公子,于嗟麟兮。
麟之定,振振公姓,于嗟麟兮。
麟之角,振振公族,于嗟麟兮。