Games With Go

What Is Games With Go?

A video series that teaches programming via a series of small game related projects. The focus is on learning programming fundamentals, and having fun. Games with Go is open to all ages, and geared for beginners, though experienced programmers looking to learn gamedev basics will also get a lot out of it. You are encouraged to code along as you watch and to experiment and practice between episodes. All tools and libraries used are free, open source, and cross platform. You can follow along from Windows, Mac, Linux, and even a Raspberry PI! Pacing will be slow with fun but simple projects that we can finish in a day or two.

What does it cost?

It is free, and you may optionally pay $10 below to get access to the source code archives. There is a tagged release that matches each episode.



What do I need?

The first episode will cover all of the steps for setting up a development environment, but you can prepare ahead if you like. Everything will be done in a cross platform manner, so you are welcome to follow along from any operating system. You can download the Go compiler here. The stream will use the free, open source text editor VS Code which is available on all platforms and has a nice Go plugin, but you may follow along with any editor you like. A list of editors with specific support of the Go language is here.

Topics Covered

Setting up a development environment

How to edit text efficiently

Programming basics: variables, functions, loops, flow control

Basic data structures and algorithms

Text adventures

Parsing

How CPUs and memory work

2D graphics

Fractals

Procedural generation

OpenGL and 3D programming

Game Engines vs Frameworks vs Libraries

and much more!

Why Go?

The focus of this series is learning to program, rather than learning a particular language. Go has a nice simple syntax that lets us focus on the fundamentals rather than learning a lot of language features. Also, Go is easy to set up and use on Windows, Mac, and Linux, and is a popular language with a good ecosystem and decent performance. Unlike many other managed languages, it provides some control of how memory is used, providing opportuntiy to learn about that important topic. Go is also flexible in that it does not enforce a particular style of programming, so we can explore different idioms like OOP, composition over inheritence, and functional programming. After learning Go you will quickly feel comfortable transitioning to other languages whether they be C, C++, Java, C# or other popular languages. You are free to follow along using other languages if you prefer.

Who am I?

My name is Jack Mott, I have been programming for over 25 years. I graduated from Rice University with a computer science degree in 2001. My day job is web development and I make games and contibute to various open source projects as a hobby. You can find me on twitter.

background art by arcraven, gopher by Renee French