游戏开发零基础入门教程(12):从想法到设计的过程

简介: 一个游戏通常开始于一个想法,这个想法可以是千奇百怪的,可以是五花八门的,甚至可以是可笑的。不论如何有一个想法,是一个游戏的开端。当你有了一个想法了以后,如果你希望它最终能够变成一个真正的游戏,那么你就必须要继续往前走,反复的思考,雕琢你的粗糙的想法,将它细化,形成一份具体的可行的游戏设计方案。

在接下来的几节里,我会向你展示游戏制作的整个流程,从开始的一个粗略的想法,到游戏设计,再到最终的游戏制作。


一个游戏通常开始于一个想法,这个想法可以是千奇百怪的,可以是五花八门的,甚至可以是可笑的。不论如何有一个想法,是一个游戏的开端。当你有了一个想法了以后,如果你希望它最终能够变成一个真正的游戏,那么你就必须要继续往前走,反复的思考,雕琢你的粗糙的想法,将它细化,形成一份具体的可行的游戏设计方案。


通常,当你将想法变成具体的游戏设计时,并不是那么顺利,你可能会发现这个想法漏洞太多,或者不切实际,亦或者这个想法的实现超出了你的能力范围,大部分的想法会在这一阶段被否定,或者被修改,你可能根本拿不出一份具体可行的游戏设计方案,亦或者,你的方案完全背离了起初的想法.....


无论你遇到的是哪种情况,都无需担心,因为这是游戏制作中再正常不过的事了,它告诉了我们两件事情:


- 我们脑袋中的大部分的想法都不切实际。


- 制作游戏是一项需要积累和反复练习的技能,没有人能一上来就做的很好。


言归正传,下面正式开始从想法到设计的过程。


首先,假设我们有了一个想法:我要做一个“打飞机”的游戏,要有一个炫酷的名字叫“太空保卫战”,我要控制着战机击落每一个入侵的敌人。


好了,现在我们有一个粗糙的想法了,我们甚至为游戏起了个名字,那么接下来呢,我们尝试为这个想法进行细化,让其变的更具体一点儿。


可以从下面这几个方面入手:


- 这是一个太空射击游戏,所以游戏的主题背景是太空。


- 我要能控制战机在太空中飞行,如何控制呢?因为这是一个手机上的游戏,所以一个比较好的控制方式是用手指点击战机,然后在屏幕中随意的拖动就可以控制战机的移动。


- 战机需要攻击敌人,因此我们的战机要能够发射子弹。


- 要有入侵的敌人,敌人如何入侵呢?最简单的方式就是不停的有敌人从屏幕上方飞下来,战机有两种选择,要么将敌机击毁,要么躲避敌机。


现在我们的想法已经有了些具体的内容了,我们打算有一个太空作为背景,使用拖拽的方式控制战机的移动,战机可以发射子弹,敌机不停的从上方下落,我们可以选择击毁敌机或者躲避敌机。


虽然想法已经丰富了很多,但是作为游戏设计,还是不够清晰具体。


游戏需要有一个目标或者也叫做任务,我们需要一个“目标”来作为玩游戏的动力,这里我们就将击毁敌机的数量当作一个目标,击毁的敌机数量越多,表示你越厉害。我们设置一个得分的数字记录,每击毁一架敌机,得分就加一。在游戏中尽可能多的击毁敌机,获得更高的分数,就是游戏的目标。


另外,游戏也需要有一个结束条件,总不能无止境的玩下去吧!这里,我们设定战机被任何一架敌机碰到,则游戏结束。


现在,游戏有了目标和结束条件,我们想法更加清晰和明确了:这是一个太空射击游戏,敌机不停的从上方入侵,玩家需要使用手指拖拽的方式控制战机移动,击毁或者躲避飞来的敌机,要在不被敌机碰到的前提下,击毁尽可能多的敌机,以获得更高的分数。


有了清晰的想法,下面我们可以做一些具体的设计了。


我们先从游戏的外观开始,画一些草图,来展示它看起来应该是什么样子。

这是一个游戏开始界面,它展示了游戏的名字,并且只有一个“开始”按钮,点击“开始”按钮就会正式进入游戏。

游戏大概是这个样子,敌机从上方不停的下落,战机不停的发射子弹,用手指拖拽战机,控制其移动,左上角显示的是游戏的得分。

游戏结束后,我们只简单的显示游戏结束的提示,并增加一个“重新开始”按钮,点击后可以重新开始游戏。


以上就是游戏看起来的样子,非常的简单,一个开始界面,一个游戏界面,一个结束界面。开始界面负责展示游戏的名字,游戏界面是我们进行游戏的地方,结束界面提示游戏结束了,并且可以重新开始。

在纸上画草图可以帮助你梳理想法,而且这些草图也会是你制作游戏过程中的最好的参照。

游戏了外貌有了,下面我们要深入其中来设计逻辑了。


首先,来划分一下游戏场景,这里,简单的划分为两个场景:

- 开始场景

- 游戏场景

“开始场景”只负责开始界面,点击“开始游戏”按钮,就会进入到“游戏场景”,我们将游戏的所有的逻辑都放在“游戏场景”中。


接下来,分析一下战机,战机需要能通过拖拽来控制移动,另外,战机碰撞到敌机时,游戏就结束了。所以,战机需要处理以下的逻辑:

- 当手指点击战机拖拽时要做出响应,战机位置跟随手指移动。

- 战机碰撞到敌机时,则游戏结束,显示游戏结束提示。


接着,看一下子弹的逻辑,游戏一开始,战机就会不停的发射子弹,所以子弹需要用到“克隆”,当子弹被“克隆”出来后,应该位于战机的上方,这样看起来才像是战机发射的子弹,所以子弹被“克隆”出来后需要调整其位置,最后,当子弹击中敌机时,子弹就应该消失。所以子弹需要处理以下逻辑:

- 游戏开始后就不停的克隆子弹。

- 当子弹被“克隆”出来后,将其位置设置在战机的位置。

- 当子弹碰撞到“敌机”时,子弹应该被销毁。


接着,来看敌机,敌机需要不停的从屏幕上方的随机位置向下落,我们需要不停的产生敌机,所以需要对敌机进行“克隆”,新生成的敌机需要位于屏幕上方的随机位置,所以在敌机“克隆完成时”,需要对位置进行设置。另外,当敌机被子弹击中后,会被击毁,需要处理与子弹的碰撞,最后,敌机被击毁后,需要发送一个事件告诉得分加一。所以,敌机需要处理下面这些逻辑:

- 游戏开始后就要每间隔一定的时间“克隆”敌机。

- 当敌机被“克隆”出来后,将位置设置为屏幕顶端的随机位置。

- 当子弹碰撞到敌机时,敌机销毁,并发送一个“敌机销毁”事件。


最后,再来看一下得分,它只负责记录敌机被击毁的数量,所以它只需要关注是否有“敌机销毁”的事件。

- 查看是否有“敌机销毁”事件,如果有,就将得分加一


终于,我们有了一个比较完整的设计,有草图显示了游戏看起来的样子,有了游戏中每个部分的具体逻辑,来展示游戏运行时每个部分所应该负责的任务。


总结一下


我们展示了一个想法是如何通过不断的完善和细化,最终变成一份游戏设计的。


下一节,我们会将所有学过的内容结合起来,做出自己的第一款小游戏。


游戏设计是需要不断的练习和打磨的,尝试将自己的想法变成一份游戏设计,不停的打磨,直到其完善。








相关文章
|
6月前
|
存储 Shell Go
使用 Python 创造你自己的计算机游戏(游戏编程快速上手)第四版:第五章到第九章
使用 Python 创造你自己的计算机游戏(游戏编程快速上手)第四版:第五章到第九章
142 0
|
XML IDE 编译器
【C++】C++ 基础进阶【二】开发技巧
C++基础进阶,关于开发环境开发工具的一些便捷使用方式,提高生产力
168 0
【C++】C++ 基础进阶【二】开发技巧
|
缓存 算法 API
《unity游戏优化》第六章读书笔记
《unity游戏优化》第六章读书笔记
游戏开发零基础入门教程(1):先对游戏有个概念
首先回答第一个问题,是的,学完这个教程后,你能够做出自己的游戏。这里,有一点儿地方需要澄清一下,“做出来”跟“能够做出来”是完全不同的,“做出来”是既定的事实,去做了,并且做出来了。而“能够做出来”只是一种想象,前提是要先“去做”。
260 0
游戏开发应该怎么学?如何入门?最好的方法是什么?
我遇到很多的想要学习做游戏,但是最终因为各种各样的原因半途而废的人,“半途而废”并不是一件多么稀奇的事,大概我们每个人都是“半途而废”的专家。但是,投入一定的时间和精力,最终却没有学成,会让人有很强的挫败感。如果再三尝试,都没有学成的话,那么这种挫败感是足以让一个人彻底放弃的。
158 0
|
存储 API iOS开发
iOS-《编写高质量代码》笔记-第四章 设计与说明
知乎: Cocoa 是一套框架和运行时支持,简单来说就是API应用程序接口。与你耳熟能详的MFC、dotNet、C标准库评级。 Cocoa touch 是cocoa在iOS上的实现,也是iOS上唯一的框架,开发iOS App,简单来说,OC是开发语言,Cocoa touch 是框架。
1168 0
|
机器学习/深度学习 C# 索引
下一篇
无影云桌面