9年开源、40多套教程、5款游戏,他的“一举多得”独立开发人生

20 阅读17分钟

本期LaunchBox我们邀请到了凉鞋老师。

他有很多身份:Github 5000+ star开源框架 QFramework 的作者、40多套游戏开发教程的制作者、5款独立游戏的开发者。这三个方向,他分别坚持了9年、7年和3年。

当大多数技术人选择在一个领域深耕时,凉鞋选择了一条更宽阔、更自主的路。他的方法是“一举多得” —— 让每一件事,同时解决多个问题。开源反哺教程,教程支撑游戏,游戏又倒逼开源。三条战线,在他手里拧成了一股绳。

让我们走进凉鞋的九年自由职业生涯,看看这套“一举多得”的方法论,到底是如何运转的。

从职场到自由职业之路

请简单介绍一下您的个人经历?您为什么会选择走上游戏开发的道路?

我跟游戏开发的缘分,其实是从大学开始的。

当时我在学校的 BiBoBox Studio 接触到了游戏开发,用的是 Cocos2D-X,那是一个现在看起来挺有年代感的引擎。毕业之后我去了北京,从 Cocos2D-X 转到了 Unity,干了半年。那半年让我对游戏开发的工业化流程有了基本的认识。

后来我接到了一个不错的外包机会,就辞职回老家接外包了。那是我第一次尝试自由职业。

但说实话,那一次我完全没有准备好。时间管理和生活作息彻底乱掉了,经常白天睡觉、晚上干活,整个人状态很差。更重要的是,我心里很慌。我总担心自己的技术会跟不上那些还在上班的同龄同行,怕被落下。这种焦虑是真实的,当你脱离团队环境,失去每天的技术熏陶和同行刺激,落后不是错觉,而是必然。

所以做完那个外包后,我决定回职场。我去了上海。第二次上班,我的目标就和第一次完全不同了。我很清楚,这次上班不是为了安稳待着,而是为了给下一次自由职业做准备。我需要学两样东西:一是时间管理,二是提升技术。

业余时间我看了很多个人管理类的书,也读了一些创业相关的书。技术方面,我开始写自己的开发框架,也开始在专栏上写框架介绍文章。这两件事都是为了积累,为了以后能独立。

在上海工作了两年半之后,有一个不错的机会出现了:我可以不用去公司,在家工作,内容是做游戏开发类的视频教程。这正是我一直在准备的方向。这一次我没有犹豫,直接开始了自由职业生涯,一直持续到现在。

现在回头看,与其说是“选择独立开发”,不如说我是“选择了自由职业”

2015年的时候,游戏行业加班已经很普遍了,而研发理念和市场水平照着海外差了10到15年,我等不了那么久。而且自由职业本身是我大学时期就有的理想 —— 那时候就觉得,能在家里做自己喜欢的事情,是很酷的。

但如果要说最底层的驱动力,我觉得是自主性。自主性能让任何事情的体验好50%。上班的时候,很多事情不是你能决定的,你做的很多工作可能只是在实现别人的想法。但做自己主导的事情,那种掌控感和乐趣是完全不一样的。这是我后来才慢慢意识到的。

“一举多得”是做任何决策的前提

您同时在“开源项目/工具”、“教程”、“独立游戏”三条战线上并行推进,已经坚持了9年。是什么样的契机或信念,让您决定同时开启这三个方向?

这个问题的答案,是我做一切事情最底层的一个原则:一举多得。

这个原则的来源很有意思。2015年的时候,我听了陈星汉在机核网的一个访谈,他说了一句话让我印象特别深:“加一个东西至少要有三个理由。”后来我知道宫本茂也说过类似的话:“好的设计是一口气解决多个问题。”

我琢磨了很久,把它们简化成了“一举多得”四个字。然后我发现,这个原则可以用在做事的决策上。

最开始我做框架,是因为它能同时解决好几个问题:第一,提升我的技术水平;第二,提高我当时所在公司项目的开发效率;第三,慢慢积累我的技术影响力。一件事,三个收益,很划算。

然后我做框架相关的专栏,也是为了同时达成几个目标:推广框架、锻炼我的表达能力、继续提升影响力。又是一举多得。

后来的付费教程也是沿着这个逻辑 —— 内容都是围绕着框架设计、框架入门、使用框架所必备的基础知识来做的。教别人、推广框架、获得收入,三件事同时推进。

再后来做独立游戏,同样可以反哺框架。因为做游戏的过程中会遇到很多真实的需求,这些需求会倒逼框架去解决新的问题,让框架更成熟、更稳定、更好用。

所以你看,这三件事不是割裂的,它们是一个互相促进的系统。每新增一件事,我都会问自己:这件事能不能为其他事也带来价值?如果能,那就值得做。

这个原则我现在还在用,已经成了我做任何决策的前提条件。

自由职业:时间管理与艰难时刻

同时维护一个9年的开源框架、产出40多套教程、开发5款游戏,这需要惊人的精力。您的日常工作和时间管理是怎样的?

很多人问我这个问题,期待我给出一个特别系统、特别科学的时间管理方法。但说实话,对于自由职业来说,常规的时间管理方法其实不太适用。

因为自由职业者的工作节奏和上班族完全不一样。没有通勤、没有上下班界限、没有外部监督,一切都要自己构建。我试过很多方法,最后发现单一的方法都不够用,所以我用的是“混搭”策略。

我用敏捷开发的思想来管理项目的迭代节奏,用Roadmap来规划长期方向,用GTD的“下一步行动”来拆解任务,用柳比歇夫的时间记录法来追踪时间消耗,用版本管理的思路来规划每天的工作产出。

工具方面,我用Toggl来记录时间——这个很简单,就是点一下开始、点一下结束,统计每天在不同项目上花了多少时间。用Things和备忘录来记录临时的想法和待办事项。另外,我随身带一个本子和笔,这个看起来有点“过时”,但有时候记下来比任何App都靠谱。

没有什么神奇的体系。就是不断试错,把对自己有用的方法留下来,组合成适合自己的系统,然后坚持用。

在这近十年的历程中,有没有让您感到特别艰难或想放弃的时刻?

先说事业上的事吧。

我做过的项目里,放弃的其实不少。有些开源项目做着做着发现没人用,有些教程做着做着发现方向不对,有些游戏做着做着发现不好玩。遇到这种情况,我的态度很简单:不行就没必要投入了,放弃很正常。我觉得这不是什么丢人的事。及时止损比硬撑重要得多。

但去年有一件事确实让我挺难受的,就是Unity与国区切割。我大部分的技术栈和教程内容都是基于Unity的,这个变动对我的影响其实挺大的。不过我已经开始转型Godot了,而且转型算是成功了。过程挺折腾的,但结果还行。

真正特别艰难的,其实不是事业上的事,而是亲人生重病。那种需要陪护、需要照顾、你不知道明天会发生什么的状态,才是最消耗人的。不过都挺过来了。

有时候,“挺过来”就是全部的方法论。

关于开源框架QFramework

QFramework作为您做了9年的开源项目,它的特点和核心设计哲学是什么?

QFramework是一个 Unity 游戏开发框架,它支持 MVC、分层、模块化、IOC、CQRS、轻量级 DDD,包含常用的工具以及代码生成工作流。

它的核心哲学就是我刚才说的那个原则 —— 一举多得。

这个框架很有意思的一个点是,它不是一开始就设计成现在这个样子的。它一直在随着我的能力和品味一起成长。

我九年前写的第一版代码,现在回头看可能觉得很幼稚。但每个版本都代表了我当时对“好框架”的理解。随着我做的项目越来越多、踩的坑越来越多,这个框架也在不断进化。

但这带来一个问题:随着我的能力提升,我越来越难带入新人的视角了。我觉得很简单的东西,新人可能会卡很久。所以我要持续地简化它的上手难度,这是一件需要刻意努力的事情。

不过现在AI发展得很快,我还没完全想清楚QFramework该怎么和AI结合、该怎么继续发展。这需要我花时间好好研究一下。我不着急下结论,先研究研究再说。

您的开源项目、教程和游戏似乎形成了一个小生态。您如何看待开源项目的可持续性问题?

开源项目能不能持续下去,最核心的问题其实是 —— 你的动力从哪里来?

如果动力来自内在,比如你真心喜欢做这件事、觉得这件事有价值,那你一般能做得久。如果动力来自外在,比如公司的KPI指标,或者做这件事能带来多少收入,那你就很难专注在开源项目本身。一旦KPI变了、收入预期没达到,你可能就不想做了。

我觉得最好的组合是:内在动机驱动,加上非开源项目带来的稳定收入。

这也是我做这个小生态的逻辑。开源框架是我真正热爱的事情,我愿意投入时间。但同时我有付费教程和游戏销售带来的收入,它们能支撑我的生活,让我不用焦虑“这个开源项目怎么还不赚钱”。两者结合在一起,我就能长期做下去。

关于独立游戏:先造轮子再开车

您做了多年开发工具和教程后,才开始做独立游戏开发。这种“先造轮子再开车”的经历,带来了哪些优势?

最直接的优势是技术方面基本没什么问题。积累的软件开发经验、内容制作经验,全都派得上用场。做框架的经验让我知道怎么组织代码、怎么设计系统;做教程的经验让我知道怎么拆解问题、怎么把复杂的东西讲清楚。

但就算有这些积累,独立游戏还是很难。

游戏开发不是纯技术问题,**它涉及到设计、美术、叙事、市场,每一个环节都可能是瓶颈。**技术出身的人往往容易低估非技术环节的难度,我没有这个幻觉。

不过有一个优势确实很重要:非游戏的收入能让我有更长的续航能力。我不需要靠第一款游戏就养活自己,我可以慢慢来,可以试错,可以在业余时间一直推进独立游戏事业。

请介绍一下您的独立游戏代表作。

代表作是《小行星X X-teroids》和《第一座山 The First Mountain》。

《小行星X》是在传统Asteroids玩法的基础上,增加了现代的构筑玩法和手势操作。算是我对经典玩法的一次现代化改造尝试。

《第一座山》则体现的是我的独立游戏制作理念 —— 完成好过完美。

这个游戏体量不大,但它是一个完整的作品。我觉得在独立游戏领域,很多人卡在“追求完美”上,项目越做越大、越做越久,最后不了了之。而我更看重的是:能不能把一个想表达的事情表达清楚,然后交付。在这个基础上,下一个再做得更好。

您提到前四款游戏多使用第三方素材,第五款《我的玫瑰》开始尝试自己绘制美术。这个转变是出于什么原因?

很简单,因为时机到了。

我不是不想做原创美术,而是之前没有余力。做独立游戏要踩的坑太多了:设计怎么搞、代码怎么组织、发布流程怎么走、商店页面怎么做……这些坑你不踩一遍,是很难稳定产出的。

前四款游戏,我主要是在解决这些“基础问题”。等到这些方面都比较稳定了、有了比较可靠的产出流程,我就有余力去关注美术改进了。

所以第五款游戏开始自己画素材,不是什么“艺术追求觉醒”,就是一个很自然的事情:前面的坑踩完了,轮到美术了。

在游戏的艺术表达和市场反馈之间,您如何权衡?

我的想法现在很明确:艺术表达是在生存下去之后再考虑的事情。

先活下来,再谈风格。先满足市场的基本需要,再去发展自己的表达。风格的前提,是扎实的基本功。

这个观点可能有些人会觉得太务实了、不够理想主义。但我觉得这不是妥协,这是战略。每年都有成千上万的游戏上架Steam,绝大部分连被看到的机会都没有。先做出有人愿意玩的东西,让自己能继续做下去,然后再慢慢找到自己的声音,这在我看来是更可持续的路。

关于未来:AI是独立开发者的新杠杆

AI对您的工作有哪些影响?

影响肯定有,而且会越来越大。

AI会逐步介入我工作流中的各个环节。但我看待这件事的态度是机遇多于挑战。

为什么?因为AI会放大一个人的能力。而对于我这种早就完成了从0到1的市场闭环、经历过多次从零到一的开发者来说,AI只会让我能做的事情变得更多。

我的付费教程的方向也会据此调整。因为学生未来自己动手编码的占比会少很多,AI可以帮他们写很多代码。所以我会把关注点放在非编码的领域:比如怎么理解系统、怎么做设计决策、怎么拆解问题。这些是AI暂时还替代不了的东西。

您对未来有什么规划?

最近我高强度地在接触AI,这激发了很多新的想法。其中我觉得最靠谱的一个想法是用AI把搁置的老项目更新到自己满意的程度。

以前因为技术或时间的限制,有些项目做到一半就停了,或者做出来的版本和心里想的差距很大。现在有了AI,很多之前做不到的事情可能就可以做到了。

以前是技术和知识变现,现在变成了Token变现。AI是技术和内容之后,新的平民化的杠杆。技术杠杆降低了实现能力的门槛,内容杠杆扩大了影响力的半径,而AI杠杆则进一步降低了把想法变成产品所需的智力成本。

对于独立开发者来说,这是一个很好的时代。

给程序员同行的建议

您横跨框架开发、教学、游戏美术与设计,这在程序员中非常少见。您是怎么做到的?

不限制自己,不活在标签里。

这是我大学时期就想明白的一件事。我觉得一个人如果被“我是前端”“我是后端”“我是程序员”这样的标签框住,活着就没意思了。

需要什么就学什么。不会美术?学。不懂设计?学。不用给自己设限,也不用觉得“我又不是做这个的”所以不该碰。

**学习的边界和做事的边界应该是模糊的。**需要的知识就自己去获取,这是做事的自然延伸,不是什么额外负担。

对于程序员同行,您有什么建议?

如果你想要更多的自主性,想要有一天能做自己主导的事情,那你就需要拿实力和工作成果去换。没有捷径。

所以我给的建议很简单:持续精进

另外我还有一个观察:很多人想做自由职业,但我觉得自由职业有一个重要的前提 —— 你在公司已经做到顶尖了。

因为你只有在公司做到顶尖,才有足够的筹码说“我可以独立创造价值”。没有这个筹码的自由,往往是脆弱的。

您如何看待程序员的35岁危机?

我觉得核心是反脆弱的能力。可以想想,怎么做才会导致中年危机?然后反着来就可以了。

当然,中年危机某种程度上是躲不开的。身体机能会下降,智力的巅峰状态会过去,心态也会受影响。但这是所有人都要面对的问题,所以也不用过度焦虑。

关键在于你提前做了什么准备。有多少种收入来源?有没有积累除了代码之外的能力?有没有建立自己的影响力或者资产?

如果35岁还只有一项技能、只有一份工资收入,那危机感确实会很强烈。但如果你在35岁之前已经开始积累第二、第三项资产,那这个年龄反而可能是拉开差距的起点。

=故事征集=

《LaunchBox》是程序员客栈推出的技术项目孵化平台,致力于为全球顶尖技术创业者与极客开发者提供项目展示、推广与孵化服务。无论您的项目专注于AI、区块链、开源技术,还是其他颠覆性创新领域,LaunchBox都欢迎在此首发。

欢迎大家推荐朋友或自己来参加我们的节目,分享与对话是一件利他又利己的事。