5

我是如何用4个月从0到1独自开发一款游戏?

 1 year ago
source link: https://gwb.tencent.com/community/detail/133904
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

我是如何用4个月从0到1独自开发一款游戏?

发表于438分钟前
评论0 6浏览

想免费获取内部独家PPT资料库?观看行业大牛直播?点击加入腾讯游戏学堂游戏程序行业精英群

711501594

【本文参与GWB更文挑战活动-首发原创】

【1】背景
这是我的第一款作品,有meta元素的模拟类游戏。开发时间4个月,目前完成度50%,有Demo版本体验,目前已经上架Steam|TapTap|好游快爆:
Steam:https://partner.steampowered.com/app/details/2353320/
TapTap:https://www.taptap.cn/app/284240
好游快爆:https://www.3839.com/a/150933.htm

游戏行业从业5年,岗位有做过策划/运营/PM/产品引入。尽管我的大学专业是数学与计算机方向,但我并没有实际的游戏开发经验。独自开发游戏的契机是2022年11月,被公司“炒鱿鱼”获赔N+1。和平分手,从公司立场来看,我也十分理解,甚至我现在都很愿意为前公司内推朋友入职,因为福利实在太好了。这就是我的背景,游戏行业的老油条,有那么点技术能力,就1个人独自开发游戏了。

【2】想:核心玩法、系统循环、数值设计

dRJsFfm67BZ9YxnAL2gx.png
ykgUut1UKY5VhL0zxRvf.png

这是一份旧版的系统循环和部分玩法功能设定,跟当前版本出入很大。尽管如此,我认为真正开始做游戏前,甚至在制作游戏的不同阶段,根据实际开发进度和自身能力,想清楚再去做,会更关键。逐步验证:到底自己的能力是否能做,做出来是否好玩?

【3】工欲善其事必先利其器 GameFramework
开发工具使用的是Unity,以及基于 Unity 引擎的游戏框架GameFramework。以下是Unity 和 GameFramework 的关系图:

【第一章】开启 Game Framework 之旅 - 第1张  | Game Framework

概括来说,GameFramework 为Unity游戏开发梳理了大多数常用的模块,比如:数据表、实体、UI界面、本地化、流程、场景、声音等等,基本满足大多数类型的游戏开发。

【第一章】开启 Game Framework 之旅 - 第5张  | Game Framework

但是,关于GameFramework教程极其少见,尽管有前辈铺路,但最终应用下来,还得靠自己一点一滴啃源码,在开发过程中理解和消化。在这里,我也简单总结一些心得,希望对大家有所帮助。

·流程 Proceduce
在GameFramework框架下,游戏是由流程(Proceduce)控制的,基本可以分为:启动-初始化(闪屏)-预加载(读数据表、基础配置)-核心玩法流程,底层原理是FSM(状态机),它帮你封装了几个常用的功能:初次进入流程 Init|进入流程时Enter|每帧更新Update|退出流程 Exit 时可执行的代码。在这种结构下,你可以根据这些模块,清晰理顺整体的游戏框架结构,以及当Bug出现时,有效检查是哪个流程的哪个模块出现问题。

·实体 Entity
在GameFramework框架下,实体是直接克隆已生成的预制体,它分为Logic(逻辑)和Data(数据),实体的生成还会关联到对象池(简单来说,每个实体的生成和销毁都是唯一的编号),尽管代码写起来很复杂,也关联到很多文档,但对游戏整体的监控都是有效和便捷的。

·界面 UI Form
在GameFramework框架下,UI 界面存在唯一的编号 UIFromId,它存在3个地方相互验证,数据表|GameFramework预制体|UIFromId。也就是说,你每新建1个UI界面,必须更新这三个地方,然后把以UI界面命名C#文档,挂载到对应的预制体上。这样做的好处是,你可以在任何流程里,直接打开/关闭任何一个UI界面,你还可以设置UI界面的层级,多个UI界面是否并存等设定。

·配置 Setting
在GameFramework框架下,你可以在本地设定数据类型(int,float,string,bool),有效提高数据结构的便利性。

·静态 Static
(这是非GameFramework 框架下的经验)目前阶段我的不成熟理解,我几乎在每个玩法功能配置一个专属的Static文档,用来控制数据存储、以及跨流程玩法之间的交互。甚至后续我还有想法用来存储本地化,这对于Steam做多语言配置也很便捷(GameFramework也有专门做本地化的功能,但目前我只发现它只适配固定的UI文字)

在GameFramework框架的支持下,结合Unity 和 C# 的理解,我就这样一步步去啃源码,做游戏。过程是很煎熬的,我甚至重构过一遍代码,越写越简洁,拓展性越高。

目前对我最大的感悟就是,不要等所有事情都准备好,才开始去做。以代码举例,不要完全学透了Unity、C#,甚至刚提到的GameFramework。一旦你理解了基础,你就可以根据初衷和想法,开始行动!在制作的过程中,遇到问题再解决,这样的效率才是最高的,当然也是最煎熬的。

【4】心态
“过刚者易折,善柔者不败。”这是出自老子的《上善弱水》。

做一款独立游戏,做重要的是做完,这是第一步。

接下来,就是在有限的时间内,用尽自己最大的能力,去表达和呈现,这是第二步。

第三步,也是最后一步,持之以恒。

至今我都认为,做独立游戏是一件“吃力不讨好”的事情。不稳定,赚不了什么钱,还累,各种压力……

但为什么还要去做呢?
我相信,每个独立游戏制作人,心中都有坚定的答案。

如果还不够坚定,建议是多想想,再出发。

追梦,永远都不会晚。
不要急,慢慢想。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK