Category: mmorpg
-
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…
-
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…
-
PMOs 1 Year Anniversary

While going through some of my old posts to look as to why I designed somethings, I noticed June 28th is the first post of me taking on this massive project. It’s always good to reflect on what you’ve done and accomplished and a one year anniversary is a good…
-
Area of Interest Part 2

In the last post I hinted that the AoI system will probably span a few posts. While I had the initial design and built the sensors in Jolt Samples, I quickly noticed a problem, my character wasn’t triggering the sensor volumes. Pairing Jolt’s CharacterVirtual with a Rigid Body It turns…
-
Area of Interest Initial Design Idea

Now that my physics engine is in place and I can move the primary character around, I need to start sending positional information to all connected clients. To do this, I need to have a system that knows which characters are near each other and who should be able to…
-
Some bugs and how I fixed them

Half Capsule Problem I left off last post where I finally fixed collision, but my character’s collision capsule appeared to be half inside of the mesh. This took me a good long while to figure out and finally with help from the author of Jolt he cracked what I was…
-
Debugging JoltPhysics in UE5

I have been struggling with getting JoltPhysics to play nicely in my code. What seems to work just fine in the JoltPhysic’s samples, utterly fails when I try to play inside the Unreal Editor. This post is a quick update on how I’m going to start debugging Jolt from inside…
-
Loading FBX models into JoltPhysic’s Samples

I realize it’s been a long time since I posted, but I assure you I’m still working on this almost every free chance I get. It’s been rather slow going because I’m not really familiar with physics or loading meshes manually. I’ve been reading over the Jolt Physics docs and…
-
MMORPG Server Emulators And Where To Find Them
It’s always good to see examples of MMO servers up close. Over the years I’ve tracked down quite a few emulators. While not an exact representation of what a production MMORPG server looks like, you can get a very good sense of the design patterns just by reviewing the reverse…
-
Libuv, uvw, flecs oh my!
Adding in the glue I spent most of the weekend getting the project setup (remember it’s all open source!) , which means fighting with CMake. I also did a lot of reading of libuv vs boost asio for an event based networking system. I finally settled on uvw which is…
-
Environment Setup
I can not stress enough how important having a good environment setup is for me. Traditionally, I’m a Go developer so getting a similar setup working in C++ will help ease me in. I also use VSCode, so having something working there where I can have my tests and the…
-
So, you want to build an MMORPG Server
Even researching how to build an MMORPG server is a large undertaking. There are so many different architectures and designs, components and considerations to take, even before you start coding. It helps to have a high level understanding of what and why it is so complicated. Please keep in mind…