115 Followers
54 Following
137 Posts
CTO at Mercuna Developments, the AI Navigation solution for Unreal Engine
Also at @mike for non-gamedev stuff.
Mercunahttps://mercuna.com
GitHubhttps://github.com/MichaelBell

#unreal spooky story time! I just figured out a bonkers problem which goes like this:

1. A UPROPERTY which was initialised in a C++ constructor was becoming NULL by the time BeginPlay() was called
2. It only happened in Blueprints that had been duplicated from other blueprints. Creating a *identical* blueprint from scratch was fine
3. The blueprints had NO CODE in them

Wanna know why? The answer is actually quite simple, and maybe you already know. But it drove me insane for a good hour.

Queuing for the State of UnrealEngine talk, it would be nice if people came round selling coffee!
I’m in San Francisco for #GDC again after quite a few years away. Shout if you’d like to meet up!

NVK live blogging? Why not!

Last week I was investigating a GPU crash with the OpenGL CTS on Zink+NVK. In particular, this test:

KHR-GL46.tessellation_shader.tessellation_control_to_tessellation_evaluation.gl_tessLevel

Upon first inspection, this test has some of the stupid simplest shaders ever. Why the hell was the hardware throwing an Out of Range Address exception?!?

We are very excited that Yellow Brick Games will be using Mercuna in their new fantasy action RPG currently in development! https://mercuna.com/games/#yellow-brick
Mercuna AI Navigation | Games using Mercuna

Discover the games that are using Mercuna AI Navigation for their flying, swimming, walking and driving AI.

Mercuna

#cpp question: What are the alignment requirements for memory passed to placement new?

My understanding was that it only needed to be aligned to alignof(T), where T is the type being constructed.

But we have a release build crash due to MSVC assuming it is 16-byte aligned and initializing memory using `movaps`.

I acquired (with help) a killer audio cassette digitizing rig, and then IMMEDIATELY had to spend over 2 months digitizing 90+ cassettes from the 1999 Game Developers Conference (via a slow-and-steady workflow that got the job done without being too disruptive to any other work I was doing).

So, here we are, it's done. Go enjoy 70+ hours of presentations about all aspects of game making and producing, in 1999.

https://archive.org/details/1999_Game_Developers_Conference_Audio

1999 Game Developers Conference Audio : Various : Free Download, Borrow, and Streaming : Internet Archive

The Game Developers Conference (GDC) is an annual conference for video game developers. The event includes an expo, networking events, and awards shows like...

Internet Archive

Introducing better handling for stationary obstacles in Mercuna.

We reconstruct the nav mesh from our stored nav quad tree so that we can mark the space around the agent without having to rebuild the generation box from scratch.

The agent itself, or another agent pathfinding to it, is allowed to search through space that is blocked by its obstacle. This keeps queries working as you would expect.

Bit mask generation question:
I have ARGB1555 data and want to generate a mask from alpha. This is on Cortex M0+ (RP2040) and I’m doing two pixels at a time as it is 32 bit.
Can generate a mask excluding alpha in 3 cycles:
m = x & 0x80008000
m = m - (m >> 15)
But including alpha I’m struggling to get 3.
m = (m >> 15) * 0xFFFF
is but need another low register for the constant, which I don’t have, so it’s effectively 4.
Any ideas welcome!

People ask me how to learn game design. 😬

Don't know what to say.

"Well, I was wildly incompetent for the first decade. Wasted a lot of time and money."

"Oh, and then in the next decade, I got a little better and was cocky. But still didn't know anything. Wasted even more time and money."

"Now I'm slightly better. Stuff doesn't instantly fall over as often. But still figure I've got another decade before I know what I'm doing."