腾讯独立游戏孵化器,致力促进游戏行业多元生态的整体发展。关注公众号【腾讯GWB游戏无界】(ID:gwboffical),解锁更多富有深度的游戏研发干货。
原文链接:https://mp.weixin.qq.com/s/lv74WCM-Q_l7N6xpUjwj0A
引言 如何从0到1独自开发一款游戏?本文为独立游戏开发者李俭坤带来的研发心得,分享了他在开发独立游戏《N+1》时的经验与故事。
作者:李俭坤(本文内容为“GWB更文挑战活动”首发原创赛道参赛作品,转载请征得同意。文章仅为作者观点,不代表GWB立场)
大家好,我是坤叔。
目前正在制作一款独立游戏《N+1》。
这篇文章我会按以下顺序展开,朋友们可以按需阅读:
1、游戏介绍
2、策划:核心玩法|系统循环
3、技术:基于 Unity 引擎的框架GameFramework
4、美术:Unity商店 or ChatGPT & StableDiffusion
5、心态:过刚者易折,善柔者不败
6、规划:把游戏做到上线
这是一款超现实模拟游戏,也就是拥有“模拟”元素的Meta-game【元游戏(也称作:Metagaming),是指任何超越规定的游戏规则、利用外部因素来影响游戏、或超越游戏所设定的限制或环境的游戏方法。】我希望这款作品呈现出来的效果可以模糊现实与游戏的边界,玩家能够从游戏中感受现实,同时也能从现实的某些碎片联想到游戏。
所以,玩家将在游戏中扮演一个失业青年,手持3000巨款,努力在这座城市中活下去,赚更多的钱。直到玩家完成赚取1个亿的目标,才有机会接触游戏中的真相。
模拟玩法,是游戏的第一部分。在模拟玩法中,玩家需要时刻保持基础属性(健康、精神、心情),尽可能提高五维属性(天赋、认知、逻辑、直觉、气质),基础是生存必备,五维是提高玩家赚钱速度。
游戏中还有多种主要玩法:以一种诙谐搞笑的方式进行调侃的随机事件玩法;影响玩家产出收益的投资、经营、股市玩法;模拟现实生活期货,输出角色背景、传统文化、神话文化的奇货玩法;AVG形式,通过不同选择产生不同结局走向的约会玩法……
玩法开发中,最大的难点在于数值,我想要达到的预期是,前期不能让玩家有严重的生存压力,想让玩家在游戏中轻松一点。为此,在前期我会在基础属性首次变红的时候,给予一些指引和补充,目的是为了让玩家顺利渡过前期。甚至我还会增加一个「日历系统」,玩家每天可以根据日历去干点啥,像任务一样。但是,我又不喜欢任务这种东西,所以玩家可以选择撕掉日历,一次性获得所有奖励。——我会给予玩家尽可能多的选择权利。
到了中后期,我希望数值不要过于膨胀,因为这样会让游戏变得无聊。这里就是数值的难点,怎样不膨胀,又要让玩家有爽感呢?这是我正在认真思考的问题。
这是一份旧版的系统循环、某个玩法设定,跟当前版本出入很大(可以说是基本废弃了)。但如果没有这些文档“铺路”,我根本无法下手。在一周的时间里,我会先想,想好之后再做,做完之后再验证。验证有很多途径,比如说录个视频发朋友圈、发下B站,看看其他人的反应,大概能够知道一二。如果做出来连自己都不想玩,那就直接砍了。又或者做了一部分,但发现凭个人力量根本做不完,也要想办法看怎么优化和调整。
先想,再做,再验证,再想…就是这样煎熬过来的。
当时确定这个核心玩法,或者说立项,其实很大程度是基于个人能力和发行情况考虑的:首先,我经验不足,肯定不能碰需要技术壁垒和时间去调整操作手感的动作类游戏;其次,我没有美术,肯定也不能碰需要优质美术的二次元赛道。
那我可以做什么?啊…我不是刚失业吗?
刚好,我可以做一款模拟类游戏,它不需要很强的技术,甚至不需要美术,这是一个我能够摸得着的品类,甚至还可以融入我的自身经历,以及一些热梗,来调侃一下生活。
当然,仅仅是模拟类游戏,我觉得还不够。我还是想有些个人表达在里面,于是我加入了一些Meta元素,比如说:新手教程,大家会看到我的真人视频(这里会有剧情上的伏笔);又比如说,游戏中第一天你刚出门,你会看到广州的街头,以及听到莎士比亚的十四行诗等等。当然,玩家不喜欢完全可以选择跳过。做这些东西,可能很大程度上是为了想做些新的尝试,它不一定所有人都能认可或接受,但我还是想尝试一下,仅此而已。
工欲善其事必先利其器,一个好的底层框架,能让你的开发事半功倍。前期我筛选了好几款框架,最终还是选择了GameFramework。虽然它的教程少得可怜,但它的源码很有条理和整洁,拓展性很高。对于新手来说,在啃大佬源码的过程中,还可以学习他的代码习惯和风格,我认为这是很重要的。
以下是Unity 和 GameFramework 的关系图:
概括来说,GameFramework 为Unity游戏开发梳理了大多数常用的模块,比如:数据表、实体、UI界面、本地化、流程、场景、声音等等,基本满足大多数类型的游戏开发。
在这里,我也简单总结一些心得,希望对大家有所帮助。
·流程 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框架下,Setting 模块对UnityEngine.PlayerPrefs 进行了封装,你可以以键值对的形式存储玩家数据(类型有:int,float,string,bool)。
·静态 Static
(这是非GameFramework 框架下的经验)目前阶段我的不成熟理解,我几乎在每个玩法功能配置一个专属的Static文档,用来控制数据存储、以及跨流程玩法之间的交互。甚至后续我还有想法用来存储本地化,这对于Steam做多语言配置也很便捷(GameFramework也有专门做本地化的功能,但目前我只发现它只适配固定的UI文字)
在GameFramework框架的支持下,结合Unity 和 C# 的理解,我就这样一步步去啃源码,做游戏。过程是很煎熬的,我甚至重构过一遍代码,越写越简洁,拓展性也越来越高。
目前对我最大的感悟就是,不要等所有事情都准备好,才开始去做。以代码举例,不要完全学透了Unity、C#,甚至刚提到的GameFramework。一旦你理解了基础,你就可以根据初衷和想法,开始行动!在制作的过程中,遇到问题再解决,这样的效率才是最高的,当然也是最煎熬的。
大学的时候,我做过设计和校刊,可我真的不会画画,为此我还专门上了几天课进行学习,但是始终提不起劲。
于是,对我来说:美术,最简单的做法,买!
https://assetstore.unity.com/
其次,就是AI绘画。这是一场AI的科技革命,尽管会有人不喜欢AI做出来的东西,但如果不去拥抱它,时代会将我们抛弃。接下来,我要开启潘多拉魔盒了:
1.本地部署StableDiffusion
2.使用ChatGPT生成关键词,并将关键词输入至StableDiffusion
虽然以上仅仅是简单的两段话,但这是实践好几天才检验到的结果,这里就不展开追叙了。
“过刚者易折,善柔者不败。”这是出自老子的《上善弱水》。
我从业5年,前两年在策划运营PM岗位上工作,当时很多玩法设计都是为了提高数据,我觉得游戏应当是有温度的,而不是冷冰冰的“数据导向”。
随后,我便死磕独立游戏:从独立游戏引入到发行,全流程都经历过了。我觉得吧,独立游戏对我来说,就是生活。只要我能活下去,必然是要做游戏的。
而做一款独立游戏,最重要的是做完。所以,一定不能给自己太大压力。先不要想着能赚多少钱、玩家喜欢不喜欢、身边的人怎么看你…… 这些都先不要想,尽自己最大的能力,把游戏做完,这是第一步。
然后,再回过头来,去想这些问题。因为刚刚是「先」不要想,最终你还得面对它。为什么要面对?因为如果你想持续做这件事,就必须解决。纯粹靠发电,是不长远的。我们要想生存问题,甚至要想独立游戏的商业化问题,这是我这几年做独游发行以来,最深的感悟。
至今我都认为,做独立游戏是一件“吃力不讨好”的事情。不稳定,赚不了什么钱,还累,各种压力……但为什么还要去做呢?我相信,每个独立游戏制作人,心中都有坚定的答案。如果还不够坚定,建议是多想想,再出发。追梦,永远都不会晚。不要急,慢慢想。
尽自己最大的能力,把游戏做完,上线,是我当下最关注的事情。目前开发时间4个月,完成度50%,有Demo版本(未公开),已经上架预约在Steam|TapTap|好游快爆。预计会6月参加新品节,7月中旬正式上线Steam。在此之前,4月和5月都会分别在PC和手游端测试一波,所以开发时间真的很紧。
因为曾经是做发行的,我不会放弃任何一个能够宣发游戏的机会,即便是牺牲掉一部分开发时间,我认为这还是必须的,不能闭门造车,得让更多的人看到,听更多的声音(无论是好的,还是坏的。)
游戏上线之后,最好的情况就是能够回本,这样我就能持续走下去。如果不能回本,我可能会去找一下投资。如果有发行、投资有想法,我是很乐意交流的。
至于拓充团队,我会很谨慎。
首先,现在正经历AI科技革命,效率其实已经指数增长了,个人力量不再像过往看上去那么弱小,在做游戏的过程中我会逐步搭建一套本地的AI部署,尽而不断提高“单兵作战能力”。
其次,我认为团队成员,能力是次要的,关键是思想契合度。目前阶段,不是说找个人解决某个业务需求那么简单,在没有投资介入下,其实还是在找合伙人阶段。不过,我很欢迎任何人找我聊。
好了,本文就到这里。最后以子华神的一句话收尾:
「爱,讲是没有用的,做啦!」
《N+1》Steam商店链接:https://store.steampowered.com/app/2353320/N1/
《N+1》TapTap链接:https://www.taptap.cn/app/284240
《N+1》好游快爆链接:https://www.3839.com/a/150933.htm
暂无关于此日志的评论。