GameDev: Blender 2.80, Unity (Game Engine), and Coding in C#!

blenderunity

Whoa whoa whoa… A blog post that’s not on The Complete Blender Creator Course?! That’s right! In my previous blog post, I wrote that I had finished the Udemy course I enrolled in and had been blogging on since last July. Currently, the course instructors are redesigning and posting new lectures for the entire course. This is due to a new software beta version that was released – Blender 2.8 or Blender 2.80. Even though it is still in its beta testing phase, I have been told that it is worth learning the new software and its changes in the UI (viewports, hotkeys, etc…). With its new game-changing realtime rendering engine, EEVEE, it didn’t take me long to decide to make the transition from Blender 2.79 to 2.80. Aside from Blender, I also started learning the UI (navigation windows, features, etc..) of the game engine, Unity, and consequently got into a bit of Coding in C#I guess my game development journey has already begun? And so, if you are interested, do read on as I delve into detail on these three topics (above in bold) and how they came together for me in my starting to learn about game development.

Blender 2.80

At first glance, the UI in Blender 2.80 seemed like a complete overhaul to me compared to 2.79, but after poking around in it for a few hours, I did not find it too troublesome nor time-consuming to learn where nearly “everything” was (that is, everything that I used in the preceding version). One of the new features of Blender 2.80 incorporates window presets in a toolbar at the top for the different stages of a typical workflow/pipeline: Layout, Modeling, Sculpting, UV Editing, Texture Paint, Shading, Animation, Rendering, Compositing, Scripting. While my preference habitually is to just work in the Layout tab and open up whichever viewports/windows I require, I may yet try to use more of the presets. In terms of new or changed hotkeys, the default ones I hear are very different than in the previous version – the biggest one being that the left and right-mouse buttons are reversed. Of course, since Blender lets you import/export user preferences across different software versions, I had overcome the challenge of having to re-learn hotkeys (or re-assigning hotkeys for that matter) by simply importing my preferences from the previous version (2.79). Finally, as I had mentioned, one of the most defining features of the latest version is realtime rendering. Below, you can see the EEVEE render engine in action as I toggle between four modes of shading on some flowers I had modelled: Wireframe, Solid, LookDev, and Rendered (using EEVEE):

flowersblender

Unity Game Engine

Wowzas, I don’t think I have touched a game engine since I was 10 years old. This was back when I had played around with the likes of GameMaker, PlayerworldsRPG Toolkit, and Rpg Maker (I am amazed that some of these engines are still around! Yikes, I’m feeling very old right now… :/ ). As a result, in my head, I thought that diving into a game engine such as Unity that is often used these days in 3D game development would be insanely challenging. However, the software did not seem that foreign to me; for one, the UI is very user-friendly. Take a look and see for yourself:

unityinterface

As you can see, in the scene view, this is where I had dragged and dropped a number of models I had made in Blender 2.80 (including those flowers I showed earlier). That’s not to say though that I encountered a ton of problems when I had tried to import the models into the project from Blender. It took me a while, but I figured it out for the most part. After creating and importing the player, things seemed to be fairly smooth-sailing… until I started to create some C# scripts for the game!

Coding in C#

Ah, programming/coding. The belly of the beast. Some think it’s a cinch, whereas others like me tend to cower in fear. /s I suppose it helped that I learned a bit of HTML and JavaScript when I was younger, but still, I find learning a new computer language very different than – say – learning a new cultural language or a musical instrument if such a comparison can even be made. It takes a very logical mind – which quite frankly, not everyone has (me…) to be able to code/program. So my idea was to learn the fundamentals and try to practice, practice, practice. To facilitate this process, I picked up another course on Udemy to get myself started: Create Your First RPG And FPS Multiplayer Game In Unity (by Awesome Tuts). As I am going through this course, I think the instructor, Fahir, is doing a great job at introducing Unity and teaching the basics of C# within Unity. However, I am a little worried that it will get hard to follow along as he simply teaches through example and does not challenge or force the student to write his/her own code to ensure the material is understood. It has its merits and to be honest, I will probably have to resort a lot to observing and using/tweaking others’ coding – that is another approach to learning in any case. I think it will depend on how quickly I can pick up concepts and whether I can be logical enough to both code from scratch and to alter existing coding. We’ll just have to see.

Thanks for reading and I will keep you all posted here on my gamedev journey!

– Taklon