青丘之山,去南海六千里,林深无鸟兽。
然今有少年,荷剑出青丘,自号「游侠」。
—— 此乃我半月写成的故事。
卷一 · 何为山海游侠
先说人话。
《山海游侠》今天正式入江湖了。一款挂在 awkthole.com 上、浏览器秒开的小游戏,也可以下回家装到 Windows / Mac / Android。
| 类型 | 像素 React JRPG · 山海经 + 武侠 + 五行 |
| 在哪玩 | awkthole.com/play/shanhai-youxia/ · 浏览器秒开 |
| 要装也行 | Windows 101M · Mac 210M · Android 17M · PWA 13M |
| 多少东西 | 六大区域 · 五门派 · 二十一 NPC · 五十一神兽 · 十三支线 · 五金庸秘籍 |
| 可玩到哪 | v0.3.0 · 通关 |
| 价格 | 永远 ¥0 · 无内购无登录 |
故事的骨架特别简单:你是一个无名游侠,自青丘村出。村长把你引向五个方位 —— 北雪山取金、南竹林取木、东仙岛取水、西火山取火、内秘境取土。五行印齐了,回村南封住那只叫饕餮的凶神,山海重归宁定。
但故事的肉,远比这复杂。
━━━
卷二 · 五方图志
这世界的骨架就是五行。五行各占一方,每一方有自己的山、自己的门派、自己的兵器、自己的怪、自己的金庸秘籍。
| 方位 | 五行 | 区域 | 门派 | 区域 boss | 顶级兵器 | 金庸秘籍 |
|---|---|---|---|---|---|---|
| 北 | 金 | 北境雪山 | 青锋剑派 | 雪山封印守护者 | 断金重斧 | 独孤九剑 |
| 南 | 木 | 南方竹林 | 翠竹观 | 青木妖灵 | 生荣木弓 | 凌波微步 |
| 东 | 水 | 东海仙岛 | 沧澜阁 | 玄水妖兽 | 玄水匕 | 太极拳 |
| 西 | 火 | 西部火山 | 烈火宗 | 赤焰魔 | 焚天枪 | 降龙十八掌·九阳神功 |
| 内 | 土 | 黄土秘境 | 玄土宗 | 厚土精 | 镇地金钟 | —— |
中央平原是起点和落脚处 —— 青丘村、擂台、药铺、商队、村长都在那儿。饕餮在村南的洞里,是五印齐后的终局。
战斗按五行相克跑:木克土,土克水,水克火,火克金,金克木。你换不对兵器,再高的等级也吃亏。看上去是”我等级够了所以打得过”,实际上每一局都在算”我现在拿的兵器配不配得上眼前这只神兽”。
━━━
卷三 · 影神图 · 五十一卷
这一节是我最舍不得的一块。
灵感来自《黑神话:悟空》那种水墨卷轴影神图。我想做一个真正能让玩家停下来看的图鉴 —— 不是那种”打到了就在仓库列表里多一行字”的图鉴,而是一段一段铺开、一寸一寸读的卷轴。
每只神兽五段:
- 形 · 它长什么样
- 性 · 它的脾气、它的德、它的忌讳
- 源 · 它住在哪、出没的山在哪
- 制 · 你拿什么兵器、走什么方位克它
- 传 · 古书上关于它的趣闻、它跟谁有过故事
五十一只,每只五段,每段二三百字。攒下来是五万字半文白。
随便举一段。麒麟的「形」是这样写的:
麒麟者,仁兽之首也。形似鹿而身覆鳞片——鳞色金黄间银,每片皆莹然有光。头戴一角——角端有肉如球,乃避免误伤生灵之故。眼瞳琥珀,温和而智慧。蹄非鹿蹄,乃马蹄——四蹄踏地不发声。
这种文字配上水墨卷轴 —— 你打到一只神兽,不是”+1 战力”,而是它的卷轴在你面前慢慢展开。
更心机的是三态解锁:
- 你没见过它 —— 卷轴上只有问号,连肖像都是黑影
- 你见过它(在野外碰到一次,没收服)—— 解锁肖像 + 形 + 性 + 源 三段
- 你收服了它 —— 解锁全部五段,包括「制」(怎么克它)和「传」(它的古书趣闻)
所以收一只神兽,不是把它收进笼子,是把它的整本卷轴收进图鉴。这种”展开感”,是我自己玩的时候最舍不得的部分。
━━━
卷四 · 列传 · 江湖二十一人
这游戏里的人,不是路人。
二十一个 NPC,每一个都有自己的名字、自己的台词、自己的钩。挑几个我自己最喜欢的写一句:
- 青丘村长 —— 那个把你引向五方的老人。他不动手,他只是讲。但他讲完,你这条路就定了
- 顽童小七 —— 中央平原田里的小孩。他娘留给他的玉镯弄丢了 —— 听说鹿蜀爱叼亮闪闪的东西。这条线给你他攒了很久的零钱
- 神秘剑客 —— 北境雪山。一个老剑客,「这柄剑已三年未尝鲜血」,想跟你切磋一场。赢他,他赠你斩风剑一柄
- 流亡铸火师 —— 西部火山外。他自陈「铸火出身,亦不敌魔之凶气」,让你去山顶找火神 —— 但要先平赤焰魔。后来他还会托你伏火祸·鴸
- 擂主铜爷 —— 中央平原的擂台主。「擂台三连胜,赏斩兽刀一柄。狰、穷奇、朱厌 —— 三战连打,中途不得逃」。这一段他递给你的不是奖励,是一个规矩
- 焦虑母亲 —— 南方竹林里。她儿子前日北上看雪未归。你要从南方一路北上到雪山深处找回那个童子 —— 这是这游戏里跨度最大的一条支线。完成后她给你她家祖传玉佩
- 游方学者 —— 中央平原。「老夫云游山海,集异兽志」。考你五道《山海经》题,答中 3 题以上算过,赠通宝与山海符
我尽量让每个 NPC 不光是一个任务发布器。他们是有故事的人。哪怕你只跟他们说三五句话,那三五句话也得是他们自己的话。
━━━
卷五 · 外传 · 十三事
主线一条,支线十二条。挑几条说:
- 擂台三连(狰 / 穷奇 / 朱厌)—— 中央平原。一关一关上,输了下回再来。这是”我想练手”的玩家专属
- 五行五煞(伏 金煞·欢疏 / 木怪·山膏 / 水患·长右 / 火祸·鴸 / 瘟疫·跂踵)—— 五个方位各一只更凶的妖兽。打过去解的不是任务,是一方百姓的麻烦
- 答五道山海经题 —— 游方学者的游戏。题目都是真山海经里的事,比如”九尾狐住在哪座山”。答对一个学者点头一次,答全了递给你残卷
- 顽童小七的玉镯 —— 上面已经写过。中央草地寻鹿蜀,玉镯归还,他把自己攒的零钱全给你
- 护送商人至东海 —— 一个落难商人要回沧澜阁。一路上你陪着,怪都你打。到了门口他给你一笔小钱 —— 比你自己单刷高不了多少。但你陪一个人走了一程,这事比那笔钱要紧
- 北境寻童 —— 焦虑母亲的事。从南方竹林一路北到雪山深处,找到那个雪山童子,再带回南方告诉母亲。这是这游戏里跨度最大的一条支线
剩下几条留给你自己开。
━━━
卷六 · 缘起 · 四月二十七
写到这里说一下这游戏是怎么开始的。
时间是四月二十七号 —— 那一天,我换了三次方向。
四月二十二号我开了个项目叫武侠山海经,Phaser JRPG。跑了五天。每天加一点设定 —— 多一个区域、多一种战斗、多一个系统。五天后回头看,贪多嚼不烂 —— 想做的东西越来越大,能跑通的东西越来越少。
四月二十七号下午三点半,我按了停止。
二十三分钟后,我开了第二个项目,叫山海异闻:御兽,还是 Phaser,改 roguelike 思路。在 Claude Code 终端里跑。
两个多小时后,我又按了停止。
不是 Phaser 难,也不是 roguelike 不对。是终端里跑出来的游戏,跟我脑子里想的对不上。我每写一段代码,要在脑子里渲染一遍它运行起来长什么样 —— 但我脑子里那个画面,跟实际跑出来的,永远差一截。
我开了 Claude Desktop,把同样的想法换了个口气问了一遍。
Claude Desktop 跟 Claude Code 是同一家的 AI,但形态完全不同 —— 一个是开发者的终端、一个是聊天客户端。同样的脑子,换了个口气说话。我也不知道是这种 chat 的交互让我能更自然地描述脑子里那张图,还是别的什么 —— 总之这一次跑出来的方向,像素 + 山海经 + 武侠,跟我脑子里的对上了。
那一刻我知道方向了。
像素。React。一张地图 40×24 个 tile,每个 tile 一个汉字符号 —— . 是路、, 是草、T 是树、^ 是山、~ 是海、# 是房子。半文白的文字嵌在像素图里。
那天晚上七点二十,山海游侠开了第一个 commit:「init: 山海游侠 React+Vite+Tailwind v4 + lucide」。
之后的十一天,没再换方向。五月八号 v0.3.0 ship —— 六大区域、五门派、二十一 NPC、五十一神兽、十三支线、五万字影神图、四平台打包。
我不是说前两次浪费了。是前两次让我摸清楚了”我这个脑子能做什么、不能做什么” —— 我做不出”想得越来越大的设计”,但我能做”看得见、走得通、一寸一寸铺出去的小江湖”。
工具换了几次。方向换了几次。但那条”我要做一个中国味的游戏”的线,从来没换过。
━━━
尾声 · 同你共游
现在去玩:
awkthole.com/play/shanhai-youxia/
浏览器秒开。键盘 WASD 走路、空格 互动、Esc 出菜单。手机也能玩,竖屏适配过。
下回再做,想做的事:
- 多结局 —— 现在通关是一种”封住饕餮、山海宁定”。但古书里凶神从来不是”封住了就没事了”。下一卷我想给你一个和饕餮坐下来谈一谈的选项
- 更多神兽 —— 五十一只是第一批。山海经里还有几百只在那儿等着出场
- 战斗深化 —— 现在五行相克是核心,下一版想加门派内功 / 武侠秘籍连招
如果你打通了、或者卡在哪儿了、或者觉得某个 NPC 那段话写得不对劲 —— 截图发朋友圈、@ 我、丢进群里、或者公众号留言,都行。
一个人写的小江湖,多被一个人看见,就多一份继续写下去的理由。
此一卷山海粗成,下一卷且共行之。
━━━
🐉
——
山海游侠 · v0.3.0 · 2026 年 5 月 在 awkthole.com 上免费玩,无内购、无登录、不联网 微信扫码关注公众号 Awkthole,下一版上线会先告诉你