Unreal: Mac support (part 1 of ?)

It’s super annoying that searching the internet doesn’t work for Unreal. So here’s something I just learned that might help the next person.

I’m trying to work out why Lightmass refuses to run on my Big Sur Mac. Not even the “direct from Epic Installer” version would work. I was working with 4.26, but the underlying code is unchanged through at least 4.27, and probably 5 as well. The documentation says Macs don’t support Swarm. Okay. So I think nothing of it when the Lightmass stuff times out after 60 seconds trying to do a network call that returns with

checkf(bConnectionEstablished, TEXT("Tried to open a connection to Swarm, but failed"));

But then almost immediately, the Lightmass process dies with

Assertion failed: CurrentThread == GetCurrentThread() [File:/home/user0/gre/sa/UnrealEngine/Engine/Source/Runtime/Core/Private/Async/TaskGraph.cpp]

What’s going on here?

Digging into that block of code… The Recipient isn’t valid, so in the worker thread it’s calling to Ping the MessageEndpoint. Okay. But then it starts waiting for something with FTaskGraphInterface::Get().ProcessThreadUntilIdle(ENamedThreads::GameThread);. What took me a while to understand is that was stating that the calling thread was named ‘GameThread’. Except it wasn’t, it was a worker thread.

How did this ever work?

What’s supposed to happen

  • The Editor needs to be running.
  • That bConnectionEstablished? Has nothing to do with Swarm.
  • It’s a connection to the Editor. For passing back status updates.
  • And is a lie, because to return that “established connection” only checks that the socket can be opened.
  • Which normally does a connect in the actual main thread.
  • And gets a response on the main thread.
  • And sets the Recipient valid in the HandlePongMessage callback. How very clear.

What’s actually happens

But the thing is – and this is what took me many days to figure out – is that just because you can open the socket doesn’t mean you’ll get a response.
For example, if you have your firewall turned on, like it should be.
No version of the Editor and Lightmass is signed for Big Sur, so the Firewall automatically blocks all the traffic.

Even if you ‘enable network connections’ for them both, you have to restart both apps for it to ‘take’, and if you rebuild of the Editor it invalidates the ‘pass’. Which, if you’re developing via a from-source build of Unreal, you’ll be doing all the time.

In the end… you have to disable your Firewall. Otherwise you get an error that makes no rational sense in code that’s written to suggest something else is wrong.

Why Freelance?

Why do I do freelance game development?

First is to consider the alternatives:

  • Make my own game
  • Work for someone else
  • Work for an application development company

My goals center around providing a stable environment for my family. Everything else is in support of this goal.

Making games requires time, money, a very supportive family, and a team. For as long as Ive been a game dev, Ive only had one of those: a good family. It took many years to finally find a great team. Even though I now work with my fellow consultants in this group, we are all in a similar position that we dont have money to invest.

Work for another game company? Maybe a decade ago or longer Id heard that for every game thats been successful, there were nine that never turned a profit. In the current explosion of indie developers relying on the professional tools that are cheaply or freely available, Im guessing that has risen to at least a hundred to one successful project, if not a thousand.

So why not work on normal applications? Its steady work, even pays more, and its available country-wide. Over the years Ive done normal applications. My early career I intentionally searched for application work despite already having done some game dev. I wanted to have a wide range of experience. What it taught me is that I have a special gift that applies more to games. Im at best a mediocre app developer.

But Im a really good game dev.

Clearly there are games being made. Some successful ones. Being a consultant means I get to swoop in and help people with my specialized experience and help them reach their goals in a fraction of the time and expense than for their group to try working it out for themselves.

Its not like we just leave in the middle of a project. We support the projects and hand off the work in ways so the clients can maintain what weve done long after we have moved on. And we dont simply drop off the face of the planet. We answer questions for old clients when they come up. Most of our new work comes from references given by people we have helped in the past.

So yea. This is where I need to be. Helping as many people the best ways I know how.

The beginning of Wisdom

Congratulations! You’ve just realized that God has a power over both your life and the world at large. You’ve seen glimmers of hope that can only be explained by a God who cares about you and has power in the world. It feels like a tenuous grasp, difficult to notice on a daily basis, but it is there. What do you do with this knowledge?

You learn more.

God is all around you, and his touches are all around as well. But our lives have hidden Him in so many ways. Pain, suffering are everywhere. Love of any kind is scarce, evil rules the land. That is, until you look at the world from God’s eyes. Then you see people who care, beauty in simple things, and the realization that largely it is up to us to make things better.

The Bible is what God gave us to understand Him better. Instructions for life, a history of where we come from, a guidebook for where we should go. But it also understandibly daunting. It can be scary to approach it alone. It is much more approachable with a friend. I don’t claim to know all, but I do have experience. Questions are good. The more questions you ask, the more you can learn. You know how to reach me: throw a rock in the east river and I’ll get back to you.

The book we will learn from is the “starting place” for anyone who wants to understand what it is to be a modern God-follower. It is a letter sent to the Romans in Italy. They are not of Jewish descent; they are “grafted into the tree,” as God truly loves all, not just the chosen people. BibleGateway.com

I hope you will join me as I walk through God’s word and unpack it as best I can.

Never have I ever…

Is this you: you’re on your couch, scanning through facebook, looking at posts by people who are cooler than you because they got off the couch and did something? Have you realized yet that the people you follow are people who remind you of the version of yourself that you want to be?

Have you ever met someone who is different from you? Actually had a conversation about who they are, what life is like for them, how they got to be where they are in life?

It’s natural for us to gravitate towards others who are similar to us. There is nothing wrong with that, on the surface. The trap that so many have fallen into is to see that border and to stop looking beyond it.

Parenting in this age for some is a very different experience from what we grew up with. A century ago, children were not expected to survive to adulthood. Emotionally, it was simply easier to not get too attached, because you never knew if they would be there in the spring. Life was hard for most everyone, just trying to get by. This hardened most people’s hearts to the plights of others, as the “self” had to be paramount.

With our increasingly expensive modern science and healthcare, things have shifted drastically. There is finanancial support for those who are poor; most of the basic needs can be purchased at mass produced, at relatively little cost. Children in rural areas of the United States have a very good chance of surviving. Even in the cities, the most likely causes of death involve each other, not starvation.

This has given rise to a sea of people who have every reason to believe that this is the best we will ever have, as it truly is the best we’ve ever had it. We are comfortable. We can survive almost effortlessly. The “self” has been taken care of. Even the ever present threat of world destruction of the Cold War has been largely forgotten.

Except that’s not actually true for everyone. If you’re one of the ‘majority,’ it is true. People are so very good at divisions, aren’t they? Always “us” and “them,” not “all.” There is an entire world of people who are not actually taken care of. In fact, they are being crushed by the very comfort that you are taking for granted.

In this new comfort of many decades, parenting has shifted considerably. Each child is cherished. We each want to make things better for our kids than we had it. We love on them with all our might, sometimes even in misguided ways. This is good.

But consider how a child who has little adversity in their life grows up. Never having faced the hard truths that life starts with survival. That the best way to survive is to band together as teams, groups, friends, families. That a day may come that you must rely on the person next door who you’ve never met before because you didn’t need to. Or your life might depend on whether the person on the other side of town who is at your grocery store is wearing a mask.

As parents we have made life comfortable for our kids. The lesson here is that we need to look for ways to get our kids out of their comfort zone so that they understand the importance of “us together,” not just the “self.” The earlier, the better. We don’t need to harm our kids. But we do need to show them what happens outside of the bubbles we created for them.

You better check yourself, people.

This is whats wrong with our country.

My wife is sitting in the information booth for the soccer league, crocheting and waiting for people who have questions.

Up walks a father and daughter. The father begins asking all kinds of questions about the length of a game, and various rules of soccer.

While answering the questions, he frequently interrupts with “that ref didnt know what she was doing, completely useless” and other degrading statements.

He was then informed at length that the referee he was talking about was our daughter who had just turned fifteen this week. He quickly backpedals on every belligerent thing he has just said with an air of superiority, while his daughter literally stands next to him with her head hung in shame.

“I thought she was 22!” Why should that matter? Being an adult means you get to be yelled about by random people?!? No.

Why is it this society is so easily willing to take someone else down? If youre going to badmouth someone, stand behind your words. But no, we would rather apologize, which does nothing for the person youve hurt, and only makes yourself feel better.

The few of society who act completely selfish need to take a step back and begin to think about others. This is what needs to change if we are going to survive.