BeamNG.Earth
BeamNG.drive용 1:1 비율 실시간 지구, 실제 고도·위성 이미지·부동 원점·보조 서버에서 LOD 스트리밍
1985년 코모도어 64 GameMaker를 브라우저에서 재현
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를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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.