Skip to main content

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.

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:

In a nutshell, Easel is powerful enough to be interesting, but simple enough to be accessible.

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.

Easel provides a gentle slope for beginners to climb, peppered with small wins along the way to help them stay motivated.

Understandable code

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 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 state machines, which can be difficult to follow. In Easel, you can lay out your code step-by-step top-to-bottom, and so it is much 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

Lastly, one of the greatest challenges with concurrent programming languages 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, you could understand what's going on in an Easel game.

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. Easel lets you skip straight to the fun part.

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 is notoriously difficult, in fact it is so difficult that 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.

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.