Indie game designer here with a long history of self-education. My history isn't really applicable any more but it may help with your journey.<p>With an interest in comic books and cartoons, I began practicing animation in the margin of my paperback books. Flip-books got me interested in Flash, and I spent some years learning basic frame-by-frame animation. Setting up menus and basic playback controls opened the doors to ActionScript, which got me started with choose-your-own-adventure animations. As I experimented with basic game mechanics, I started to play more games, and eventually turned to Java to learn "real" programming, where the concept of game loops and loading external images was introduced. After practicing on and off for years, Unity appeared and opened the doors to 3D game development (I was taking a computer graphics course in college around this time as well). I took some time to read up on level design, since I never really worked in 3D space prior to this. Since then, I've picked up bits and pieces of incorporating stronger media (textures, music, sfx) and polishing the user experience (more attention to the GUI and overlays). Most recently I've added analytics and other metrics to improve my understanding of how users behave. Funny enough after all that, now I'm designing tabletop games.<p>That's my journey, at least.<p>Comic books -> Cartoons -> Paper animation -> 2D Digital animation -> Scripting games -> Developing games -> Using external assets -> 3D games -> Level design -> Low-level concepts -> Polishing media use -> Polishing GUI -> Analytics -> Tabletop