This weekend, I had an amazing opportunity, I joined a small group of teachers from across North Carolina at Epic Games in Cary, NC to learn about the Unreal Game Engine!
Our visit started off with a tour of the facility or at least the areas that we were able to see, that is. The first stop was a hallway lined by framed examples of products put out by Epic Games over the years. I never realized just how far back Epic's history went. It all began with a map on paper in 1991 and a game called ZZT with all of Epic Megagames titles distributed on floppy disks. I was thrilled to see Jill of the Jungle from 1994 on the wall which I had received in a mail order package of games back when I was in college. Somehow, I never realized it was created by Epic! The "wall of fame" identified several game titles such as Jazz Jackrabbit, Unreal Tournament, Gears of War, Infinity Blade, Fortnite, and of course, the release of the Unreal game engine.
The hallway opened up into a large open space where we were first shown pictures of Epic's teams located in offices all around the world. Epic is a private company but they have several worldwide offices including teams located in Germany, China, Canada, the Chair team, and so forth. But, their Cary headquarters contains the largest collection of employees in a single location.
This large space was also their cafeteria. We were informed that at Epic Games, all of the food and drink in the cafeteria is completely free. Employees can work long hours and Epic doesn't want their employees to have to worry about leaving the site to grab a bite. This is especially important at crunch time, when employees are likely to spend very long days in the office. I also noticed they had some areas to help employees blow off a little steam: there was a climbing wall, a slide from the second to first floors and several tabletop games such as air hockey. It looked like the game room also gave employees a place to play video games but it was nice to see they had options that allowed them to do things away from a screen if they wished. I'm sure that is important when you spend all day looking at a screen and a break from it might be nice at times.
When our tour ended, we returned to a conference room for the meat of why we were there: getting some hands-on experience with the Unreal game engine from the experts who created it! The conference room itself was amazing. They had set up laptops with separate keyboards and mice for us to use along with snacks and swag to take home. The hospitality they expressed was amazing and something that we, as teachers, are not accustomed to receiving. It was definitely appreciated!
We spent the next several hours going through the game engine. We explored interface basics and how to move around in the engine, creating a basic projects, basic workflow and standard naming conventions, working with objects (actors) and using blueprints for coding actions. To be honest, it was a ton of information and I could have easily spent several more days just getting my feet wet with it. But, a few things were abundantly clear to me from this experience.
For starters, using Unreal is a lot easier to understand than the Unity game engine, which is what we currently use in Game Art & Design as well as Advanced Game Art & Design at DSA. A lot of the features overlap between the two engines, especially when when you look at creating environments. And, the basic tools are similar to other software students learn, such as 3ds Max. But, the biggest thing that students struggle with in Unity is understanding the basics of programming using the C# language. This is often the point of contention for most of my very artistic students and while they can follow the steps in a tutorial, I often find they don't understand why they are keying in what they type despite several weeks spent on learning C# coding. Unreal helps to destroy this barrier of entry using a method known as blueprints. Blueprints are a node based method of writing code using a more visual interface instead of keying in line after line of text. In other words, it is very intuitive. That being said, one can access the code itself and code away to their heart's content, but they don't have to for the majority (or even any) of the game development process unless they really want to. This by itself makes moving to the Unreal engine highly enticing.
The next thing I noticed about the Unreal engine was the level of immediate functionality it provides to young game designers. Almost immediately, a student can get a game up and running simply by dropping any of the predefined actors into a level. Support is provided for common player modes including: 1st and 3rd person, puzzles, wheeled and flying vehicles, and even virtual reality! Creating the environment is as simple as painting what you want on the mesh using tools that are easy to understand. The same is true in terms of materials/skins and using particles, though the student will need to edit simple and easy to understand parameters as well. In short, students can get the basics down in a matter of minutes, not weeks!
Another important thing to note with respect to teaching young developers involves having access to up-to-date resources regarding the tools they are learning. Unreal has this mastered in a neat and easy to use online compendium of resources. One of my biggest complaints with Unity has been how they keep adding more resources with minimal updating for the current engine version they offer. In other words - they leave old tutorials relevant to earlier versions without providing easy to find information on how or even if they work with the latest version. It's a growing list with minimal replacement going back several versions that makes finding relevant resources more difficult, though not impossible. So, I am not a fan of their support site.
As a teacher, another area of importance to me is how well a company supports education. Epic has done an amazing job with this! The sheer magnitude of educational resources provided, access to in-engine assistance, and having expressed a willingness to help educators and students in person really fits the bill on this issue. Representatives from Epic games have been helping local colleges for quite some time now and we were the first group of high school teachers they have worked with but they expressed interest in continuing the conversations with us over time. Personally, I am looking forward to this and commend Epic for putting such effort into educating young game designers!
Also on the educator side, CTE teachers are constantly being told about the importance of making local industry connections for our students. Epic is a worldwide company that is directly relevant to our curriculum and students AND they are located right in our own backyard! On top of that, they are the creators of what is arguably the most popular game in the world at the moment. What more could a game design teacher want in terms of creating connections between content and industry outside of the classroom setting than to make a connection with them?
At the end of the day, I left mentally exhausted with a ton of reflect on. But, one thing is certain: I am completely sold on the idea that making the shift from the Unity game engine to the Unreal game engine is something we need to seriously consider. The cost is right (Unreal, like Unity, is completely free to use and contains no information sniffers, so privacy is ensured), it has a lower barrier to entry for learning, and with the company being local, especially when Unity is not local, makes Epic Games a great hands-on inspiration and resource for both students and educators. But, making this move is not without difficulties.
The Unreal game engine really needs a higher quality computer than what we typically have in our classrooms. My student machines are running with an i5 processor, 8GB of RAM and an older NVIDIA Geforce GTX 680 graphics card. I have tried running Unreal on this setup before (and plan to test it out again soon) and as I recall, the experience was excruciating! The engine lagged, it stopped running at times or had graphics issues and it crashed, quite a bit. Maybe I need some assistance tweaking settings to make it operate more efficiently and plan on reaching out to Epic once I verify our specs, but the laptops we used in the training were i7s with NVIDIA 1070 cards in them. I forgot to ask how much RAM they had. Testing the engine on my personal laptop with an i7, 16GB, and an NVIDIA 1060, it runs smooth. So, we need to think about what we purchase when replacement machines are due for labs teaching game design. On the bright side, the cost of such high quality hardware continues dropping every day and finding a system with the specs to run Unreal for a reasonable cost shouldn't be too hard by the time we are due for replacement machines.
A second concern is the discussion of 2D vs. 3D games. Unreal is designed mainly for 3D game creation and we didn't discuss the possibility of 2D in our training, but there are some options for game modes that imply it can be used for such. This is just something that will need additional investigation. But, I wouldn't let this stop me from using Unreal in my classroom.
In short, nothing is perfect, especially when talking about using technology in a public school system setting. But, I believe the pros of making a switch from Unity to Unreal far outweighs the downsides. So, I'm going to make a concerted effort to ensure we can and do make this change, supporting a local NC business while that same local business supports our education efforts.
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.