<Callout style={{ marginTop: 24, marginBottom: 24 }}>
  You will see on this website that I mention the number of GitHub stars{' '}
  <StarIcon style={{ display: 'inline-block', position: 'relative', top: -2 }} />, NPM weekly
  downloads <DownloadIcon style={{ display: 'inline-block', position: 'relative', top: -2 }} />, and
  years of inactivity if any (
  <SleepIcon style={{ display: 'inline-block', position: 'relative', top: -2 }} /> or <DeadIcon
    style={{ display: 'inline-block', position: 'relative', top: -2 }}
  /> ) for all open source tools. While this may seem like a numbers game, every tool that we pick in
  our stack is a commitment, and I tend to favor tools with larger communities that are more likely to
  stay maintained on the long term. But I may also use tools with smaller userbases as well if they have
  reached enough momentum or provide a great value.
</Callout>

Potential sponsors:

Poki, PlayCanvas, Dot Big Bang, Crazy Games

This document is an outline of topics, tools, and techniques around web game development, voluntarily excluding regular website topics. This page is available via webgamedev.com which will eventually become a proper website (via Nextra 2 and Sandpack). Note the topics covered here apply to both 2D and 3D games, and most of them are also valid for graphic applications that are not “games”, such as visual experiences in a broader sense.

I am a full-stack React / Node / TypeScript web developer currently learning gamedev and 3D. This page serves as my notes and roadmap, and it challenges me to explain the concepts I am learning along the way. This is my way to learn in the open and share my findings. It also shows my thought process when deciding what tools to use.

Please keep in mind that I am not an expert in any of those topics, so there may be inaccuracies. If you see something wrong, please let me know on the GitHub repository.

Legend

🔥 Structuring decisions

🙋‍♂️ Personal opinions