AB 3 of X — Unity vs. Unreal

Updates: Switching to Unreal!

Finn has started a new job! He’s now product manager of Data Services at Candid. John, in the meantime, has been watching videos by Unreal Sensei and decided to switch from Unity to Unreal. He’s grateful for everything he learned with Unity, but it seems like Unreal is a bit better suited for the kinds of open-world games that he loves.

John has been learning C++ and has been experimenting with building in Unreal. We aren’t sure if Unreal is trendy right now — it seems like more people are using Unity, but that it’s the best solution for mobile games. Who knows; we’re just beginners!

What we’ve been learning

John has been learning Unreal through Unreal Engine 5 C++ Developer: Learn C++ & Make Video Games on Udemy. It’s produced by GameDev.tv and is taught by Sam Pattuzzi (LinkedIn, Twitter, GitHub) and Stephen Ulibarri (LinkedIn, Twitter). Finn has started the same course — he loves it but it’s a very big endeavor. Each lesson in the course focuses on building a different mini-game. John loved Stephen Ulibarri’s lesson so much that he has continued to another course that Stephen made: Unreal Engine 5 C++ The Ultimate Game Developer Course.

We both love third-person open-world games like Red Dead Redemption and Breath of the Wild.

A still image from Red Dead Redemption 2 showing three characters riding toward the sunset on horses
Red Dead Redemption 2 is visually stunning

John is starting to get frustrated with his computer because it clearly isn’t able to keep up with the level of foliage that he wants to add to his games. It’s also made him appreciate real-life foliage more. “Just imagine how many triangles it would take to produce that in a game!”

In Unreal, you can build things with C++ or Blueprint, a visual coding tool where you can move nodes around to control what happens and when. Finn’s recommendation for beginners with either tool is to give yourself regular breaks (i.e. spaced repetition).

Finn’s been learning about line tracing, a method for determining if an object is within arm’s length of your character. He’s also very impressed by the lighting system.

John doesn’t have a background on tech. Starting with Unity may have helped introduce him to coding because C# is a bit easier than C++. He also did some C# tutorials before diving into Unity. You don’t need to use C++ to build something in Unreal, so if you’re coming from a totally non-technical background, you can lean on Blueprint to get the concepts.

What we’ve been making

We aren’t building yet, but we think we’ll be ready to collaborate on something once we wrap up these Udemy courses. What should we call our “studio?”

Whatever we build, we hope that this site is helpful to future learners who are in our place — the official Unreal documentation is fine but not enough. If you have questions that you think we may have already plowed through, hit us up at hi@absolutebeginners.quest.

AB 2 of X — John’s new games

Recap and updates

Finn and John have been learning Unity and C#. John has made a lot of progress with online tutorials and the book, but Finn has been a bit busy with professional networking.

John has been developing an intuition of how different things interact in C#, such as the relationship between variables and structs. He’s also been playing around with two functions that always come built into a new Unity C# script:

  • Start() — This function executes once every time you open the level. If you only want something to happen once, this is where it goes.
  • Update() — This one runs with every new frame. Generally, you put things here that you want to happen all the time, but John thinks there are best practices for what and how much you can put in Update().

John’s also been learning about coroutines and IEnumerators. IEnumerators are a kind of interface — John is still learning what that means in the context of Unity.

Projects

John has been building a top-down game where you play as a sphere that is trying to avoid other spheres that are drawn to you.

He’s been learning techniques for “sloppy follow:” the enemy spheres will eventually catch you, but they don’t come directly at you. The trick is that the game spawns invisible non-enemy actions that always follow your pawn. The enemies aim for those invisible pawns, causing them to chase you indirectly.

We discuss how nice it is to use a modern code editor or IDE like VS Code.

  • John was studying SmoothDamp(). When he typed SmoothDamp( in VS Code, it automatically suggested what parameters the function takes.
  • Finn loves that VS Code will keep track of the type of a variable. He’s written code thinking that a a variable is a certain type, but then realized that it wasn’t when VS Code wouldn’t autocomplete the members that he was expecting.
  • Finn also likes that you can rename a variable in all locations by right-clicking on it anywhere in VS Code.

Talking about editors leads to discussing Copilot. It’s a new product by GitHub, which is owned by Microsoft. That then leads to a meandering conversation about how new tech, even if it’s controversial or even damaging, will become unavoidable if people find it interesting.

Finn has been networking with people who work in game development. He found a game dev coworking group that meets up once a week at Oakland’s Museum of Art and Digital Entertainment (MADE), an amazing collection of retro games of all types.

Entrance to the Museum of Art and Digital Entertainment. A poster reads 'The Museum of Art and Digital Entertainment is a non-profit video game museum. www.themade.org'

What games we’re into right now

John has been playing Outer Worlds, a first-person RPG(ish) game that reminds him a lot of Firefly. He loves the character-driven story and the rich open world.

Finn has (re?)disovered Twine, which he refers to “Thread” (oops). It’s a tool for creating building text-based games. He’s curious about making games like the ones he remembers from his childhood, such as The Hitchhiker’s Guide to the Galaxy.

John isn’t sure that he is good at puzzle games, so Finn recommends Baba is You, a 2D puzzle game where you can change the rules of a level by moving words around the screen.

AB 1 of X — Learning what we want to learn

This is a podcast about learning new things. Join us as we explore game development by building things together. We’ll try to document our conversations here so that the next person who comes along can move faster.

Background

We (Finn and John) are literally absolute beginners when it comes to game development. Finn works in tech in the Bay Area, and John has a PhD in philosophy. Both of us have been interested in game dev for a while but haven’t had a chance to pursue it yet.

We’ve decided to focus initially on learning Unity, which is the engine behind a lot of popular games. We’re reading Learning C# by Developing Games with Unity by Harrison Ferrone. If you get Harrison’s book, you can also join his Discord server and chat with other people who make games. John’s been going through a lot of the tutorials on the Unity site.

Neither of us has any experience with C#, which is a programming language. Finn has some experience writing code, but it isn’t his day job. The programming language he is most familiar with is JavaScript, which can be a bit more forgiving than other languages.

Unity tutorials

John has been playing around with lessons on learn.unity.com. The tutorials are really geared toward people who don’t have any experience, so don’t worry about being at the right level. Everything is organized into pathways, which then have missions. A mission’s length can vary from about an hour up to several days. The content alternates between interviews with people who use Unity at work and lessons on how to use it.

Section of the Pathways page on learn.unity.com. The heading says 'Choose the right Pathway for you,' and there are brief descriptions of the four pathways: Unity Essentials, Junior Programmer, Creative Core, and VR Development.
The four learning pathways on learn.unity.com

Both of us tried out the Karting microgame. To get to it, open the Unity Hub, click the Create Project button, then Learning. Karting should be one of the options.

Editing the Karting Microgame in the Unity editor.
The Karting Microgame in the Unity Editor

The microgames give you a chance to play around with small games that are already built. We discuss the karting game a bit and explain the difference between the Unity Hub, which is a container for various projects you are working on, and the Unity editor, which is the screen where you edit the game. Definitely try out some of the microgames so you can see what is possible with Unity and poke around in the editor.

John has also tried some of the C# lessons that Microsoft offers. We agree that you don’t really need to know that much about C# or coding in general at the start. Unity’s lessons tend to focus on the visual aspects of game design, while Harrison’s book focuses more on C# in early chapters.

Unity’s online early tutorials feature interviews with people who use the product professionally. We’ve gathered some information about them if you’d like to learn more.

The book

Finn has been spending more time with the book, which guides you through everything you need, including what software to install:

One thing that surprised Finn was that values you enter in the inspector while in play mode reset after you leave play mode.

Subsection of the Unity editor inspector, where you can see various values for the object you have selected.
Values entered in the inspector during play mode reset after you leave play mode.

Endless Pachinko

John has been creating “games” that don’t really have a player input. One of his games is called Endless Pachinko, which is loosely modeled on the Japanese ball game. Learning how to flip gravity was a great way to learn about Unity with trial and error. Finn suggests that a while loop could be a way to change and flip gravity at different “altitudes” in the game.

Gameplay from John's Endless Pachinko game. The ceiling and the floor both have brown crates at regular intervals. A blue ball bounces in the air between three rows of pink balls.
Endless Pachinko

Game ideas

John is interested in learning about humanlike behavior for non-player characters (NPCs). Specifically, he’d like to experiment with building automata inside games. His academic work focuses on philosophy of mind. John loves catching bits of NPCs’ dialog as you’re doing something else in the game (e.g. “And that’s what he said!).

Thanks to Libby Roach of Portland, Oregon for the fantastic music.