Lately I have spent a considerable amount of time thinking about where I want to go in my career and what sort of things do I want to work on going forward.
This is a series of multiple parts, if you liked this post then checkout the others:
Before you think about where you want to go next sometimes it helps to think about where you have come from.
When I was 7 years old I coded my first game. I loved the thrill of turning a meer figment of my imagination into something I could see on the screen and delight when shown to others.
At 18 I went to University and studied Computer Games Programming and loved every second of it, far surpassing my performance during high school, eventually graduating with a first degree with honours.
For the next 10+ years I proceeded to work in the games industry first starting in the flash games world then social games before moving to mobile.
Games are not the only thing I have been interested in over the years as this blog certainty can attest to. However games are definitely my core competency.
So when you are in an industry that moves so fast with so many new technologies being released every day, it can be really hard to know where to spend your time, particularly for someone like me who "just cant stop tinkering with things" ™.
Machine Learning (ML) is one of the biggest technologies to emerge over the past couple of years. I honestly think that ML has the power to transform every single industry from finance, to agriculture to sports science.
I also think that the games is no different from the others and wont be spared from its transformative effects. Some think that the games industry is safe because its a "creative" industry and thus not susceptible to being replaced by a logic driven machine.
Instead I see a future where an AI is capable of generating an entire game based on your preferences such as "I would like a game that plays like Mario but has the same size and scope as World of Warcraft", the AI then generates variants on that for you to play.
Machine learning opens so many potential possibilities and opportunities for someone with the idea and ability to explore them.
So with that in mind I think that it behove me to at least consider exploring ML a little more.
But will I enjoy it? This is a major concern of mine. From what I have seen thus far, machine learning is very math heavy, invloves a lot of Python (dynamic programming, shudders) and isnt particularly visual. All negatives for someone who isnt great at maths, doesnt really like dynamic languages and is a games programmer.
I am also concerned that this I will basically be starting from scratch again. All my games programming knowledge counts for nothing. Will I be able to adapt to this new set of problems, solutions and tools?
So I think only way to know for sure tho is just to try it and see and the best way to try is to tinker! ™
So over the next few months im going to dig deeper into machine learning. Try to understand it how it works and how it applies to game development.
Im going to blog each step of my adventures. This serves two purposes, firstly I find that writing things down really helps me understand things at a deeper level and secondly I hope that if I dont do a terrible job at explaining it will help others to learn too.
Im going to call this series of blog posts "A Game Developer Learns Machine Learning".
The goal for the series is I want to be able to write an AI that is able to play my game Mr Nibbles Forever better than any other human player.
I have no idea if thats an achievable goal but I think its a goal that should give me a solid understanding of the fundamentals of reinforcement learning and give me a target with which to focus on and guide me through this dense but wonderful topic.
So if you are interested in following along, either add this blog to your favourite RSS reader or enter your email below to subscribe and get email updates.