登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 计算机类 > 软件工程 > 正文

网络俄罗斯方块游戏的设计与实现毕业论文

 2021-12-06 20:50:45  

论文总字数:21728字

摘 要

必读参考资料:

[1]Microsoft .NET框架程序设计(修订版)Jeffrey Richter 清华大学出版社

[2]C#和.NET 2.0 实战:平台、语言与框架 Patrick Smacchia人民邮电出版社

指导教师签名: 系主任签名 :

院长签名(章)

武汉理工大学

本科生毕业设计(论文)开题报告

1、目的及意义(含国内外的研究现状分析)

1.1 研究背景

随着计算机科技和网络的飞速发展,电子游戏产业也在迅速增长。不仅在内容上,游戏的种类原来越丰富和多样化,而且在技术上,游戏开发所涉及到的技术种类也越来越多并且对技术的要求也不断增高,游戏设备也在不断更新换代。显像技术的进步使电子游戏的画面表现力越来越强,从最初的“像素级”画面逐渐走向“电影级”画面。然而快速的发展也意味着过去的游戏更容易被淘汰。但是经典的俄罗斯方块却是一个特例。

《俄罗斯方块》(Tetris)是一款由俄罗斯人阿列克谢·帕基特诺夫于1984年6月发明的休闲游戏。在经历了长时间的版权纠纷后,这款游戏最终成为了史上移植平台最多的游戏。从最早的PC开始,它在无数平台上都留下了自己的足迹,从GB到NS,从FC到PS4,不管是以手机为代表的移动平台,还是网络在线游戏服务,每一个新兴的系统模式都少不了它的存在。在几十年的发展中,俄罗斯方块也发展出了各种各样的形式(例如:联机对战,使用道具等等)。尽管如此,它的核心玩法却从未改变,从操作方式到呈现效果依然如初。它创造了一类游戏类型,影响了游戏发展的进程,当然也在各个意义上改变了无数人的生活,而如今它也将继续在高清化的时代继续书写自己的传奇。

1.2设计目的

《俄罗斯方块》作为一款经典的游戏,虽然它规则简单,但是涉及到键盘控制、图形的绘制以及其他逻辑问题,需要综合各种技术的运用。

本次设计的目的是基于Unity3D引擎,使用C#语言,开发一款既能够单人游戏,也可以双人网络对战的内容丰富的《俄罗斯方块》游戏。

C#是由微软(Microsoft)开发的、一种优秀的面向对象语言,它继承了C 和Java等语言的优点,并与现代软件工程相适应。C#语言利用.NET作为运行平台,使得它在Windows图形用户界面、Web应用、数据库等方面有强大的功能。

Unity3D是由Unity Technologies开发的一套跨平台的游戏引擎。使用 Unity 可以创建 2D 或 3D 游戏、建筑格式化、实时三维动画等互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。正因为其跨平台、容易入门、功能丰富等多种优点,Unity3D成为了时下最流行、应用最广泛的游戏引擎之一。

Unity3D使用C#作为编程语言,利用交互的图型化开发环境,并且能够通过自带的UI等系统,更好地呈现《俄罗斯方块》游戏的效果。

2、研究(设计)的基本内容、目标、拟采用的技术方案及措施

2.1 基本内容

基于Unity3D引擎实现网络俄罗斯方块游戏。这款游戏既能够进行单人游戏,也可以两个人在网上分别进行俄罗斯方块游戏。当进行双人游戏时,双方能够分别看到对方的游戏进程。双人游戏中方块下降的速度要保持相同(即某个人下降速度增加后,另一个人的速度也必须同时增加),两个人中谁先削满指定条数后,谁获胜。

游戏中能够根据游戏的进程动态的增加方块下降的速度,并且下一个将要出现的方块要能够提前告知游戏者。当双人游戏时,两个人能够分别能在本机的游戏界面上看到对方的游戏进程。游戏中的背景,以及方块的图案能够在软件中进行设置。

2.2 技术方案

在设计过程中主要采用Unity3D引擎,Microsoft Visual Studio集成开发环境,C#语言编程。用Unity3D自带的组件呈现不同的方块以及整体界面的UI效果,用C#语言编写俄罗斯方块游戏的基本逻辑以及其他功能,包括方块的随机生成、方块的平移和旋转、方块的下落和落地判定以及整行方块的消除等,用TCP网络编程创建客户端和服务器端的通信,来实现俄罗斯方块的联机对战。

本设计主要实现的模块如图所示:

3、进度安排

2020/1/13-2020/2/28:确定选题,查阅文献,外文翻译和撰写开题报告。

2020/3/1-2020/3/29:学习Unity3D开发、C#语言编程、网络编程的相关知识,完成系统架构的设计。

2020/4/1-2020/4/20:完成单机模块以及UI界面的设计与开发。

2020/4/21-2020/5/11:完成联机模块的开发以及系统测试与完善。

2020/5/11-2020/5/25:撰写并修改毕业论文。

2020/5/26-2020/6/5:准备答辩。

4、指导教师意见

指导教师(签名):

年 月 日

目录

1 绪论 1

1.1 游戏产业发展现状和前景 1

1.2 游戏引擎 1

1.3 开发环境及工具 2

1.4 本文的组织结构 2

2 系统所用技术概述 4

2.1 Unity编辑器视图 4

2.2 游戏对象和组件 4

2.2.1 GameObject(游戏对象) 4

2.2.2 Component(组件) 4

2.2.3 Transform(变换组件) 4

2.2.4 Prefab(预制件) 5

2.2.5 Camera(摄像机) 5

2.3 脚本和MonoBehavior类 5

2.4 UGUI系统 6

2.4.1 Canvas画布 6

2.4.2 EventSystem事件管理系统 6

2.4.3 Text文本 6

2.4.4 Image图像 6

2.4.5 Button按钮 6

2.4.6 Toggle开关与Toggle Group(开关组) 7

2.4.7 Input Field(输入字段) 7

2.5 数据持久化技术 7

2.5.1 PlayerPrefs持久化技术 7

2.5.2 XML持久化技术 7

2.6 C#多线程技术 7

2.7 套接字Socket技术 8

2.8 本章总结 8

3. 系统概要设计 9

3.1 系统设计目标 9

3.2 系统流程 10

3.3 系统结构 11

3.4 模块功能 11

3.5 本章小结 12

4 系统详细设计 13

4.1 游戏基本逻辑模块 13

4.1.1 Tetris类 13

4.1.2 Area类 14

4.2 联机模块 15

4.2.1 IConnect接口 15

4.2.2 Server类和Client类 16

4.2.3 Converter类 17

4.3数据存储模块 17

4.3.1 XML文件 17

4.3.2 ImageLoader类 17

4.3.3 DataBase类 17

4.4 UI设计模块 18

4.4.1 主界面 18

4.4.2 单机游戏界面 18

4.4.3 联机游戏界面 20

4.5本章小结 21

5 系统运行 22

5.1 单机游戏 22

5.2 设置界面 24

5.3 联机游戏界面 26

5.4 本章小结 28

6 结论 30

6.1 总结 30

6.2 展望 30

摘 要

《俄罗斯方块》是一款经典的游戏,虽然它规则简单,但是涉及到键盘控制、图形的绘制以及其他逻辑问题,需要综合各种技术的运用。 而本系统的设计目标是在俄罗斯方块游戏核心玩法的基础上,添加双人对战等功能,丰富游戏的内容。

Unity3D引擎是由Unity Technologies公司所研发的一款跨平台游戏引擎。它可以开发2D和3D游戏,并将开发完成的游戏发布在PC、主机、移动端等多平台上。使用Unity3D引擎进行游戏开发提大大高了游戏的开发效率。因此,本次设计中使用Unity3D引擎来进行网络俄罗斯方块游戏的开发。

本文先简要介绍了系统所用技术,再详细阐述了系统各个模块的实现方法,最后给出了游戏的运行流程。

关键词:俄罗斯方块;Unity3D引擎;Socket;网络通信

Abstract

"Tetris" is a classic game. Although its rules are simple, it involves keyboard control, graphics drawing, and other logic problems, which require the use of various technologies. The design goal of this system is to add two-player battle functions to enrich the content of the game based on the core gameplay of the Tetris game.

Unity3D engine is a cross-platform game engine developed by Unity Technologies. It can develop 2D and 3D games, and publish the developed games on PCs, consoles, mobile terminals and other multi-platforms. Using the Unity3D engine for game development greatly improves the game development efficiency. Therefore, this design uses the Unity3D engine to develop online Tetris games.

This article first briefly introduces the technology used in the system, then elaborate on the implementation of each module of the system, and finally gives the game's running process.

Key Words: Tetris; Unity3D engine; Socket; network communication

1 绪论

    1. 游戏产业发展现状和前景

电子游戏(Video Games,少部分学者使用Electronic Games)又称电玩游戏(简称电玩),是指所有依托于电子设备平台而运行的交互游戏。

电子计算机作为电子游戏的载体,对于电子游戏的发展起着举足轻重的作用。1952年,名为井字棋(Tic-Tac-Toe)的第一款电子游戏诞生。而后,随着计算机技术的发展和进步,电子游戏在游戏玩法、游戏内容、游戏画面和游戏性能上有了巨大的提升。全球游戏行业也因此而蓬勃发展,玩家市场不断扩大,潜力无限。

如今的电子游戏种类多样,根据不同的标准划分为不同的类型。根据媒介的不同,一般分为街机游戏、主机游戏(家用游戏机游戏)、电脑游戏、掌机游戏、和移动游戏(主要是手机游戏)[1]。根据游戏核心玩法的不同,划分的种类更为多样,大体上分为角色扮演类、动作类、冒险类、模拟类、策略类等,而随着游戏的发展,这些大类型又分化出无数不同的类型和子类型。

而随着显像技术的进步,电子游戏的画面得以不断发展和提升,分化出了多种多样的美术风格[2]。游戏的表现力也越来越强,现在的技术已经可以逼真地呈现人物的发毛等细节,从而提升了玩家的代入感和游戏体验。

正是依托于技术的进步,游戏制作者们能更好地将游戏的玩法、剧情与画面等等相结合,从而呈现出丰富而独特的表现力。电子游戏,不仅能够给人们带来由衷的欢愉,它也表现为许许多多鲜明而生动的形象,也因此电子游戏被称为继绘画、雕刻、建筑、音乐、诗歌(文学)、舞蹈、戏剧、电影(影视艺术)之后人类历史上的“第九艺术”[3]

如今,电子游戏已经融入了人们的生活,它不仅是人们用来解压的一种方式,也是了人与人之间沟通交流的一种社交方式,更成为了一种具有丰富交互性的艺术体验。而移动游戏市场的爆炸发式增长和VR技术的逐渐成熟,给游戏产业的未来带来了无限的可能[4]

    1. 游戏引擎

游戏引擎是指为制作游戏需要而事先编制好的一系列同游戏初始化、图形处理、角色控制、碰撞检测等有关的API函数(一般以DLL库的形式提供)[5]。它通常包含了各种编辑游戏内容所需要的系统。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让设计者能够容易且快速地做出游戏程序而不用从零开始。

游戏引擎能够给游戏开发者们提供完善的可视化创作工具和稳定的底层框架,从而提高游戏开发的效率。游戏引擎通常包含了许多控制游戏不同功能的系统,例如:渲染引擎、脚本引擎、物理引擎、人工智能、碰撞检测系统、音效、动画、网络引擎及场景管理等[6]。而游戏开发者们则利用游戏引擎开发商提供的SDK来开发自己的游戏。

从游戏引擎问世到现在,经过了许多年的发展,市面上也出现了越来越多不同的游戏引擎,它们的功能也愈发强大和完善。其中比较知名的游戏引擎有Unity Technologies研发的Unity3D引擎,Epic Games研发的Unreal虚幻引擎,Valve公司研发的Source Engine等等。

目前,Unity3D因为其易学易用、跨平台等特性已经成为了最受游戏开发者们欢迎的游戏引擎之一,特别受到移动游戏开发商们的青睐[7]

    1. 开发环境及工具

网络俄罗斯方块游戏基于Unity3D引擎,使用Visual Studio2017开发,采用C#语言,下面对开发环境和开发工具进行简单介绍。

(1)Unity3D引擎:Unity3D是由Unity Technologies所研发的一款跨平台游戏引擎[8]。它可以开发2D和3D游戏,并将开发完成的游戏发布在Windows、MacOS以及Linux等PC平台,PlayStation、XBox、Nintendo Switch 等主机平台以及iOS、Android 等移动端。Unity3D也支持基于 WebGL 技术的 HTML5 网页平台,以及tvOS、Oculus Rift、ARKit 等新一代多媒体平台。Unity3D引擎除了用于开发电子游戏之外,还被广泛用于建筑可视化、实时三维动画等类型互动内容,是一个综合型的创作工具[9]

请支付后下载全文,论文总字数:21728字

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图