游戏开发心悟
Shawn从事游戏开发这么多年,总是在失败,从来没有好好总结过失败的原因。工作十年了,最近开始读一些非技术类的书籍才发现,自己的思维模式原来是那么窄小,而且有不少认识上的错误。在通过读书的过程中,不知不觉中提升了自己观察事物的能力,能察觉到以前没有感觉到的东西,不时灵光一闪,记录下一些有用的东西与大家分享。
1. 在项目开发测试中,程序出现bug,作为项目经理和领导,应该是指出问题,给出线索,而不是条件反射式立即指责。指责无助问题的解决,反而带来更多的不好情绪。
2. 在项目紧张期间,对已知bug应该由项目经理,评定优先级,不要直接找程序员修改(特别是公司老板直接找基层程序员)
是影响他当前的工作,打断专注工作的程序员10分钟,要一两个小时才找能弥补回来。
匆忙修改bug会降低代码质量(上级领导面前一定挣个表现)
程序员造成不好的情绪压力,让他的创造力难以发挥
上面建议,除像孙悟空一样的超级程序员队除外,他们主动让你把Bug扔给他,一看到Bug眼睛里就发着光。这类程序员适合解决疑难问题,专研技术。
3. 网络游戏中,客户端、服务器应该使用统一的数据结构、通信协议,在变量命名上尽可能保持一至。(前后端双码合一)
4. 策划、美术、程序在功能命名上尽可能保持一至,最好让策划和程序共同拟出一份项目的专用词汇表,包含中文、英文、说明,程序员在为变量名命时就不会太过纠结,减少脑细胞的消耗。(三马合一,策划、美术、程序三驾马车)
5. 客户端在代码文件名、UI文件名、模块名上尽可能保持一至。(内三码合一)
6. 客户端需要有配套的美术资源、策划配置自动化处理工具,不要把时间用到查找、复制、粘贴上面。
7. 能让任何感兴趣的人可以随时体验当前开发的游戏,web、桌面、手机安装包至少一种,这也是客户端、服务器程序员所需要的日常开发环境。
8. 客户端程序需要搞定策划,让他少找你麻烦,为他们提供不同平台的打包、预览工具,让他们自己去生成安装包,他们会很高兴,你也会安心写代码。
9. 服务器程序员需要为策划、客户端、测试提供GM工具,或者用于测试的游戏后台,方便修改游戏数据,这是生产力工具,也是项目测试的重要工具。
10. 主策划(产品经理)应该知道项目所用到的主要技术和工具,并能大概理解工作原理,那种工具解决那类问题。
11. 主策划(产品经理)需要了解程序员的思维模式,能设计出方便程序员使用的配置文件。
12. 主策划(产品经理)、主美,应该熟悉游戏UI编缉器的使用,能使用基本的控件编辑游戏UI。
13. 主策划(产品经理)、主美、UI美术应该知道基本的游戏UI编辑技巧: 缩放、旋转、九宫、透明度、叠色、混合(blend)、裁剪、遮罩等。
14. 主策划(产品经理)、主美、动画美术,应该知道什么是帧动画与骨骼动画,了解当下流行的动画制作工具。
15. 主程、主策、主美需要细心体察工作中影响效率的地方,程序员需要为项目组提供自动化工具,解决日常经常发生的机械动作。
16. 游戏项目中的资源管理是重中之重,简单分为下面几类:
1. UI资源:专用图片、通用UI图片、图标资源、像册
2. 动画资源:特效动画、动作动画(人物或建筑)
3. 数据资源:游戏配置数据(策划)、程序配置(程序内部)
4. 音效资源:背景音乐\音效音乐
5. 代码脚本:客户端的核心资源
17. 如何有效管理资源在很大程序上决定了项目成败,项目混乱始与资源管理混乱。
18. 策划、美术、服务器程序应该为客户端程序争取更多的时间,因为客户端需与所有人协作,而且变化最大。
19. 游戏团队的协作网络,策划、客户端程序需要与所有人协作:
客户端:策划、美术、服务器
服务器:策划、客户端
策划:客户端、服务器、美术
美术:策划、客户端
20. 项目规范包括:目录结构规范、文件名规范、策划文档规范、美术示意图规范、程序代码规范,不一定要有详尽的,但也需要有规范意识和行动。
21. 没有意识到规范重要性的项目团队,最后怎么死掉的可能都不知道。(我猜是被吓死的)
22. 程序使用git管理项目代码,最好学会使用命令行,美术、策划使用svn就够了。程序策划应该帮助美术学习svn的使用。
23. 产品经理和主管应该及时观注团队人员的的工作状态,能分辨出:主动、被动、不动的人,了解他们面对的困难,能够利用各种资源帮助他们解决问题。
24. 不会学习的程序员做不出好的程序,主程有责任提高团队的技术水平,为团队提供学习、分享的机会。
25. 不会学习的策划搞不懂游戏是怎么练成的,难以与程序员沟通,除了抱怨,无法解决问题。
26. 不会学习的美术爱说一句话:“毕竟我又不是程序员”。
27. 程序员应该向策划、美术教授游戏开发常用软件的使用:UI编辑器、字体编辑器、粒子编辑器、动画编辑器、SVN、JSON等,教会他们回报率是很高的。
28. 产品经理与主程、主美需要把项目中的问题解决方案记录下来,方便事后追朔。比如:解决资源同步使用了grunt;解决某一复杂功能使用了状态机模式;聊天功能使用某个三方库。
29. 产品经理与主程需要明确当前面临的技术问题:能做、学习就能做(不超过1周)不能做。
30. 服务器/客户端在联调前应该现各自模拟,减少协议未更新,笔误等低级问题。
31. 客户端程序员要做好心理准备,除了做游戏引擎、框架、业务、动画效果、算法等等以外,还需要做ios、android原生开发、接入各种sdk、开发内部工具,总之需要学习的东西很多很多。
32. bug追踪工具必须得有,最好程序再搭个代码审查工具。
33. 程序员开发最好在Mac系统上,如果没条件,也要找个好用的linux shell环境,推荐zshell。
34. 在游戏UI问题上见仁见智例如:位置不正、颜色不好看、大小不对等,能策划解决的不找美术,能美术解决的不找程序,策划和美术都不能解决再找程序。
35. 不能解决开发体验的程序员,很难察觉用户体验。所有对用户体验优的化都是在让项目变得更加混乱。
36. 无休止的加班,只是让领导们心理更舒服点,给他们服用点安慰剂。
37. 工作要控制好节奏感,不要一屁股坐一下去就是几个小时。
38. 游戏内容应该由策划来掌控,就算是游戏中的一句提示文字也不要放过。尽力为要为程序员争取更多时间。
39. 策划配置最好要有统一的唯一索引。
40. 在程序开始做UI前,策划和UI美术应该把游戏效果图放在手机上体验一下手感,想像一下游戏已经做成的感觉。
41. UI美术切图时,图片内容不需要透明度。例如:一些装饰性的底纹、背景等。因为一旦重叠在一起,就不是你想要的效果了。
欢迎关注「奎特尔星球」微信公众号,有代码、有教程、有视频、有故事,一起玩来玩吧!