致謝與授權
感謝以下每一位。
本站託管的遊戲
這些遊戲由本站提供。我們改動過的遊戲列在我們做的修改中。
我們的遊戲
為 wasmga.me 製作的遊戲採用 MIT 授權條款,原始碼在 github.com/wasmga-me/games。
需要你自備檔案的遊戲
毀滅戰士由 id Software 製作,執行在你自己的 DOOM.WAD 或 DOOM1.WAD(共享版章節)上。我們不託管它。
仙劍奇俠傳98柔情版由 Softstar 製作,執行在你自己的遊戲檔案副本上。我們不託管這些檔案。
引擎
| 專案 | 在本站的作用 | 版本 | 授權條款 | 原始碼 |
|---|---|---|---|---|
| wg(C 版) | 執行我們用 C 編寫的遊戲。 | c6c4496 | MIT,字型 OFL-1.1 | github.com/wasmga-me/wasmgame-wg-c |
| wg(Rust 版) | 執行我們用 Rust 編寫的遊戲。 | a0f6811 | 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 |
| Speed Dreams | 執行 Speed Dreams。為網頁構建,編譯為 WebAssembly,OpenGL 由 gl4es(MIT)提供,3D 場景由 PLIB(LGPL-2.0-or-later)繪製。 | 4e29a83 | GPL-2.0-or-later | forge.a-lec.org/speed-dreams/speed-dreams-code |
| C-Dogs SDL | 執行 C-Dogs SDL。它自己的 Emscripten 移植版,編譯為 WebAssembly。 | 2.5.0 (d27ca58) | GPL-2.0-or-later | github.com/cxong/cdogs-sdl |
| OpenTTD | 執行 OpenTTD。用它自己的 Emscripten 移植從 15.3 版本構建,編譯為 WebAssembly。 | 15.3 (14ec60f) | GPL-2.0-only | github.com/OpenTTD/OpenTTD |
| FluidSynth | 用 OpenMSX 的曲目播放 OpenTTD 的音樂,編譯進遊戲裡。 | 2.5.7 | LGPL-2.1-or-later | github.com/FluidSynth/fluidsynth |
| 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 |
| Luanti | 執行 Luanti。paradust7 對其 5.18 開發版的網頁移植,編譯為 WebAssembly。 | 5.18.0-dev (db44f2f) | LGPL-2.1-or-later | github.com/paradust7/luanti |
| 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 |
| OpenTTD | 從遊戲頁面取得遊戲檔案和玩家的檔案,採用頁面的尺寸,把全螢幕交給頁面,寫入並讀取用於繼續遊戲的快照,用 FluidSynth 播放音樂,並去掉多人遊戲、線上內容、社交平台和退出 | openttd.diff, build.sh, 構建指令碼, github.com/wasmga-me/OpenTTD-wasm | github.com/OpenTTD/OpenTTD |
| Luanti | 從遊戲頁面取得遊戲檔案和玩家的世界,並把世界交還給頁面,把全螢幕交給頁面,並去掉了多人遊戲、ContentDB、更新檢查和退出遊戲 | luanti.diff, webport.diff, build.sh, 構建指令碼, github.com/wasmga-me/luanti-wasm | github.com/paradust7/luanti |
| 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 |
| Speed Dreams | 把各模組和 AI 車手鍊接進同一個程式,透過 WebGL 上的 gl4es 繪製,等待仍在下載的賽道或賽車,把視窗大小和全螢幕交給頁面,並去掉下載、線上比賽和退出 | speeddreams.diff, plib.diff, wasmmodules.py, glglue.c, curl.c, curl.h, 構建指令碼, github.com/wasmga-me/speed-dreams-wasm | forge.a-lec.org/speed-dreams/speed-dreams-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 |
| Branchwise | libgit2 1.9.1 built for WebAssembly without an operating system: home folder lookup, sockets and child processes are left out | libgit2-wasi.diff | github.com/libgit2/libgit2 |
| 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 |
| Speed Dreams | Split into parts; the race modes are the ones that work offline with these cars (the Supercars championship runs on the tracks here), the 3D view is ssggraph, and a first race is set up against four AI drivers with arrow-key steering | pack.py, quickrace.xml, 構建指令碼 | forge.a-lec.org/speed-dreams/speed-dreams-data |
| 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 上,請告訴我們。