Hi, I'm Michael.

Near the end of 2016, I left a full-stack Python position, and jumped in head-first into my two passions: education, and indie video games. When I'm not teaching a web development bootcamp at UC Berkeley Extensions, I'm making rookie mistakes with game dev so you don't have to, and writing this blog about what I learn along the way! I hope it'll be useful for others considering a similar path, or interested in getting started with indie game development under Linux. If you want to contact me, click here to answer a captcha and expand my email address: [email protected] ⚹ .com

Excluding drivers in the OS, my game dev stack is 100% free software.

If you are curious, this is what I use:

  • OS: Linux (Ubuntu 16.04)
  • Engine: Godot - a free and open source 2D and 3D game engine
  • Artwork:
    • Inkscape - top notch SVG / general vector graphics editor
    • GIMP - raster editor, comparable to Photoshop
    • Krita - sketching and painting program for digital art
  • Music and audio: KXStudio suite - I wrote a blog post on why
  • 3D Assets: Blender - industry standard 3D graphics software
  • Editor: I'm already a fan of the notoriously-hard-to-learn-but-powerful vim, so I use that instead of the Godot IDE
  • Blogging and streaming tools:
    • Live streaming: OBS Studio - truly the best, I use both OBS for Twitch and for recording lessons at UCBX
    • GIF recording: Peek - dead simple GIF maker
    • Screenshots: Shutter - very handy and screenshots and annotations

If you want to get started with Linux or free software indie game development, then check out this blog post on it.


My stream

A few people have expressed interest in watching what I do in my day-to-day game development, and coding in general. Perhaps they find it educational for their own coding education because of my use of Linux and "more advanced" coding tools such as vim, or perhaps they just find the game development process fascinating. This gave me the idea of streaming while I work! I also hope to get people interested in the games I'm developing so that I can get immediate feedback in the features and decisions I'm making... essentially involving the player community in the very earliest steps of the process. Exciting!

I will try to stream every Monday and Friday. If I'm streaming right now you can watch me below. If not, you can simply watch my previous recordings: