Make games with EaselEasel
The game programming language for everyone
Easel is a 2D game programming language designed to match how humans, not computers, think about game logic. Whether you are a complete beginner or an experienced developer, you'll find Easel a joy to use! Additionally, you'll be surprised at how easy it is to make multiplayer games with Easel. Take an afternoon off to try it!
pub game fn World.Main(maxHumanPlayers=5) {
    SpawnEachPlayer owner {
        Subspawn ship {
            use body=ship, radius=1, shape=Equilateral(numPoints=3)
            Body(pos=20*RandomVector)
            PolygonSprite(color=#00ffbb, layer=1)
            
            on Pointer {
                Heading = Angle(Pointer - Pos)
            }
            on ButtonDown(Click) {
                behavior<thrust> on BeforePhysics {
                    Velocity += Heading.Direction * 0.5
                    Spark(
                        color=#ff8800, bloom=5, shine=1, splatter=1,
                        velocity=-25*Heading.Direction,
                    )
                }
            }
            on ButtonUp(Click) {
                delete behavior<thrust>
            }
        }
    }
}
Perfect for beginner coders
Suitable as your first programming language: Easel is powerful enough to be interesting, yet simple enough to be accessible. It is easy to get started, and as you learn more you can make increasingly sophisticated games.
Learn by example: A great way to learn is by looking at the code for games you already know and love. That is why the source code to every Easel game is available to view and remix.
How to remix any Easel game:Choose any game on the Play page then click the Remix button at the bottom left of your screen to open it in the online editor!
No download required: Code games in your web browser using our online editor, no download required. Even works on a Chromebook or iPad (with a keyboard), which makes it perfect for school students.
Like Scratch, but text-based: Looking for the next step after Scratch? Easel is a concurrent and event-driven programming language like Scratch, but is text-based and more powerful so you can make even more sophisticated games.
A safe, ad-free zone: Worried what your teenagers are being shown online? There are no ads on the Easel platform, so that is one less thing for you to worry about. Subscribe to Easel+ and support our safe ad-free zone where teenagers can make and play games.
Code multiplayer games without coding the multiplayer
Effortless multiplayer: Make games that are even more fun and meaningful by letting people play with each other! Code as if all your players are inside one shared game world, like a singleplayer game, and Easel will make your game multiplayer. Automatically.
How does it work? They say any technology sufficiently advanced is indistinguishable from magic. Multiplayer is baked into the fabric of the Easel programming language itself. That is why anything you code in Easel is multiplayer without any special effort on your part. It's like magic!
Skip to the fun part: Multiplayer often takes years of programming experience to master, but not with Easel. No need to learn a thing about networking or synchronization. Don't know what a remote procedure call is? You never need to! Easel does all the multiplayer for you automatically so you can focus on actually making your game.
Beginner-friendly: No pitfalls or traps to avoid. No worrying about doing everything in a multiplayer-safe way. With Easel, it's impossible to make mistakes when it comes to multiplayer, even if you're a complete beginner. It just works.
Smooth and responsive: Easel's state-of-the-art incremental rollback netcode implementation will give your players a smooth and responsive multiplayer experience, even with players spread across the globe.
Democratizing multiplayer game development: Imagine if every time someone wanted to write a book, they had to code a word processor from scratch. Few great authors are also great programmers, and so the world would miss out on so many great stories. There are many creative, talented people who would make great multiplayer games, but who lack the time or interest to learn about networking or synchronization. Easel is for them. Because of Easel, now everyone can make multiplayer games.
From start to finish
Built-in editor: Code games in your web browser using our online editor. If you are an experienced programmer, you can use your favorite editor (like Visual Studio Code) and tools with Easel, while still enjoying the benefits of deploying to Easel's hosted multiplayer platform.
Batteries included: Easel has everything you need to make a 2D game, including graphics, physics, audio, user interfaces, leaderboards and more.
Human interaction: Make games that are even more fun and meaningful by letting people interact with each other! Not only does Easel makes real-time multiplayer effortless, it also has built-in support for leaderboards and chat.
Instant publishing: With only a few clicks, Easel's servers will host your game, and make it available to anyone with a web browser. Your players don't need to download anything, they can just click and play.
Generous free tier: We want Easel to be used by anyone and everyone, and so Easel's generous free tier lets you make and host some quite sophisticated games without paying a cent. Need more storage or bandwidth? Subscribe to Easel+.
What people are saying about Easel
can i just say that i absolutely ******* love easel, the programming language. i don't know how you did it ray, but you did it. you created the ultimate language. things that take days of effort and dozens of files in Java/Python/JS/whatever, here it's just, well i need to do a thing. how do i do a thing. oh okay so i do this this this. a component here. delete it here. indirect this via a generic signal, listen to it here. does it work? holy **** it works.
i think the unsung hero of this whole thing is <Id=auto> which makes all the automatic replacement possible. it's wonderful. it's the ultimate programming language
bruh how the hell does a game engine make me think "oh **** i can't fix this, imma ask for help" then doodle around with the logic then you fix the problem that was thought to be impossible 3 minutes ago
i love easel
it's the second time TODAY
Made with love
Made with love by one person: Every part of Easel was made by me, @raysplaceinspace, with the utmost intention and care.
The dream: When I made my last game, I was surprised to find more people were interested in modding the game than playing it. The declarative style of the modding language turned out to be surprisingly accessible to new coders. Unfortunately, the modding language was limited as it was never intended to be general-purpose. This limited not just what could be made, but what could be learned. For years I wondered what would happen if someone took that declarative style, and married it with the full power of imperative programming to make it unlimited? Would it lay down a path for someone to go from complete beginner to seasoned coder? That is what Easel is.
Getting it just right: It took 3 years of hard work to fuse together all of the seemingly opposed ideas of Easel. The Easel programming language not only merges declarative and imperative programming styles, but also bakes multiplayer into the fabric of the language itself. They say if you do everything right, it will look like you did nothing at all. So much of Easel looks simple, effortless and obvious but don't be fooled. It required a lot of thought and experimentation to get just right.