• 中文
  • 注册
  • 其他科普 其他科普 关注:46 内容:24

    如何制造一个简单的2D游戏?

  • 查看作者
  • 打赏作者
  • 当前位置: 博科园 > APC科学联盟 > 其他科普 > 正文
    • 其他科普
    • 大圈主
      Lv.8碳纳米管
      居里夫人

      前言

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

      No.1

      引擎选择

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

      如何制造一个简单的2D游戏?

      由于本文介绍的是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开发的!(尝试抓人入教.

      如何制造一个简单的2D游戏?

      如何制造一个简单的2D游戏?

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

      如何制造一个简单的2D游戏?

      如何制造一个简单的2D游戏?

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

      No.2

      开发流程

      因为要做的是横板跳跃游戏,所以游戏的必备的两个元素已经出来了:地图系统和角色操控系统。在这个基础上开始思考接下来我们需要加入一些什么元素呢?我们可以给游戏加上故事和惊险刺激的战斗,这一切都基于“你想做一个什么样的游戏”。
      我的大体思路是:主人公与几个NPC对话之后在商店里购买了武器,接下来用这武器打败了游戏里的大boss(可以吐槽我确实没有什么创新能力,这什么剧情...)。这个思路里面就包含了对话系统、商店系统、物品系统和战斗系统这么几个要实现的模块。于是,我们从思路中明确了我们接下来要实现什么样的功能,可以开始着手写代码了。
      关于怎么写代码这一块:实现一个功能的方式有很多种,但是我们要尽量选择更优的那一种方式,所以在游戏开发中引入面向对象编程的思想是非常重要的。比如说可以装进背包格子的物品有一些公有的方法(获取名字、获取用途说明等等),我们可以用一个Iitem接口来存放这些公有的方法。尽量多使用接口或者采用合适的设计模式来编程。

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

      如何制造一个简单的2D游戏?

      No.3

      技术困难

      写代码的时候遇到技术难题是很正常的,俗话说代码十分钟debug两小时不无道理。那么写脚本的时候遇到难题又没有人能问的时候怎么办呢?百度当然非常不错,但是百度广告太多,而且亲测上面有的方法并不是很棒(我当时找控制人物行走的脚本,测试了几个都有非常大的问题)。

      然后更重要的一点是:在网络上搜索解决方案的时候我们能查到的例子基本都是用C#写的,这也是为什么在上文中建议选择C#为脚本语言而不是JS的原因。

      推荐一个好一些的网站(或者直接在谷歌上搜索也可以):
      Stack Overflow:https://stackoverflow.com/

      此外,你也可以在油管上试试看能不能找到答案。介绍一些不错的游戏开发相关的油管主:
      Brackeys(涵盖了非常多内容)
      Blackthornprod(内容比上面这位少一些,但都挺实用的)
      Code Monkey(有很多关于C#编程的内容)
      Telegram上有一个挺活跃的Unity技术交流群,你可以在上面问任何问题(仅允许使用英文)。TG链接:t.me/unityThreeD

      如何制造一个简单的2D游戏?

      给不能去外网的朋友:
      b站- M_Studio:
      https://space.bilibili.com/370283072?from=search&seid=10106931170352874846
      Siki学院:
      http://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/

      如何制造一个简单的2D游戏?


      作者:时光

      审核:円岛

      APC编辑部科普组

      总部候考群:https://jq.qq.com/?_wv=1027&k=Gxm8DflR 

      科普平台:https://jq.qq.com/?_wv=1027&k=BCtwKu2W

      如何制造一个简单的2D游戏?

    • 生成海报
    • Lv.8碳纳米管
      牛顿
      空洞骑士,瘟疫公司
    • APC科学联盟哈哈哈,,,疫情期间玩的
      拉黑 2周前 电脑端回复
    • 爱天文的背包客哈哈哈哈,我也喜欢玩他们公司的,特别好玩,什么火柴人
      拉黑 2周前 手机端回复
    • 回复
      Lv.8碳纳米管
      牛顿
      打赏了5金币
    • APC科学联盟感谢打赏~
      拉黑 2周前 电脑端回复
    • 回复
      Lv.2顶夸克
      牛顿
      说起来容易,做起来难的事 [s-68]
    • APC科学联盟是的,不过任何事情最难的是开始以及坚持
      拉黑 2周前 电脑端回复
    • 回复
      Lv.9紫外波长
      VIP2
      居里夫人
      打赏了1金币
      回复
      Lv.9紫外波长
      VIP2
      居里夫人
      打赏了1金币
      回复
      Lv.9紫外波长
      VIP2
      居里夫人
      回复

      请登录之后再进行评论

      登录
    • 实时动态
    • 做任务
    • 偏好设置
    • 帖子间隔 侧栏位置:
      关闭窗口
      下载海报