Why Easel?
Here are some reasons why you should consider using Easel to make your next game:
-
Want to make a multiplayer game, but don't know where to start? Easel makes your game multiplayer automatically!
-
Easel has a unique approach to programming that lets you express complex game logic in a simple and natural way, allowing you to be more productive.
-
Easel is an all-in-one platform with every part of the game development process built-in, from coding to publishing and sharing your game, all in your browser, with no installation required. This makes it especially beginner-friendly.
Whether you are a beginner or an experienced programmer, you'll have a lot of fun making games with Easel!
Try our Quickstart tutorial to see what Easel is capable of for yourself.
Effortless Multiplayer
Multiplayer can add a new level of fun and meaning to your games. Unfortunately, multiplayer is possibly the most difficult part of game development, often requiring years of programming experience. You have to deal with issues like synchronization, authority, prediction and networking. That's a lot to learn with when you just want to make a game!
Easel lets you code multiplayer like singleplayer. Code as if all players are in the same game world, and Easel takes care of everything for you. You can focus on making your game fun!
Mistakes are impossible
Even once you learn how to make a multiplayer game, part of the difficulty with multiplayer is you cannot miss anything. Everything needs to be done in a multiplayer safe way. If even one part of your game is not multiplayer-safe, then your entire game desynchronizes. In a game made of tens of thousands of lines of code, it is easy to get something wrong, even if you know what you're doing.
Unlike other game engines, in Easel, you cannot get multiplayer wrong because the multiplayer is built into the programming language itself.
Easel makes multiplayer so easy, you can even do it on your first day of coding!
State-of-the-art netcode
Easel uses an advanced client-side prediction technique called rollback netcode to make multiplayer games feel smooth and responsive, even when players are far apart.
Our rollback netcode implementation is highly advanced, with incremental snapshotting and rollbacks to maximize performance, peer-to-peer connections to minimize latency, and more. The best part though is, you don't need to understand any of it! Just code as if all your players are in one shared world, like a singleplayer game, and Easel takes care of the rest.
Hosted multiplayer
With just a few clicks, you can publish your game to Easel's servers and have it be instantly playable by anyone in the world. No need to worry about servers, domains or deployment pipelines!
Productive programming
Most game engines require you to organize your code in the way the computer executes it. Easel is designed to match how you think. To this end, Easel has a reactive, asynchronous and event-driven programming style, which lets you express complex game logic in a simple and natural way. You'll be more productive and will be able to make bigger, more ambitious games in less time.
Asynchronous
Often, game engines use a frame-by-frame model, even though many things in games live for longer than a single frame. This forces you to rearrange your code in order to carry state from one frame to another. This can make your code hard to read and understand.
Easel is an asynchronous programming language, which lets you write straightforward step-by-step linear code that flows from top-to-bottom, even when some steps take more than one frame to complete:
await PlayLevel1
await PlayLevel2
await PlayLevel3
loop {
await PlayAsteroidRound
await PlayInvasionRound
await PlayBossRound
await PlayUpgradeRound
}
on ButtonDown(Click) {
Spawn projectile { Laser }
await Tick(0.5s)
}
Event-driven
Easel is an event-driven programming language, which means that normally your code waits for events, like a button press, a collision, or a timer, and then runs in response to those events.
In the frame-by-frame model used by other game engines, to detect when a button becomes pressed, you need to check the button state every frame and compare it to the previous frame. The event-driven model used by Easel lets you write code in a more natural way, where you can just respond to the event when it happens:
on ButtonDown(KeySpacebar) { Jump }
on AfterCollide { ExplodeIntoSmithereens }
on Tick(1s) { Strobe(fade=0.5, dissipate=0.5s) }
Reactive
At the heart of every game is state - the position of the player, the health of the enemies, the score, and so on. When that state changes, you want your game to react to those changes.
Easel is a reactive programming language, which means you express which code depends on what state, and Easel automatically reruns the code when that state changes. Once you have set up all your state dependencies, you can forget about them and just focus on the game logic.
For example, in Easel, this is how you would code a health bar that changes color based on the player's health:
with Health {
PolygonSprite(color = (Health / MaxHealth).Mix(#ff0000, #00ff00))
}
Now if you change Health anywhere in your code, the health bar will automatically update to reflect the new value.
You might be changing Health in a collision handler, or in a healing behavior, or in a powerup behavior.
It doesn't matter! The health bar will always be up-to-date and you never need to worry about it again.
Beginner-friendly
Easel was designed to be a great choice as your first programming language.
No installation required
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 a huge obstacle 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!
One-stop shop
Everything you need to know about Easel is explained in one place - the Easel documentation (which you are reading right now!). In other programming languages you may sometimes need to find and learn a number of third-party libraries in order to make a complete game. Even just finding these libraries can be a challenge for beginners. With Easel, it is easy to find and learn everything you need to know in one place.
Learn by example
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.
Shareable
Once you have made your game, sharing it with others is as simple as sharing a link. Your friends and family can play your game instantly, without needing to install anything. Sharing with other people is a great way to stay motivated.
An excellent next step after Scratch
Many people start learning to code with Scratch, which is a visual programming language that lets you drag and drop blocks of code to make games. Easel actually is surprisingly similar to Scratch in terms of programming language design, but Easel also has a built-in physics engine, built in multiplayer support, and many more advanced features that make it a natural next step after Scratch.
Scratch is more similar to Easel than it is to traditional text-based programming languages like Python or JavaScript. Both Easel and Scratch are made up of entities with behaviors that execute concurrently (Scratch calls them sprites). And you can send signals between entities to synchronize their behaviors (Scratch calls them broadcasts). Neither Python nor JavaScript have these features built-in. Easel is a lot more similar to Scratch than most people realize!
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.