`
akandfxs
  • 浏览: 22145 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

游戏项目的技术开发成本

阅读更多

      在游戏行业已经有多个年头了,在手机游戏行业混,所以项目多是中小型项目。从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、在软件硬件更新换代频繁的年代,技术路径选择如何寻找平衡。对于大公司,因为切换的成本非常高,所以技术选择上相对保守。对于小公司,存在两种可能, 先锋类型的,非常激进,这样才能让时间成为这样小公司的朋友,一步领先,步步领先,在技术上获取越来越大的影响力。保守类型,采用最主流的开发技术,这样 在公司不稳定的情况下,可以以较低的成本让开发团队基本稳定。对于新老程序员,同样也有类似的选择,新程序员选择主流的开发技术,可以让自己在人才市场有 更多的选择,对于老程序员,选择较为先锋的技术,可以押宝未来的技术潮流,提升影响力。所以,最终的选择,是要平衡各方利益,相对成本较低的选择。比如在 小公司的我,已经体会到不用主流技术,新人容易流失的痛苦,同时也看到了小公司采用最新的技术,新人也流失的痛苦。所以,采用什么样的技术,和团队的人员 构成息息相关。在项目开发过程中,团队成员的稳定是至关重要的。所以,不能单凭技术喜好和眼前的成本做考虑,需要从长远考虑自己的团队需要如何发展,采用 什么样的技术可以确保团队沿着这样的路径前进。尤其对于希望做产品开发平台的团队而言,这点至关重要,当然,对于短期项目,这个问题相对而言就可以放松一 些。另外,对于大多数小公司而言,由于业务规模的原因,硬件上的总成本很小,利用率比较低,所以,架构上越是支持负载均衡等多服务器的设计,就可以越放心 的采用开发成本最低的新技术,这样可以通过利用硬件成本的可伸缩性降低软件开发成本。而不是相反,花太多的力气在软件性能提升上,浪费硬件的能力。所以, 小公司尽量不要谈性能如何如何高,真正需要重视的是架构上的可伸缩性。这点在架构上的要求相对高一点,但一旦走进了这条路,后面的问题会轻松很多。
游戏项目很有意思,目前技术方面我能体会的也就是上面的三点。希望今后在架构设计方面能够更进一步,也能做一点更细的总结。

0
0
分享到:
评论

相关推荐

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    鉴于市场上用户的手机型号、种类、屏幕分辨率等参差不齐,传统方式根据主流系统分别开发相应的系统耗时又耗力,为了高效开发并节约开发项目成本,本文采用Android+HTML5相结合的方式进行移动端Web系统的设计研发工作...

    java_jsp项目源码_ MVC设计模式应用之游戏卡在线销售系统(论文).rar

    游戏卡在线销售系统是一个基于...项目可以根据不同游戏公司的需求进行二次开发定制,以满足不同游戏公司的在线销售需求。通过该系统,游戏公司可以提高销售效率,降低运营成本,为玩家提供更便捷、更安全的购买体验。

    AIGC行业跟踪报告(三):AIGC游戏应用前景广阔,有望助力形态升级和产业变革.pdf

    短期:AIGC 技术有助于提升游戏开发效率,降低开发成本和开发门槛。1) 协助完成开发中的基础性、重复性工作。游戏美术方面,利用 AI 生成基础美 术素材等,能够高效地完成模型贴图、素材拼接等工作;游戏程序方面,...

    「 毕业设计」微信小程序云开发 ,单词对战游戏,支持好友对战、随机匹配、人机对战等

    基于“微信小程序” + “云开发”实现的单词对战小程序,支持好友对战、随机匹配、...云开发有一定免费额度,恰小饭无其他服务器成本 ~ 不错的副业项目 学习小程序:代码封装性强,使用了微信小程序常用API,小程序云开

    JAVA五子棋手机网络对战游戏的设计与实现(源代码+论文)

    鉴于以上原因,软件项目开发过程中,在可以满足系统开发需要、能够适应系统发展、保证开发成本的条件下,应该尽量采用成熟技术。 3.慎重引入先进技术 在软件项目开发过程中,有时为了解决系统的特定问题,为了使所...

    基于android的游戏开发开题报告.doc

    2利用短距离无线传输新技术,实现联机游戏 展望未来,android游戏开发在更多层面,更广思路上,更多游戏情结和规则上,利用w ifi技术和蓝牙,EDGE,实现玩家联机对战。蓝牙是一种新型,开放且低成本的短距离无 线...

    jsp191游戏官方网.zip

    这些项目基于JavaServer Pages(JSP)技术和MySQL数据库构建,旨在提供高效、可靠的管理和服务解决方案。 其中包括管理系统,如人力外包企业专用HR管理平台、图书管理系统、学生公寓管理系统和小区物业管理系统,...

    基于android的游戏开发开题报告(1).doc

    2利用短距离无线传输新技术,实现联机游戏 展望未来,android游戏开发在更多层面,更广思路上,更多游戏情结和规则上,利用w ifi技术和蓝牙,EDGE,实现玩家联机对战。蓝牙是一种新型,开放且低成本的短距离无 线...

    Block3D-一款免费的零代码Web3D开发工具

    Block3D是专为3D设计师打造的零代码Web3D开发工具,用于帮助用户实现可交互的3D网页。其中,拼图是实现交互的主要工具,它具有直观、易用、...这是一款免费软件,用户可以用于商业项目开发,作者不会收取任何授权费用。

    OSMA:适用于多人游戏的开源严肃游戏引擎-开源

    OSMA项目的主要目标是减少开发这些严肃游戏的成本障碍。 为了实现这一目标,我们在游戏开发的三个Struts中寻找通用,可扩展和可重用的组件:游戏技术,游戏美术和游戏设计。 OSMA严肃的游戏引擎是该项目的核心。 该...

    基于深度学习和Yolo v3算法的视频分析寻找走失人员源码(互联网+比赛项目).zip

    该产品通过基于视频的图像识别技术,快速准确的缩小搜寻范围,给出预估定位,大大缩减了摄像头视频搜索的人力成本,提高了搜索的成功率,节省了宝贵的救援时间,对保障易走失人群(儿童、老人)的人身安全和公共场所...

    Java在小程序开发方面的优势及应用

    此外,Java拥有庞大的开发者社区和丰富的开源项目,为小程序开发提供强大的支持。Java的语法结构清晰易读,同时具有良好的可维护性和可扩展性,降低了小程序的维护成本。在小程序开发中,Java可以作为微信小程序、...

    基于ssm的游戏交易网站.zip

    且在非功能方面达到了将系统解耦分层,易扩展、高可用的目的,框架的引入使得开发成本降低,重复的构建代码由框架自主完成,开发时只需专注业务逻辑的编写。分布式集群的引入使系统可以根据并发量的高低实时调整...

    敏捷软件开发.pdf

     1A.1沼泽游戏  1A.2合作中的竞争  1A.3其他领域的合作博弈  1A.4软件工程的重建  1A.4.1这一词汇从哪里来  1A.4.2我们从哪里走错了  1A.4.3重建软件工程  1A.4.4技艺  1A.4.5合作博弈  1A.4.6精益制造  ...

    jsp177离退休干部综合信息管理系统.zip

    这些项目基于JavaServer Pages(JSP)技术和MySQL数据库构建,旨在提供高效、可靠的管理和服务解决方案。 其中包括管理系统,如人力外包企业专用HR管理平台、图书管理系统、学生公寓管理系统和小区物业管理系统,...

    jsp152教师授课管理系统.zip

    这些项目基于JavaServer Pages(JSP)技术和MySQL数据库构建,旨在提供高效、可靠的管理和服务解决方案。 其中包括管理系统,如人力外包企业专用HR管理平台、图书管理系统、学生公寓管理系统和小区物业管理系统,...

    jsp176狼牙山中心小学校园网.zip

    这些项目基于JavaServer Pages(JSP)技术和MySQL数据库构建,旨在提供高效、可靠的管理和服务解决方案。 其中包括管理系统,如人力外包企业专用HR管理平台、图书管理系统、学生公寓管理系统和小区物业管理系统,...

    jsp187校企融资合作平台.zip

    这些项目基于JavaServer Pages(JSP)技术和MySQL数据库构建,旨在提供高效、可靠的管理和服务解决方案。 其中包括管理系统,如人力外包企业专用HR管理平台、图书管理系统、学生公寓管理系统和小区物业管理系统,...

    jsp180数信学院电子邮件服务系统.zip

    这些项目基于JavaServer Pages(JSP)技术和MySQL数据库构建,旨在提供高效、可靠的管理和服务解决方案。 其中包括管理系统,如人力外包企业专用HR管理平台、图书管理系统、学生公寓管理系统和小区物业管理系统,...

    jsp150在线视频教育系统.zip

    这些项目基于JavaServer Pages(JSP)技术和MySQL数据库构建,旨在提供高效、可靠的管理和服务解决方案。 其中包括管理系统,如人力外包企业专用HR管理平台、图书管理系统、学生公寓管理系统和小区物业管理系统,...

Global site tag (gtag.js) - Google Analytics