The whole Unity debacle is a big mess, and I know that opinions are divided on whether or not it's a good choice to use going forward and just how badly they've shot themselves in the foot. But I'm not here to continue that discussion. Instead, I'm here to promote another alternative game engine: html52d.
Yeah, I know the name sucks. I should probably come up with a better one at some point. :stuckouttonguewinkingeye:
Here's the short version: html52d is a lightweight, high-performance, mobile-friendly rapid development library for building web-native 2D games, provided under a permissive open-source license.
Lightweight: html52d weighs in at around 100KiB of Javascript source code. Not only is it a small download, it's organized to try to keep the overhead down at runtime to leave more room for your own code to do its work.
High performance: The code underlying the performance-critical portions of html52d is hand-optimized to keep things fast. It tries to avoid doing anything you don't absolutely need it to do.
Mobile-friendly: html52d works in mobile web browsers and provides touchscreen controls in addition to keyboard and mouse controls.
Rapid development: Unlike Unity, Godot, Unreal, or most other well-known game engines, there's no build process necessary -- you can write code that runs directly in the browser, unmodified. You can use whatever tools you're comfortable with, and all you have to do is reload the page in the browser to instantly try out your changes.
Web-native: html52d is designed for producing web-based games, making it specifically suitable for game jams and interactive experiences for websites. This allows it to be optimized for the in-browser experience instead of shoehorning a desktop experience into a browser window.
Permissive open-source: html52d is provided under the MIT license. It is free for anyone to use, modify, and redistribute without requiring you to open-source your own code if you don't want to.
It's stable enough that I've shipped several jam games using it so far, and one person other than me has used it as well. But it's also still under active development, so I try to fix any bugs that come up and I try to make it more useful over time without violating the above principles. (Currently I'm adding WebGL support in addition to the current Canvas renderer, which should hopefully improve the behavior on mobile devices.)