Vanguard of the Fallen - My EQ Based RPG Project

  • Guest, it's time once again for the massively important and exciting FoH Asshat Tournament!



    Go here and give us your nominations!
    Who's been the biggest Asshat in the last year? Give us your worst ones!

Blazin

Creative Title
<Nazi Janitors>
6,948
36,129
About four months ago I decided I want to learn more about game development. I downloaded Unreal Engine and just started working away at it. At first without much direction, I figured a small simple game would be a great place to start, I then promptly shifted from that to something much larger. I was really getting hooked and wanted to make something I'm passionate about. So I decided to make an RPG based on Everquest. My goal is not to make EQ, but more my own take on the genre. Wanting to keep my primary focus on development I decided to use EQ art assets, I knew it would take me significantly longer to produce assets being equally inept at blender as I am UE.

I also knew that sticking to a single player game would greatly simplify the process, so I of course ditched that bit of wisdom as well. I really didn't want to learn bad habits making a single player game that would be problematic in a network environment. So currently I'm making the game for 4 person LAN set up, utilizing a listening server.

I focused the first hew hundred hours on just the backbone of the game, just all the systems underneath and pretty much no content. It's obviously tempting to dive right into content but I knew in the long run that would be unproductive. I felt I was far enough along that I needed to start work on content to drive the backend any further towards refinement. So I started the world building process. While I could find no one who had used EQ assets in UE besides one random guy on youtube, the people who have done more work in Unity and the emulators where helpful and it only took me a few weeks to learn enough about blender to start being able to make use of textures and static meshes derived from EQ assets.

While this project is primarily for my development I thought some here might be interested and heck if just a few actually end up enjoying it, I'd be delighted. I will keep this thread updated to the extent there is interest. I'd be looking for some people to help with play testing in the not too distant future. This is a full time project for me, and while I don't think it's anything that special compared to what real studios put out I am pretty happy with the progress when I think of games that take entire teams 7+ years to "complete" .

So if the project interest you or you just want to chat about UE development or development in general or if any of those with far more experience have advice that'd be great.

The name is just a tongue and cheek nod to Brad and Vanguard/Pantheon

Channel With Updates: https://www.youtube.com/@vanguardofthefallen

Latest Version

7/19/24 Update v0.06A
 
Last edited:
  • 36Like
  • 2Mother of God
Reactions: 37 users

Flobee

Vyemm Raider
2,674
3,072
This looks awesome, well done! I was puttering around with Unreal a little over a year ago on a similar idea but didn't get as far as this. Started back up around March this year with a completely different approach but still probably going to lean heavy on Everquest concepts. I decided to spend my initial couple months learning GAS and trying to basically build a base out to start prototyping off of.

Have you messed with GAS at all? I figured since it handles replication, prediction, and a fair amount of optimization for abilities it would be good to use. If you're not how has dealing with replication and prediction been? That was my main concern since like you I decided to ignore popular opinion and jump straight into multiplayer.
 
  • 2Like
Reactions: 1 users

Blazin

Creative Title
<Nazi Janitors>
6,948
36,129
This looks awesome, well done! I was puttering around with Unreal a little over a year ago on a similar idea but didn't get as far as this. Started back up around March this year with a completely different approach but still probably going to lean heavy on Everquest concepts. I decided to spend my initial couple months learning GAS and trying to basically build a base out to start prototyping off of.

Have you messed with GAS at all? I figured since it handles replication, prediction, and a fair amount of optimization for abilities it would be good to use. If you're not how has dealing with replication and prediction been? That was my main concern since like you I decided to ignore popular opinion and jump straight into multiplayer.
GAS is very powerful tool and I did look into it but in the end decided to build my own combat/stat/attribute system. GAS is probably a great thing for anyone wanting to work in the industry since it would make easier coming into an existing project with a foundation of how things are handled and set up.

However, for skill development I think it's pretty important to learn to do it yourself and then go into GAS with a better understanding and appreciation for what it can and can't do. I could see using GAS on a future project depending on what type of game it was.
 
  • 3Like
Reactions: 2 users

Flobee

Vyemm Raider
2,674
3,072
GAS is very powerful tool and I did look into it but in the end decided to build my own combat/stat/attribute system. GAS is probably a great thing for anyone wanting to work in the industry since it would make easier coming into an existing project with a foundation of how things are handled and set up.

However, for skill development I think it's pretty important to learn to do it yourself and then go into GAS with a better understanding and appreciation for what it can and can't do. I could see using GAS on a future project depending on what type of game it was.
Yup, that makes sense to me. Well I for one will be interested to see how you get along with this. If things go well I may even have a post of my own here in a few months
 

kinadin

<Gold Donor>
3,371
14,725
Some of my favorite games have been made from single or duo developers that mostly self-taught themselves. This looks really cool so far and I hope you keep it up.
 
  • 2Like
Reactions: 1 users

Control

Ahn'Qiraj Raider
2,983
7,877
Fantastic! Definitely interested to see any updates. Not to say that things aren't rough for indie developers, but modern AAA dev being what it is, people tend to forget how small the original teams that made things like EQ were. It's all about managing scope down to only what's truly essential.
 
  • 1Like
Reactions: 1 user

Blazin

Creative Title
<Nazi Janitors>
6,948
36,129
I want to get rid of the target arrow, what do you guys think of this red cylinder for current target in the world space? Definitely stands out. I wanted to just make their name tag flash but I'm having technical issues.
NPC nametags are displayed in the world space this means they are occluded when behind objects/walls are culled at a distance. The UI system of Unreal is called the UMG and it can do a lot of things. I made an animation of the name blinking but these animations must be played in the screen space not the world space. So if NPCs had tags in screen space you'd see them everywhere. Now you can add code that is constantly checking your range and line of sight but it gets complicated in a network environment. Widgets (UI Elements) are locally owned and there is no local owner of an NPC. The server has authority on the NPCs and other clients can't see the widgets of an NPC so you have would have to create the nametag widget on the player character for every npc then dynamically place them by checking for npc world positions and be doing this every tick. (frame). There may be ways around all of this, there pretty always is but it's more than I want to take on just for this feature. Open to ideas. My player name are in the Screen space that means you can see your groupmates anywhere they are (I believe minecraft did it this way?) This can aid in people finding each other. It even works across multiple zones

I can change variables related to their tag, size and color being the most obvious. Maybe just making the current targets name bigger would be sufficient. Because these names are in the world space changing their size means it would change for everyone who could currently see that npc but thats not necessarily a bad thing as you could then see what npc others are targeting. I'd prefer not to do any of that as a preference. Right now the arrow is local so it doesn't need to be replicated across the network. Only the client needs to see it. I can do that with any kind of mesh or particle effect whatever.

Let me know your thoughts, I can come up with many ways of doing it, the challenge is finding a sufficiently doable solution that limits network traffic.

1718406024277.png
 
Last edited:
  • 1Like
Reactions: 1 user

Hateyou

Not Great, Not Terrible
<Bronze Donator>
16,632
43,269
I think just making their name a different color/flash slightly would work instead of the arrow.

The target ring at the bottom is fine to have but not that opaque and bright, it’s too much at the moment. Should be much less intrusive imo.
 
  • 2Like
Reactions: 1 users

Hateyou

Not Great, Not Terrible
<Bronze Donator>
16,632
43,269
Also you might benefit from chatting with M maelfyn . His first game used EQ sprites and he got in trouble and had to change them. He does have a lot of EQ sounds in his games though because they are purchased from a publicly available sound pack.

 
  • 1Like
Reactions: 1 user

Control

Ahn'Qiraj Raider
2,983
7,877
NPC nametags are displayed in the world space this means they are occluded when behind objects/walls are culled at a distance. The UI system of Unreal is called the UMG and it can do a lot of things. I made an animation of the name blinking but these animations must be played in the screen space not the world space. So if NPCs had tags in screen space you'd see them everywhere. Now you can add code that is constantly checking your range and line of sight but it gets complicated in a network environment. Widgets (UI Elements) are locally owned and there is no local owner of an NPC. The server has authority on the NPCs and other clients can't see the widgets of an NPC so you have would have to create the nametag widget on the player character for every npc then dynamically place them by checking for npc world positions and be doing this every tick. (frame). There may be ways around all of this, there pretty always is but it's more than I want to take on just for this feature. Open to ideas.
So I'm a terrible dev, and I also don't use Unreal, so is probably worthless, but you could ignore the UI system and attach a sprite card to each character's root that you could display a text object and/or animated texture on.
 
  • 1Like
Reactions: 1 user

Flobee

Vyemm Raider
2,674
3,072
I want to get rid of the target arrow, what do you guys think of this red cylinder for current target in the world space? Definitely stands out. I wanted to just make their name tag flash but I'm having technical issues.
NPC nametags are displayed in the world space this means they are occluded when behind objects/walls are culled at a distance. The UI system of Unreal is called the UMG and it can do a lot of things. I made an animation of the name blinking but these animations must be played in the screen space not the world space. So if NPCs had tags in screen space you'd see them everywhere. Now you can add code that is constantly checking your range and line of sight but it gets complicated in a network environment. Widgets (UI Elements) are locally owned and there is no local owner of an NPC. The server has authority on the NPCs and other clients can't see the widgets of an NPC so you have would have to create the nametag widget on the player character for every npc then dynamically place them by checking for npc world positions and be doing this every tick. (frame). There may be ways around all of this, there pretty always is but it's more than I want to take on just for this feature. Open to ideas. My player name are in the Screen space that means you can see your groupmates anywhere they are (I believe minecraft did it this way?) This can aid in people finding each other. It even works across multiple zones

I can change variables related to their tag, size and color being the most obvious. Maybe just making the current targets name bigger would be sufficient. Because these names are in the world space changing their size means it would change for everyone who could currently see that npc but thats not necessarily a bad thing as you could then see what npc others are targeting. I'd prefer not to do any of that as a preference. Right now the arrow is local so it doesn't need to be replicated across the network. Only the client needs to see it. I can do that with any kind of mesh or particle effect whatever.

Let me know your thoughts, I can come up with many ways of doing it, the challenge is finding a sufficiently doable solution that limits network traffic.
Have you considered something like SetCustomDepthStencilValue and SetRenderCustomDepth? I currently use it to add a highlight around the outline of enemies when I hover my mouse over them. It lives on the enemy character and interacts with their mesh. Not replicated so only runs locally but works fine for my purposes. I haven't looked into other uses for it but it may be helpful for this. If you found a way to let the nameplate live on the enemy it would probably allow you to highlight it. For the time being I just create a simple UWidgetComponent and attach it to the enemies root component for my health bar which is a not different. I'll have to play with it and see if I can get the Stencil value to interact with the health bar. If so I suspect it would work for floating names as well.
 
Last edited:
  • 1Like
Reactions: 1 user

Kharzette

Watcher of Overs
5,341
4,072
I had to deal with that server/client/authority stuff with conan exiles alot. Pain in the ass, I hated it.

But I know the guy that wrote that whole system and he's way way smarter than I am, so I'm probably just dumb.

Is unreal still using those godawful blueprints? Did they ever get them an ascii mode so they would actually be useful with source control?
 

Shmoopy

Avatar of War Slayer
4,299
19,078
I had to deal with that server/client/authority stuff with conan exiles alot. Pain in the ass, I hated it.

But I know the guy that wrote that whole system and he's way way smarter than I am, so I'm probably just dumb.

Is unreal still using those godawful blueprints? Did they ever get them an ascii mode so they would actually be useful with source control?
You don't have to use blueprints for the vast majority of stuff, unless you want to, except for skeletal animations and materials where they are kinda built in.

UMG HUD stuff you can use blueprints just to define the HUD and then 100% C++ for all the HUD logic. Which is preferable IMHO.
 
  • 3Like
Reactions: 2 users

Tuco

I got Tuco'd!
<Gold Donor>
47,358
80,733
Is unreal still using those godawful blueprints? Did they ever get them an ascii mode so they would actually be useful with source control?
Yes. As a mainly c++ dev it's quite a learning curve. After climbing it I kinda prefer C++ for most things, but it's hard to have a lot of responsibility in an Unreal project without being good at blueprints. The biggest complaints I have around it are about traceability. Blueprints wrap the C++ templating horseshit that Unreal is built on, which makes traceability difficult already, but it feels like in Unreal 4 at least there's a few options missing that could help answer questions like "What the hell is this" and "How do I get this" and "where does this go"

The source control tools they have in the engine to manage blueprint changes are OK. Better than they would be if they were stored as say, XML or LUA or whatever and you were diffing them.

 
Last edited:
  • 1Like
Reactions: 1 user

Tuco

I got Tuco'd!
<Gold Donor>
47,358
80,733
btw Blazin, cool project and good luck. I've always wished that EQ->Unreal port devs (I realize you're not just trying to port EQ to Unreal) would get together for something real, but I also realize that the hard part about porting Unreal to EQ is also pretty boring. Integrating what P99 (or whatever) has for server-side data like spawns/loot into Unreal and creating a usable backend to support players is much less fun than integrating the art pieces.
 
Last edited:
  • 1Like
Reactions: 1 user