在游戏行业已经有多个年头了,在手机游戏行业混,所以项目多是中小型项目。从j2me单机游戏,商业模拟游戏,到java的wap网游。基本上这些都是用java开发的。不同的项目有不同的经验教训。我且先从几个方面说起。
1、软件项目是否易于动态开发甚至动态发布?很多j2ee项目,以及一些c/s架构的项目,很难做到这两点。在我做商业模拟游戏项目的时候,第一款联想笔
记本连锁专卖店项目,是采用c/s架构。服务器端要更改一点东西,就得重启。客户端要更改,也得重新连接。回合制游戏,还得经过好几个回合才能到需要的那
个界面。这样开发过程中,很多时间就这样浪费了。当时我觉得这个从技术上来讲,确实很浪费,但c/s可以做出很好的效果,c和s两端都有很大的提升空间,
以及技术发展空间。所以当时我还很看好这样的架构。当然这个时候也认识到b/s架构的威力,至少发布成本几乎为0,动态开发也是可能做到的。更改了新版
本,不需要重新下载既可以开始测试。后来boss决定转向b/s架构开发,这个时候我认为处理商业模拟游戏的早期,还没有足够多的项目经验,不足以制作产
品平台,所以就希望架构上能够做到动态开发。这个时候我的选择是mysql+javabean+jstl+js+css。由于不打算做商业模拟游戏开发引
擎,所以javabean部分设计成可以重用的,只有用户管理模拟模块,绝大部分的计算在数据库中用存储过程计算。这样,基本上开发商业模拟游戏,可以达
到动态开发和动态更新两个目的,开发成本大大降低。第一款游戏开发周期为4个月+,采用B/s架构开发了几款商业模拟游戏后,这个开发周期降为5周。基本
达到了我预期设定的1个月的目标。人月成本从12人月降为5人月。当然,由于早期还是以项目形式开发,没有考虑做成引擎或者开发平台,为今后的项目复用,
这样的代价是维护成本比较高。所以,应该还有第二种降低开发成本,而且降低维护成本的途径。先做开发平台,包括相关的开发工具和引擎,然后将可变的部分尽
量脚本化。通过固化引擎和工具,降低后续项目开发的代码量,大量缩减开发成本,这应该是一条更可取的路,但是前期的成本会更高。
2、软件项目代码量的控制。早先一个j2me游戏,<1万行的代码量,商业模拟游戏,1-3万行的代码量,wap网游,10万行左右的代码量。可
见,最后一个wap网游项目有点问题。这是我的一个大教训。对于wap网游这样的项目,合理的代码行数应该是3-5万行左右。这样才是一个中等游戏项目的
代码规模。为什么没有做到呢?1、我对年轻程序管理上以提建议为主,有些程序员总喜欢自己造轮子,比如该用quatz,硬要自己写一个timer的扩展,
我也不阻拦,只要能完成任务,不能防微杜渐,所以后面不好收拾。2、这个项目我介入的比较晚,早先的架构决定了很多都得自己重新开发来过。最终后果很严
重,项目的代码规模失去了控制。所以虽然这个项目最终性能还不错,但开发和维护成本都很高,毕竟,这么多代码摆在那里,何况里面不少并不高明的重复造轮子
的代码。记得前段时间去某个公司面试,技术主管比较年轻,问了如何看待重复造轮子的问题。我的答复是,我不鼓励重新造轮子。第一,很多人之所以重新造轮
子,是因为不知道有这样的轮子存在。第二,是因为对别人的轮子不熟悉,不愿意学,当然,也可能存在部分轮子质量不太高,学习成本很高。第三,很多轮子并不
是最适合目前项目的需要,通用的轮子对很多特定的项目而言可能功能过多,性能等方面都有影响。这里面,只有第三种才是有必要考虑重新造轮子的,但是,往往
得出第三种结论的时候,你其实已经先用了轮子,可以用数据证明轮子不太合适了。这个时候需要考虑的切换成本和重造轮子的收益。所以,作为项目管理者,在架
构设计的同时,把轮子选的相对合理一点,以此控制项目的代码量,这是控制项目成本的重中之重。选好外界通用的轮子,固化自身产品线自产自销的特定轮子,是
逐步降低项目成本,提升竞争力的重中之重。
3、在软件硬件更新换代频繁的年代,技术路径选择如何寻找平衡。对于大公司,因为切换的成本非常高,所以技术选择上相对保守。对于小公司,存在两种可能,
先锋类型的,非常激进,这样才能让时间成为这样小公司的朋友,一步领先,步步领先,在技术上获取越来越大的影响力。保守类型,采用最主流的开发技术,这样
在公司不稳定的情况下,可以以较低的成本让开发团队基本稳定。对于新老程序员,同样也有类似的选择,新程序员选择主流的开发技术,可以让自己在人才市场有
更多的选择,对于老程序员,选择较为先锋的技术,可以押宝未来的技术潮流,提升影响力。所以,最终的选择,是要平衡各方利益,相对成本较低的选择。比如在
小公司的我,已经体会到不用主流技术,新人容易流失的痛苦,同时也看到了小公司采用最新的技术,新人也流失的痛苦。所以,采用什么样的技术,和团队的人员
构成息息相关。在项目开发过程中,团队成员的稳定是至关重要的。所以,不能单凭技术喜好和眼前的成本做考虑,需要从长远考虑自己的团队需要如何发展,采用
什么样的技术可以确保团队沿着这样的路径前进。尤其对于希望做产品开发平台的团队而言,这点至关重要,当然,对于短期项目,这个问题相对而言就可以放松一
些。另外,对于大多数小公司而言,由于业务规模的原因,硬件上的总成本很小,利用率比较低,所以,架构上越是支持负载均衡等多服务器的设计,就可以越放心
的采用开发成本最低的新技术,这样可以通过利用硬件成本的可伸缩性降低软件开发成本。而不是相反,花太多的力气在软件性能提升上,浪费硬件的能力。所以,
小公司尽量不要谈性能如何如何高,真正需要重视的是架构上的可伸缩性。这点在架构上的要求相对高一点,但一旦走进了这条路,后面的问题会轻松很多。
游戏项目很有意思,目前技术方面我能体会的也就是上面的三点。希望今后在架构设计方面能够更进一步,也能做一点更细的总结。
分享到:
相关推荐
在选择游戏引擎时,开发者需要考虑其功能特性、适用平台、开发成本以及技术支持等因素。例如,Unreal Engine适合资金雄厚的大企业开发大型商业游戏,而Torque和OGRE等则更适合独立开发者或中小型企业,它们提供相对...
【App开发成本详解】 在移动互联网时代,许多创业者和企业都希望通过开发一款App来实现商业梦想。然而,App的开发成本并非许多人想象的那么简单。本文将深入探讨App开发的各个环节,帮助你理解为什么开发成本会如此...
在游戏项目开发中,风险是不可避免的挑战,尤其是在网络游戏领域,这个充满机遇的市场同时也充满了潜在的危机。作为游戏开发者,必须对整个项目过程有深入的理解,并掌握如何规避风险,以确保项目的顺利进行。 首先...
游戏开发的项目管理是一项复杂而细致的工作,涵盖了多个关键领域,包括时间管理、成本管理、质量管理、目标管理和人员管理。这些方面共同确保游戏项目能在预定的时间内,以预期的成本,达到既定的质量标准,最终转化...
这大大降低了开发成本,提高了开发效率。 首先,书中会详细介绍Cocos2D-X的安装与配置,包括各种开发环境的搭建,如Visual Studio、Xcode等,并指导读者如何创建首个项目,熟悉基本的项目结构和文件组织。 接下来...
《实战突击Visual C++项目开发案例整合》是明日科技编写的一部专著,它涵盖了多个实际应用领域的项目案例,旨在帮助读者深入理解和掌握Visual C++的编程技能。书中的每一个章节都对应一个独立的系统开发案例,通过...
通过将3D网络游戏客户端开发技术工程化和流程化,不仅可以避免重复性的基础工作,还可以为技术开发和游戏设计提供更大的灵活性和扩展性。 总之,随着国内游戏公司的不断发展和技术的进步,3D游戏开发技术将会越来越...
游戏开发项目基础需求分析 游戏开发项目的基本需求分析是确保游戏项目成功的关键一步骤。在这个过程中,项目负责人需要了解、分析、明确玩家需求,并将其准确、清晰地表达给参与项目开发的每个成员。只有这样,才能...
在游戏开发领域,一个详尽的商业游戏开发计划书是项目成功的关键第一步。这份文档不仅为开发者提供了清晰的路径,还向投资者、合作伙伴以及团队成员展示了游戏的理念、目标和实施策略。下面,我们将深入探讨这份...
在进行C或C++项目开发时,项目管理的目标是确保代码质量、提高开发效率并降低维护成本。以下是一些关键的项目管理知识点: 1. **需求管理**:项目始于明确的需求,这包括功能需求、性能需求和非功能性需求。需求...
在软件项目开发中,软件文档是不可或缺的一部分,尤其是在手机游戏开发等复杂项目中。它不仅记录了项目的详细信息,也为团队成员提供了清晰的指引,确保项目的顺利进行。以下是一份详细的软件文档编写指南,涵盖了多...
考虑到游戏的潜在市场和娱乐价值,随着生活节奏加快,人们对于轻松休闲游戏的需求日益增长,尤其是像打砖块这样简单易懂、老少皆宜的游戏,预计其经济效益将远超开发成本。 操作可行性则关注用户体验。报告提出采用...
2. 计算开发成本:考虑人力成本、硬件成本、许可证费用等。 3. 估算总成本:将所有部分的成本汇总,以确定项目预算。 五、软件项目质量管理 1. 项目质量保证组织:设立质量保证团队,确保代码质量、用户体验及...
- **客服和支持**:相比于单机游戏,网络游戏需要持续提供技术支持和服务,这部分成本也相对较高。 - **开发团队**:人力成本是另一大开支,特别是核心成员和高级人才的薪资。 - **办公设施**:虽然是一次性投入,但...
在C++飞行游戏开发中,涉及的技术点广泛且深入,涵盖了计算机图形学、物理引擎、游戏引擎、数据结构与算法等多个领域。以下是一些关键的知识点解析: 1. **C++编程基础**:C++是游戏开发的常用语言,它的性能高效、...
在游戏开发中,TypeScript可以提升代码质量,降低后期维护成本。 3. **资源分类**:在游戏项目中,资源通常包括图像、音频、动画、字体等。有效的资源分类有助于管理大量素材,例如,将背景图片、角色模型、UI元素...
软件项目风险主要集中在四个关键领域:需求、技术、成本和进度。具体而言,常见的风险包括: - **需求风险**:指由于需求定义不明确或需求变更导致的风险。 - **组织和管理风险**:涉及项目管理不善、团队沟通障碍等...
【MMOG开发中的项目管理】在信息技术领域,特别是在游戏开发行业,项目管理是至关重要的环节。MMOG(大型多人在线游戏)开发是一项复杂而庞大的工程,涉及巨额投资、大量人员参与、长时间的研发周期以及诸多不可预见...
本资源摘要信息主要介绍了一个基于Android平台的五子棋游戏项目,包括项目背景、项目开发进程、项目功能及项目效果、项目核心类的功能等方面的内容。该项目旨在开发一个支持蓝牙功能的五子棋游戏,游戏具有蓝牙模式...