One of the first decisions a game designer needs to make is what game engine they plan to use when developing their idea into something other people can play. If you don't already know, a game engine is the basic software framework used for the creation and development of video games. They typically encompass several different engines packaged together under one larger system, each handling specific tasks including rendering, physics, collisions, animation, artificial intelligence, and so forth. While one can always build their own engine, there are lots of options available for use that can save a team tons of time and effort. In fact, many game engines are free to use until you start shipping games. At that time, you typically have to pay a small fee which differs from engine-to-engine. Here in NC, the state has endorsed the use of two different engines since the early days of the GAD courses: Game Maker and Unity.
Over the past couple of years, I have been a good employee and followed the state's lead in endorsing these engines for use in my classes. However, we ran into a glitch earlier this year. For some unknown reason, despite nothing changing on my computers, Game Maker decided it would not run for the students in GAD. So, knowing that Unity added support for 2D development in recent years, I decided to move them straight into Unity. I thought: how much harder can it be and what are the benefits of doing so now instead of waiting a year?
The benefits were clear: since they need to learn C# to code for 3D, having them start now means they will be even better at it next year. Also, it would give the students experience with a professional tool that is widely used in the industry. CTE directors are always touting the importance of using industry-standard tools, especially software, so this plays up to their desire to do so. And, I found some great introductory tutorials by Brian Moakley on the Ray Wenderlich tutorial website for free to teach the students the basics of C# programming. So, what could go wrong? Plenty!
For starters, learning the basics of coding via the video tutorials should have taken a week...maybe a week and a half for those who really struggled or slacked off. I went through them and there was nothing truly difficult or too in-depth. It took considerably longer. I helped the students through the process as needed, but the idea that attention to detail while coding, especially things like being consistent in spelling, capitalization and punctuation, simply didn't sink in for many of them. There is a reason coding is compared to learning a foreign language. As is the case with learning any written/spoken language, programming languages have their own sense of grammar that needs to be closely adhered to or one's code simply won't work correctly. This makes programming less forgiving than spoken languages.
Next, some of the students really struggled with the concept of simple programming logic: conditionals, loops, variables, etc. These logical, left-brained concepts made my creative right-brained students' heads spin. But, eventually they all finished the tutorials and could start working in Unity 2D. This opened up an entirely new set of problems as the students continued to struggle with the coding.
Game Maker was awesome because it allowed students to learn coding logic and design with a bit of a cushion that Unity does not provide by being graphically oriented instead of "grammatically" focused. Students in GAD, being more creative than analytical, tended to pick up the basics well this way and appreciated the visual aspects of a simple interface. I saw a lot of the same problems with coding from my students in AGAD this year as well. Which makes me wonder: is Unity the best choice for high school students when it comes to selecting game engines?
This weekend, I decided to examine a third option: Unreal Editor 4 by Epic Games, located right here in Cary, NC! UE4 is another game engine that is used all across the game industry. While I am only just beginning to examine UE4, I have to say that I truly like what I see. The interface looks and feels a lot like Unity. Sure, there are different names for each panel and different options on menus, but moving around and the tools are not completely unfamiliar to me. Where I do notice a huge difference that gives UE4 an advantage is the coding is handled.
While one can (and probably will eventually need to) get into learning C++ coding to create desired games, a lot of the logic can be setup using what they call blueprints. So, what are blueprints and why do they matter? At its most simple explanation blueprints are objects created using a form of visual scripting. Much like Game Maker, this means it takes away a lot of the confusion of coding logic for individuals who are more artistic in nature. For more on Blueprint and its related objects, check out this UE4 video on the subject!
Where does this leave myself and my students? Personally, I have a lot more to learn about the UE4 and it seems I will have a very busy summer doing so. While I am under the belief that it will not run on the school computers due to lack of necessary hardware resources, I'm going to try it anyway! I haven't given it a shot yet and want to make sure my earlier beliefs are true before making huge changes to the program. But, I have quickly taken a liking to UE4, preferring the interface and tools over Unity, and believe my students will as well. While it is too late in the year to make such a switch now, it makes me wonder about doing so next school year. And, like Unity, UE4 offers options for both 2D and 3D development, though most people use it for 3D alone.
I am a high school Career & Technical Education (CTE) teacher located in Durham, NC with a focus on game art and design. This blog provides a place for reflection on relevant classroom practices.
The views and opinions expressed in this blog are solely those of the author and do not represent those of my employer or anyone else associated with Durham Public Schools.