I am writing this post retrospectively as we are now in week 6. I intend to do something similar for weeks 3, 4 and 5 too as I don’t feel that I really got the value to be had from a lot of the material. I know that I posted a couple of things from the first time I looked through the material and I will painstakingly repeat them in this post. Ok, I’m not going to do that…
I had some other things to do at the time and then the app jam kicked off and things have been quite busy from there. I don’t like to leave things too long or the danger of slipping behind is quite real. Although I know that it’s not a requirement to write about each and every piece of information that comes through from the course, I feel that it really is the best way to extract what I need from it. However, when I do come across things that I just don’t find relevant to my personal situation, I will skip them.
All this talk about languages, platforms, frameworks and so on is an interesting set of content for me, as I have been in a bit of a bubble since deciding that I want to be a game developer and really nothing else. I have read both sides of the ‘focused’ argument (no references for that, you’ll just have to take me at my word…) that runs like this. One, you should be super focused on only the thing that you want burning all bridges behind you, setting fire to the villages and indeed the villagers you pass through and accept nothing but the realisation of the dream that you defend at all cost. Two, be so open that you barely know where your own eyebrows are most of the time and suck up as much information and knowledge as you can knowing that to have a direction is nothing more than The Man (even if that’s you) telling you what to be. I may have exaggerated a touch, but I tend to fall into the first category only less village and villager burning.
This weeks content then is a good opportunity to look around in spaces that are not a million miles away from the mission that I have already stated. Let’s get on…
Coding in what now?
I feel that I understand the content in this section well and there was nothing in here that was a shocker. I remember watching this for the first time in week 2 itself and thinking ‘ok, well, I’m keeping up so far…’. There was one piece of advice in the video that I will be acting on and that is that I need to learn more than one language. I am grateful that I have started learning C++. Having found out that’s quite a heavyweight language, I am comfortable that learning anything else will be a little smoother as a result. The next video talks about specific languages and I think that leads me neatly into the choice for language number two. The route that I have identified, with some help from some of the guys at the Games Academy is to start working in C++ for Unreal and reduce the use of Blueprint to as little as possible while also learning Unity and C#. I feel that this is the best choice for me at the moment as both of these languages are industry standard for games but are transferable to other realms of software development. If the dream does not pan out, I can always get work as a ‘regular dev’. The Wife will be thrilled. To do this I intend to complete small C++ exercises, making console games, migrate some of the functionality from Serial Link’s blueprint’s to C++ and download Unity. I need to find some good tutorials for Unity and just follow a beginners course for now as I have never even seen its interface. I’m sure I will pick it up though.
Although talking about architectures is interesting, I feel quite far away from the need to really learn and deeply understand the differences here. The reason is something that the good Doctor touched on in earlier material. There’s just so much ‘other stuff’, so many layers between me, the budding coder, and computers that I work on. I really don’t feel connected to the limitations or benefits of the architecture at all. I wonder if I would feel different should I have had more experience with different systems or perhaps systems in which the differences were more obvious. I have only used Windows for desktop computing and through the years noticed only the speed of operation as a variable and the fact that things just ‘work’ more now when they are connected. I suppose that once I had gained more experience in programming or do actually manage to start making a living as a game developer, I may become more interested in how the leverage hardware which would, of course, require that I more deeply understand it. But, until then, it’s still all about shouting at the screen because of pointers and memory allocation…
I have heard of Moore’s Law before and what is really interesting now is how that relates to the reality of atomic computing. I don’t know much at all about this and frankly to research it is to take time away from things I already do know I need, but having watched the Atomic Animation video and heard the developers there talking about where we are going with processing at the atomic level, there must be a limit. There just physically must be a limit!
The rest of the information is constrained by the same issue I talked about above, in that while it’s interesting, I just feel far away from really needing to learn about it deeply at this point. The only time I really catch up with hardware standards is when I am building a new PC and that is not often at all.
They are everywhere!
I don’t think I really appreciated just how prolific computer hardware is in our modern day lives. I say modern, but I remember the Furby toy the first time around! When the presentation began and was talking about the desktop PC and the laptop and so on, I thought yes, I can see all this coming. But, when considering tablets, smartphones, wearable technology, embedded systems, VR and the multiple flavours of all of those things, I suddenly realised just how far we have come. I still think that VR and AR have yet to show their best hand and I think that once the technology is more portable it will change the way we learn, interact, and relax. I hope that’s a good thing… There was nothing here to take me off the path that I have already decided on, although it was interesting none the less.
We better operate…
A very good friend of mine says that you can’t consider yourself a coder until you can write a driver in C. While I’m not sure that he is entirely accurate in that belief, I know what he is really saying. I think he means that it’s one thing to understand that words go in string variables and it’s quite another to have enough knowledge about how computer hardware and its operating system works to be able to control one with the other. While I understand what an operating system is in enough detail to explain it to the Wife, I don’t know how to do much more with it than that. I think that’s an error on my part and upon some thought, something that I would like to sort out. I think that the next stop there then is Pluralsight to see about an operating systems course or material along that line. I never really considered that before watching this presentation but, there is so much that I don’t know.
Ah, I think that this is my foot in the door then. So, frameworks are the ‘highest level of abstraction’. Or (now that I have read that back) is that exactly the opposite to what I think I need to do? I think that maybe a mix of both looking at a framework and taking a short course on operating systems would give me a better connection to how these things work under the bonnet. Unity is already on the hit list of things I want to learn, so to find out during the video that it’s based on a framework called Mono puts that high on the list also. I have recorded these things that I have identified and will be looking to make them into SMART goals shortly.
Coming back to this material, Git is very high on my list of things to understand, experiment with and utilise in my own practice. We have already completed the Game Jam task and my disappointing outcome in which I lost my Unreal project served to highlight my lack of version control habits. I feel now that I need to put on my big boy pants and get with the program. The version-controlled program. I have at this time, set up an account with Git, downloaded and installed the software, downloaded and set up LFS and also the GUI, Git Desktop. I am pretty confident that I have Serial Link under version control now on a private repository. I listened to Al and set up and ‘development’ branch for the work that I am doing and I have made a couple of commits to that branch. It seems straight forward enough and I think like most things, once I have used it a while I will relax into it. I think that the best thing I could do from here is set up the Hostage Rescue project again and try to rebuild it as a testing ground for version control. Intentionally breaking something and then rolling the project back would be a good exercise for me and I’m still kind of nervous about what to do should things go all wobbly while developing.