Why Easel?
Easel is a 2D game programming language with multiplayer baked in. Easel is both a great way to learn to code, and a streamlined tool for experienced developers. Easel is also the perfect tool for teachers who want to introduce their students to text-based programming in a fun and engaging way. Try our Quickstart tutorial to see what Easel is capable of.
Making games is hard. Easel tames the most difficult parts of coding games, and gives you simple, logical building blocks that let you get straight to the fun part. Even if you've never coded before, you can make games with Easel.
This page will cover some of the key features that make Easel unique:
- Hierarchical, concurrent and event-driven programming allows code structured for humans to understand.
- Online multiplayer is effortless because it is baked into the language, while Easel's efficient rollback netcode implementation allows performant play across continents.
- Remixable games, a web-based development environment and contextual programming enable a gentle learning curve for beginner coders to climb.
- A complete toolbox with built-in graphics, audio, physics, user interfaces, persistence and more, so you have everything you need to make a game. You can even deploy your game instantly to the web with a click of a button.
In a nutshell, Easel is powerful enough to be interesting, but simple enough to be accessible.
Code structured for humans
In other game engines, you have to lay out your code the way the computer executes it, which is not always the way that makes sense to humans. This can make it difficult to follow the flow of your code. Beginners can get lost easily!
Easel is different for a few reasons.
Concurrent and event-driven
First, Easel is both a concurrent programming language and an event-driven programming language. Imagine a multiplayer game where you have players running around, fireballs flying, monsters attacking, and so on. Easel's concurrent programming model allows each of these independent behaviors to be kept separate, while its event-driven model means you write them in a linear step-by-step way. Other game engines tend to organize code on a frame-by-frame basis, requiring you to unnaturally split your code up into frame-by-frame state machines, which can be difficult to follow. In Easel, code can be organized for the humans who read it, not just the computer that runs it, and so it can be much more logical and easier to follow.
Hierarchical
Second, Easel is a hierarchical programming language, which means that blocks can contain subblocks, which can contain further subblocks. This often matches the natural structure of game logic. Think of a spaceship, which might have a hull, engines and blasters. Each of these parts may have collision handlers, input handlers, particle emitters, animations, and so on. In Easel, you can lay out your code in a way that matches this logical hierarchy, which makes it much easier to follow.
Predictable lifecycles
Concurrent programming can make your code so much more understandable, but one of its greatest challenges is that all those free-running threads of logic must be stopped at the right time. If left to run amok, they can cause all sorts of bugs and errors. Think of a fireball's animation continuing to run when the fireball has already hit something and disappeared. This could crash your game! In Easel, every concurrent behavior lives and dies with its entity, which avoids these problems entirely. Best of all, you can see at a glance which behaviors are part of which entities because they are all laid out in a hierarchical way. In some game engines, people shy away from using concurrent programming because of their potential for bugs, but Easel takes this powerful programming model and makes it safe and easy to use, even for people who have never coded before.
Easel's hierarchical, concurrent and event-driven programming model is designed to make it easier to follow the flow of your code, even if you have never coded before.
Effortless multiplayer
Making multiplayer games can be great for a number of reasons. They let you play with friends, which can be motivating. Multiplayer games can also be smaller because the other humans make the game interesting, and so there is less need to create large amounts of content like in singleplayer games.
Unfortunately, making online multiplayer games is the pinnacle of complexity in game development. Normally, you have to deal with issues like synchronization, authority, prediction and networking. For beginners, multiplayer games are often completely out of reach. Even for experts, multiplayer games can be a huge amount of work. Often, even professionally-made games forgo multiplayer entirely because it is too difficult!
In Easel, multiplayer is baked into the programming language. This means making a multiplayer game in Easel is almost as easy as a singleplayer game. The magic of Easel's multiplayer is that it uses rollback netcode, a clever technique which not only creates a smooth experience even for players on different continents, but also means you can code as if all players are inside one shared game world. Easel takes care of all the networking and synchronization for you, so you can focus on making your game fun.
Implementing rollback netcode for a concurrent programming language in particular is notoriously difficult because you need to roll back all the concurrent threads correctly. We are not sure if it has ever really been done before. But it has been done in Easel, and it works really well.
Easel makes multiplayer so effortless that anyone can make multiplayer games, even if you've never coded before.
Beginner-friendly
Remixing
Every Easel game can be remixed with a click of a button, which is a great way to learn to code. Instead of being overwhelmed by the blank page of a text editor, you can start with a game that you already know and love. You can then change the game in small ways, and see the results immediately. As you get more confident, you can make bigger changes, and eventually you can make your own games from scratch. There is no need to learn everything at once.
Web-based
The first hurdle to learning to code is often the installation process. Other programming languages require you to download and install a text editor, the programming language's runtime, and so on. This can be daunting for beginners. Because Easel is a web-based game engine and development environment, you can start making games immediately without installing anything. You can even use Easel on a Chromebook, which is perfect for schools.
If you are experienced with coding, you can still use your own text editor if you prefer!
Easy experimentation through context
In games, sometimes there is a lot of wiring code that you need to write to connect one thing to another. This can get tedious, and can make the code difficult and tiring to experiment with. Easel is a contextual programming language. That means that when you call a function, it can automatically pull in the data it needs from context. A sprite can look at its context and automatically know which entity it is attached to, what color it should be, its position, its size, and so on. This feature is something that is unique to Easel and not really found in any other programming language.
This makes it much easier to experiment with your code. You can copy and move blocks around to see what happens, and Easel takes care of the wiring. For beginners, this removes stumbling blocks and helps them learn through creative exploration.
Easel provides a gentle slope for beginners to climb, peppered with small wins along the way to help them stay motivated.
A complete toolbox
Batteries included
Easel has all the features you need to make a 2D game.
- The graphical system can not only render sprites, shapes, text, but it also has flourishes like particles, blooms and glows right out of the box. Easel is about making your game shine with minimal effort.
- You can import your own sounds, but you can also synthesize your own sounds using Easel's built-in synthesizer, which is great for people who have never made sounds before.
- Easel comes with a powerful reactive user interface system. Create menus and HUDs using a declarative syntax that can dynamically update when underlying data changes.
- Easel has a built-in physics engine, so you can make your game feel real. Physics is a simple way to make your game more interesting, because it is something people intuitively understand, allowing you to create complex interactions with minimal effort.
- In addition to this, Easel also has built-in systems for persistent storage, enabling you to create leaderboards and progression systems for your game.
Everything you need to make a game is here.
Instant deployment
Once you have made your game, the next challenge is sharing it with others. For a multiplayer game, this would normally involve wrangling with servers and deployment pipelines, but with Easel, publishing is as simple as clicking a button. One click and your game is live on the web for anyone to play. You can then share the link with your friends, and they can play your game instantly. You can even update your game on the fly. Easel takes care of everything for you.
Summary
Easel's way of making games is unique. It is powerful enough to be interesting, but simple enough to be accessible. It tames the most difficult parts of coding games, and gives you simple, logical building blocks that let you get straight to the fun part. Even if you've never coded before, you can make games with Easel. Easel is both a great way to learn to code, and a powerful tool for experienced developers.
If you want to learn more, try out the Quickstart tutorial.