毕业设计(论文)开题报告 题 目 基于Visual C# 游戏程序的研究与开发 学生姓名 班级学号 专业 提纲(开题报告2000字以上): 1. 对指导教师下达的课题任务的学习与理解 2. 阅读文献资料进行调研的综述 3. 根据任务书的任务及文献调研结果,初步拟定的执行(实施)方案(含具体进度计划) 一、 对指导教师下达的课题任务的学习与理解 1 Visual C#简介 C#(读作 C sharp)是微软开发的一种面向对象的编程语言,是微软.NET开发环境的重要组成部分。而Microsoft Visual C# 2005是微软开发的C#编程集成开发环境(同种产品还有Borland公司的C# Builder),它是为生成在 .NET Framework 上运行的多种应用程序而设计的。C# 简单、功能强大、类型安全,而且是面向对象的。C# 凭借它的许多创新,在保持 C 样式语言的表示形式和优美的同时,实现了应用程序的快速开发。 Visual Studio.net 包含 Visual C#,这是通过功能齐全的代码编辑器、项目模板、设计器、代码向导、功能强大且易于使用的调试器以及其他工具实现的。通过 .NET Framework 类库,可以访问多种操作系统服务和其他有用的精心设计的类,这些类可显著加快开发周期。 2 课题理解 基于Visual C# 游戏程序的研究与开发,简而言之,就是利用Visual C#平台开发游戏程序,程序应当能够正确运行,并且交互界面美观、友好、操作方便。 想要开发一个游戏程序,就得先找一个很好的开发工具,我选择Visual C#。如果抛开一切非技术方面的因素,C# 无疑是这个星球上有史以来最好的编程语言,它几乎集中了所有关于软件开发和软件工程研究的最新成果。面向对象、类型安全、组件技术、自动内存管理、跨平台异常处理、版本控制、代码安全管理……你不可能在另外的一种语言中找到所有这些特性。 不管计算机发展到什么程度,只要是编写程序,就少不了数据结构。目前,基本上都不再会有自己去创造“车轮”年代了,应去理解和使用STL,或者其它更好的数据结构库了。精通地使用STL,就基本上解决了数据结构的问题了。 在开发游戏里,使用最多的数据类型是什么呢?显然就是浮点数。比如3D游戏里的点坐标,就是使用三个浮点数来表示的。浮点数的计算,往往就会有不精确的现像,比如判断一个数是否等于0,就不能想当然地认为是否等于0了。 计算机体系结构:不了解计算机的体系结构,就没有办法知道程序的运行环境。很多年前,还是8086的体系的结构,接着,就是80386的保护模式。到目前多核体系结构,对于编写程序,要求发挥多核CPU的性能,就需要了解怎么样合理地分配CPU资源了。或许,你还可以控制那个CPU进行渲染的操作,那个CPU进行网络通迅。如果到四核的CPU,又要需要多少个CPU进行数据库的查询工作呢? 正是由于C#具有如此的优越性和实用性,我们有必要加深对它的了解,熟练对它的使用,我领到的毕业设计的课题是Visual C# 软件设计案例设计,通过设计3个以上案例并编制相应指导书,可以帮助学生在实践过程中提高C#编程水平,熟练可视化编程流程。因此,本课题具有较高的实际教学意义。 3 课题研究意义 近几年来,由于 3D 硬件绘图技术的突破,使得实时描绘的画面越来越精致而且3D游戏性更多元化更逼近真实世界,因此在游戏产业中,3D 游戏已经逐渐取代2D游戏而成为游戏市场的主流,即使是网络游戏,也慢慢趋向3D化。早期的游戏开发,由于硬件上的限制,如:运算速度慢,记忆空间小,使得程序设计师必须藉由一些特殊的技巧以提高效率或是挤出够用的记忆空间,所以每一个游戏最好是从头写起,以便针对各个不同的游戏程序做最佳化,让硬件的效能发挥到极致,由于这些限制使得当时的游戏画面只能以简单的线条或是图形来呈现,所以早期游戏强调的是游戏性而不是视觉的感受(例如:华丽的画面、惊人的视觉特效„等)。而游戏开发小组可能只需要一个程序设计师、一个美术师及一个的音乐作家,甚至可能一个全能的程序员包办所有的工作。随着硬件效能的提升,游戏开始变得复杂而且多样化,而游戏的视觉的感受(如:华丽的画面)逐渐成为玩家是否接受这个游戏的首要条件,所以游戏在制作上日趋复杂,尤其是进入3D时代之后,游戏制作的难度更是陡升。 二、阅读文献资料进行调研的综述 学习C#还是大三的事情,而且当时学的很浅,学习了一些C#的基础,包括C#的各种的控件,我觉得毕业设计就是要学点东西,而且我对游戏的设计还是比较感兴趣的,所以我决定选择本课题。但是在游戏的选择上我犹豫了,推箱子、俄罗斯方块、贪吃蛇、打地鼠、连连看等等,但是我又怕这些游戏过于简单,但是大型的游戏的难度又可想而知,所以我决定根据毕设的发展来决定游戏的选择。我翻阅了大量书籍准备材料,主要参考了《Visual C#.NET 程序设计》和《VISUAL C#图像处理程序设计实例》,还有一些其他资料,其中最难的是俄罗斯方块,由于加入了新的功能,自己设计方块,这要用到鼠标点击方块变色的功能,还有由于自己设计了方块,旋转就不可以用枚举的办法来控制,所以要设计通用的旋转方法。另外,自己设计了方块要能储存,这要用到XML的方法,由于这些我都不是很熟悉,所以我查了很多资料,稍微明白了一些。在程序中访问进而操作XML文件一般有两种模型,分别是使用DOM(文档对象模型)和流模型,使用DOM的好处在于它允许编辑和更新XML文档,可以随机访问文档中的数据,可以使用XPath查询,但是,DOM的缺点在于它需要一次性的加载整个文档到内存中,对于大型的文档,这会造成资源问题。流模型很好的解决了这个问题,因为它对XML文件的访问采用的是流的概念,也就是说,任何时候在内存中只有当前节点,但它也有它的不足,它是只读的,仅向前的,不能在文档中执行向后导航操作。 推箱子的设计对每一个C#语言设计者进行语言提高和进阶都是一个很好的锻炼机会。在这个游戏的设计中,牵涉到图形界面的显示与更新、数据的收集与更新,并且在这个游戏的开发中,还要应用类的继承机制以及一些设计模式。因此,如何设计和开发好这个推箱子游戏,对于提高C#开发水平和系统的设计能力有极大的帮助。在设计开发过程中,需要处理好各个类之间的继承关系,还要处理各个类相应的封装,并且还要协调好各个模块之间的逻辑依赖关系和数据通信关系。正是因为如此,本次案例分析的目的在于学习C#程序设计基本技术,学习用C#程序的相关技术,熟悉游戏“推箱子”的需求,熟悉项目开发的完整过程。学会怎样进行一个项目的需求分析、概要设计、详细设计等软件开发过程,熟练地掌握C#程序设计的基本技术和方法,熟练地掌握eclipse环境的使用方法,培养起初步的项目分析能力和程序设计能力。 三、根据任务书的任务和文献调研结果,初步拟定执行(实施)方案(含具体进度计划) 1、执行(实施)方案 (1),根据游戏类型,设计游戏的基本功能 (2),完成各个功能的程序编写 (3),完成程序debug工作,进一步优化程序 (4),调试游戏功能,完成游戏开发
2,设计进度 第 1-2 周 了解课题,查找资料熟悉C#,做出设计雏形,写出开题报告。 第 3-4 周 确定设计方案,建立开发平台完成20000印刷符的英文翻译。 第 5-7 周 根据设计方案,开展课题设计。进行中期检查。 第 8-10 周 基本完成设计任务。 第 11-13 周 进一步完善设计,撰写报告。
第 14 周 答辩。
四、参考文献: [1] 杨晓光,李兰友.《Visual C#.NET 程序设计》.清华大学出版社,2006 [2] 赵春江.《C# 数字图像算法典型实例》.人民邮电出版社,2009 [3] 李兰友.《VISUAL C#图像处理程序设计实例》. 国防工业出版社,2003 [4] 刘烨,吴中元.《C#编程及应用程序开发教程》.清华大学出版社,2003 [5] 董新法,沈夏炯.基于图形控件的可视化编程研究[j].现代计算机,2008.11 [6] 刘勘,周晓峥,周洞汝.数据可视化的研究与发展[J].计算机工程, 2002, (08)37-39 [7] 魏兰,李文锋. 基于可视化程序设计语言的编译系统[J]. 计算机工程, 2007, (13)26-28 [8] Bordogna G,Gagliardi I ,Merelli D. Lconic Queries on Pictoria Data[R]. Proceedings 1997 IEEE Workshop on Visual Languaes ,1997 [9] 蒋宏伟. 面向对象的可视化编程方法[j]. 信息技术,2004(6) 60-61 [10] [3]Kim Marriott, Bernd Meyer. On the Classification of Visual Languages by Grammar Hierarchies [J]. Journal of Visual Languages and Computing, 1997(8): 375~402
[11] 郑小平.Visual C#.NET开发实践.北京:人民邮电出版社.2001 [12] 嘉木工作室编著.C#编程思想.北京:机械工业出版社.2003 [13] Bill Evjen Jay Glynn Christian Nagel 《C#高级编程(第六版)》清华大学出版社
指导教师批阅意见 指导教师(签名): 年 月 日