I have succeeded! Thank you, thank you… Its fine honestly, sit down, please. No, please. Flowers? You shouldn’t have. Im allergic to them for a start…
I have succeeded in confusing people about what I want to do and where I want to be in my professional life! Not great. But repairable. So, lets lay it out and have a little chat about it.
Having had some feed back about the journal and talking its content through, it seems that a post regarding an overview of where I am and why I am looking at the things that I am, is in order. I can take you back to the video that I did for my personal case study where I introduced myself and said ‘… and I want to be a generalist with a focus on coding so that I can make my own games…’
What does Generalist mean to me?
I have been thinking about this and its pretty simple. I means two things to me. The first is that it means ‘being able to make a game from start to finish on your own’. So that means being able to design a game, work out the mechanics and implement them. Then you need to be able to work with the animation, audio, particles, decals, post processing, AI, navigation, UI and so on and so on until you have touched almost every feature in your engine of choice. Then you should be at point where someone could sit and play something that you have created. This is very different to being a modeller. Very different to being a programmer. I want to able to model, animate, maybe create some music. I want to understand and be able to perform in most areas to a good standard. However…
The T shape
I read a very interesting article while I was thinking about this and you can find it here. It talks about seeing your skill set as a T shape and it really resonated with me. It also says to try not to be a specialist or a generalist but some sort of hybrid, biological catastrophe of nature, sort of specialising in something but then being ‘aware’ of the other areas. I’m not sure I agree that completely but I do like the structure of what the author is saying.
Having had a shower and coming back to this draft he’s right. Thats exactly what I want to be. Very strong at logic and coding and ‘alright to pretty good’ at the other bits.
Since I started in my young game development education (and hopefully, career) it was obvious to me that programming is a key skill, even if you are interested in many things. The reason is that an audio engineer can make great audio, but they cant make a game. An animator can make things move beautifully, but they cant make a game. But, before jumping to programming as the Almighty vocation, it, on its own, is not enough to make a game either. Thats when I found this term ‘Generalist’ and thought (in my brain, as my 4 year old would say) yes, thats me, or at least, that’s what I want to be but with a little tweak as I said above.
The article I referenced talks about making sure that you are ‘really’ good at one thing and then starting to branch out and understand other related areas. Thats kind of what happened to me when I was on the BA top up course. I had already started to look at Unreal Blueprinting and out of the class I was in, I clicked with it the best it seemed. That naturally make me the logic guy in all of the projects in which I worked and started me down that path of being good at that ‘one thing’. I am happy with that and have not deviated much from that role at all. For now.
My Vertical axis (depth)
This is logic. To me that means Unreal’s Blueprint at the moment. I have decided that I want to take this to the next step and that means learning to code in C++. There are two reasons for this. I want more access to the Unreal engine and I want to learn something thats industry standard and portable.
But, having had enough experience of creating mechanics, bolting some more on, and some more, attaching this to that (and it shouldn’t go there) and generally creating a Frankenstein’s monster of a prototype in Serial Link, its clear that learning a language is not enough. I am now just as concerned with learning how the think properly as I am about understanding the pointy end of pointers and a bit of bit shifting.
The solution to this problem is Design Patterns and the SOLID principles alongside the study of the C++ language itself. Its worth mentioning at this point that the development of Serial Link, a blueprint based project, is my stomping ground to exercise many of the goals that I have, particularly Version Control, Design Patterns and the SOLID principles. So I will be posting about that project and linking the work done there to those goals. For one thing, I want to take Serial Link forward professionally (I haven’t decided what that means yet) and the other is that its the most developed project I have ever worked on and so is that place that I am most often finding the sort of challenges my SMART goals cover.
The SMART goals that are associated with this axis are:
- Version Control
- Learning the C++ language
- Understanding and using the Unified Modelling Language
- Thinking with Design Patterns
- Thinking with the SOLID principles
- Learning to code with Unreal
- Touch Typing Cody things
My horizontal axis (breadth)
This one is much less fleshed out on the MA. And I’m not sure that’s a good thing so maybe I need to have a think about that. I think that the area that I feel the most limited and restricted in when developing Serial Link is animation. I would really, really like to learn how to animate 3D models. I have some interest in modelling but it is limited, as there is just so much out there in terms of assets and things that create them. But I have found that although, yes, there are also animation assets available and I already own a really good one, when it comes to getting close to the unique, special bits of the game, I have found that I need custom animation more than anything else. I think I have just found the need for a SMART goal.
Audio is another area that I would like to learn a bit more about but I am not finding at the moment that my lack of knowledge in this area is a serious limitation. I have some tasks of the Serial Link Kanban board to sort out some of the audio in Serial Link, ducking, occlusion and some other things and once I get to that task then I will learn (and be able to make immediate use of) those things. I think a SMART goal for that would be over the top and I am confident that I will just pick it up in this case.
Particles are another area that I feel that I wish to understand more deeply and actually on reflection, yes, it is a little limiting not knowing how to put them together properly. I think that it would be quite sensible to look at this as what I do know about the system is that it works in a programmatic and logical way. That means that its not much of a jump from where I am at the moment in terms of what I learning and how I am thinking. I do want to understand more about the artistic side of things too and how to create say, my own blood splatter or muzzle flashes and so on. I considered getting a tablet a little while ago and I just might do that as I can draw a little and I have used one before to draw this…
I think that I have just found another SMART goal for learning how to create basic particles.
I will be more sensitive to making sure that the content that I post is linked explicitly to the goals that I have set up while on the course. I will set up SMART goals for learning about Animation and Unreal particles system. I think that this post clears up some things for the reader and I am happy that it has allowed me the space to think about the other, less obvious areas of game development that I need to have a look at.