All Work & No Play – Taking Time to Code for Fun

“Fun” and “creativity” probably aren’t the first terms that come to mind when you think about someone developing applications. But a healthy flow of creativity and fun is a must to maintain any sort of balance and sanity.

Hopefully, your day-job is like mine: full of interesting technical hurdles, various technologies, and new customer domains to learn and explore. I work hard with some of the best makers in software to build great software products for our customers.

But with such high stakes comes pressure.

A great way that I have found to relieve some stress and have fun while still enjoying your craft is by writing games. As we at Atomic do not often get asked to write games professionally, they offer a completely separate domain from all things officially “work”. I love getting to learn and play with new things, and game dev offers a chance to do just that.

Let’s look at a little toy that I’ve been playing with recently. It’s a procedural world generator.

hina_day_small

This procedural world generator prototype is written in Ruby using the Gosu Rubygem for visualizations. I got to learn about Perlin noise generation and how to map that to a 2D terrain map. I learned how to handle randomness correctly to recreate worlds based on a single seed. I got to play with simple shaders for lighting effects.

This prototype includes code that generates simple towns and uses A* path-finding for road building. This little toy has given me an excuse to to learn and practice all kinds of algorithms and libraries.

hina_night_small

At the end of the day, I enjoy my work, but I have more fun using my skills to be creative. I can build pieces of art, random worlds, or video games for my kids. All this allows me to stay excited about programming and learning new things.

Try adding a splash of creativity to your day.