Archive for February, 2020

Unity or Unreal Engine: Decisions, decisions

February 26, 2020

I met a girl who is working on her masters degree in VR and holograms at University of Montana.  I cannot remember what the degree is exactly but she really knows Unity, Unreal Engine, Oculus systems and all sorts of cool stuff like that.  She used to work for an indie game company building game environments. She came and talked to my game making classes. She suggested I look at Unreal Engine for VR instead of Unity.  So I did. After several days of tinkering and experimenting I am now able to make some comparisons.

They are different, very different.  Unity has a huge number of quality tutorials on their web site and a lot of good stuff on YouTube.  Unreal is suffering. The Unreal web site has tutorials but not a lot for beginners. There are some but they are very limited in what they cover.  There is a shortage of good beginner stuff on YouTube.

Unity is much more flexible.  C# programming allows you to do almost anything with it.  Unreal uses C++ or BluePrint, a sort of drag and drop language.  Unreal as a result is not as flexible but is much easier to work with when doing the tasks it is best for.

Unity has a massive asset store.  Unreal not so much. In fact the Unreal Marketplace is pretty paltry.  With Unity I can find almost any object for free. Need a domino? It is there.  Unreal? Better know how to run Blender or the like.

VR is an unwieldy, unfriendly pig in Unity.  Finicky and version particular. Have to download various modules from the Asset Store and hope they work with this version of Unity.  Unreal has VR built in and is a piece of cake to get running. If you are going to work in VR, Unreal is the platform. It took me days to get the Oculus controllers to pick up objects in Unity and it was inconsistent.  It took minutes to pick something up in VR with Unreal. Unreal has a module that will load everything needed to do Oculus VR. But the trouble is I can find a tutorial that shows me how to make Beat Saber in Unity. I can only find a couple of intro tutorials for VR in Unreal.  I need to start searching because the VR is so easy to get started with in Unreal and I really want to get that Oculus ticking.

First person shooter is built into Unreal.  With Unity it takes some work and some C#. Build FPS in Unreal.  But again there are not a lot of quality tutorials compared to Unity.

At the moment I cannot give a real unbiased opinion.  I have a lot more experience with Unity so almost everything is easier in Unity.  After three years of dabbling in Unity C# I can actually debug issues and know what the code is doing.  Unreal’s BluePrint is still a mystery. By far the biggest separator between the two, at least for me, is the lack of free assets in the Unreal Marketplace.  I can learn Unreal but I cannot build all the cool assets Unity has available. For teaching these are just so handy.

Right now I am working through the exercises I give my Unity classes to make a real comparison.  The learning curve is not too steep, it just takes time.

More adventures in teaching Unity

February 7, 2020

This semester I have 25 kids taking my Unity course.  They are split up in three different periods. Six of them are taking a second semester of Unity.  Two of those six are working with the Oculus. (I only have one Oculus which is a good thing considering there is only one computer in the school that can run it).  The other four are building a Wolfenstein first person shooter.

As usual I am having computer issues. Usually with the small number of kids that I typically have in the class (5-8) I only have to provide a couple of school laptops.  I know which laptops ran Unity before so I loan those out. This time I am loaning 6 or 7 laptops and two of my poor old laptops were having issues with Unity. Those two laptops would not save the license.  After about 4 hours of troubleshooting (yes, I did have other laptops I could have loaned but it was the principle of the thing) I figured it out. It was some weird permissions issue with the student’s user account. After another hour or so trying to rebuild the student’s user folder with the proper account settings I finally sat back to think.  Why these two and not the others? I sat and stared. Then in a moment of brilliance (rare but I do have them) it hit me, I had just imaged those two laptops. Something is wrong with the image. I throw the Windows 10 cd into one of the laptops, hose the whole thing and start from scratch.  An hour or so later I install Unity and amazingly it works. I image that laptop, install the image on the second laptop and it works. The lesson here? Be prepared for weird things to happen and be real flexible with due dates. The two kids who were going to use those two computers are at least a day behind now.  It would also help if my loaner laptops were eight years younger.

Now to the Oculus.  It is the Rift S model, pretty fancy and super cool.  I borrowed it from the local university and only got it the week before the semester started.  I did not have time to fiddle with it or proof the YouTube I was going to use as the introduction to building for the Oculus with Unity.  Of course the two kids I have working with it have hit a glitch in the YouTube video. These are two of my brighter kids so I imagine the issue is not trivial.  Since I cannot work on the Oculus at home (my home computer is not even close to min requirements, this thing takes a pretty hefty video card) it looks like I am spending Saturday or Sunday or both at school.  Since I have a head cold I should not go snowboarding and the wife is in Belize so no big deal. Of course looking into that screen is not going to help my sinus headache. I have been wanting to tinker with this thing but simply have not had the time.  (I told my principal yesterday that next year I am not teaching full time and being full time IT. Both have suffered.)

Now more lessons learned with Unity.  I use a Unity asset package called Standard Assets regularly.  It has the scripts for moving characters around among other cool things.  I updated to the latest version of Unity, 2019.3, and the Standard Assets package has major issues.  Go back a version, 2019.2, and it works just fine. If I was paying for Unity I would be very upset but since it is free I cannot gripe too much.  I will stay with 2019.2 until Unity updates the Standard Assets package.  

Teaching Unity is a major effort.  Regular updates that break things, laptops spazzing out, YouTube videos that do not work, the time required to troubleshoot things (videos, installs, hardware) all contribute to Unity being a pain in the rear.  But it is just too much fun to quit on. The kids enjoy it and they learn a lot of troubleshooting, critical thinking (why does this not do what I want it to do), some programming and all around how to use their computer.  Unity is like digital Legos. You can build cool stuff and then play with it.