先把作者的事说了,因为这是这个仓库最大的钩子。2014年前后,工程师 Michael Zahniser 动手写一款太空跑商游戏——致敬1996年 Ambrosia 出品、Matt Burch 主刀的 Mac 经典《Escape Velocity》。那个系列的续作 Nova 之后,IP 基本躺进了坟墓,粉丝等了十几年没等来正统续作。Zahniser 决定自己造一个:单人开发,C++ 从零写引擎,游戏免费、源码开放。第二年放出可玩版本,一写就是六年,内容越滚越大。2020年,他因病去世。然后是整个故事最不开源的部分:社区没有散,几位核心维护者带着大批贡献者继续发大版本、加星域、写剧情,一直更到今天。一个人启动,一群人续命,仓库本身就是一个活着的开源传承样本。
一句话:一张几百个星系的 2D 星图,你从一艘小货船起步,在行情差价、押镖任务、海盗袭击之间滚雪球,攒钱换更大的船、更强的装备,最后深进横跨整个人类内战与外星种族的多线剧情——一个免费开源版的《Escape Velocity》。
核心循环长这样:
flowchart TD
A[空间站:看行情、接任务] --> B[打开星图:挑航线跳下一站]
B --> C[跳跃途中:随机事件]
C -->|遇海盗| D[战斗:掉装备、捡残骸]
C -->|一路平安| E[抵达:卖货结算]
D --> E
E --> F[资产升级:换船、改装]
F --> G[解锁更远星域与剧情线]
G --> A
玩家每回合做的事极简:看一眼星图,决定这一趟买什么、跳哪儿。系统反馈却很密:到港结算的数字、途中遭遇的变数、买下新船那一刻的性能跃迁。驱动“再来一趟”的,永远是星图边缘那个还没点亮的星系。
一次跳跃就是一次抽卡。 每个星系的商品价格有差价、有波动,途中有概率撞上海盗、护航目标或残骸。你按下“跳跃”之前永远不知道这一趟是满载而归还是船毁人亡——这是把赌博机的“不确定奖励”缝进了 trade loop,和 2048 的下一块方块、肉鸽的下一扇门是同一种成瘾结构。
进度感是看得见的钢铁。 从三百吨的小货船到能扛一支舰队的旗舰,每一分钱都变成了看得见的船体和炮管。放置游戏用数字滚雪球,Endless Sky 用钢铁滚雪球,后者爽感更原始。
战斗是调剂,不是主菜。 纯跑商会在半小时内腻,纯战斗又劝退休闲玩家。这个循环的聪明处在于:跑商攒钱→买武器→打海盗掉装备→卖了钱再优化货舱。风险偏好由玩家自选,做商人还是做海盗,一条循环两种爽法。
配装有真实策略深度。 能量输出、散热、货舱空间、燃料航程互相牵制:装满武器就没货舱,堆满引擎就没燃料。每次换船都是一次背包整理式的重排,这种“牵一发动全身”的小优化正是 Card game 玩家熟悉的算计快感。
收集欲和叙事钩子兜底。 几百种舰船与装备、多条文明级剧情线(人类内战、外星种族的谜团),内容大多由社区写成文本。你永远有一艘“下一艘船”和一条“没打完的线”挂在心尖上——这就是这个游戏十年来一直有人在玩的原因。
技术栈:C++ + SDL2 + OpenGL,Windows/macOS/Linux 三端一套代码。没有用任何游戏引擎——但真正值得抄的不是引擎,是它的内容架构。
内容即配置文件,这是全仓库最值钱的设计。 引擎之外的几乎一切——舰船、装备、武器、星系地图、商品价格、任务、对话剧情——全是 data/ 目录下的纯文本文件。改一艘船的数值不用编译,加一条剧情线就是写一个 txt。后果有两个:
可直接搬走的组件:星图+邻接表的航行图结构;星系商品价格表叠加供需扰动(30行代码就是跑商雏形);任务系统“条件触发+对话树”的文本协议(套一层 JSON 就能用在你任何项目里);内容与存档分离、大版本更新基本不毁老存档的兼容思路。
一句话总结架构课:把游戏做成“引擎读配置”,配置就能替你长内容。
仓库本身的变现痕迹几乎为零:免费、无广告、无内购、无付费DLC(据仓库页面)。它走的是纯粹的开源+社区路线。但“跑商”这个品类恰是个人开发者变现史上的老朋友:
Endless Sky 自己一分钱不赚,但它演示了另一条变现金字塔的地基:先把内容做成社区能共同生长的开放资产,变现可以以后再说,内容却只有现在能攒。
1. 周末版跑商 MVP(工作量:1-2周)。 一张 8-20 个节点的星图、一张价格表、一个随机事件骰子(海盗/护航/残骸),纯前端单文件就能跑通完整循环。美术用免费像素包或纯矢量线条。变现走网页广告起步,数据好再包一层小程序壳挂激励视频。这个循环的验证成本低到离谱——Endless Sky 最初的可玩版本也不过是“能开船、能买货、能打架”。
2. 国风换皮:镖局跑商(工作量:2-4周)。 把星图换成茶马古道或漕运水系,商品换成茶叶、盐引、丝绸,海盗换成山匪水匪,“跳跃”改成“启程赶路”。同样的循环,完全不同的情绪价值,且中文小游戏生态里几乎没人把“跑商”做干净过。进度钩子照抄:镖船从一叶扁舟升级到漕运大船。
3. 抄走“内容即txt”架构(工作量:重构级,但一劳永逸)。 不管你手上在做放置、卡牌还是文字冒险,把数值、卡牌、剧情全部抽成配置文件,再开放玩家投稿内容。Endless Sky 用这个架构证明了:个人开发者的内容产能天花板,可以被协议设计撬开。你交付的不是一万个关卡,而是能长出一万个关卡的土壤。
最后说一句。这个仓库对本栏目读者的意义,不在“照着做一个 Endless Sky”——那是个十年工程——而在于它把两件事演示到了极致:一,跑商循环是个人开发者手里验证成本最低、成瘾密度最高的玩法骨架之一;二,“引擎读配置”的内容架构能让你的游戏在你离开之后继续长大。星图多大随你定,循环抄走就能用。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
