# Handmade Web Games (/guides/handmade-web-games)





One of the first questions game developers face when starting new project is often: "What engine should I use for this game?" For the web, ever since Flash died, the main options have been Godot, GameMaker, and the behemoth Unity. These engines give you powerful tools, workflows, and entire custom languages designed to provide an end-to-end game-making experience--usually at the expense of fine-grained control and lightweight builds. For many games, they're overkill.

***What if you skip the engine?***

Another option is to use a library in order to wrap browser APIs and, ideally, provide you with a more ergonomic abstraction to work with. There's anime.js for animation, tone.js for audio, p5.js for canvas drawing and events, and Phaser for all of the above. Having spent time learning these libraries and the underlying APIs that they abstract away, I'm here to tell you that the learning curve is about the same either way. So, why spend time learning an abstraction when you can learn the thing itself?

***What if you skip the libraries?***

Welcome to this guide. If you want to build web games without heavy engines, learn the fundamental techniques used in game development, and understand and use browser APIs directly, then this guide is for you.

## A peek at the upcoming chapters [#a-peek-at-the-upcoming-chapters]

These 16 chapters introduce the fundamental techniques used in 2D web game development. Many of them are still works in progress! If you'd like to contribute, point out mistakes, or otherwise join the discussion--stay tuned. Community involvement on GitHub and Discord is coming soon.

<HandmadeWebGamesChapterToc />
