Orion专业户

叫我猎户就可以~头像是自设
一个小搬运工,目前正在把NASA旗下每日一天文图的内容搬到Lofter
本人是A.P.C.科联旗下的员工,感兴趣可以咨询

简单的2D游戏开发经验分享

作者:时光

审核:円岛

前言

本文主要介绍的是我在参加学校工作室考核(是的)时开发一个简单的2D横板跳跃游戏时的一些思路和开发记录,如果你对游戏开发比较感兴趣并且想成为一个游戏开发者的话,这篇文章或许对你会有一些帮助!如果你是一个游戏开发者的话欢迎来和我交流:D!

1、引擎选择

当决定开发一款游戏的时候,第一步要考虑的是游戏引擎的选择。所以首先要问自己一个问题:我需要用什么游戏引擎来开发游戏?相对主流的两款游戏引擎分别是Unity和Unreal Engine4(UE4),二者各有利弊,比如Unity的3D渲染效果不如UE4,但Unity有许多插件可以使用,开发效率会更高。

由于本文介绍的是2D游戏的开发,所以我个人觉得Unity是一个更优的选择(其实是因为我们学校工作室考核要求用Unity)。但是说到Unity,你的第一反应可能是胖鼠的某首电音神曲,而对这个作为游戏引擎的这个单词感到陌生。为了让你对Unity产生一点熟悉感,我来举几个用Unity开发的游戏的例子。

许多优秀的2D游戏都是用Unity开发,比如DEEMO(古树旋律)、Plague Inc.(瘟疫公司)、Hollow Knight(空洞骑士)、Gris、Ori and the Will of the Wisps(精灵与萤火意志)、Lobotomy Corporation(脑叶公司)等等。除此之外,一些相对轻量的3D游戏也可以考虑使用Unity开发,比如Monument Valley(纪念碑谷)、The ROOM(谜室)、Outer Wilds(星际拓荒)、The Almost Gone(忆落谜境)、Kerbal Space Program(坎巴拉太空计划)等等。

(上面举例的游戏都很好玩XD!感兴趣可以玩玩看。

(明日方舟也是用Unity开发的!(尝试抓人入教


那么,选择好了游戏引擎接下来应该怎么做呢?当然是从官网上下载Unity(废话)!下载和安装Unity是完全免费的,建议在下载时选择“从Hub下载”(p4中的绿色选项)。Unity Hub非常便于管理项目和许可证(有的时候打不开项目是因为许可证过期,手动激活即可),也可以在Hub中选择安装多个不同版本的Unity自由切换。但是注意,更高级的编辑器版本中的一些功能可能无法在旧的编辑器上使用。


在安装好Unity之后,还有一个很重要的软件需要安装,那就是Visual Studio(VS)。VS是用来写代码的,因为做一个游戏肯定要通过写脚本来实现各种炫酷的功能啦。Unity的脚本编辑语言可以选择C#或者JS,这里建议选择C#(原因会在下文中解释)。如果本身有一定的JAVA编程基础的话是可以比较快上手C#的,因为二者在语法上有点像。

到这里,游戏引擎的选择和基本设置就完成了,我们可以进入下一个步骤——开发了。

2、开发流程

因为要做的是横板跳跃游戏,所以游戏的必备的两个元素已经出来了:地图系统和角色操控系统。在这个基础上开始思考接下来我们需要加入一些什么元素呢?我们可以给游戏加上故事和惊险刺激的战斗,这一切都基于“你想做一个什么样的游戏”。

我的大体思路是:主人公与几个NPC对话之后在商店里购买了武器,接下来用这武器打败了游戏里的大boss(可以吐槽我确实没有什么创新能力,这什么剧情...)。这个思路里面就包含了对话系统、商店系统、物品系统和战斗系统这么几个要实现的模块。于是,我们从思路中明确了我们接下来要实现什么样的功能,可以开始着手写代码了。

关于怎么写代码这一块:实现一个功能的方式有很多种,但是我们要尽量选择最优的那一种方式,所以在游戏开发中引入面向对象编程的思想是非常重要的。比如说可以装进背包格子的物品有一些公有的方法(获取名字、获取用途说明等等),我们可以用一个Iitem接口来存放这些公有的方法。尽量多使用接口或者采用合适的设计模式来编程。

之后需要美术来帮忙。如果自己不会画画的话,Unity的asset store里有很多免费的资源可以用。不过!还是和身边的大触们搞好关系吧(瘫痪

3、技术困难

写代码的时候遇到技术难题是很正常的,俗话说代码十分钟debug两小时不无道理。那么写脚本的时候遇到难题又没有人能问的时候怎么办呢?百度当然非常不错,但是百度广告太多,而且亲测上面有的方法并不是很棒(我当时找控制人物行走的脚本,测试了几个都有非常大的问题)。然后最重要的一点是:在网络上搜索解决方案的时候我们能查到的例子基本都是用C#写的,这也是为什么在上文中建议选择C#为脚本语言而不是JS的原因。

推荐一个好一些的网站(或者直接在谷歌上搜索也可以):

Stack Overflow:https://stackoverflow.com/

此外,你也可以在油管上试试看能不能找到答案。介绍一些不错的游戏开发相关的油管主:

Brackeys(涵盖了非常多内容)

Blackthornprod(内容比上面这位少一些,但都挺实用的)

Code Monkey(有很多关于C#编程的内容)

Telegram上有一个挺活跃的Unity技术交流群,你可以在上面问任何问题(仅允许使用英文)。TG链接:t.me/unityThreeD

给不能翻墙的朋友:

b站- M_Studio:

https://space.bilibili.com/370283072?from=search&seid=10106931170352874846

Siki学院:

https://www.sikiedu.com/

Unity官方手册:

https://docs.unity3d.com/cn/2018.4/Manual/index.html

Unity官方脚本文档:

英文:https://docs.unity3d.com/ScriptReference/

中文:https://docs.unity3d.com/cn/2018.4/ScriptReference/index.html

UnityList(有很多开源项目):

https://unitylist.com/

C#官方文档:

https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/


评论

热度(20)

  1. 共4人收藏了此文字
只展示最近三个月数据