游戏开发计划:

俺最近对游戏开发很有兴趣,看了些资料,发现开发一个游戏大致需要解决以下问题:

制作精灵:TSprite,记录游戏场景中的各种角色的运动与状态参数,通常用双向列表记录场景中所有精灵。

动作引擎:参考3ds max的character studio。用树保存物体结构,记录运动约束条件及各部分运动轨迹。该工作应该与精灵制作集成。

制作地图:TMap,描述游戏发生的场景,并作为精灵等的定位依据。包括数据结构、使用方法与编制工具。(TMap2,TMap3)

打包管理:TPackage,集中保存所有数据文件(图文声等)。包括存贮结构、存取方法与包装工具。主要应该提供文件的打开、读取、定位三个功能。

注意:

1、自动封装URL定位信息,先到包内找,找不到自动到URL处找。

2、支持多种打包方法(压缩、加密等),更换打包方法不能引起对游戏源程序的修改。

3、建立文件的快速索引系统,以便在成千上万个文件中快速定位指定文件的指定部分。

4、包文件形式可以是单独的数据文件或资源文件(最终成为EXE或DLL的一部分)。

剧情脚本:TScript,记录对话等事件的逻辑关系。应该开发一个可视化的写作界面(提供角色视图、事件视图、编剧视图及约束条件定义支持)。

媒体编播:TMMplay,提供图形、声音支持,包括快速2D绘制、3D-2D变换、真实感(光照/阴影/纹理)、2D特效(混合、光影等)、3D例程(地表生成、粒子系统等);阻塞与非阻塞声音混合与播放,注意提供对多种API(如DirectX,OpenGL

用户接口:TInput/Output,提供用户输入响应支持,主要问题有单用户的多键并发响应、鼠标/游戏杆支持,多用户共用键盘时的并发响应,点对点网络输入输出支持、客户/服务器方式网络输入输出支持。显然,未来还会有对语音识别、立体视镜、多感度鼠标、运动/感觉传感器等VR的支持。

主消息循环:游戏程序的主体。应该建立一套系统无关的消息系统,以简化各种引擎及接口的切换。还要考虑对MFC/OWL/VCL等等应用程序框架的利用。同时要考虑跨平台移植的支持(当前常用的有DOS/Win32/Mac/OS2/Unix等)。

人工智能:主要用于控制计算机角色,也用于玩家计算机辅助决策。

好了,根据以上知识,我认为制作下边这样一个游戏可以得到全面锻炼:

Mud的3D图形化客户端。以MUD文字地图为蓝本编制三维地图(关于三维地图俺还没有一个清晰的认识),显然,扫描MUD脚本,参照玩家当前位置实时拼装能提供更好的灵活性。用3D精灵表示场景中的人物,用动作引擎生成行走、打坐、招式等动画。战斗时的界面参考Street Fighter,但背景不加改变仍为刚才环境(即直接在地图上战斗)。 对话时界面参考MS Chat,同样直接在地图上对话。

操作包含两套系统:原有的mud文本指令、新的键鼠控制系统。