接上文!!!
所以最后我们会有一个Game design的分析。这个分析主要是在游戏类型,最后这个游戏会发布在什么平台上,游戏的玩法具体是什么样子的,需要提供给玩家哪些比较特殊的玩家体验等等。列出来这4项是一定要去考虑的:游戏类型、发布平台、核心玩法,以及特殊的游戏体验。
我们通过这Game design的分析,挖掘好策划能力需求之后,或者是你可以认为整个制作人所代表的,这个产品上的需求之后,我们就要开始做顶层的架构设计了。那这个顶层架构设计就会分到方方面面,所以我说架构它所包含的关键词有蛮多的。比如说引擎,我们要选择哪种引擎,现有的引擎有没有能彻底满足我们需求的,还是说没有一款是能够满足的,我们可能还要改。
然后第二个所用的语言,客户端的语言,服务端的语言,然后我们的服务器的架构是什么样子的,我们用什么样的数据库,我们的美术规范是什么样子的,通通都要在这个顶层架构设计阶段考虑完毕。包括我们未来的商业化可能会怎么做,这些都会在架构上面有所体现。
然后再往下,就要拆分为客户端和服务端的单独的架构设计,把这里面两块都会分为底层的框架设计和业务层的框架设计。底层的框架设计是做基础支撑的,提供了一些基础功能。基础这两个字并不代表它简单,只是它在你整个架构里面处于一个地基作用。很多同学听到一个基础两个字,好像感觉他很简单,其实并不是。
游戏业务层,业务层的框架的话,更多是提供给到我们的会在上面做迭代开发,比如说初中级的程序员去快速使用这套框架,去快速开发业务系统的。然后再往下,我们还要去制定单个系统的设计规范,或者说设计流程。那这里面一般规范的设计流程就是模块的要点,系统的模块结构,具体的模块的设计,数据结构配置与协议等等。
另外还有一块额外的,就是我们要去制定这个工作流程,就是我们和策划、美术那边配合。因为所有东西都会被整合到引擎里面去,然后成为一款可玩的游戏。
所以我们要去制定好,策划配表的格式,美术资源提交的格式是什么样子的,这些都要规范好。甚至做一些自动化的工具,去加快优化我们整个流程的速度。
其实整个我们说设计层面,就算你不懂代码你应该也能听得懂。这里讲个故事,阿里云的首席架构师,是一个心理学的博士,他并不是专业出身的。所以说架构这个东西是看你想不想去了解,想不想以这种思维方式去思考。但是,如果你永远不以一个设计者的角度去思考,或者说像建筑工程师、建筑设计师一样,这种总工程师的角度去思考的话,你永远都学不会。但是如果你用这种方式去思考,其实你会发现很多东西都是抽象的。抽象的东西,它不需要你具体自己要去实现某一块的。你更多的是要知道技术和技术之间的关系,以及各种技术组合起来,他会产生一个什么样的效果等等。当然软件设计的这套流程你是需要了解的,如果你有技术基础,会理解的更快。
但是为什么有很多程序员,他做了程序做了七八年甚至10年,就会面临一个大家所经常说的什么35岁淘汰。因为他永远没有去进行这方面的训练,或者在工作当中他们有意识的去学习这方面的东西。而他更多的是停留在,比如说实现单个某一个系统、实现一个工会,实现一个背包。今天在这个项目组里面他还是做这些工作,明年到下个项目组里面他还是做这些工作,他永远都没有去扩展自己的视野。那这个时候,到30多岁的时候,可能慢慢就会被年轻人淘汰。因为那些具体的一些实现,其实说句实话,你学个半年一年你就已经能够做了,然后如果你做个两三年,每个人都可以很熟练。
当然这里面实现层面也有区别,你对设计模式的一种理解,你对算法数据结构的一种应用能力,其实也会导致你的这个代码的质量是不一样的,包括单个系统的系统模块的拆封,很多同学其实都没有到架构这个层面,系统设计上其实都很欠缺,就是这个系统设计这一层。很多同学其实做个几年,都没有什么成长的。
所以刚入行一定是在系统设计这一层level,这一层级你要去思考的是我怎么样又快又好,就是又快又高质量的去实现一个系统。别人实现用5天,我用两天。别人用5天实现出来的系统,可扩展性还比较差,我的可扩展性就比较强,这个也是区别。而且在项目组里面,你会发现两天实现一个系统,质量又高,然后扩展性又强的,和5天实现一个系统有bug,扩展性极差的,性能极差的。这两个人在同一家公司他的薪资都不一样,虽然他们好像干的是同为同样的事情。
扫描下方二维码,领取免费训练营!