Category: gamedev
-
Bots, Abilities and Balancing

I am thoroughly enjoying building and tweaking this combat system. I wanted to share some updates as I continue to work through getting this simulation to a point where I can start investigating genetic algorithms. (UPDATE: I had to make the repo private as I’m turning this into it’s own…
-
Flecs Script Based Abilities, Behavior Trees and Combat

As my vacation is nearing an end here, I wanted to cover what I’ve been up to. This is something I’ve wanted to do for a long time. Which is build out a custom, composable ability system (like Unreal’s Gameplay Ability System) and then build a bunch of bots to…
-
Netcode Optimization Part 3: Client Side Prediction

I still have a few more days off here, but I wanted to cover the last part of this series before I move into combat/ability systems. Although it’s not really optimization per-say, it will appear like one to players, and that’s client side prediction. I am by no means an…
-
Netcode Optimization Part 2

Happy new years folks, continuing on my work from earlier I wanted to reduce the size of my data structures a bit as they are unoptimized. This post will go into some techniques and obvious changes to reduce my per-player sizes by 42 bytes per character, and reduce combat events…
-
Netcode Optimization Part 1: Fine grained visibility & multi-packets

I have had a very busy Christmas break. I basically switched my day job schedule to coding this project. Not on purpose mind you, just every time I seem to sit down I am compelled to work on it just a little more. And then it’s lunch time, and then…
-
Netcode optimizations for MMORPGs

This is more of a brain dump post than an implementation devlog post. I want to write down my thoughts and figure out a series of improvements I can make to my netcode before I actually implement it. There are some pretty unique challenges that MMOs face that just aren’t…
-
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…