读程序员网游专题云风的文章有感
本文作者:sodme
本文出处:http://blog.csdn.net/sodme
如有转载,请标明如上信息,以示尊重!!
1.勇于承认失败
国内的游戏厂商,让人觉得能有大家风范的少之又少,炒作、随意夸大游戏品质,好象不吹牛就没人知道他游戏作得烂似的。由于网游市场渐显的各种风险增加,资本市场从2004年底开始,对网游的投入渐趋理性化。在这样一个群雄逐鹿的时代,唯有靠品质才能最终取胜,小的游戏厂商会逐渐被市场淘汰或边缘化。未来可以在市场上存活的,将是为数不多的大游戏厂家。值得说明的,这里的“大厂家”并不是一定就是指现在的某些看起来很大的厂家。
在游戏业界广泛充斥着浮躁的大氛围下,智冠和网易给我留下了难得的好印象。王俊伯在RO的代理权易手给盛大后,公开承认智冠的RO运营是失败的。而网易的云风,在05年6期的程序员杂志的网游专题文章中,不仅承认大话I是失败的,更是总结了若干失败的教训和经验,这些东西可以帮助多少人少走弯路呀!网易的作风,给外界的感觉,向来是踏实、务实的。在东西没出来之前,他们从来不会怎么高调作什么所谓的花边宣传,这与国内很多游戏厂商的作法大相痉庭。大话系列的游戏品质相信玩过的自有评说。
承认失败,是需要勇气的,同样也是需要相当自信的。因为他们相信自己将来可以作得更好,所以才会勇敢地承认自己过去作得不好。不管是智冠,还是网易,我想,没有人可以否认他们在国内玩家心中的份量。
2.结对编程
结对编程,一个曾经非常时髦的话题,这个概念刚提出来时,我还在一个名不见经传的“教授型”网络教育软件公司。当时,我们的项目负责人也一再提出结对编程的想法,但是,项目组的成员对执行它却丝毫没有兴趣。是的!结对编程的前提是:参与结对编程的两个人,在技术水平上我认为一定要是水平相差不大的人,但也不能水平相同。你跟一个连“面向对象”都还没有弄清楚是什么的人说什么结对编程,那绝对是在扯蛋!技术水平相差太大,是很容易造成歧义的,水平太低的人往往无法正常理解水平高的人的设计思想,除非在结对编程时指定谁是说话算话的老大,就是说当出现意见相左时到底由谁说了算!有人说,应该民主讨论决定谁说了算。我要说的是,这种民主,在一定的范围内是有效的,但越过了范围,当你该拿决断时就一定要拍板决定,不能给项目成员以犹豫不决的印象,否则别人的工作作起来也是心虚的,因为他们不知道自己现在作的东西,到了明天或者后天是否就会被推翻而不得不重写。对于水平相差不大的人,我觉得结对编程是有益的,我之所以这样说,绝不是因为自己多看了几本书就在这里瞎忽悠,因为我曾经跟我过去的同事这样作过,不管是思维的广度还是深度,都要比一个人写的代码更漂亮,也更安全。坐在旁边看的那个人,往往可以指出你现在正在写的这段代码的问题所在。除此之外,结对编程还是对工作效率的有效约束,两个人一起工作时,精力必定是相对集中的,不会出现三心二意或跑神的情况。
3.阶段性的测试和验收
在多人参与的项目中,阶段性的测试和验收工作是必须要有的。当然,我们的设计总是随着开发的进程而不断调整的,那种一次设计之后再不改动的完美方案在现实中是几乎不存在的。项目组的成员,在阶段性的工作完成之后,应该由项目负责人召开专门的阶段性成果验收会议或演示,由设计者提供相关的设计文档、演示代码等。而参与验收的人,特别是以后可能要用到这一部分功能的人员,要详细询问、了解它的接口使用方式,设想你在使用这个接口时的可能情况以及可能出现的问题。把后期可能出现的因修改延期风险尽可能提到前面来。
4.策划内容与程序实现的配合
游戏的程序人员和策划人员,在很多公司里是“互相鄙视”的。程序鄙视策划整天异想天开,不顾技术实现难度,随意增加、修改变态方案;而策划人员则鄙视程序人员甚至连游戏都不会打,还在那写游戏程序,他们鄙视程序甚至连NPC的确切含义都不知道。而我要说的是,首先,对于程序人员,不管你是作服务器的,作客户端的,还是作数据库的,既然你选择了作游戏,你就得去努力多打一些好游戏。别跟我说实际上你不喜欢游戏,作游戏只是为了混口饭吃,OK!混饭吃可以有很多方式,请不要拿玩家的心情开玩笑。一个游戏公司想成名很难,可是,如果想毁掉则非常容易,他们只要出一两款烂游戏就足矣!而对于策划人员,我要说的是,你们的能想出那些变态方案并不是你们的错,并且我还鼓励你们尽可能地变态,但是,在作案子的同时,我也建议你们尽可能地提高自己的知识量,扩大自己的知识视野,努力多学习一点有关游戏程序方面的知识,我不是让你们学着写程序,但你们可以多与程序沟通,多了解程序的原理。一个方案提出来时,你要考虑到客户端的表现难度以及服务器方面的数据包广播量,当然,限于自己的知识层次,你们可能无法确切知道这些方面的答案,那么,剩下的就是唯一的一条路:多沟通!
5.项目管理者的角色定位
通常的项目管理者,会有两种类型:监工型和实干型。前者是只说话,不作具体的编码、设计;而后者,不光是“说话”,还要作具体的编码、设计。从我目前接触到的项目组来看,两者都有,但我更欣赏后者。而作为投资商,我则建议他们选择前者,前提是:投资商有足够的资金可以烧!欣赏后者的原因,是因为程序员广泛比较崇拜技术牛人,他们总希望自己的老大是一个在技术上非常牛的人,这样他们就会觉得自己有一个靠山,有问题时心里也会比较有底,因为他们知道老大可以给他们一些好的建议。而选择前者,是因为监工型的项目管理者,往往可以在投资商和开发团队之间站在一个相对客观的角度来对项目进行进度跟踪和控制,他们明确知道投资商的项目预期,也可以明确知道自己想要的是一个怎么样的开发团队,团队成员出现问题他可以果断地进行替换。
6.抽象的层次
表现层和逻辑层的分开,是一个再通俗不过的道理。这一点,在游戏客户端上表现是最为明显的。界面层的代码,不要与逻辑层的代码直接混为一谈。说过最简单的道理:两个EDIT控件,一个加法逻辑。在实现加法逻辑时,有两种方法。一种是把EDIT的值直接转换后拿来直接作加法,另一种是首先作一个加法函数,然后将EDIT的值转成数值再调用这个加法函数。这是再简单不过的界面与逻辑层的分离方式了,可惜的是,很多的懒人却没有这样作,又或者,他们尚且还没有意识到自己为什么要象第二种方法那样去作?
7.测试自动化的实现
我从04年4月左右开始作一个休闲游戏,今年又开始作MMORPG。在休闲游戏里,我实现了游戏机器人,就是自己写了个游戏外挂,可以让机器人自己去打游戏。游戏机器人,对于游戏的自动化测试是非常重要的,甚至,我认为是必须的。大量用户的压力测试以及大量游戏逻辑的BUG测试,都需要有一个象游戏机器人的程序自动为我们完成。在云风的文章里,云风为我们提供了一种思路:录制网络数据包行为。这是一个很好的想法,我很赞成。但我想说的是,要作游戏机器人,首先对你的程序设计要有一定的要求,即:你的游戏逻辑设计,不管是服务器端还是客户端都要尽可能地把功能模块化,接口化。这种模块化的粒度越小越好!当然,游戏机器人的实现,更多的,还是依赖于客户端的设计。只要客户端能把每个游戏功能都尽可能地以小粒度加以实现,那种游戏机器人实现起来其实相当容易。一切,只有一个要求:把游戏功能尽可能小的粒度化。
8.最重要的一点,把游戏首先当作一下正常的“软件”来对待
我们经常抱怨国内的游戏是多么多么地烂,其实,你只要对他们的开发团队和开发方式稍微了解一下应该就完全不会大惊小怪的了。有相当多的公司,屹今为止,尚没有把游戏当作一个正常的“软件开发”来对待,在项目的管理上,在人员的组织和任用上,都带有相当程度的随意性。所谓的项目延期,品质低劣,BUG频出,归根结底是人的问题!先不要把目标放那么远,要想作出一个好的游戏,请先把游戏当作一个再正常不过的软件项目来开发,来规范,来控制!
读程序员网游专题云风的文章有感相关推荐
- 调查了 17,000 多位程序员,当前的云原生开发现状究竟如何?
整理 | 弯月,责编 | 郭芮 头图 | CSDN 下载自东方IC 出品 | CSDN(ID:CSDNnews) 容器的标准化使用改变了软件的开发方式,我们迎来了开发运维的时代,基于云原生的开发能够帮 ...
- java程序员网名大全
前言 JVM对实际简单开发的来说关联的还是不多,一般工作个一两年(当然不包括爱学习的及专门做性能优化的什么的),很少有人能很好的去学习及理解什么是JVM,以及弄清楚JVM的工作原理,其实我个人认为这块 ...
- 曳光弹 曳光代码 原型制作 读《读程序员修炼之道》
最近读书<程序员修炼之道:从小工到专家>,看书到第2章 注重实效的途径中,从第10小节曳光弹,到11小节 原型与便笺这两节,相对于整本书中一直都比较顺畅的理解,相对而言这一节可以说是翻译的 ...
- 读程序员技术练级攻略有感
原文如下,感想在后面,文中指的博客是我csdn上的博客: ----------------------------------------------------------------------- ...
- 转载一个程序员的游戏之路
上班之前: 学习J2me的时候,每天除了饿了去吃饭之外,全部用来学习,基本上是3天里有一天通宵: 写了四款基于Kjava(J2me)的游戏.益智.飞行射击.趣味.RPG; 然后带着四款游戏项目面试上班 ...
- 读“程序员进 ICU 昏迷五六天,恢复后决定辞职回乡改行送菜”,分享一些独特的想法
明智,"鸢飞戾天者,望峰息心:经纶世务者,窥谷忘反".何况咱就是个程序猿,就一农民工.我们有的时候就是需要认怂,既然你说我不行,那我就不行好了.好赖留条命吧.日本就是这样嘛?好多人 ...
- 读“程序员的七种武器”随记
七种程序员的基本技能,它们是: ● 数组.字符串与哈希表● 正则表达式● 调试● 两门语言● 一个开发环境● SQL语言● 编写软件的思想 数组.字符串与哈希表 任何受过专业训练的程序员, ...
- 关于程序员能做什么副业,相关文章用机器学习算法分析
最近想了解下程序员可以做什么副业,我抓取了各大网站关于程序员搞副业的文章,但抓取的文章较多,为了将相似的文章归拢到一起,我用聚类算法将文章划分到不同的主题.下面我就来介绍一下分析的结论以及过程.文末 ...
- 多云场景下,程序员该如何管理云凭据?
作者| Alexey Ledenev 翻译 | 天道酬勤,责编 | Carol 出品 | CSDN云计算(ID:CSDNcloud) 随着企业与各种云提供商合作,多云场景已经变得十分常见. 在谷歌Ku ...
最新文章
- 2022-2028年中国茶几玻璃行业市场研究及前瞻分析报告
- CSS上下左右居中的几种方法
- python网上编程课程-零基础程序设计(Python入门)
- 1.1.linux命令.概要学习
- mysql查看数据库和表的占用空间大小
- JDK8新特性之函数式接口
- android studio上下滚动菜单,Android模仿美团顶部的滑动菜单实例代码
- 将Matting结果转化为二分割结果
- 乐鱼影音盒--第一播放平台
- “拖延症”的良方——对于追求完美,自制力差,情绪化的人很受用...
- LWC 66: 759. Employee Free Time
- 如何加减单元格指定数字_如何把单元格的数值每位数字进行相加?又学会一个Excel技巧...
- Java Web3J概述
- Thinkphp——hook类行为扩展
- 嵌入式测试大赛预选赛
- 获取每日一句,每天发给女朋友。
- 惠普战66 三代 pro win10下安装ubuntu20.04
- AlphaStar的游戏——星际争霸2 AI综述
- 每周网页练习—网易邮箱首页
- 红帽RHCE之DHCP
热门文章
- 打造创新电磁诊疗技术平台,睿笛生物获比邻星创投、三捷资本数千万元投资...
- sql语句之查询操作
- Saltstack远程执行命令(3)
- Linux文件目录命令,有这些就够了?
- OLAP-druid-大数据Week13-DAY2-druid
- 论ul、ol和dl的区别
- 思考XSS攻击和跨站伪造请求CSRF
- 【Linux】Windows 10 安装应用商店 ubuntu 终端后访问本地文件
- js json 对象相互转换
- java提示单个cass怎么办,求助解决hibernate报错,java.lang.casscastexception