Friday, July 8, 2016

Learning to Make Video Games: One Geek's Journey Part 2

Back on Track

So after a little bit of a hiatus I am back on my journey to learn to create games. This past semester in school I took a break from the core classes to finish off my last general education requirement. From this point forward it's all programming and design classes. I have 10 classes left to complete my degree and will be taking 2 classes each semester. This coming fall I will finally start touching on programming and scripting for games. The following semester I am really looking forward to as I will finally get into 3D game design and programming. During past few months I have continued my self-paced study of C#. As you may recall this is inline with my focus on utilizing Unity for creating games. I have been using the course from Microsoft Channel 9 on C#. I am more than half-way through the modules at this point, though I have not been as diligent as I would have liked in my studies. However, my daughter has graduated high school and just yesterday left for Navy boot camp, leaving my wife and I as empty nesters. So this leaves me with more free time to jump back in full steam. 

Fundamentals

The Channel 9 course that I have been using was developed by Bob Tabor from LearnVisualStudio.NET. Bob has the modules laid out quite nicely and one lesson flows into the next, and builds upon the last. Often in a lesson Bob will touch on subject or demonstrate code that won't be fully explained, but not without purpose and it is usually set up for a future module. As the intent of the course is to provide you with a groundwork of the C# syntax, this course does not directly apply to game programming, but I do feel I am getting a good introduction to C#. 

I will admit that I am, at times, finding the examples in the lessons a bit pedestrian. However, I feel that the lessons are paced appropriately for an absolute beginner. For myself, I have found that it helps me to go a little bit beyond at the end of each lesson. By that I mean that I take it upon myself after each lesson to augment the code that I just learned and add some new functionality to the program that was just demonstrated. I am challenging myself to go beyond rote memorization and see what I capabilities I can extend on my own. Frequently as I am going through a module, I will already start thinking about what else I can do with the code that I just learned. I try not to stray too far off the reservation as I know the lessons are building upon one another. I do feel though that playing around the code after a lesson helps me retain what I just learned a bit better.

Visual Studio

For the lessons I am using Visual Studio Community 2015. It is a fully featured IDE (integrated development environment), and provided completely free by Microsoft. To this point much of the lessons have created console (DOS) applications and I am fairly certain the course will not be touching on the visual part of Visual studio. And to be perfectly honest, I am completely okay with that. For me it's about learning the code, not about creating user interfaces.  

Visual Studio provides the necessary components to code in C#, Visual Basic, F#, C++, HTML, Python, Javascript and many others and allows you to create applications for just about any platform. It is also completely extensible with over 1,000 extensions available. Anyone can download Visual Studio here. For individual programmers it is completely free and you can create your own paid applications with no licensing fees or royalties. For for-profit companies, license fees may apply. 

The download can be up to several gigs depending on what options you choose during installation. Once it is installed you have the option of linking it to your Live account. I recommend this option if you are using Visual Studio in multiple locations. I my case I have it installed on my home PC, laptop and work PC. Linking it to my Live account syncs any changes I make to the interface across all three systems. I personally prefer a dark background with light lettering. And as a geek who is frequently rebuilding his own PCs it is nice to have my settings imported automatically if I do a new install of Visual Studio on a new machine. 

Another useful customization I have made is to change the default save location for my code. Through my business I have an Office 365 account which includes 1TB of OneDrive storage. By changing the default save location to my OneDrive folder, any new or modified programs I am working on will automatically be copied to my other systems. This has been extremely useful if I am working through a lesson and have to stop mid-stream. I can easily pickup right where I left off on any one of my PCs or my laptop. Granted not everyone has a terabyte of cloud storage, but you can set the default location to any folder that you like so you can utilize Dropbox or Box to accomplish the same thing. 

Next Steps

I know I said this in the last post, but I intend to post more frequently now that I find myself with more free time. Looking a head a little bit, my plan is to complete the fundamentals lessons over the next week to two weeks. The new semester will be starting up in late August so that will leave me a little bit of a gap to fill and I want to be working on something on a regular basis. Currently I am debating whether I want to jump into a Unity Course on Udemy or start on a C++ course. Logically the next step would be to start the Unity course as it will build upon my foundation of C#, as Unity uses C# as it's scripting language. The only reason that I am considering jumping into a C++ course is that in the Winter semester I plan to take an Advanced C++, a requirement for my degree. I had taken and passed the introductory C++ course 15 years ago when I first started taking classes. However, I have forgotten everything I learned about C++. I still get credit for the C++ class and I am not required to take it again, but I cannot jump into the Advanced class cold. My plan has been to take a C++ refresher course on Udemy before the Winter semester.

So I could get straight into Unity and keep building up my C# skills, but that would mean I would be taking the Udemy C++ course at the same I am taking  two courses in the Fall semester. I know for some this does not seem like a lot, but for this middle-aged man running his own business and taking two courses a semester is a full load. Well I guess step one is finishing off the C# fundamentals course, so I will concentrate on getting that out of the way, then decide. Thanks for reading, and I hope that you are enjoying my journey and that maybe it helps you in yours. Until next time. 

--End of Line






No comments:

Post a Comment