浅谈游戏开发
和大多数工作一样,简单而重复,才是工作的常态。 而作为游戏开发,理论上来讲,我们只有把游戏开发变得简单而重复,工作强度才会降低,才会有可能不加班。甚至可以有额外的精力去做外包。 对于游戏开发来说,如何做到简单而重复呢? 1,一套成熟的框架。这套框架在理论上可以快速迁移到各个引擎上。他代表着一种游戏开发思路。 2,局内和局外。用我个人的理解来说,比如mmorpg中,挑战副本就是局内,局内系统往往涉及到物理系统,根据同步方案的不同,服务器上往往只会做简单的距离判断,而不会做完整的物理模拟,这种情况下,客户端可以不做物理模拟。而更多的情况是,复杂的战斗环境,需要利用客户端的物理系统进行模拟,而这种对物理系统的需求,即可称为局内系统。单独开启一场战斗,独立的对战斗结果进行模拟,可以尽可能的使用到引擎提供的功能。而局外系统,则只是以简单的ui进行呈现,比如商城,背包,各种提供增益效果的养成系统。 在这个前提下,demo往往指的是局内系统。而可玩版本往往指做好了局外和局内系统 3,数据驱动 脚本是游戏开发中很常规的需求,配表,节点式编程,技能编辑器。这些都是为了让游戏可配置化,避免修改一下,就需要重新编译。 对于一个新上手的引擎来说,需要了解三个部分 1,引擎的编程规范 2,我们需要了解其提供了那些基本功能 3,有那些脚本热更方案 根据团队人员的水平,选择适合的数据配置方案。 以unity为例,使用excle,scriptobject,自定义byte,都是不错的方案。 比如具备时间线的技能配置很明显无法使用excle进行配置。而一些道具使用excle进行配置,则相当的直观。具体是否使用excle看数据的容量是多少。 4,后端 如果一个游戏是单机,并严格的执行了mvc的编程思路,那么后端不过是将逻辑放在了后端,并新增了一个通信协议而已。 如何理解mvc,其重点在于让逻辑和视图解耦,而实现这个功能的便是control层,所谓的中介者,view和model相互不知晓,可以独立运行。如果开发过程中秉着这样的观念,那么后端开发便像前端一样简单。 5,确认自己的知识边界,让专业的人做专业的事 让程序去做特效,让前端去提高后端的并发率,显然事情推动的很慢。首先我认为区分图形工程师和客户端是有必要的。因为一个人在花大量的精力在实现游戏逻辑和游戏架构设计上后,还需要掌握各种图像效果的制作,显然是需要大量时间的,也不可能说两个方向都可以做到很好的水平。这也决定了如果要实现高质量的游戏,注定需要大量的专业人员进行协作,绝不可能指望一个客户端即实现程序,还要制作高质量的shader。大多数的程序员是不具备美术审美的。 6,创新基于模仿 创新的基础来源于模仿,选择一个品类的必要之路便是向有成绩的作品进行学习,积累大量的素材库,从不明白到明白,从明白到创新。没有成功来自于没有积累的思考(云)。