Harbor Restore / 港口复原 · generated from CREDITS.md

Art and sound in this game are hand-authored or CC0. No generative-AI images or audio. Source list below is the same file the build checks (CREDITS.md).

本游戏的美术和音效是自制或 CC0,没有生成式 AI 的图或声音。下面清单与构建守卫核过的 CREDITS.md 同一份。

Графика и звук сделаны вручную или взяты как CC0. Генеративных ИИ-картинок и аудио нет. Список совпадает с CREDITS.md.

素材来源与许可

D004 最小原型「旧码头」(proto)

没有使用任何外部图片、模型、音效或字体文件,也没有 AI 生成的图:

内容来源许可
8 个可清洗物体(船体、甲板、木栈道、浮标、灯塔小门、仓库墙、吊车、灯塔外墙)的干净底图代码用 Canvas 2D 画出(src/main.ts 的 paintClean)自制
四种污垢层(泥污、海藻、藤壶、锈斑)按覆盖网格用 Canvas 2D 画出(src/main.ts 的 drawDirt)自制
码头台面、水面、灯塔石墩、桅杆、驾驶舱、仓库屋顶、吊车底座等场景装饰Three.js 内置几何体和 ExtrudeGeometry 代码拼出自制
「活过来」动画(晃船、小人、海鸥、浮标灯、门内灯、彩旗、吊臂、灯塔扫光)Three.js 简单几何体 + 代码动画自制
喷水 / 碎屑 / 火花 / 金币粒子顶点色 Points自制
喷水循环音、打磨机嗡嗡、刮刀声、藤壶「啪」、完成音Web Audio 实时合成(src/main.ts 的 makeAudio)自制
HUD 文字、金币图标 🪙系统字体(system-ui)和系统 emoji,不随包分发系统自带

引擎库(代码,不是美术素材):Three.js 0.186.1(MIT)。

D005 玩法原型「货船装货」(cargo)

没有使用任何外部图片、模型、音效或字体文件,也没有 AI 生成的图:

内容来源许可
12 幅像素图(救生圈、灯塔条纹、帆船、信号旗、棋盘格、菱形靶、波浪、海鸥 V、圆斑阵、十字港图、回字框、罗盘风车)代码生成(src/cargo/pictures.ts 的几何图案函数)自制
集装箱贴图、船身数字牌、泊位虚线框/锁、航道「+n」牌代码用 Canvas 2D 画出(src/cargo/main.ts)自制
海面、码头、岸桥、船体、货块Three.js 内置几何体 + 程序化配色自制
发船「咔」、落地闷响、出港汽笛、泊位满提示、胜利/失败音Web Audio 实时合成(src/cargo/main.ts)自制
HUD 文字、手指 👆、锁 🔒系统字体(system-ui)和系统 emoji,不随包分发系统自带

D006 货船装货第 2 版(cargo2)

没有使用任何外部图片、模型文件(第 3 轮起货船改为程序化建模,Kenney GLB 已删除),也没有 AI 生成的图:

内容来源许可
HUD 数字字体 Saira Stencil One@fontsource/saira-stencil-one(npm 包随包分发)OFL-1.1
货船(尖艏/白色驾驶楼/烟囱/甲板箱)、岸桥、码头、系缆桩、护舷程序化几何体顶点色烘焙(src/cargo/kit.ts,移植自 docs/dev/cargo2-look3 样机)自制
积木瓦楞/纹样贴图、甲板箱贴图、混凝土噪声、水面渐变、波纹、白浪、黄黑警示条、泊位虚线锁、数字牌代码用 Canvas 2D 画出(src/cargo/kit.ts、main.ts)自制
尾浪 / 白烟 / 溅水 / 扫光粒子实例池 InstancedMesh + 代码动画(src/cargo/fx.ts)自制
发船「咔」、落地闷响、出港汽笛、星线「叮」、告急低音、海关章「咚」、胜利/失败音Web Audio 实时合成(src/cargo/main.ts)自制

D008 货船装货 50 关像素画(cargo)

50 幅关卡像素图全部由 tools/pixel2level.ts 从下列 Kenney / OpenGameArt CC0 素材裁剪缩放、量化到调色板生成(源包存 tools/art-src/,不进构建;逐图对应关系见 tools/manifest.ts),没有 AI 生成的图,没有手写像素数组:

素材包作者 / 来源许可
Kenney Tiny Dungeon(tools/art-src/kenney_tiny-dungeon/)Kenney — https://kenney.nl/assets/tiny-dungeonCC0
Kenney Tiny Farm(tools/art-src/kenney_tiny-farm/)Kenney — https://kenney.nl/assets/tiny-farmCC0
Kenney Tiny Town(tools/art-src/kenney_tiny-town/)Kenney — https://kenney.nl/assets/tiny-townCC0
Kenney Tiny Ski(tools/art-src/kenney_tiny-ski/)Kenney — https://kenney.nl/assets/tiny-skiCC0
Kenney Monochrome Pirates(tools/art-src/kenney_monochrome-pirates/)Kenney — https://kenney.nl/assets/monochrome-piratesCC0
Kenney Pirate Pack(tools/art-src/kenney_pirate-pack/)Kenney — https://kenney.nl/assets/pirate-packCC0
Kenney Fish Pack(tools/art-src/kenney_fish-pack/)Kenney — https://kenney.nl/assets/fish-packCC0
Kenney Animal Pack(tools/art-src/kenney_animal-pack/)Kenney — https://kenney.nl/assets/animal-packCC0
Kenney Hexagon Pack(tools/art-src/kenney_hexagon-pack/)Kenney — https://kenney.nl/assets/hexagon-packCC0
Kenney Pixel Platformer(tools/art-src/kenney_pixel-platformer/)Kenney — https://kenney.nl/assets/pixel-platformerCC0
Kenney Pixel Platformer Food Expansion(tools/art-src/kenney_pixel-platformer-food-expansion/)Kenney — https://kenney.nl/assets/pixel-platformer-food-expansionCC0
Kenney Pixel Shmup(tools/art-src/kenney_pixel-shmup/)Kenney — https://kenney.nl/assets/pixel-shmupCC0
Ship Steering Helm (Vector+Sprite) steerwheel32.png(tools/art-src/oga_nautical/)MamaAnita — https://opengameart.org/content/ship-steering-helm-vectorspriteCC0
Simple Generic Ship ship_wood.png(512×128 四帧,取第 1 帧;tools/art-src/oga_nautical/)darkagegames — https://opengameart.org/content/simple-generic-shipCC0

D009 修码头第 2 版(dock2)

没有使用任何外部图片、模型文件,也没有 AI 生成的图:

内容来源许可
HUD 数字字体 Lilita One@fontsource/lilita-one(npm 包随包分发)OFL-1.1
码头场景(水面、堆场、码头面、系缆桩、护舷、白浪)程序化几何体与贴图(src/shared/,与货船共用,移植自 D006 look3)自制
8 个可清洗物体干净底图、污垢贴花(泥污/海藻/藤壶/锈斑)代码用 Canvas 2D 画出(src/main.ts)自制
场景装饰(船桅杆、驾驶舱、仓库、吊车、灯塔、海鸥、彩旗等)Three.js 内置几何体代码拼出自制
界面图标(工具、锁、金币、锚、对勾、工具箱等)内联 SVG(src/icons.ts)自制
「活过来」动画、喷水/碎屑/金币粒子、音效沿用 D004 实现自制

D011 互跳过场

内容来源许可
public/ship-restore.png(过场「前往」版的 HR 船)本仓库 ship-tools.html 把 src/cargo/kit.ts 程序化货船离屏渲染导出,再调色板量化自制
public/ship-escape.png(过场「返回」版的 HE 经典船)Harbor Escape 仓库 Assets/Resources/Art/ship_c0_yacht.png(其 Tools/ArtGen/gen_art.py 程序化生成,同属自家项目)缩放版自制

D211 首包瘦身(chunksplit)

显示字体改为自持 @font-face(src/fonts/lilita.css、src/fonts/saira.css), 其中首屏数字子集由 pyftsubset 从 D006/D009 登记的两份 @fontsource woff2 里切出:

内容来源许可
src/fonts/lilita-one-num.woff2(Lilita One 数字子集)由 @fontsource/lilita-one/files/lilita-one-latin-400-normal.woff2 用 fontTools pyftsubset 按码位裁切,未改动轮廓OFL-1.1
src/fonts/saira-stencil-one-num.woff2(Saira Stencil One 数字子集)由 @fontsource/saira-stencil-one/files/saira-stencil-one-latin-400-normal.woff2 同上裁切OFL-1.1

Harbor Restore · Privacy