1999年,你在《魔法门VII》里扮演拯救世界的英雄。铁匠铺的剑买不起,药水也快见底,但推开酒馆的门,柜台边摆着一张牌桌——店主朝你招手:来一局?然后你就再也没走出去。打牌、赢钱、换下一家酒馆接着打,救世界的事明天再说。这个让无数玩家在酒馆里“玩物丧志”的小游戏叫 Arcomage,最早由 Stickman Games 开发、随后卖给 3DO,2000年还出过独立版。后来原厂解散,游戏停在 800×600 分辨率、16位色的考古层里,据仓库 README 的说法,它在 Windows 10 上画面都不稳定。直到一个叫 Tom Chen 的个人开发者把它整个搬进了浏览器——今天要拆的就是 arcomage/arcomage-hd:TypeScript 写的网页复刻,点开链接就能玩,自带简体中文,还带零服务器联机。
一句话:双人对轰卡牌——修塔、护墙、炸对面。你的塔先修到目标高度算赢,被炸塌算输,有的酒馆还比谁先攒够资源。
盘面左右各一座塔,塔前一堵墙挡伤害。两边各管三条资源线:红色是采石场,产砖,砖用来修塔修墙;蓝色是魔法,产宝石,宝石放法术;绿色是地牢,产新兵,新兵搞物理攻击。每条线两个数字:黄字是产量,下回合进账多少;黑字是库存,这回合能花多少。手牌六张,每张牌右下角有小圈费用,按牌面颜色从对应资源里扣。每个回合你必须处理一张牌——左键打出,右键弃掉(什么都不发生,纯止损)。README 里还特意点了一句:这游戏和《巫师3》里的昆特牌是同类——都是“游戏里的小游戏”这个物种。
核心循环长这样:
flowchart TD
A["回合开始<br/>三条资源线按产量进账"] --> B["审视手牌与对面盘面<br/>塔/墙/产量全部明牌"]
B --> C{"本回合唯一的决定<br/>打一张,还是弃一张?"}
C -->|打出| D["支付对应颜色费用<br/>砖或宝石或新兵"]
C -->|弃掉| E["零收益止损<br/>手里的未来又过期一张"]
D --> F["效果结算<br/>修塔/筑墙/法术轰击/提升产量"]
F --> G["轮到对方<br/>镜像执行同一循环"]
E --> G
G --> H{"判定胜负"}
H -->|"塔到目标高度 或 塔被炸塌 或 资源囤够"| I["本局结束<br/>换一家酒馆=换一套参数"]
H -->|未分胜负| A
I -->|再来一局| A
注意最后那个分支:不同酒馆有不同胜利条件。这一家比谁塔高,下一家比谁先囤够资源,再下一家只准互拆。原作把这套玩法散落在《魔法门7》《魔法门8》的十来家酒馆里,等于十几种开局参数和规则微调——这就是它的“关卡制”,也是“再来一局”的钩子来源。卡牌文本和酒馆参数都是作者用脚本从《魔法门6》《魔法门8》原作里批量抠出来的,和原版严格对齐。
拆开看,这个2000年的小游戏几乎把上头机制凑齐了:
1. 产量是复利,但你等不起。 每张加产量的牌都是投资:这回合花砖把采石场从2提到5,之后每回合多进3块砖,越滚越快。但对面不会坐着看你种田——伤害牌是即时的,你的塔一直在掉血。种田还是速攻,这个张力每回合都在拷问你。所有好的策略游戏都是这个公式的变体,文明是,炉石也是。
2. 每回合强制二选一,烧牌如烧钱。 打一张或弃一张,没有“都留着”的选项。手牌六张,每回合必然少一张再补一张,意味着你手里的未来在持续过期。弃掉那张高费大招时的心疼感,就是这个游戏的心跳。设计上只给你一个决策点,但这个决策点每回合都是新的。
3. 全明牌,输了自己背锅。 塔、墙、产量,双方全部可见,唯一藏着的只有手牌。所以每个局面都是你可以“算”出来的:对面产量比我高,拖下去必输,得现在梭哈——输了不怪随机,怪你。归因清晰的游戏才会让人“再来一局”,因为玩家坚信自己下次能赢。
4. 数字在肉眼可见地长。 塔一层一层往上砌,墙一截一截加厚,黄字产量从2跳到7。即时反馈全靠数字滚动,不需要任何炫技演出。这正是它当年能在《魔法门》的 3D 引擎里塞得下的原因:逻辑极轻,一张表格就能跑。
5. 单局五到十分钟,规则还会换。 卡牌对轰的节奏天然短,短到“就打一局”永远会变成“再打三局”。配合酒馆制的参数变化,每局都是新开局。昆特牌后来从《巫师3》里独立出去单卖,验证的正是同一个物种的潜力:小玩法做深了,比主菜还上头。
这个仓库最有意思的地方是:它压根没用游戏引擎,也没用 Canvas。README 写得明白:整个游戏不用 requestAnimationFrame(个别除外)、不用 WebGL、不用 canvas 标签,塔楼和卡牌全部是 DOM 节点加 CSS 动画,仓库描述里那句"remastered 3D"是 CSS 变换堆出来的视觉效果。理由两条:对 SEO 友好,对无障碍友好。回合制卡牌根本不需要游戏循环——状态机一跳一停,React 渲染一把就是一帧。这套“用 Web 应用技术栈做回合制游戏”的思路,比游戏引擎教程对副业开发者实用得多。
几个可直接抄的组件级方案:
tools/ 目录里。复刻老游戏的最大成本不是写代码,是搬素材——他把它做成了自动化流水线,这套脚本本身就是个可复用资产。先把丑话说完:这个仓库本身零变现。没有广告,没有内购,没有赞助链接,README 唯一的请求是点个 star。代码 MIT,谁都可以拿走——但注意那个法律细节:MIT 只覆盖代码,卡面美术和文本仍是 3DO 的版权,想商用必须全套重绘重写。它是“用爱发电换影响力”路线:作者本职是 Web 开发者,这个项目是他技术声誉的橱窗,读屏器适配的口碑和多年迭代记录就是回报。
但这个玩法品类本身的变现路径是被反复验证过的:
1. 规则引擎换皮,两三周出 MVP。 这套三资源对轰骨架(MIT)可以直接拿去换题材:修仙版——砖换灵石、宝石换丹药、新兵换弟子,塔换山门,墙换护山大阵;航海版——塔换船体,资源换木材/弹药/水手。核心逻辑一个状态机,前端照抄它的 DOM+CSS 路线(连引擎都省了),素材用 AI 生图全套原创顺便解决版权。变现:itch.io 付费下载为主,PWA 包壳上架为辅,网页版挂广告兜底。
2. 给你的主游戏嵌一个“酒馆”。 如果你手上有文字冒险、放置或 RPG 项目,照这个思路加一张牌桌:玩法从主游戏进度里解锁(酒馆等级=关卡参数),赢了发主游戏资源。这一个周末级功能,能把“关掉页面”变成“再打一局”。变现不直接收钱,收的是留存和传播——玩家晒的是“我在自己种的游戏里打牌”,这比任何买量素材都真实。
3. 零服务器联机+每周新卡的运营组合拳。 直接复用它的 WebRTC+PeerJS 方案做好友对战:没有服务器就没有服务器账单,联机成本恒等于零。运营侧学酒馆制——每周放三张新卡或换一套酒馆参数,玩家有回访理由;变现走卡背、卡面皮肤的内购或小额订阅。个人开发者对大厂的唯一优势就在这:大厂做匹配大厅做生态,你只做“拉好友进房”这一件事,恰好是 P2P 最擅长的。
tools/ 目录——游戏本身好玩是一回事,一个人怎么把复刻做出工程水位、把素材搬运做成流水线,才是这个仓库对开发者真正的含金量。原厂没了,牌桌还在,还免费。好玩的定义从来没变过:赢是自己挣的,输是自己背的。二十多年前它耽误你救世界,今天它耽误你下班。
[!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 等场景全覆盖。
