All Projects → maiple → opengml

maiple / opengml

Licence: MIT license
GML interpreter

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to opengml

ol
Otus Lisp (Ol in short) is a purely* functional dialect of Lisp.
Stars: ✭ 157 (+423.33%)
Mutual labels:  interpreter
monkey-rs
An interpreter for the Monkey programming language written in Rust
Stars: ✭ 27 (-10%)
Mutual labels:  interpreter
scheme.ml
Scheme (R6RS subset) interpreter written in OCaml
Stars: ✭ 14 (-53.33%)
Mutual labels:  interpreter
LambdaCore
An interpreted language written in Rust inspired by the Lisp family of languages.
Stars: ✭ 56 (+86.67%)
Mutual labels:  interpreter
g2d
Craft beautiful geometric art using code.
Stars: ✭ 40 (+33.33%)
Mutual labels:  interpreter
InEditor
A web-based editor for drawing and creating OGC IndoorGML data
Stars: ✭ 26 (-13.33%)
Mutual labels:  gml
foth
Tutorial-style FORTH implementation written in golang
Stars: ✭ 50 (+66.67%)
Mutual labels:  interpreter
lambda
lambda calculus interpreter
Stars: ✭ 23 (-23.33%)
Mutual labels:  interpreter
Arduino-FVM
Byte Token Threaded Forth Virtual Machine (FVM) for Arduino
Stars: ✭ 35 (+16.67%)
Mutual labels:  interpreter
gossa
The Go/Go+ Interpreter
Stars: ✭ 53 (+76.67%)
Mutual labels:  interpreter
nj
NJ is a simple script engine in golang with Lua-like syntax.
Stars: ✭ 19 (-36.67%)
Mutual labels:  interpreter
prolog
The only reasonable scripting engine for Go.
Stars: ✭ 408 (+1260%)
Mutual labels:  interpreter
fayrant-lang
Simple, interpreted, dynamically-typed programming language
Stars: ✭ 30 (+0%)
Mutual labels:  interpreter
NPython
(Subset of) Python programming language implemented in Nim
Stars: ✭ 17 (-43.33%)
Mutual labels:  interpreter
code editor unity
A code editor for MY-BASIC, powered by the Unity3D engine. With this you may create your own Code Editor, Debugger and IDE for different scripting languages.
Stars: ✭ 13 (-56.67%)
Mutual labels:  interpreter
MUA-Interpreter
MUA is a functional language for teaching use in Principles of Programming Languages course.
Stars: ✭ 16 (-46.67%)
Mutual labels:  interpreter
lpp-vita
Lua Player Plus for PSVITA. Documentation on: http://rinnegatamante.github.io/lpp-vita/
Stars: ✭ 149 (+396.67%)
Mutual labels:  interpreter
chirp
Interpreter in C for rockstar programing language
Stars: ✭ 20 (-33.33%)
Mutual labels:  interpreter
PureScript
A C# hot reload framework for Unity3D, based on Mono's MONO_AOT_MODE_INTERP mode.
Stars: ✭ 258 (+760%)
Mutual labels:  interpreter
Cosmo
Embeddable scripting language loosely based off of Lua
Stars: ✭ 14 (-53.33%)
Mutual labels:  interpreter

OpenGML

Github Action Build Status License Discord

Download: Nightly. (Select a workflow, scroll down to artifacts. May require logging into Github to click the links. Better download link TBD.)

What this is: a free, open-source, cross-platform interpreter for GML 1.4, everyone's favourite game development language and toolkit. It's easy: ogm ./MyGame.project.gmx in any terminal and your game will launch.

What this is not: an IDE or graphical user interface. If you want to OpenGML for development, you must write your code, draw your sprites, and tile your rooms with your own preferred software. Recommendations are provided in the "Other Software" section below.

Getting Started

  • Use: To get started running an existing GML project or a new project, see the Quickstart guide.
  • Debug: Try ogm --debug MyGame.project.gmx
  • Build: To compile OpenGML from source yourself, see the build instructions.
  • Link: To use OpenGML as a C++ library for building your own tool, see the Library guide.
  • Develop: If you are interested in helping to develop OpenGML, or you'd like to modify or hack it, or you just want to get an overview of the codebase, see both the build instructions and the Source Code Overview.
  • Recurse: To use OpenGML from within GML (e.g. to replace string_execute()), see the usage instructions for gig.

On Ubuntu, to compile from source using Docker and run the example (as mentioned in the build instructions, run the following bash code.

apt install docker
bash ./docker/build.sh ubuntu x86 # (x86 build is preferred for compatability with 32-bit DLLs on some projects.)
./out-ubuntu-x86/ogm demo/projects/example/example.project.gmx

Features

  • Written to be totally compatible with the 1.4 version of everyone's favourite game creation toolkit, unlike ENIGMA, which does not (and will never be able to) run all games written in GML. (100% compatability for OpenGML isn't yet achieved, but it is a design goal from the ground-up.)
  • Uses OpenGL in an SDL2 context for graphics.
  • Available as a stand-alone binary to interpret GML: ogm ./MyGame.project.gmx
  • Can also be used as a C++ library to parse, beautify, compile, and execute GML code: #include <ogm/ast/parse.h>
  • Comes with a debugger. Place conditional breakpoints and watchpoints, view and edit variables in place, and step through source code or bytecode instructions if you prefer. Available from the command-line with ogm --debug MyGame.project.gmx.
  • Compiles to an intermediate bytecode format, allowing speedy execution and the future potential for compilation to different targets (e.g. JavaScript/HTML5).
  • On UNIX systems, zugbruecke can optionally be used to run windows DLLs and extensions via wine. (This maximizes support for running existing games on Linux or Mac.)

Planned Features

  • Beautifier
  • 100% compatability with GML.
  • GML 2.0 support

Other Software

Here are some software suggestions which may be helpful for creating games with OpenGML. Not all of these have been tested for interoperability.

Code Editors

Room Editors

  • PushEd, which creates GML-compatible rooms in both 2D and 3D.

Image Editors

  • GIMP, a powerful open source, cross-platform image editing tool.
  • Krita, a powerful open source, cross-platform digital painting tool.

Other compilers and interpreters

If you decide you don't like OpenGML, you may be interested in these alternatives. Not all of them are complete or usable.

  • ENIGMA is popular compiler, though it isn't 100% accurate to GML and probably won't work for large existing codebases.
  • Game Creator, which compiles to Microsoft's .NET framework.
  • Acolyte, which compiles to C++.
  • DejaVu, an llvm-based compiler.
  • DejaVu (Rust), a rust reimplementation of the above.
  • GM8Emulator (C++), which runs GM8 projects.
  • GM8Emulator (Rust), a rust reimplementation of the above.
  • Runero, a runner written in Java.

Full-Resource IDEs

These combine all of the above to offer all of the different tools needed to create a game in GML in one comprehensive user-interface.

  • The best and most reliable IDE and compiler available for this programming language can be found here. Neither free nor open source.
  • LateralGM, an open source IDE for GML and ENIGMA. Might be out of date.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].