游戏开发流程和部分分工

2023-05-16

http://blog.csdn.net/njhua123/archive/2009/11/23/4859662.aspx

 

原创 游戏开发流程和部分分工 收藏 游戏开发流程和部分分工 流程:调研 -- 开发 -- 测试 -- 运营(我们公司的情况分析) 公司类型介绍:游戏开发公司、游戏运营公司、游戏开发运营公司 开发部门构成: 策划(灵魂)8-10人 主策划、执行策划、脚本策划、文案策划、关卡策划、数值策划、界面策划 程序(骨肉)8-10人 主程、客户端引擎、服务器端引擎、逻辑程序员、3D程序、AI程序、物理程序、脚本程序、数据库程序、编辑器|工具程序员 美术(皮肤)20-30人 人物原画、人物建模美术、材质贴图美术、人物动作美术、场景原画、场景建模美术、UI界面,图标平面美术、动画CG术、特效美术、音乐音效 其他管理部门 1.开发组长(部门协调);2.项目经理(项目整体把控) 通常开发流程是: 项目经理(产品经理):立项。(前期预估项目成本,风险,市场情况。中期重新评估) 主策划:游戏原型策划。(消费群体,能力,产品定位,游戏风格。) 执行策划:写初部策划案。(将主策的想法具体的细节实现,提前3-4月) 美术,程序:实现(基本是同时动工) 1.主要构架,测试主逻辑,测试引擎。 2.主功能,(图形,脚本,AI,数据库,网络的测试) 3.主逻辑模块,(战斗,聊天,换线,任务) 4. 附逻辑模块,(好友,队伍,小地图等等) 5.游戏整和调试,(关卡串联,置入音效,策划数值调整) 宣传。(游戏官网以及周边的游戏功略说明书,游戏截图宣传等) 技术测试:白盒内部测试。代码效率,可扩展性,DEBUG功能移除,封包,加密测试。 a测试:黑盒测试部测试。游戏内部测试(功能性测试) b测试:黑盒BEBUG测试。主要进行各种不合常理的行为操作的测试,和GM功能测试。 内测:重点测试服务器压力。 公测:获取用户群的信息表,已确定游戏的一些商业运营方式 当代游戏的特点以及技术概述 整体行业近况: 1、运营成本增加,盈利模式趋同。 由于国内游戏开发环境已经逐步完善,游戏与游戏之间,游戏公司与游戏公司之间的竞争加剧,游戏的商业化运营更加正式,做为游戏的重要的宣传手段,运营的投入也大幅增加,于是便分化出了游戏运营商和开发商。根据Ireasch的2007年报告来说,中国67%游戏已经是PayToPlay转化为 FreeToPlay,典型的有盛大的招牌《传奇》,都转为免费游戏+收费道具。 2、产品老化严重,用户忠诚度很低。 用户:蝗虫族。2/3以上玩家兼玩2种或2种以上的不同类型游戏。平均蜜月期不足1年半,国外玩家平均蜜月期为3年3月。新的网游很多,但是能够冲破 WOW,传奇,西游 三大霸主的地位难度还是很大。很多游戏是热门抄作期一过,就完了。 3、游戏产品类型五分天下,玩家群分化严重。 回合制MMORPG:大话,梦幻,问道,水浒Q传 2D ARPG:传奇,征途 3D ARPG:魔兽。热血江湖,RF,天堂2,天龙八部 休闲游戏:跑跑卡丁车,劲舞团,街头篮球 棋牌类:QQ游戏,联众 4、跨行业合作性强。 可口可乐,康师傅,百事可乐均进入游戏合作推广,游戏作为一种宣传媒体,这种宣传模式越来越被认可) 5、整体来说:中国网络游戏行业,面临机会和挑战并存。 一部分厂商凭借稳固高质量的游戏产品和务实的运营开始崭露头角,一部分则因为产品运营原因,关门大吉。网游市场多极化发展,用户拥有了广泛的选择,对产品质量和用户氛围也越加注重,游戏公司必须和市场一起成熟起来,才能适应今后的发展。 游戏程序发展方向: 1.代码重用性。出现引擎。 2.OO思想和效率的兼顾。C++语言的流行。 3.游戏可扩展性,灵活性。脚本语言的流行。 4.硬件的发展。3D将成为主流,虚拟现实VR,Web3D也大肆发展。 5.网络的发展。网络游戏的适用范围越来越大。分布式服务器的流行。(EVE) 6.AI,物理在游戏中占的比例越来越大。 1:引擎的作用。 将不同游戏的共同功能抽象出来,做为核心底层的封装的代码就是引擎。 最底层大致包括:计时器,内存管理,错误处理,输入设备处理,网络通讯,IO输入,基本的数据结构,取随机数大小值等基本数学方法函数,不同格式的文件数据类型读取。 稍高一层大致包括:音效管理,网络通讯管理,UI管理,对象管理,寻路,场景管理,渲染器管理,脚本管理,物理模拟库,AI状态机,数据库管理,图形管线,角色对象管理系统等。 若是3D游戏的话,在图形图象部分还要多出一些部分:Shader,粒子系统,渲染对象管理,2D精灵系统,地形,BSP树拣选,八叉树拣选,包围盒,摄象机,动态模糊,动态光照,碰撞检测,鼠标拣选,HDR等。 2:C++语言的发展。 相对C来说,OO思想更符合现在大型项目的开发思路,在效率上C++较之JAVA,C#等语言效率很高,可方便的嵌入汇编优化。 汇编:快,超快又小巧。要是天才汇编程序员,比其他语言程序员做出的程序强大的多的多。可以学习起来极难,编写一个程序,需要极多的代码。完全没有任何移植性可言。我们不可能用它来做一个游戏,但是,局部可以汇编优化。MMX指令集。 VB:容易上手和学习,但是没有由于照抄BASIC,丝毫没有结构感,OO表现难度过大。即时编辑和良好的插件还是很不错。但是应用系统太大,运行时间过长,运行时还需要一个1.4M左右的运行库,另外,支持且仅支持Windows,他是完全基于WindowsAPI开发。 JAVA:强大。J2EE的企业级开发库支持的细节是非常强大的。但是做中小型项目又实在没有必要,J2SE的功能又凌杂的有些可怜。纯粹且完全的OO语言,使得非面向对象的思想完全活不下去。正因为JAVA的强大细节把握性,导致JAVA代码通常很冗长,没有做到轻便化。而且!最重要的是,不支持操作符重载,实在非常烦人。所谓的平台无关性也是一种说法而已,它本身就需要一个JVM运行环境,环境本身就是一个平台。JAVA的设计目的是安全性,可移植性,于是对内存地址访问被CUT了,所以在性能上容易有一些损失。总之一句话,它很象一个对C++的封装。 C#类似JAVA不重复多说。 3:脚本语言。 工作流程:脚本 -- 行处理器(词法分析,语法分析) -- 字节码流 – 解释器 特点:容易学习,代码可维护性强。 Lua,Pyth,Ruby,Perl各有优势,但Lua以轻量化,与C结合紧密出众,获得亲睐。 Ruby:慢, Debug难度较大,没有成熟的作品(RM特殊),在日本流行度较高。 Lua:轻量化,与C结合紧密。但教程极少,接口设计不够巧妙,也没有对大型应用设计出良好的支持。但游戏开发已经足够了。WOW,大话梦幻等。 Python:老的脚本语言了。强大,有极高的阅读性,很好的扩展性,开发人员可以用C++等语言对Python本身进行扩展。当我们进行比较大型项目,将其拆分为大量单元,交由多数人进行开发时,阅读性,高效性,可维护性是脚本语言比较重视的部分,Python在这里做的很好,所以,Google,微软,Nokia都用Python. 4:3D成为主流。 3D的画面表现力比2D强,仿真性强,给人带来的代入感好,随着硬件的更新,3D是一种不可抗拒的趋势。 5:分布式服务器结构。 单服务器结构,开发效率快,逻辑简单,但是容量小,随着网络的发展,已经被抛弃。1500-2000 多服务器结构,可分为按地图划分服务器和按功能划分服务器。 按地图划分为服务器,大致会分为 世界服务器,地图服务器,网关服务器。当负责分配的世界服务器出现鼓掌,将使所有的地图服务器失效,因为数据是依照地图独立存储的,当某一地图服务器挂掉,将可能失去大量的数据。 按功能划分服务器是符合OO思想的一种设计,将一些密集型的功能分离开来,单独由一个服务器进行控制,这样的话,当一个服务器出现问题时,不会影响其他模块的运行,而且扩充性也比较优秀简单。 分布式服务器构架:支持远程对象调用,动态的分布节点吞吐,保证服务器受压平衡。但是在开发难度上较大。 6:AI,物理模拟在国内网络游戏开发中并没有过多的使用该功能。带过。 补充:该系列文档为某志为公司新人准备的培训底稿,因为是计划自己查看,以便口头讲述,所以写的并不充分,仅做为提纲提示自己使用,若有不清或错误,欢迎指出。 新人程序员应当熟悉的资料 我们来谈一下,需要大致了解的东西。 【3D Graphics API 】 DirectX 9.0 SDK - Direct3D OpenGL 2.0 【2D API】 DirectX 9.0 SDK - DirectMedia Win32 GDI 【Input Device】 DirectX 9.0 SDK - DirectInput 【Audio】 DirectX 9.0 SDK - DirectSound / Direct3DSound / DirectMedia OpenAL 【OS API】 Win32 SDK MFC 【Network】 DirectX 9.0 SDK - DirectPlay Socket library 注意,Lib库和引擎和API库是不同的。 Lib重点是拿来用它的接口的,大部分内部结构和命名比较糟糕,不推荐学习,有兴趣的话可以学习其中的算法。 API库重点是拿来用它的接口函数,对于内部结构,相当多的都被封装了,结构性和命名更加糟糕,例如,”_”是底层库专用,”__”是编译器专用。建议熟悉API的大致功能即可,对于其中的参数和API名称,没必要死记。 引擎是最值得研究的,它的重点是设计思想,对于项目开发来说,需要把作者的设计思路,和接口设计完全弄清楚才算合格。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

游戏开发流程和部分分工 的相关文章

  • VINS-mono的编译与运行

    简介 xff1a VINS mono是香港科技大学一个计算机视觉实验室的科研结果 xff0c 是要是基于单目视觉惯性里程计的一个slam系统 xff0c 整个项目都是内嵌于ros 非常感谢这群勤劳刻苦创新的研究者开源了这个项目 在此我记录下
  • C ++ 函数在头文件中定义,结果编译时出现重定义

    场景 xff1a 这种情况和头文件宏定义无关 xff0c 一般发生在编译完成链接的时候 xff1b 注 xff1a 头文件宏定义如下图 xff0c ifndef HEAD H 如果没有定义这个宏 define HEAD H 定义这个宏 h头
  • 单片机开发用到的intrins.h文件

    intrins h文件内容如下 xff1a ifndef INTRINS H define INTRINS H extern void nop void extern bit testbit bit extern unsigned char
  • 自动驾驶路径规划——基于MATLAB的栅格地图

    目录 前言 1 什么是栅格地图 xff1f 1 1栅格地图用于路径规划的优势 xff1a 2 MATLAB栅格地图的绘制 MATLAB代码 声明 前言 这个学期学校开设了相应的课程 xff0c 同时也在学习古月居机器人学系列的 基于栅格地图
  • 自动驾驶路径规划——A*(Astar)算法

    目录 1 最佳优先搜索 xff08 Best First Search xff09 1 1 最佳优先搜索的过程 2 A Star算法2 1 Astar算法所属分类2 2 Astar算法基本概念2 3 启发函数单调性的推导2 4 设计代价函数
  • vscode 出现“identifier “cout“ is undefined“或“未定义标识符cout”

    vscode 出现 34 identifier cout is undefined 34 或 未定义标识符cout 最近想学C 43 43 xff0c 然后就从通读C 43 43 Primer Plus开始 xff0c 结果出师未捷身先死
  • 【网络通信】关于TCP阻塞和非阻塞方式的总结

    关于TCP阻塞和非阻塞方式的总结 1 引言 在网络编程时 xff0c 我们需要注意创建的socket是阻塞状态还是非阻塞状态的 xff0c 这两种状态在编程时 xff0c 对于每一个socket系统调用函数 xff08 connect se
  • c语言中return返回值的用法总结

    return返回值的意义就是把return lt 表达式内容 gt 返回给调用return的函数 例如 xff1a void test int i int j xff5b return i 43 j printf 34 不会被执行的语句 x
  • UART、RS232、RS485、I2C和SPI的介绍

    基本知识 串行通信 xff1a 多个数据通过一条数据线 xff0c 依次传输并行通信 xff1a 多个数据通过多条数据线 xff0c 一次性传输单工通信 xff1a 只能接收数据或者发送数据 xff08 遥控器 收音机 xff09 半双工通
  • 【MATLAB教程案例97】基于GA遗传优化的CNN卷积神经网络最优训练参数搜索matlab仿真

    欢迎订阅 FPGA学习入门100例教程 MATLAB学习入门100例教程 目录 1 软件版本 2 理论概述 3 matlab仿真
  • 【读书笔记】-《华为-C语言编程规范》

    前言 作为程序开发者 xff0c 避免不了阅读别人代码 xff0c 那么就会涉及到到一门语言的编程规范 规范虽然不是语言本身的硬性要求 xff0c 但是已经是每一个语言使用者约定俗成的一个规范 按照编程规范编写的代码 xff0c 至少在代码
  • UART概述(下)

    目录 IntroductionFunctional OverviewOverviewFunctional descriptionOperation Introduction UART作为一个连接到APB的AMBAslave模块 xff0c
  • sprintf,你知道多少?

    选自 CSDN 社区电子杂志 C C 43 43 杂志 http emag csdn net 2005 年1 月 总第1 期 93 本文作者 xff1a steedhorse xff08 晨星 xff09 printf 可能是许多程序员在开
  • 1315 - 遥控飞机争夺赛

    红太阳杯遥控飞机大赛拉开帷幕 比赛规则为 xff0c 每位选手让自己的飞机从起点到终点飞行 55 次 xff0c 组委会记录 55次的飞行的成绩之后去掉一个最大成绩 一个最小成绩后计算剩余 33 个成绩的平值 xff08 平均分保留 33
  • TS — 枚举的基础应用,const,declare关键字的使用

    在 TypeScript 中 xff0c 枚举 xff08 Enum xff09 是一种可用于定义一组具有名称和值的常量的数据类型 它们允许我们定义一组命名常量 xff0c 而这些常量的值可以是数字 xff0c 字符串或任何其他数据类型 枚
  • C标准、C标准库、C++标准、C++标准库

    1 C标准 C标准主要有三个版本 xff1a C89 C99 C11 xff0c 他们之间的关系可以借用这张图来表示 xff1a C 标准主要由两部分组成 xff1a 描述C的语法 xff0c 和描述C标准库 C标准库定义了一组标准头文件
  • ZED2相机+NVIDIA NX使用及检测目标功能2

    在nx结合zed相机 xff0c 使用yolo进行物体识别 1 venv虚拟环境安装 由于设备自带的python为python2 7环境 xff0c 所以先创建虚拟环境并激活 sudo apt get install software pr
  • tensorflow-gpu==1.13.2运行出错:DDL或import tensorflow找不到指定模块

    这是tensorflow和cuda之间的匹配问题 xff0c 笔者在最初接触神经网络学习的时候 xff0c tensorflow1的时候确实没能成功使用 xff0c 当时是使用pytorch进行了学习 后来笔者探索了一番学习后 xff0c
  • python,opencv,段错误(核心已转储)

    在主脚本调用其他脚本 xff0c 且主脚本和调用脚本都使用到了cv2 VideoCapture xff08 0 xff09 出现如下错误 xff1a 解决方法 xff1a 只使用一次VideoCapture xff08 xff09 主脚本和

随机推荐