https://github.com/YellowAfterlife/GMEdit
A high-end code editor for GameMaker: Studio, GameMaker Studio 2.x, and more!
https://github.com/YellowAfterlife/GMEdit
gamemaker gamemaker-studio gamemaker-studio-2 gamemaker-studio-2-3 gms1 gms2 tool
Last synced: 6 months ago
JSON representation
A high-end code editor for GameMaker: Studio, GameMaker Studio 2.x, and more!
- Host: GitHub
- URL: https://github.com/YellowAfterlife/GMEdit
- Owner: YellowAfterlife
- License: mit
- Created: 2017-12-31T20:34:31.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2024-10-29T14:17:48.000Z (12 months ago)
- Last Synced: 2024-10-29T17:25:55.248Z (12 months ago)
- Topics: gamemaker, gamemaker-studio, gamemaker-studio-2, gamemaker-studio-2-3, gms1, gms2, tool
- Language: JavaScript
- Homepage: https://yellowafterlife.itch.io/gmedit
- Size: 14.8 MB
- Stars: 312
- Watchers: 16
- Forks: 46
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-gamemaker - GMEdit - Code editor to use in conjunction with GameMaker. (Tools / Recommendations)
README
# GMEdit
GMEdit is a high-end, open-source code editor for GameMaker.
It represents what I consider to be the most important when working with code - being able to edit code quickly and comfortably, with features expected from a modern day code editor and conventional tabbed document design.
Rough lineup of features:
- Supports a variety of versions, including GameMaker: Studio, GameMaker Studio 2 (pre-2.3 and 2.3 formats), and limited support for legacy (GameMaker≤8.1) projects.
It can also be used to edit code for GML-based mods for games like [Nuclear Throne](https://yal.cc/ntt-modding-faq/) or [Rivals of Aether](https://rivalsofaether.com/introduction/).
- Spots a high-performance code editor ([Ace](https://ace.c9.io/)), extended and fine-tuned for GML.
Comes with [GameMaker-styled keyboard shortucts](http://github.com/GameMakerDiscord/GMEdit/wiki/Keyboard-shortcuts) that can be customized.
- Has combined editors for objects, timelines, and extensions, allowing to view/edit multiple events/moments/scripts at once.
- Fast save and load operations; only changes files it needs to.
- Has a variety of [syntax extensions](https://github.com/YellowAfterlife/GMEdit/wiki) to ease writing repetetive bits of code.
Changes are non-destructive and the code remains readable/editable in base IDE.
- Has custom [theme](https://github.com/YellowAfterlife/GMEdit/wiki/Using-themes)
and [plugin](https://github.com/YellowAfterlife/GMEdit/wiki/Using-plugins) support.
- Free and open-source.Overall, it can be viewed as a more pleasant alternative to GameMaker's base IDE, and becomes increasingly more advantageous the more code you write or the more complex your code gets.
By design it is something that you run alongside the base IDE, but there are [ways](https://github.com/YellowAfterlife/GMEdit/wiki/Running-games-from-GMEdit) you can avoid switching back and forth to run the game.
**NEW!** [Try GMEdit online](https://yellowafterlife.github.io/GMEdit/)!
This web-based version has some limitations compared to the downloadable one, but can give you a general idea of what GMEdit can do, and can also be used to open GameMaker projects without installing anything!Maintained by: [YellowAfterlife](https://yal.cc)
## Pre-built binaries
Stable binaries can be found [on itch.io](https://yellowafterlife.itch.io/gmedit).
Same page also houses screenshots and development log.
## Building
### First time setup
* Download/clone the repository
* Download [a pre-built 18.x Electron binary](https://github.com/electron/electron/releases)
and extract the files into bin/ directory (so that you have `bin/electron.exe` on Windows or `bin/electron` on Mac/Linux).You can find which exact version GMEdit is using by evaluating `process.versions.electron` in the JS console (Ctrl+Shift+I).
Alternatively, extract an existing GMEdit Beta to `bin/` without replacing files.
### Compiling
* Build the project via
```
haxe build.hxml
```
,
```
npm run compile
```
, or open and run the included FlashDevelop/HaxeDevelop project.You'll need a [current version of Haxe](https://haxe.org/download/) installed.
* Run the compiled output with electron via `npm start` or just run the according Electron binary in `bin/`.### Credits
* Programming language: [Haxe](https://haxe.org)
* Code editor: [Ace](https://ace.c9.io/) (with custom plugins and some minor edits)
* Tab component: [Chrome tabs](https://github.com/adamschwartz/chrome-tabs) (moderately edited)
* Native wrapper: [Electron](https://electronjs.org/)
* Light theme tree icons: [Silk](http://www.famfamfam.com/lab/icons/silk/) (slightly edited)
* Dark theme tree icons: [Font Awesome](https://fontawesome.com/)
* zlib decompression: [pako](https://github.com/nodeca/pako)
* Windows title bar color detection: [this library](https://github.com/loilo/windows-titlebar-color)
* System font enumerator for the font editor: [font-scanner](https://www.npmjs.com/package/font-scanner) (slightly edited)### License
[MIT license](https://opensource.org/licenses/mit-license.php)