How does Easel compare to Photon Quantum?
Photon Quantum is an incredible framework for making multiplayer games using rollback netcode, the same network architecture as Easel. In what situations should you choose one over the other?
No traps to fall into
Photon Quantum is a library that you use alongside the rest of your C# game code. When using Photon Quantum, there are certain rules you have to follow to make sure your game works correctly. You must only edit your game state via the functions provided by Photon Quantum. Particularly care must be taken when it comes to things like modifying collections. The functions are different from the usual APIs you would use in a non-networked game, and an inexperienced programmer may mistakenly use the wrong ones at the wrong time.
Easel, on the other hand, makes it impossible to make these kinds of mistakes because Easel bakes multiplayer into the programming language level. Anything that you do in the Easel programming language is multiplayer safe, and you cannot get it wrong. This makes Easel good for beginners, or for people who have less interest in learning the ins and outs of multiplayer programming.
Physics
Easel and Photon Quantum take different approaches to reducing the amount of data that needs to be snapshotted and rolled back to support multiplayer in the physics engine. Easel has a stateful physics engine whereas Photon Quantum uses a stateless physics engine.
Because Easel's physics is stateful, it is able to support a certain features that Photon Quantum cannot:
- Easel supports continuous collision detection, which means fast-moving projectiles will not tunnel through other objects. Bullets, fireballs, laser beams, and other fast-moving objects will all work correctly in Easel.
- In Easel, you can use functions like
QueryNearestat any time, as Easel's spatial index is always available. To do this efficiently in Photon Quantum, you need to register a request to perform a spatial query during the physics simulation, and then process the results of that query later when the results are ready. This can sometimes break up the flow of your game logic.
Easel is able to have a stateful engine because it only incrementally rolls back the changes to the physics state, whereas Photon Quantum is always rolling back the entire physics state. However, they have taken great care to make sure all their data is stored in linear memory so this is still very fast.
Integration with other engines
Photon Quantum is a library that integrates with other game engines, such as Unity. This allows it to use advanced features of those engines, such as physics and rendering.
Easel's rollback netcode only works in conjugtion with the Easel game engine. To make Easel accessible to beginner programmers, Easel has intentionally been designed to be a simple and easy-to-use game engine, a fantasy console of sorts. If you want to use 3D graphics, or write your own shaders, Photon Quantum is a better choice for you.