游戏开发流程-微信小游戏(含源码)

我们平时玩过各种各样的游戏,那么一款游戏是如何开发出来的呢?流程是怎样的呢?如何从零基础来开发一款属于自己的游戏呢?对于新手来说,不知从何下手,也没有系统的资料来参考。万事开头难,很多人就是这样放弃了,很可惜。我也是一个新手,但是我很想体验游戏开发的整个流程,所以,一切从零开始,也饶了很多弯路,但是一步一步走下来,你会体会到其中的乐趣,过程最重要。
今天,我就简单分享一下做游戏的流程,如有描述不当的地方,还望指正。

我的小游戏源码分享:https://github.com/starbxx/Game

对于新手来说,想要做一款游戏,要从几个方面入手;

1. 游戏类型

首先,要确定游戏的类型,是要做HTML游戏,还是手游,还是微信小游戏,这里,我们选择的是微信小游戏,虽然称之为“小游戏”,可内容和技术含量并不小哦!
微信小游戏属于微信小程序的一个类别,需要用官方的web开发者工具来开发,web开发者工具也很容易上手,主界面分为模拟器,编辑器和调试器。对于新手来说有官方示例可以参考,示例是一个2D的飞机大战demo,通过查看源码,可以很快弄清楚每个模块是做什么用的。

2.游戏定位和引擎选择

当我们确定做一款微信小游戏的时候,其次要确定的就是游戏的主题,以及是做2D的还是3D的。我们的游戏主题是基于校园的“捡跑”,excuse me??什么叫“捡跑”??“捡跑”是我们拼凑的一个词,实际上是酷跑的一种,酷跑是角色在固定路线上奔跑,并且收集路上的金币,最后根据金币来排名。那么,我们的“捡跑”,也是奔跑,但不是收集金币,而是收集垃圾!哈哈哈哈哈哈!对,没错,是收集垃圾!最近垃圾分类不是很火吗?而且我们的游戏场景是基于我们的校园环境来设计的,我们的学校真的很美!!想一想,在学校奔跑和收集垃圾是不是很有趣呢?所以我们游戏的主题就是“爱护校园,保护环境”。
既然要打造和校园环境一样的游戏场景,那么2D怎么能满足我们的视觉要求呢?所以我们将游戏定位于3D小游戏。
既然要做一款3D小游戏,那对于新手来说,游戏引擎是少不了的,因为引擎屏蔽了一些底层的操作,让你的开发更便捷。所以,我们就去查找各种引擎的资料,(图来自于网络)
游戏开发流程-微信小游戏(含源码)_第1张图片
通过对比,支持3D游戏的引擎有three.js、layabox,但是只有layabox完成对微信小游戏的适配,也就是说,使用layabox开发游戏,可以直接发布成微信小游戏,不需要开发者去做适配工作,这对于新手来说很友好。所以我们选择了layabox。

3.游戏制作流程

定位好游戏,选好引擎后,我们该干什么??这里我们饶了很多的弯路,希望大家可以节省时间。

(1)了解游戏的开发流程。

对于一个新手来说,首先要大概了解游戏的开发流程。对于一款3D游戏来说(其他类似),开发分为几个模块:

  • 游戏策划。在开始开发之前,要写好游戏策划,包括游戏的玩法、规则、关卡设计、角色设计等等,各个细节都要写清楚,写详细。一份好的游戏策划可以节约开发时间。
  • 美术设计。要想做一款好的游戏,美术是少不了的。唯美的画面才能给人视觉上的冲击。美术设计主要是设计游戏的场景、人物demo、道具以及游戏UI等。
  • 技术美术。美术设计重点在设计,那么技术美术就是要利用相关软件来实现这些设计,在计算机上制作出完整的模型。
  • 动画设计。对于3D游戏来说,模型少不了骨骼动画,因此还需要制作一些模型动画。
  • 主程序。编写游戏框架和逻辑。
  • 前端。主要负责编写前端程序,与用户直接交互的游戏scene。
  • 后端。主要负责编写后端程序,保存用户的游戏数据。
  • 测试。分为测试和测试开发,测试主要是黑盒测试,可以邀请一些外人来玩游戏demo,提出意见。测试开发是白盒测试,遇见BUG自行修改。

虽然一款游戏的开发流程分为多个模块,但是都可以并行的,像我们的团队其实就只有两个人,但是明确的分工能够节约很多的时间。

(2)熟悉和学习相关软件。

熟悉相关软件真的太重要了!!而且要了解相关软件的兼容性以及插件的使用。在我们的开发中,用到了很多软件。

  • web开发者工具。用于微信小游戏的开发,调试,真机调试,以及最终的发布。
  • layaAir。layabox出的一款IDE,这款IDE内嵌LAYABOX引擎,可视化开发,一键发布微信小游戏,兼容三种不同的语言(AS,JS,TS),2D、3D混合开发,很适合新手。但是IDE的文档不是很完善、有些地方经常出BUG,需要去社区找答案,新手需要花点时间熟悉。
  • unity3D。layaAir虽然提供了可视化开发,但是并不适合制作游戏的元素,比如游戏场景、人物模型、道具模型等,需要在别的软件制作好,再导入layaAir。layaAir提供了兼容unity3D的插件,可以一键导入,包括模型网络、场景文件、光照贴图等等。所以我们需要在unity3D里面制作好场景,使用插件导出。这里有一个问题,同一个场景在unity3D和layaAir里面的颜色表现可能不太一样,导出的时候需要选择laya的材质,并且最好使用最新的插件。
  • 3Dmax。unity3D虽然可以制作场景,但是设计一些模型的细节的时候,不好掌控。3D模型需要有专门的制作软件,目前主流的有maya和3Dmax,那么我们选择的是3Dmax,maya偏向于影视动画的制作。3Dmax可用于制作各种3D模型,还可以制作骨骼动画。蒙皮:在带有动画的骨骼上蒙上角色皮囊的过程叫蒙皮。3Dmax可将制作好的蒙皮角色直接导入unity使用。
  • Photoshop 以及 paint3D。制作贴图。3Dmax中制作的3D模型,需要赋予贴图来让它表现出不同的纹理,贴图就是将一张图片贴在模型的表面。那么贴图需要自己去画,可以用Photoshop或者paint3D自己设计贴图。
  • Crazybump。在给模型贴贴图的时候,如果想要有立体感和凹凸感,就需要使用法线贴图。Crazybump是一款可以制作法线贴图的软件。
  • TileMap 。游戏中,如果使用到地图,还需要地图制作软件,TileMap可以实现。

好了,我们的小游戏使用到的工具主要的就是这些,希望新手宝宝们可以快速找到要使用的工具,不像开始的我们一样迷茫。。。

(3)明确的分工。

开发游戏,明确的分工真的很重要,特别是人手不够用时,一个人可以挑两个扁担,哈哈哈哈哈。

序号 任务 人员 备注
1 游戏灵感提出
2 游戏策划编写
3 场景实地考察
4 3D模型设计
5 骨骼动画制作
6 2D UI设计
7 贴图制作
8 3D场景建模
9 游戏框架编写
10 逻辑编写
11 角色滑动算法设计
12 道路旋转算法设计
13 摄像机跟随算法设计
14 障碍物加载算法设计
15 测试
16 ………… …………

(4)先制作一个简单的demo,web工具跑起来,再去优化。

当游戏有完整的思路,并且写好策划后,就可以动手了!一开始并不需要好看的模型和场景,只要用一些简单的场景来代替,完整的实现一下游戏的整体逻辑,然后发布成微信小游戏,使用真机调试一下,这样就可以熟悉整个游戏开发的流程,对于游戏中的场景和模型,只要写好接口,后期直接替换就行了。

(5)真机调试,设置玩家权限。

由于最后要发布成微信小游戏,最终的玩家是在手机上体验的,所以真机调试很重要,web开发者工具的模拟器虽然是模拟手机,但有些时候会出现意想不到的BUG ,而且不同的手机型号还需要做适配,所以需要管理员在后台设置一些玩家权限,邀请一些人来体验游戏。游戏未发布的时候可以设置体验版,但是需要管理员设置权限。

(6)优化。

优化!优化!优化!重要的事情说三遍。
小游戏的开发局限性比较大,游戏的demo包整体大小不能超过4M,对于2D游戏这不算什么,一般都可以压缩到4M以内,但是!!对3D游戏来说,特别是逻辑还挺复杂的3D游戏,几个模型的大小估计就超过4M了,别说加上贴图和代码包了。所以!优化很重要!
优化可以从几个方面入手:

  • 优化3D模型大小。3D模型是以文件的形式存放,文件中记录着点数和面数。所以我们在制作3D模型的时候,尽量使用最少的点数和面数,这样可以减少加载和渲染的时间,还可以减少包的大小。
  • 贴图压缩。一般来说贴图的大小必须是256256,512512,10241024.。。等,那么对于场景中的一些小的道具,比如吸铁石,就不需要用10241024的图或者更大的图,可以使用相关工具将图片的大小调的很小,在体积和视觉上做一个折中。
  • 图集打包。UI界面中的一些元素图片、按钮图片,不用每个都存为一张单独的图,可以整体打包成一个图集,加载的时候一起加载,可以节约空间。
  • 代码冗余。对于一些需要重复使用的代码块,比如触发器、碰撞器等,可以生成一个相应的组件,需要的时候挂在物体上,不需要的时候移除。
  • 模型,贴图循环利用。对于一些重复使用的模型或者贴图,在内存中保留一个副本就行了,需要使用多个的时候clone就好了。

如果!!以上优化之后,还是超过4M,那么就要考虑网络动态加载和分包了。分包对于新手来说不太友好,所以能动态加载的尽量选择动态加载。
网络动态加载是指将一些资源包放在服务器上,游戏运行的时候通过URL动态下载到本地,但是注意JS文件是不能动态加载的!!layabox是通过设置URL.basePath来实现资源的动态加载的,但是有一个问题,微信小游戏不支持http,只支持https,所以在配置服务器的时候需要相应的SSL证书。

好了!啰嗦了半天,只是希望新手胖友们可以少走些弯路,同时,放出我们的demo供大家参考,希望一起进步!、
(我们的demo是原创设计,仅供学习 !)

部分图片:
游戏开发流程-微信小游戏(含源码)_第2张图片 游戏开发流程-微信小游戏(含源码)_第3张图片 游戏开发流程-微信小游戏(含源码)_第4张图片 游戏开发流程-微信小游戏(含源码)_第5张图片

游戏源码(仅供学习):https://github.com/starbxx/Game

你可能感兴趣的:(游戏开发)