Skip to main content

Why Easel?

Easel is a 2D game programming language that makes multiplayer as easy as singleplayer. Whether you are a beginner or expert coder, you'll love making games with Easel!

Key benefits of Easel:

Easel is truly a game-changer! Try our Quickstart tutorial to see Easel in action!


Effortless Multiplayer

Why multiplayer is hard (but not with Easel)

Multiplayer game development is notoriously difficult, requiring expertise in networking, synchronization, and prediction. It can take years to master these concepts. That is a lot of time when you just want to make a game!

Easel eliminates these challenges by letting you code multiplayer like singleplayer. Write your game logic as if all players are in one shared world, and Easel handles the rest automatically. You can focus on making your game fun!

info

How does Easel make multiplayer so easy? Easel has its own programming language that was designed from the ground up for multiplayer. Other game engines use existing programming languages that cannot guarantee certain multiplayer requirements like determinism or serialization. While experts can work around these limitations, Easel's programming language eliminates these challenges entirely, making multiplayer easy for everyone.

Mistakes are impossible

The difficulty with multiplayer is you cannot miss anything. If even one part of your game is not multiplayer-compatible, then your entire game desynchronizes. It is easy to get wrong.

Unlike other game engines, in Easel, you cannot get multiplayer wrong because the multiplayer is built into the programming language itself. Every single line of code you write in Easel is imbued with multiplayer, completely automatically. That is why anyone can make a multiplayer game in Easel, even on their first day of coding.

Rollback netcode for smooth gameplay

The speed of light is not as fast as we would like it to be.

When you play a multiplayer game, your computer has to send and receive messages from other players. This takes time, and the further away the other player is, the longer it takes. Players feel this as lag, which makes the game feel unresponsive and frustrating.

Easel uses an advanced technique called rollback netcode to erase lag and make multiplayer games feel smooth and responsive, even when players are from different corners of the Earth. You don't need to do anything special to use rollback netcode in Easel, it just works.


Coding for Humans

Most game engines require you to organize your code in the way the computer executes it. Normally, this requires inverting your code into a state machine to match their frame-by-frame update loop model. Easel is different.

Behaviors

In Easel, instead of splitting code into frame updates, you split your code into behaviors, which better matches how a human might think of an ever-changing dynamic game world. This lets you express your game logic in a more natural way, like this:

on ButtonDown(KeySpacebar) {
Spawn projectile { Fireball }
await Tick(3s)
}
  • Logic flows top-to-bottom, making it easy to follow.
  • No need to split your code into convoluted frame-by-frame state machines. While other game engines require you to save and restore state to cross frame boundaries, in Easel your code can simply await for the next event to happen before continuing.

Automatic cleanup

An Easel game normally consists of hundreds of entities, each with their own behaviors, all executing concurrently.

While other game engines have concurrent coding features like Easel's behaviors, people avoid them! Why? It is too easy to forget to clean up. Imagine a fireball's animation continuing to play after the fireball has been removed. This would crash your game!

Easel prevents this common bug by automatically stopping behaviors when their parent entity is removed. The parent entity is determined by the hierarchy of the code, which means it is impossible to forget to clean up after yourself.

Spawn fireball {
on Paint { Spark(...) }
on AfterCollide { Expire }
}

In this example, the on Paint and on AfterCollide behaviors are automatically stopped when the fireball despawns, simply because they are inside the Spawn fireball block.

  • Behaviors live and die with their parent entity.
  • The parent entity is determined by the hierarchy of the code so you cannot forget.
  • No risk of rogue behaviors causing crashes.

Easel's hierarchical behaviors are a safe way to organize your game logic into small sequential pieces. Easel lets you code in a much more natural way.


Beginner-Friendly

Beginners will find Easel a much more engaging way to learn to code because everything you make can be played with other people. Learning to code is much more fun when you can share your creations with friends and family.

Start coding instantly

Easel is web-based, so you can:

  • Start coding immediately without installing anything.
  • Use it on any device, including Chromebooks.

Experienced developers can still use their favorite text editors.

Learn by remixing

Every Easel game is remixable:

  • Start with an existing game you love.
  • Make small changes and see the results instantly.
  • Gradually build confidence to create your own games.

A Complete Toolbox

Everything you need

Easel includes built-in tools for:

  • Graphics, audio, physics, and user interfaces.
  • Persistence
  • Multiplayer support
  • and more!

No need for additional tools - everything is included.

Instant publishing

Deploy your game to the web with a single click:

  • Share your game instantly with friends or the world.
  • Update your game on the fly.

Easel's multiplayer servers host your game for you so you can focus on making your game.


Ready to start?

Easel makes game development fun, accessible, and powerful. Whether you're a beginner or an expert, Easel has something for you.

👉 Try the Quickstart tutorial and start making games today!