Indie game developer attempts real programming
Tags: codenewbie, webdev, java, vaadin
Published: 2020-01-10 11:44:26

I knew the gaming industry wasn’t for me even before I finished my studies. However,  I carried a firm belief that the skillset required to craft video games is applicable in other computer oriented fields.

"It’s just programming, right?"

Well, no. My experience of writing code in a game engine with visual building to aid the development is only touching the surface of the vast sea of “programming”.

Video games can of course be incredibly complex software at their peak, and some popular titles, such as Markus Persson's masterpiece “Minecraft” that sold to Microsoft for $2,5 billion, were originally written in Java. 
Yet the idea of programming a simple web application from scratch was more frightening than intriguing in my narrow comfort zone.

It’s easy to install a game engine, such as Unity, by looking at games similar to what you’re making and installing the engine used. Unity runs scripts written in C#, so there’s no need to worry about what programming language to write or where to write it thanks to the native Visual Studio integration. 
But using this same method to choose an IDE and all the plugins required to best build your specific application is a challenge - especially if you are unsure of what you're building in the first place!
There are similarities in the subjectivity of choice between a game engine and an IDE, but he spectrum seems a bit too wide for someone who hasn’t already tried several of them. 

The best option was was to learn by personal trial and error:

Luckily, as in game development, the documentation for programming just about any application is comprehensive with multiple outlets overflowing with information (often for free). There are also several features and plugins, such as code completion, that helps overcoming the initial struggle. After finally tipping my toes into “real” programming, the amount of available help covered all questions I had. 
Furthermore, there are several active forums with people discussing these subjects; so far any question I could come up with had already been asked and answered. 

When it came to actually producing code, the lack of visual building such as the noob friendly "Blue Print" system of Unreal Engine made it difficult to see all the connections within the code. It was difficult to read... like learning to read for the first time.

Now, imagine going from elementary school to high school: it's the same crap in a new environment and you are slightly older than a few months ago. That's it!

This was exactly how my coding rite of passage felt as soon as the fear of the unknown vanished along the childish desire to be good at everything you've tried.

Reading up on and trying the syntax of Java while designing the UI with Vaadin is similar to game design even though the process occurs in a different setting. I spent a couple of relatively fun days on learning, which already then made me cringe at my first attempts indicating clear progression. Soon afterwards, my first web application was up and running. 
It became a breeze to adapt and iterate on something I’ve already done instead of blindly navigating through the fog of something completely unfamiliar. This includes learning new programming languages/environments/tools or anything at all, really.

So what’s the takeout of this subjective, specific and short blog post? As cheesy as it sounds, your bank of knowledge can always be expanded and adapted into new things. 

The road of learning is paved and it leads everywhere - all you need to do is keep on walking.

Until next time,
Mikael