Following on from the interview, the detailed feedback from the games company has given me a lot to think about. Specifically in the following areas:
- Getting to grips with more varied C# code
- Build some small, self-contained games
- Read up on SOLID principles
- Using versioning and project management tools at home
- Improve maths skills for 3d games
C# has come fairly naturally to me since a large part of my degree was in C++. Each of the Unity tutorials that I purchased have shown different aspects of C# and how. I’m guessing the best way to improve on this is just to immerse myself in the code with the attitudes of “you don’t know about all the things you don’t know” and “there’s always something new to learn”.
Small, self-contained games are trickier than I first thought, you want to be able to show off your programming, but also want to come up with an original game. I’m going to have to have a think about this one. I have some ideas, but they could be classed as bigger projects. I also don’t just want to replicate games with code through tutorials. What I am going to do is program games using tutorials and then attempt to apply new and different code that I have written. This may prove tricky at first, but as I go through more and more tutorials and learn more code it should become easier.
SOLID Principles of OOP
This is the theory behind , I’m not going to go to much in to it here, but instead point you towards Hacker Noon who has a good write up of the principles. To summarise, these principles make object oriented programming more efficient, allowing the programmer to develop, adapt, scale and reuse code. These principles are what has made OOP so fast-moving and developer-friendly.
Project management tools
I needed to get organised, so this week I’ve spent time deciding on a tasking tool. My shortlist eventually was whittled down to Asana or Trello. I’ve only just scratched the surface by starting to look at Asana, but I can see that it is doing the job for me, and helps with the way my mind works (generally flitting about between different tasks). I’ve got a few projects on the go at once and this helps me to see where I left each project when I return to it.
Using Asana has been working well. In particular the app is handy for when I think about something to do or add to a project and it quickly allows me to add it. Getting used to using it took a bit of time but I’m starting to find it more and more useful as I go along.
Everyone knows GitHub right?! Now that they have “private” repositories, I started to use this to version my work. There is a handy Unity plugin that works fairly well, and while this was new to me, I found it fairly straightforward to set up and use. It’s odd using it for small, personal projects, but getting in to the habit of using version control can only be a good thing.
Maths used in games
Another one of the suggestions was to build on my 2d and 3d maths. I’ve taught maths before and am comfortable with maths to a high level. However, specific maths used for 3d games is another matter.
I was directed specifically to https://handmadehero.org/, which is something I’d come across before, but I was late to the party and so never really gave it a huge amount of focus due to the sheer scale of it. There are hours and hours and hours of videos of these guys showing the whole process of making a game, the. The difficulty with this is time, committing time to watching the videos and learning the whole process is difficult, so what I did was to start at the “Day 41”. Each video is still around an hour and a half which is still a weighty commitment for something that essentially you are just watching / following. I’m planning to watch around 2-3 of these a week, to build up my functional maths in a games environment.
As you can see, there is lots for me to work on, splitting up my time whilst trying to juggle life and an income is going to be tough. It still seems achievable, but the timeline could be difficult.