Conjure is a systems-level programming language designed for games and real-time applications, built with a tooling-first philosophy.

It is currently in the early to mid stages of development, with the compiler and language features rapidly evolving and is not yet available for public use. This site is designed to help with specification and documentation as the language is being built and to provide information to internal early adopters and contributors.

import "conjure/io"

@entry func main() {
	io.println("Hello, World!")
}

Conjure sports a simple, modern, and familiar syntax that should feel comfortable to anyone with experience in languages like Go or Swift. We’ve designed Conjure to be easy to read and write, with a focus on clarity and reduced keystrokes or differing symbols wherever possible.

Conjure ships with 2 standard libraries. The core library is always available and provides essential functionality for working with the language. The second, MAGE, is an optional library that provides additional functionality specific to game development. Use any parts of it you like as a foundation for your own game engine or game.

import "mage"
import "mage/window"
import "mage/routines"
import "mage/time"
import "mage/world"

@entry func game() {
	mage.init()
	defer mage.shutdown()

	var window = window.new("My Game", 800, 600)
	defer window.free()

	while window.isOpen() {
		window.pollEvents()
		window.clear(0.1, 0.1, 0.1, 1.0)
		routines.yield()
		world.update()
		window.swapBuffers()
	}
}