Comment by BSTRhino
Comment by BSTRhino 2 days ago
I'm making Easel, a 2D game programming language designed to match how humans, not computers, think about game logic. It also has automatic multiplayer. I've been working on it for 3 years!
Easel feels like a declarative programming language even though it is imperative, because lots of useful game-oriented features are first class. Like behaviours - you just say `on Pointer { ... }` and you have a concurrently-executing coroutine that's lifetime is managed. But you don't think about any of that complexity, you just think of your entity as having a behaviour and go forth and make your game.
It also happens to have automatic multiplayer. Normally with multiplayer you have to worry about doing everything in a "multiplayer safe" way (i.e. be deterministic and only modify the things your side has authority over). My idea was to put all the multiplayer stuff in the programming language itself, underneath all your lines of code. This way, anything you write in that programming language can just be made multiplayer, automatically. So you can just pretend all your players are in one shared world, like a singleplayer game, and the engine does all the multiplayer for you. It was really difficult to make but it makes multiplayer so easy for you now.
Easel is my idea of how games should be made, or at least as close to the idea as I can achieve with 3 years of work, and I would love for more people to try it out.
> you can just pretend all your players are in one shared world, like a singleplayer game, and the engine does all the multiplayer for you
But how does this really work? The website also says it's just baked into the language but there are many different approaches to networking games that have their own pros and cons.