实时游戏的设计及实现
2013-06-15 14:13
281 查看
新生课论文
2012-12-13 14:43中南大学
实时游戏的设计及实现
学院:信息科学与工程学院
班级:XXXXXXX
姓名:XX
学号:XX
摘要
本文将通过对实时游戏的研究与分析,建立出一套实现实时游戏的设计方法与通用框架,并将实现一个游戏实例《装甲之战》。
引言
随着电子计算机与互联网的高速发展,游戏产业不断壮大,研究与设计游戏已成为迫切需要。本文主要探讨游戏的设计方法与实现方式,游戏的经济效应与社会效应不在本文的探讨之内。
正文
实时游戏是指能实时接收用户输入、及时进行处理并实时输出的游戏。实时游戏产生于上世纪八十年代,并一直发展至今。实时游戏的硬件需求较高,其发展依靠硬件技术的进步。
实时游戏的大致流程为:输入→运算→输出。其主要模块包括:用户界面、游戏逻辑、流程控制、输出模块。其中用户界面可以分为主菜单、显示信息、操作元素等子模块,输入信息包括鼠标输入、键盘输入;游戏逻辑可以分为AI、碰撞检测、运动等子模块;输出模块则负责画面的绘制、更新以及音频的输出。
其运行步骤大致如下图所示:
以《装甲之战》为例,现介绍各模块的实现方法,采用的程序设计语言:C语言,编译环境:VC++6.0。
初始化:设计函数Init();1、进行全局变量的赋值。2、加载配置文件,并将配置信息保存到全局变量中。3、用户窗口的建立以及绘图的初始化。
用户界面:1、Logo的设计:用一张较大的图片,在初始化工作完成之后,将图片显示于窗体之上,并延长一段时间。2、主菜单的显示:设计函数ShowMenu(),负责根据用户的输入来进行选项的变更以及动作的执行。3、输出信息与几面元素函数ShowInfo():主要负责在游戏进行时设置控制按钮以及显示用户信息。
输入模块:通过调用WinAPI函数GetAsnyKey()来获取指定按钮的状态,并将此信息反馈给流程控制模块,由流程控制模块分析并处理。
游戏逻辑:1、人工智能:先检查对方坦克的位置,得出坐标差值,调整运动方向或执行其他动作。2、碰撞检测:判断各元素是否碰撞到其他物体或动作是否有效。3、运动:用于移动各元素以及执行各种动作。
输出模块:先将各元素的图画绘制到缓冲页面中,再将缓冲页面复制到显示屏上,也即双缓冲技术。此举是为了避免游戏时的闪烁。同时利用WinAPI函数PlaySound()输出相应的音频;
游戏的程序框架至此已基本形成,对各个子模块进行编码即可完成游戏的程序部分。
游戏源代码概览:
游戏图片制作:采用Painter和PhotoShop分别进行创作和后期加工。
游戏声音制作:采集游戏所需的各种声音,利用声音处理软件进行截取与加工。
至此,一个完整的实时视频游戏完成了。
游戏运行效果图:
致谢
对指导论文写作的新生课老师和对程序设计及素材提供帮助的人士表示感谢!
参考文献:《Windows程序设计》、《Windows游戏编程大师技巧》。
游戏中部分图片及声音的来源于互联网。
相关文章推荐
- RPG和SNS类游戏的cache server设计和实现区别随笔
- 谈一款MOBA类游戏《码神联盟》的服务端架构设计与实现(更新优化思路)
- 游戏引擎学习笔记:介绍,架构,设计及实现
- 游戏中百万用户排行设计与实现
- 【游戏设计模式】之三 状态模式、有限状态机 & Unity版本实现
- 游戏开发设计模式之状态模式 & 有限状态机 & c#委托事件(unity3d 示例实现)
- 一种2D游戏引擎的设计与实现
- 游戏中实时更新数据的实现方式
- 一个MIDP俄罗斯方块游戏的设计和实现
- Unity3d 游戏中的实时降噪-对Square Enix文档的研究与实现
- Linux脚本设计练习2——一个游戏菜单的简单实现
- RPG和SNS类游戏的cache server设计和实现区别随笔
- 【游戏设计模式】之三 状态模式、有限状态机 & Unity版本实现
- 谈一款MOBA类游戏《码神联盟》的服务端架构设计与实现
- VUE+WebPack游戏设计:实现碰撞检测和动画精灵
- 利用C#实现游戏应用设计模式(编写周期2天)
- 基于FPGA+DSP的实时图像处理平台的设计与实现
- 游戏状态机的设计与实现
- 网站实时监控系统的设计与实现
- 数独游戏的设计与实现