Category: gamedev
-
Netcode bugs

While working on my network equipment code I noticed some strange behavior as I kept killing my clients and reconnecting them. After restarting my clients it felt… sluggish when reconnecting, like it was taking many ticks for the client to actually login. This spiraled into finding quite a few bugs.…
-
Networked Equipment Events

While I’ve been slowly dealing with the fallout of fixing my remapping server id’s, I’ve also been trying to get networked equipment events to work. This allows other players to see players in the area equipping new items such as weapons. It all starts in UE5. A user opens up…
-
Sometimes… You just gotta hack it

I’ve been busy implementing synchronization of equipment for other players over the network. Meaning you’ll actually see someone switch their weapons/armor as they do it. During this implementation, my client’s began to crash. Turns out I was not using flecs entity Id creation correctly. Nov 29th 2025 UPDATE Turns out…
-
Simple RPC/Event System

Phew it’s been a minute. I took a little break, but I am back working on PMO, and where I left off was implementing equipment and inventory. I decided to use an RPC like mechanism, taking advantage of the reliable UDP layer I’ve already built. While movement is unreliable, and…
-
Inventory System UI

Hey folks, this will be a quick post on getting some features into the UI system that took me a minute to figure out, recording here as I’ll probably need to look up how to do this again in the future. Let’s start with TileView The UTileView is a UMG…
-
Creating Draggable UIs in UMG C++

I’ll admit it’s been a while since I posted anything. I may have got sucked into Dune awakening for a month or so… While it started out strong the end game PvP left a lot to be desired. But that’s not why I’m here today. I’ve been slowly chipping away…
-
Spiking the Inventory System

It is quite refreshing working on something other than netcode. This post is going to go into a bit of detail on how I plan on laying out the UE side of the inventory system. The flecs inventory system was adopted from the example flecs system. The flecs side of…
-
More netcode fun

5 months, 5 months I’ve been working on fixing my netcode. I finally understand what you have to do to get a decent deterministic simulation between clients and servers. In my defense on why this took so long, I’ve been spending a lot of time playing the Blue Prince and…
-
Client Desyncs, Mostly Solved

I am cautiously optimistic that my client desyncs are (mostly) solved. Boy has it been a wild ride. I started this endeavor 3 months ago as I first noticed my client was slowly unable to hit another player that should have been within the range of the collision sphere. I…
-
Small Progress, Big Frustrations

I have been working on client rollback physics for ~ checks notes ~ THREE months now. I have never worked on the same problem for this long. I finally made a semi-small breakthrough this weekend, only to be hit with another problem. Before we get into the details of what…
-
Groking epoll
Well, things aren’t going as planned, while I’ve implemented about 90% of the rollback code, I’m finding that the servers and clients are getting desync’d way more than they should be. Looking over the logs I’m seeing the server process client packets at strange times. This made me go back…
-
Netcode, Physics and Lag Compensation Woes

As I’ve been continuing my attack animations and combat system, I started to notice sometimes my hits weren’t registering. Up until now I’ve done no client side correction of server location data. I figured since I was testing everything locally the drift between the clients location and the servers location…
-
Calculating Root Motion, Server Side

New Year, new post! In my last post I was able to extract all the root motion data from the animation sequences I bought. I still need to apply that motion data to my characters on both the server and the client. This post will cover what it takes to…
-
Extracting and Evaluating Animation Data

I treated myself to an early x-mas gift of buying a bunch of stock animations from the fab.com store. I bought four packs, Sword and Shield (also comes with 2H animations), Spear and Shield, Mage, and Bow & Arrow. As a bonus, these animation packs came with a pre-wired animgraph…
-
You can’t get more adversarial than PvP MMORPGs

While talking to a friend about how PvP was going in Ashes of Creation, he mentioned some bugs that they were experiencing with PvP mechanics, in particular players disconnecting while in combat and being immediately removed from the server. This gave me an idea to write this blog post outlining…
-
Healthbars

Ahh UI stuff, not going to lie I don’t really enjoy it, it’s a lot of wiring up and glue code, but it’s what makes your game actually look good and have a good UX so you got to do it. I usually default to doing whatever benui and his…
-
Damage, Death, and Respawns

I’ll admit I’ve been slacking quite a bit here since I’ve become horribly addicted to Valve’s new MOBA deadlock. It has quite possibly one of the best combat systems I’ve played, and definitely ever for a MOBA. That being said, I’m still chugging away on my game. I try to…
-
Combat Part 3 of N (getting animations in)

Now that our input is handled, it’s time to get some animations in to see our character making their attack. This requires quite a few additional steps, along with some changes I wanted to make. The process was as follows: And with that, let’s begin! Getting animations from mixamo If…
-
Combat Part 2 of N (wiring up Input handling in UE5)

In the last post I had the concept of combat implemented, but not entirely wired up. It still didn’t work from “press key and execute attack”. That is what todays post is about. Although I have the animations all up and working I’ll split it into two parts to keep…
-
Combat, Part 1 of N

I’m finally able to start working on building out a combat system for this game, and boy is it a lot more complicated than I originally anticipated. Before that however, I had to modify my architecture a bit because during building out the ECS system for combat I realized I…
-
More Animation Work

Hey folks, back after a slight break (trip) but I have been getting back into things here by fixing my animations and getting them to work for the network character(s). Let’s dive in. As you may recall we left off with our character able to run around with the default…
-
Fixing PMOCharacter animations

As cool as it is to see my character zooming around in the A pose, I wanted to fix up at least my own character class’s AnimBlueprint. By default the Animation blueprint is heavily coupled to the Character and CharacterMovementComponent. Meaning, me hijacking movement with Jolt’s physics isn’t going to…
-
PMO Network Movement in UE5

Mission Accomplished Phew, after a year and a month, I FINALLY have networked movement visible with Unreal Actors in my MMORPG! As you can see we now have characters moving around and visible in the UE5 editor: Your browser does not support the video tag. Problems getting here After my…
-
Performance & Load Testing (300 Concurrent Clients!)

As much as I want to get multiple characters up and running around in Unreal Engine so I can see them, there’s one final task I must complete, and that is making sure this whole thing is actually going to work to the scale I want it to. I want…
-
World State

As I mentioned in my 1 year anniversary post, I’ve completed the WorldState system. This system is based off the Quake 3 Arena delta compression technique and will hopefully allow me to efficiently transmit state updates to clients. If you want a general understanding with visuals, I recommend reading the…