BeamNG.Earth
A 1:1 scale streamed Earth for BeamNG.drive: real elevation and satellite imagery, floating origin, LOD streaming from a companion server
翻译准备中
在浏览器中重现 1985 年 Commodore 64 GameMaker。加载旧磁盘,制作新游戏,编辑精灵和场景,以链接或独立的 HTML 文件分享结果。
AI 翻译
A browser recreation of the 1985 Commodore 64 GameMaker. Load old disks, make new games, edit sprites and scenes, share the result as a link or a self-contained HTML file.
游戏JavaScript · HTMLGitHub @needlestack在线运营者未确认
试用过了吗? 点一下就好,无需登录。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证A JavaScript recreation of the classic C64 GameMaker
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
gmc64 is a JavaScript reimplementation of Garry Kitchen’s GameMaker for the Commodore 64. This project documents the graphic and sound formats, virtual machine, instruction set and runtime behavior, and includes a browser-based version that works with original GameMaker projects.
Intro Demo
Sprite Maker
Scene Maker
Sound Maker
Music Maker
Program Editor
You probably remember the fun of animating sprites pixel by pixel, drawing
background scenes, coding up little games and demos, tweaking SID sounds, and
writing music.查看完整 README ↗gmc64 is a JavaScript reimplementation of Garry Kitchen’s GameMaker for the Commodore 64. This project documents the graphic and sound formats, virtual machine, instruction set and runtime behavior, and includes a browser-based version that works with original GameMaker projects.
You probably remember the fun of animating sprites pixel by pixel, drawing background scenes, coding up little games and demos, tweaking SID sounds, and writing music.
If you tried to relive that fun on a C64 emulator, you probably noticed the joystick based UI on the original is a tough sell today, and the slow disk operations are a drag.
gmc64 solves this. It's a fully modern JavaScript recreation of GameMaker with modern convenience: use your mouse or trackpad, instantly preview, load, and save files, copy, paste, undo, and more. Import and export GIF, PNG, and MIDI files.
It's not an emulator, it's a recreation, with the stumbling blocks gone.
Do you have your original work on a disk? gmc64 reads .d64 disk images and all
GameMaker file formats. Drag and drop a disk or use the built-in file browser.
Then you can open the editor, add a sprite, change the music, and save it back to the disk image. You can even export your creations as a single self-contained HTML file that you can post online.
gmc64 can save files back to .d64 images as well, and you can even import them
back to the original GameMaker.
GameMaker was a game-creation tool for the Commodore 64 created by Garry Kitchen and published by Activision in 1985. It let users build real, runnable C64 games without learning assembly or having to hand code graphics and sounds. An early graphical IDE, you drew sprites and backgrounds, composed music, recorded sound effects, and wrote game logic from a list of simple instructions.
sprite 1 is player
sprite 1 x position = 160
sprite 1 y position = 100
if joystick 1 is left then
sprite 1 direction = left
endif
Many people who grew up to be game developers got their start here. It's been largely inaccessible in the modern age, and even through emulation the usability suffers from the limitations of the original C64.
gmc64 brings it back. The same sprites, same instructions, same sounds, all instantly in your browser.
gmc64 doesn't just open old files. It implements the same formats: /PRG,
/SPR, /PIC, /SND, and /SNG — and they round-trip cleanly in both
directions.
A game built here saves to a real disk image that loads on an actual Commodore 64 running the original 1985 GameMaker disk. Anything authored on that hardware loads here without translation. New creations can ship to a 1541. Old creations can ship to the web.
Click any of the image links at the top of this page to dive in.
Then:
disks/gmc64-demo.d64 ships with the project and
includes runnable programs and editable sprites, scenes, sounds, and songs.d64 into any gmc64 tool - editor, sprite-maker, scene-maker,
sound-maker, and music-maker will all open a pop-up file picker..d64 - you can point to an online d64 as
well: program-editor.html?disk=https://your-host/game.d64 opens the same file pickerWhen your game is ready, hit Export Game to HTML to get a single HTML file of your creation.
Every editor takes URL parameters, so you can hand someone a direct link to a
specific program or drop the player into a page you're building. And every
editor accepts a .d64 dropped onto its window — the file picker will open
filtered to that tool's file type (.PRG in the editor, .SPR in
sprite-maker, etc.).
play.html) — chrome-free, iframe-friendly| Param | Purpose |
|---|---|
disk | .d64 URL, or the magic value demo for the bundled demo disk |
file | Program name on the disk (case-insensitive) |
nocredit=1 | Hide the gmc64.com corner link |
poster_seconds | How many seconds to simulate the game for the preview frame behind the play button. Default 2, max 10, 0 skips the poster entirely. Decimals allowed. |
Example — direct link:
https://gmc64.com/play.html?disk=demo&file=aliens/prg&nocredit=1
program-editor.html) — loads into the editor, optionally plays| Param | Purpose |
|---|---|
disk | Same as above |
file | Same as above |
play=1 | Show a play-button overlay with a poster preview when the page opens. Visitor clicks play to run, clicks the stop button to drop into the editor. Without this flag the file just opens for editing. |
poster_seconds | Same as above; only meaningful with play=1 |
play_demo=1 | Alias — expands to disk=demo&file=gmc64i/prg&play=1&poster_seconds=8.5 |
Example — send someone a runnable link that still lets them drop into the editor and see the code:
https://gmc64.com/program-editor.html?disk=https://your-host.com/game.d64&file=GAME/PRG&play=1
The other editors (sprite-maker.html, scene-maker.html, sound-maker.html,
music-maker.html) accept disk and file too, deep-linking straight to a
specific asset for editing.
Two ways to get an embeddable game, depending on what you're willing to host.
Option A — self-contained HTML. Use the editor's Export Game to HTML button under file. It downloads a single HTML file containing your program, the disk image, and the runtime. Host it anywhere (GitHub Pages, Netlify, S3, your own server), then embed it. The Export dialog also generates the iframe snippet for you — just paste the URL where you'll host the file:
<iframe src="https://your-site.com/mygame.html"
width="640" height="500"
allow="autoplay" loading="lazy"
frameborder="0"></iframe>
Option B — play.html + a hosted .d64. Skip export. If your disk image
is already at a public URL, point play.html at it directly:
<iframe src="https://gmc64.com/play.html?disk=https://your-host.com/game.d64&file=GAME/PRG"
width="640" height="500"
allow="autoplay" loading="lazy"
frameborder="0"></iframe>
Note: disk=demo is a special case that loads from the bundled demo disk.
Cross-origin disks: for option B, if your .d64 lives on a different
domain than the page hosting play.html, that origin needs to allow
cross-origin fetches (CORS). Option A avoids this entirely — the disk is inside
the HTML.
| File | What it edits |
|---|---|
program-editor.html | Program instructions + runtime + asset assignment |
sprite-maker.html | Sprites (multi-color, multi-frame, multi-part) |
scene-maker.html | Backgrounds (160×200 4 indexed-color scenes) |
sound-maker.html | Sound effects (SID-style) |
music-maker.html | Songs (3 channels, score-style staff editor) |
All five editors read and write to the same in-browser .d64 image, so your
sprites flow into scenes flow into programs the same way they did on the C64.
To play and edit: none. It's static HTML and JavaScript. Just
open the files in a browser and use them. They also run locally from
file://.
To rebuild the standalone bundle: Node.js. Pure built-ins, no npm install
needed. After editing play.html or any file it loads from js/, run:
node tools/bundle-standalone.js
This regenerates js/standalone-source.js — a snapshot of play.html with
every <script src> inlined, used by the editor's "Export Game to HTML" flow to
produce a self-contained playable HTML file.
To run the test suite: the test tooling lives in dev/ (kept out of the
project root so static hosts don't mistake this for a Node project). One-time
setup:
cd dev
npm install
Then from dev/:
npm test # run the full suite
npm run generate-golden # regenerate golden files after intentional changes
This pulls in vitest (test runner) and puppeteer (headless browser). Only contributors need this.
Ready for use. Most games run faithfully. Tested on GameMaker's included demo games Archer, Chopper, and Pitfall. (Note: these are not included in gmc64 for copyright reasons.) Sprites, scenes, sound effects, music, and program logic all reproduce the original behavior. Reports of edge cases are welcome.
The overall user experience should be significantly better than running GameMaker under an emulator.
Known limitations:
.D64, /PRG, /SPR, /SND, /SNG, /PIC)All documented in CLAUDE.md — written for both humans and AI coding assistants.
gmc64 is an independent, unaffiliated, re-implementation made for preservation, education, and fun. It is not affiliated with, endorsed by, or connected to Activision, Activision Blizzard, Microsoft, or any other rights holder. "GameMaker" and any related marks are property of their respective owners. None of the original 1985 code is used or included.
The repository does not contain any commercial disk images or programs. If you have an original GameMaker disk, you can use it with gmc64 yourself; obtain disk images through legal channels.
MIT. Do what you like with the engine and editors.
The included demos (disks/gmc64-demo.d64) are original work, also under MIT.