致谢与许可
感谢以下每一位。
本站托管的游戏
这些游戏由本站提供。我们改动过的游戏列在我们做的修改中。
我们的游戏
为 wasmga.me 制作的游戏采用 MIT 许可证,源代码在 github.com/wasmga-me/games。
需要你自备文件的游戏
毁灭战士由 id Software 制作,运行在你自己的 DOOM.WAD 或 DOOM1.WAD(共享版章节)上。我们不托管它。
仙剑奇侠传98柔情版由 Softstar 制作,运行在你自己的游戏文件副本上。我们不托管这些文件。
引擎
| 项目 | 在本站的作用 | 版本 | 许可证 | 源代码 |
|---|---|---|---|---|
| wg(C 版) | 运行我们用 C 编写的游戏。 | 2cff507 | MIT,字体 OFL-1.1 | github.com/wasmga-me/wasmgame-wg-c |
| wg(Rust 版) | 运行我们用 Rust 编写的游戏。 | 786659a | MIT,字体 OFL-1.1 | github.com/wasmga-me/wasmgame-wg |
| Ruffle | 运行 Flash 游戏。用 Rust 编写,编译为 WebAssembly。由本站提供。 | 0.7.1 | MIT 或 Apache-2.0 | github.com/ruffle-rs/ruffle |
| js-dos | 在浏览器中运行 DOS 游戏,包括其中的 DOSBox 核心。 | 8.5.3 | GPL-2.0 | github.com/caiiiycuk/js-dos |
| DOSBox | js-dos 内部的 DOS 模拟器。 | 随 js-dos 8.5.3 附带的版本 | GPL-2.0 | dosbox.com |
| doom-wasm | 运行毁灭战士引擎的游戏。编译为 WebAssembly 的 Chocolate Doom。 | 65e0d3a | GPL-2.0 | github.com/cloudflare/doom-wasm |
| SDLPAL | 运行仙剑奇侠传。它的引擎的开源重新实现,编译为 WebAssembly。 | f6236a0 | GPL-3.0 | github.com/sdlpal/sdlpal |
| Neverball | 运行 Neverball。它自己的网页版,编译为 WebAssembly,用 gl4es(MIT)提供 OpenGL。 | 1.7.0-alpha.3 (8288383) | GPL-2.0-or-later | github.com/Neverball/neverball |
| SuperTux | 运行 SuperTux。它自己的网页版,编译为 WebAssembly。 | 0.7.0-rev.1 (6970d03) | GPL-3.0-or-later | github.com/SuperTux/supertux |
| SuperTuxKart | 运行 SuperTuxKart。为网页构建,编译为 WebAssembly。 | 1.5 (1fb491f) | GPL-3.0-or-later | github.com/supertuxkart/stk-code |
| C-Dogs SDL | 运行 C-Dogs SDL。它自己的 Emscripten 移植版,编译为 WebAssembly。 | 2.5.0 (d27ca58) | GPL-2.0-or-later | github.com/cxong/cdogs-sdl |
| Brogue CE | 运行 Brogue CE。它的 SDL2 版本,编译为 WebAssembly。 | 1.15.1 (1ba4240) | AGPL-3.0 | github.com/tmewett/BrogueCE |
| Taisei Project | 运行 Taisei Project。它自己的网页版,编译为 WebAssembly。 | f4d3342 | MIT | github.com/taisei-project/taisei |
| Warzone 2100 | 运行 Warzone 2100。它自己基于 4.7.0 发行版的网页版,编译为 WebAssembly。 | 4.7.0 (7d3d8e5) | GPL-2.0-or-later | github.com/Warzone2100/warzone2100 |
| Flare | 运行 Flare: Empyrean Campaign。从它自己的网页移植版构建,编译为 WebAssembly。 | 1969bae | GPL-3.0-or-later | github.com/flareteam/flare-engine |
| Endless Sky | 运行 Endless Sky。编译为 WebAssembly,参照了 Endless Web 的网页版。 | 457d2e5 | GPL-3.0-or-later | github.com/endless-sky/endless-sky |
| Sandspiel | 运行 Sandspiel。它自己的页面,Rust 核心编译为 WebAssembly。 | 9936e06 | MIT | github.com/MaxBittker/sandspiel |
| Simon Tatham's Portable Puzzle Collection | 运行 Net、Untangle、Loopy、Bridges、Pattern和Light Up。其自带的网页前端,编译为 WebAssembly。 | 616da16 | MIT | git.tartarus.org/simon/puzzles |
| Mindustry | 运行 Mindustry。游戏和它的 Arc 引擎,用 TeaVM 从 Java 编译为 JavaScript。 | v160.7 (17012d6) | GPL-3.0 | github.com/Anuken/Mindustry |
| TeaVM | 把 Mindustry 从 Java 编译为 JavaScript;它的 Java 类库在编译结果中运行。 | 0.16.0 | Apache-2.0 | github.com/konsoletyper/teavm |
| FreeType | 绘制 Mindustry 的文字,编译为 WebAssembly。 | 2.14.3 (0a0221a) | FTL | github.com/freetype/freetype |
| SoLoud | 播放 Mindustry 的声音,编译为 WebAssembly。 | eb83070 | zlib | github.com/Anuken/soloud |
| opencc-js | 把仙剑奇侠传的简体中文文本转换为繁体中文。 | 1.4.2 | MIT 和 Apache-2.0 | github.com/nk2028/opencc-js |
| WasmBoy | 运行 Game Boy 和 Game Boy Color 游戏。用 AssemblyScript 编写,编译为 WebAssembly。 | 0.7.1 | GPL-3.0-or-later | github.com/torch2424/wasmboy |
| RetroArch | 运行下方的 NES、Game Boy Advance、Master System、Game Gear 和 Arduboy 模拟器,与它们分别一起编译为 WebAssembly。 | 1.22.2 | GPL-3.0 | github.com/libretro/RetroArch |
| FCEUmm | 运行 NES 游戏。 | 为 RetroArch 1.22.2 构建的版本 | GPL-2.0 | github.com/libretro/libretro-fceumm |
| mGBA | 运行 Game Boy Advance 游戏。 | 为 RetroArch 1.22.2 构建的版本 | MPL-2.0 | github.com/libretro/mgba |
| Gearsystem | 运行 Master System 和 Game Gear 游戏。 | 为 RetroArch 1.22.2 构建的版本 | GPL-3.0 | github.com/drhelius/Gearsystem |
| Ardens | 运行 Arduboy 游戏。 | 为 RetroArch 1.22.2 构建的版本 | MIT | github.com/tiberiusbrown/ardens |
| Nostalgist.js | 在页面中启动 RetroArch,并把游戏、按键和存档传给它。 | 0.23.0 | MIT | github.com/arianrhodsandlot/nostalgist |
js-dos 以上方固定的版本、不加修改地从 jsDelivr CDN 载入,该 CDN 镜像了它在 npm 上的发行版。其他一切都由本站提供:Ruffle 和 RetroArch 构建(libretro buildbot 自己的构建)保持发行时的原样,其余的带有下方列出的修改。每个游戏页面的来源面板都链接了它的文件及其源代码。
我们做的修改
| 项目 | 改动内容 | 补丁 | 原版 |
|---|---|---|---|
| doom-wasm | 保存并读取“继续”用的快照(菜单中不显示的第 7 个存档位) | snapshot.diff, 构建脚本 | github.com/cloudflare/doom-wasm |
| SDLPAL | 保存并读取“继续”用的快照,并留在页面的全屏之内 | snapshot.diff, fullscreen.js, 构建脚本 | github.com/sdlpal/sdlpal |
| Neverball | 保存并读取“继续”用的快照,把全屏交给页面,并为音频代码提供较新 Emscripten 版本中缺少的内存视图 | snapshot.diff, fullscreen.diff, neverball.diff, 构建脚本 | github.com/Neverball/neverball |
| SuperTux | 保存并读取“继续”用的快照,从游戏页面加载数据,并让 PhysFS 在根目录查找文件 | snapshot.diff, supertux.diff, physfs.diff, 构建脚本, github.com/wasmga-me/supertux-wasm | github.com/SuperTux/supertux |
| C-Dogs SDL | 把玩家的文件交给游戏页面保存,不再存进它自己的浏览器存储,在小屏幕上缩小显示,把全屏交给页面,启动时不再重新打开声音(会崩溃),去掉局域网游戏和 Wolfenstein 3D 音乐芯片(其许可不允许用于有广告的网站),并用较新的 Emscripten 构建 | cdogs.diff, opl-stub.c, 构建脚本 | github.com/cxong/cdogs-sdl |
| Brogue CE | 从页面获取尺寸并把全屏交给页面,主菜单没有退出,每回合都写入进行中的游戏,从按键事件读取修饰键,并在随机种子的一局结束时把得分告诉页面 | brogue.diff, 构建脚本 | github.com/tmewett/BrogueCE |
| Anarch | 以 640x400 和每秒 60 帧绘制,把存档交给游戏页面,用鼠标转向,让页面能为“继续”保存和读取状态,标签页隐藏时等待,把手柄交给页面,也能用 M 打开地图,并用较新的 Emscripten 构建 | anarch.diff, build.sh, 构建脚本 | gitlab.com/drummyfish/anarch/- |
| Taisei Project | 分三次下载,从游戏页面获取游戏文件,并把玩家的文件交给页面,不再存进浏览器的数据库 | taisei.diff, pack.py, 构建脚本 | github.com/taisei-project/taisei |
| Mindustry | 通过 Arc 的浏览器后端(WebGL、输入、文件、声音)在页面中运行,从游戏页面获取它的文件和玩家的文件,开始后再获取音乐,把全屏交给页面,并隐藏网页做不到的功能(多人游戏、模组、退出) | build.sh, mindustry.diff, arc.diff, backend.diff, github.com/wasmga-me/mindustry-wasm | github.com/Anuken/Mindustry |
| Flare | 从游戏页面获取游戏文件和玩家的文件,页面下载地图文件时停在加载画面等待,采用页面的尺寸,把全屏交给页面,并且不用线程加载图片 | flare.diff, 构建脚本 | github.com/flareteam/flare-engine |
| Endless Sky | 不用线程运行,适应游戏页面及其全屏,并在游戏首次绘制图片时才获取它们 | endless-sky.diff, fullscreen.js, 构建脚本, github.com/wasmga-me/endless-sky-wasm | github.com/endless-sky/endless-sky |
| SuperTuxKart | 在网页中不用线程运行,等待仍在下载的赛道,并把窗口尺寸和全屏交给页面 | stk.diff, 构建脚本, github.com/wasmga-me/stk-code-wasm | github.com/supertuxkart/stk-code |
| Sandspiel | 去掉发布和浏览作品、它的广告和统计,适应游戏页面,并让页面能保存、读取和暂停沙盘 | sandspiel.diff, 构建脚本 | github.com/MaxBittker/sandspiel |
| Simon Tatham's Portable Puzzle Collection | 去掉它的菜单、链接和弹窗,让手指当鼠标用(长按即右键),并让页面为每个谜题选择大小、保存和读取,以及得知何时解开 | puzzles.diff, puzzle.html, 构建脚本 | puzzles.git;a=tree;hb=616da16f25da428ccda805536209095bd062676e |
| WasmBoy | 四处模拟修正:POP AF、SC 寄存器、STAT 模式 3,以及连续两次读取即时存档 | core-fixes.diff | github.com/torch2424/wasmboy |
| 10seconds | The Kongregate calls are removed (the round froze at 0:01 without them), and the score goes to the site's scoreboard | 10seconds.diff | 10seconds.swf |
| Bump! | A click on the "click to play" screen now dismisses it (it waited for a focus event Ruffle never sends) | bump.diff | bump.swf |
| C-Dogs SDL | The Wolfenstein 3D shareware episode and campaign templates are left out, and the one MP3 sound is re-encoded as Ogg Vorbis | build.sh | github.com/cxong/cdogs-sdl |
| moflegame | The mofle.net highscore and badscore tables are removed, with the Small, Medium and Full buttons | mofle.diff | mofle.swf |
| Pixel Conflict | The id.net sign-in, online saves, achievements and highscores are removed, with the Y8 and id.net logos and links; the three local save slots stay | pixelconflict.diff | PixelConflict.swf |
| SuperTux | The conveyor belt pictures are drawn anew and the death sound is the hurt sound, as their licence (CC BY-NC) doesn't allow this site | supertux.diff, draw.py, 构建脚本 | github.com/SuperTux/supertux |
| SuperTuxKart | Shrunk with SuperTuxKart's own Android script (textures at most 512 pixels, mono music) and split into parts | build.sh, pack.py | 1.5 |
| Those Walls | The score goes to the site's scoreboard at game over | ld31.diff | ld31.swf |
美术
wasmga.me 的标志基于 Carlos Baraza 设计的 WebAssembly 标志,该标志依照 CC0 贡献至公有领域。
想让你的游戏上架?
如果你做了一款能编译为 WebAssembly 的游戏,希望放到 wasmga.me 上,请告诉我们。