Catching up on Week Twos bits and bobs.

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.

Architectures

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…

Processors

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!

Read about this tiny IBM CPU here

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.

Frameworks

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.

Git

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.

Mobile App Design and Prototyping Lecture

This will be new to me really as although I have a very small amount of experience in Photo Shop, I have zero in Adobe After Effects. I used to run a commercial website for my clothing shop in London and I did the product photography for that, so the only skill I needed in Photo Shop was cutting the shots out to apply a white background. Very exciting stuff (yawn…). This lecture will be worth a look for me!

Already, I have learned a new term. The ‘Connect screen’ which is the very first screen that the user is going to see. Then, an introduction to a cool site that I never thought would exist but could be very useful to me! Subtle Patterns. I think that I could use this for game development although I would need to check the licensing first.

Learning a little about layout and PS

I have been thinking about buying a graphics tablet for a little while now and although that’s not needed in the lecture that I am watching (not yet anyway), seeing these simple things explained is making me want to take image creation a little more seriously. The only thing is that there are only so many hours in the day! I am a sucker for focusing on too many things and that is only just calming down for me now in my old age so I need to be vigilant so as to not catch the ‘Im the exception’ bug, and think I can do everything! Another outstanding term learned… Hamburger Menu, excellent 😉

Although I don’t have Photoshop and frankly I don’t have the time today to sort that out and follow along with the lecture, it’s very enlightening to watch the presenter use all the tools and settings that to the layman (me) looks complex and overwhelming. It’s obvious that he is very skilled and I am learning a little about how to visualise the work that he is doing. I mean that in the same sense that I have experienced with coding. The most important part of learning to code does not seem to be learning the syntax and so on, but more learning how to think about the problem you are solving. I am enjoying watching him compartmentalise the structures that he is creating and gives me an anchor to hold onto when I do take to plunge into image manipulation.

The Scary Panel. Also known as the Layer Confusion.

Watching the presenter prepare the PS document for importing into AE, it became clear that it’s so important to learn from someone that has ‘been there and done that’ as often as you can. All he is doing is merging elements of the PS design into fewer, logical groups so that when its imported to AE is much less clutter to deal with. If only kids knew how expensive in time, effort and often money, it is to ‘make your own mistakes’ they would listen more to the people that have already walked that path. I know that what he is showing in the lecture is trivial but the first thing I thought about was the hour that it cost me trying to edit text on an Unreal UI widget. I didn’t know that I needed to make the widget editable, clicking on a checkbox. Experience is worth so much and any way to accelerate its acquisition is worth exploring.

A nice animated mock-up of the app.

I really enjoyed watching that and I am comfortable that some of the things that I have been learning in HitFilm will translate well into other applications of a similar type. Watching the content on keyframe animation and having had a little experience with that both in Hitfilm and Unreal I am keen to get my hands on Maya and try my hand at character animation. I feel that one of the areas most lacking from Serial Link is custom animations that could really show and emphasise what’s going on.

Thanks for reading and if you got this far, stand up and stretch your hamstrings.

The Atomic Animation

IBM in atoms.

I left off on the last post having found out about an atomic animation. I have to talk a little about that! I just had no idea that we are at that level, which is a little naive really considering the atomic bomb and the Hadron Collider. I am watching a little ‘how they made it’ video on YouTube which you can get to here.

The short documentary talks about how they achieved this incredible task in which single atoms are moved across what looks like a mesh of ball-bearings that I presume are other single atoms and in reality a perfectly flat surface. First, the whole scene must be in an environment that is -260 odd something degrees Celsius so that they stop moving. The researchers are then able to use a machine that houses magnet to very precisely move a single atom across the lattice-like structure so as to shoot another frame of animation. The researcher talks about being able to actually hear the grinding and the thud of the atom moving! That sounds pretty dangerous to a ‘normal person’ like me but the fact that IBM has not been blown to bits at this time (and yes, a quick Google confirms that…) tells me that they know what they are doing.

The machine used to make this tiny masterpiece.

Its the scale of it that just blows my little mind. The image is seen through a microscope that zooms in 100,000,000 times. A hundred million. He also says that if an atom were the size of an orange, then an orange would be the size of the Earth.

Moving Atoms: Making the worlds smallest movie

Of course, it’s not about trying to build a tiny competitor to Disney. The research team are trying to figure out how to leverage the techniques to build new technologies. They are confident that should they master it (and I think they will, given enough time, money and imagination) a regular street walking dude would be able to carry every movie ever produced on his iPhone (or cheaper, more flexible Android superior, I mean competitor).

Week 2 – Working some things out.

I am only just now (Wednesday) getting to week 2’s work as I have been working hard on what will end up being a promotional video from my game Serial Link. If you don’t mind blood and foul language (I think it will end up with an 18 certificate) then, by all means, have a sneak peek at the edit that I have sent around the team and the collaborators here. Just watching the introduction to this weeks material, I am grateful for the slow and steady explanations about some of the choices that I will need to make. I must say though that my instinct at the moment is to stay relatively tight in my choices to focus on C++ and the Unreal engine but that could be just down to the fact that that is all I have been using since July 2017 when I made the transition to wannabe game developer. That said, Michael Scott’s advice is to identify the best tools for the job and the job for me right now is making games. However, I am curious to see if I have made the right choice in using Unreal and C++ but I worry that if I have not, would it be sensible to jump ship and use Unity and C# (I think)? I do want to be able to ‘throw’ together a couple of apps though like my own time and task manager and a touch typing program that’s more adaptable than ones that I have used. I think that the overall conclusion I have come to just from the introduction is that he is promoting a ‘minimum standard’ in the breadth of knowledge and frankly I don’t meet that at the moment. I’m looking forward to exploring things and deciding on what to focus.

Hammer Time

I like the quote in this next lecture ‘It is tempting, if the only tool you have is a hammer, to treat everything as if it were a nail’. Hmm, that is a good way to look at only knowing one language. Also, I think that it is becoming clear to me that C++ is quite a heavyweight language and it’s possible that I would benefit from learning something that is a little more straight forward at the same time. I must not abandon C++ however, as it is tightly related to the goal of working in Unreal at a lower level than Blueprint, as marvellous as Blueprint is!

“Beginners should stay away from C++” Great. Well, I do like a challenge…

Many, many years ago (it feels at least) I was introduced to Java and its the language with which I started to understand the object orientated paradigm. I like OOP a lot, it seems to sit in my mind very easily, much more so than procedural programming. Although not being very skilled in either approach, I suppose that it may be too early to tell really. Objective C seems to be the one to learn if I want to develop for Apple and at this point, I assume that you can use it for Android development also? Would have to have a look into that. I think that not taking mobile development seriously, at least for one project, would be a mistake and I do hope that the desireto create PC style games subsides enough at some point in the future to allow me to consider this.

‘I’m Snakebite, I’m your only man… ‘ Alice Cooper.

I would really like to have a good look at Python and I have a very close friend who is very skilled with it that could chaperone me through any pitfalls in order to help me become more productive with it sooner. Python is a good bet for me really. I wonder if coming from learning C++, I might slip into it quite easily? I would just have to try it out I suppose. And Assembly language? Yeah, I don’t think I will be touching that at the moment…

What should I stand on? Platforms.

I think that I am in right place with this aside from needing access to the PS4 development environment for Unreal. I can already aim for deployment on the PC as that’s really a given as the vast majority (if not all?) games are developed there and I know that I could turn my Xbox One into a development machine in order to deploy Unreal projects to it. But, I would really like access to the PlayStation 4 as it has an install base that far exceeds the Xbox One (as I understand it from the general gist of what I’ve read). When I last checked, it cost around £2,000 to get that access and I just can’t pay that at this time. I wonder if that is something that we should roll up in the kick starter for Serial Link should we get the chance to launch it. I suppose that the other thing I need to know is how to develop for mobile in the most flexible way so that I could release content on both IOS and Android without having to create two apps. I am almost certain that I would not have to do that, but its only being on this course that is making me think about it at all, so I have never looked into the details of developing for either platform. I do know that Unreal can be used to deploy to mobile, and knowing that its C++ driven, does that mean that mobile apps can be developed in C++? More mobile questions…

Atomic Movie! That’s incredible!

I had no idea that this had happened. As soon as the clip in the presentation was finished I went to find the animation and was just blown away! I can barely comprehend the scale of this work and need to watch the short documentary that explains how it was done!