Unreal Engine 4 (free!)

Flobee

Vyemm Raider
2,603
2,991
So I've been playing with UE5 recently and been having a good time. Currently working on creating melee damage calculation to feed into the combat system and its got me thinking about formulas. Decided I would like to use EQ damage calculation as a model and got a good overview from here: https://wiki.project1999.com/Game_Mechanics

Curious if anyone knows where the calculations from AC/Avoidance live? Not sure I want to do things exactly the same way but its a good reference. S Secrets perhaps you can point me in the right direction?
 

DickTrickle

Definitely NOT Furor Planedefiler
12,882
14,770
So I've been playing with UE5 recently and been having a good time. Currently working on creating melee damage calculation to feed into the combat system and its got me thinking about formulas. Decided I would like to use EQ damage calculation as a model and got a good overview from here: https://wiki.project1999.com/Game_Mechanics

Curious if anyone knows where the calculations from AC/Avoidance live? Not sure I want to do things exactly the same way but its a good reference. S Secrets perhaps you can point me in the right direction?
It's way more complicated so good luck with that...

 
  • 1Like
Reactions: 1 user

Ravishing

Uninspiring Title
<Bronze Donator>
8,452
3,577
So I've been playing with UE5 recently and been having a good time. Currently working on creating melee damage calculation to feed into the combat system and its got me thinking about formulas. Decided I would like to use EQ damage calculation as a model and got a good overview from here: https://wiki.project1999.com/Game_Mechanics

Curious if anyone knows where the calculations from AC/Avoidance live? Not sure I want to do things exactly the same way but its a good reference. S Secrets perhaps you can point me in the right direction?

Are you using the Gameplay Ability System?
It can handle MMO-like ability system easily and you can specify very in-depth damage calculations.
For any complicated ability+attribute system I would recommend it.
But there is a bit of a learning curve to it, and some C++ is required.
 
  • 1Like
Reactions: 1 user

Flobee

Vyemm Raider
2,603
2,991
Are you using the Gameplay Ability System?
It can handle MMO-like ability system easily and you can specify very in-depth damage calculations.
For any complicated ability+attribute system I would recommend it.
But there is a bit of a learning curve to it, and some C++ is required.
Yea, using a GAS execution calc for this portion. I'm no good at writing code, much less C++ but I have a CS degree and understand the concepts. Have been able to limp through it up to this point with the help of a hodgepodge of tutorials on the various aspects I wanted to get working. Not doing any replication on this one but figure learning GAS now is worth the effort moving forward.
 
  • 1Like
Reactions: 1 user

Secrets

ResetEra Staff Member
1,871
1,878
So I've been playing with UE5 recently and been having a good time. Currently working on creating melee damage calculation to feed into the combat system and its got me thinking about formulas. Decided I would like to use EQ damage calculation as a model and got a good overview from here: https://wiki.project1999.com/Game_Mechanics

Curious if anyone knows where the calculations from AC/Avoidance live? Not sure I want to do things exactly the same way but its a good reference. S Secrets perhaps you can point me in the right direction?
You'd probably want to make the following first, but it's not limited to just this:

- A Subsystem database, separate to Unreal 5, that handles storing and interacting with the values from gameplay
- An autoattack / combat system that enables tab-targeting or selective targeting, also within a Subsystem
- A component that resides outside of Unreal 5's replication loop that handles stat updating between that component and your game
- An actor that is fed the information from that component and handles HP replication to clients within your 'Unreal server', and set up your architecture to spawn an Unreal binary for every zone that handles interacting with the database layer and other zone instances

THEN you can start worrying about combat, and doing it in that component I mentioned above. You want combat to be handled per NPC/Player through a shared interface, most likely, that gets attached to a Pawn / Actor, and then separately, a singleton-style Subsystem database backend that runs parallel to the game inside of the game loop. Subsystem is designed for that interaction.

If you're trying to make an EQ-like game, I feel like Unreal will constantly be at odds with your design - but it's doable.

Also, avoid Blueprint where you can. Using the 'make native' function only goes so far. Blueprint's slooooooow compared to hiring a real-ass engineer for this stuff.

I've been dealing with an Unreal 3 project for a year and a half that implements a pseudo-RPG style interface. It's hard but not impossible to do that in Unreal.

I worked on an Unreal 4 title (should actually be out soon, im excited to see what the team did) in 2020, and I wrote a backend for that game that literally cloud-fetched the entire database from a Google Sheet so analytics folks could tweak individual values based on data warehoused gameplay habit data. It was... rough to do in Unreal 4, and I had to do a shit ton of hacky bullshit (part of that was us being green to Unreal 4, part of that was it being impossible to do without gutting parts of Engine in Unreal 4)

I can tell you right now that you'll have to pigeonhole an entire system ontop of Unreal 5 but it's far less effort than what I've been going through. Unreal 3 had a (poorly implemented) concept of C++ singletons that existed outside of the GC loop, and the Unreal 4/5 subsystem is so much better.
 
Last edited:
  • 1Like
Reactions: 1 user

Ravishing

Uninspiring Title
<Bronze Donator>
8,452
3,577
Yikes.

For dicking around in UE by yourself, don't complicate it.
The best UE workflow is C++ native class then blueprint child classes, but going 100% BP is fine for most small projects.
Don't get caught in the trap of pre-optimizing
Multiplayer is the death of most solo-dev projects btw.

You can easily make small single player games and throw them up on Itch or Steam.
 
  • 1Like
Reactions: 1 user

Flobee

Vyemm Raider
2,603
2,991
You'd probably want to make the following first, but it's not limited to just this:

- A Subsystem database, separate to Unreal 5, that handles storing and interacting with the values from gameplay
- An autoattack / combat system that enables tab-targeting or selective targeting, also within a Subsystem
- A component that resides outside of Unreal 5's replication loop that handles stat updating between that component and your game
- An actor that is fed the information from that component and handles HP replication to clients within your 'Unreal server', and set up your architecture to spawn an Unreal binary for every zone that handles interacting with the database layer and other zone instances

THEN you can start worrying about combat, and doing it in that component I mentioned above. You want combat to be handled per NPC/Player through a shared interface, most likely, that gets attached to a Pawn / Actor, and then separately, a singleton-style Subsystem database backend that runs parallel to the game inside of the game loop. Subsystem is designed for that interaction.

If you're trying to make an EQ-like game, I feel like Unreal will constantly be at odds with your design - but it's doable.

Also, avoid Blueprint where you can. Using the 'make native' function only goes so far. Blueprint's slooooooow compared to hiring a real-ass engineer for this stuff.

I've been dealing with an Unreal 3 project for a year and a half that implements a pseudo-RPG style interface. It's hard but not impossible to do that in Unreal.

I worked on an Unreal 4 title (should actually be out soon, im excited to see what the team did) in 2020, and I wrote a backend for that game that literally cloud-fetched the entire database from a Google Sheet so analytics folks could tweak individual values based on data warehoused gameplay habit data. It was... rough to do in Unreal 4, and I had to do a shit ton of hacky bullshit (part of that was us being green to Unreal 4, part of that was it being impossible to do without gutting parts of Engine in Unreal 4)

I can tell you right now that you'll have to pigeonhole an entire system ontop of Unreal 5 but it's far less effort than what I've been going through. Unreal 3 had a (poorly implemented) concept of C++ singletons that existed outside of the GC loop, and the Unreal 4/5 subsystem is so much better.
Thanks Secrets.

For the scale of what I'm building I'll likely just use flat data tables for gameplay values. My plan is essentially to make a single player game that mimics to some degree soloing in EQ. I'd expect less than 1000 items, maybe a lot less, maybe a dozen or so monster types, one player class/race, a few basic NPC classes, a couple dozen skill/spells at most.

I'm not doing any replication right now, only using UE GAS system so that I can work with replication on a later project if I choose to. That way I can focus on learning networking and replication at that point since GAS integrates replication and client prediction natively.

I've already got a barebones autoattack combat system with targeting that pulls data from previously mentioned data/curve tables. I still need to integrate a lot of stuff (level scaling, most of the attribute relationships with combat system etc) so I was interested in formulas to give me some ideas for how to handle that. Damage calculations are all being done in C++.

For what I'm trying to do, and the knowledge level I have, it makes the most sense to create the combat loop first then reverse engineer any data access issues I have later... or simply restart on that architecture once I have a better understanding of what I need. As Ravishing pointed out if I tried to build it "right" from where I am now, I simply wouldn't build anything. I have no doubt you're correct, but so far at least things are going pretty well and I have a clear path ahead for the time being
 

Ravishing

Uninspiring Title
<Bronze Donator>
8,452
3,577
Thanks Secrets.

For the scale of what I'm building I'll likely just use flat data tables for gameplay values. My plan is essentially to make a single player game that mimics to some degree soloing in EQ. I'd expect less than 1000 items, maybe a lot less, maybe a dozen or so monster types, one player class/race, a few basic NPC classes, a couple dozen skill/spells at most.

I'm not doing any replication right now, only using UE GAS system so that I can work with replication on a later project if I choose to. That way I can focus on learning networking and replication at that point since GAS integrates replication and client prediction natively.

I've already got a barebones autoattack combat system with targeting that pulls data from previously mentioned data/curve tables. I still need to integrate a lot of stuff (level scaling, most of the attribute relationships with combat system etc) so I was interested in formulas to give me some ideas for how to handle that. Damage calculations are all being done in C++.

For what I'm trying to do, and the knowledge level I have, it makes the most sense to create the combat loop first then reverse engineer any data access issues I have later... or simply restart on that architecture once I have a better understanding of what I need. As Ravishing pointed out if I tried to build it "right" from where I am now, I simply wouldn't build anything. I have no doubt you're correct, but so far at least things are going pretty well and I have a clear path ahead for the time being

While GAS does a lot of replication work, the workload for a multiplayer game is still easily 3+X more than a single player game, and there are things you can do in Single Player that just don't fly in Multiplayer. Also, even using GAS, any character movement ability basically requires setting up custom movement component and creating new movement modes, and this must be done in C++.

It's just so much work for one person.
If you do Multiplayer, keep it as simple as possible.
Also a multiplayer game will die quickly due to lack of playerbase.
You will still need a single player mode if you actually want to sell it.
 
  • 1Solidarity
Reactions: 1 user

Flobee

Vyemm Raider
2,603
2,991
You will still need a single player mode if you actually want to sell it.
Yea, I figure if I ever did do multiplayer I would probably focus on a local multiplayer game with the ability to host lobbies for remote joining. I don't think I would even consider hosted servers, matchmaking, etc. I also suspect that I would just forfeit the idea of stopping cheating, with no matchmaking a person can just choose whether they want to cheat and whether they want to play with cheaters. Thinking much more early 2000's style. Maybe I'd change my mind if I spent more time learning about it. For now just having fun with what I'm doing.
 
  • 1Like
Reactions: 1 user

Kharzette

Watcher of Overs
4,906
3,549
Are there any online blueprint viewers that work on actual files or just view stuff on github? I've seen the ones that work via clipboard but I don't have unreal installed. I'm on linux and it takes like 5 days to download the conan kit, during which time I have to be in windows (and I'm working on stuff in linux).
 

Kharzette

Watcher of Overs
4,906
3,549
Nevermind I still have it! This time I managed to get Epic's store to recognize it without it eating itself.

25GB patch but better than 220.
 

Kharzette

Watcher of Overs
4,906
3,549
I was thinking about engines this morning. Both Unreal and Unity are great at that initial get-something-running stage. Both have serious problems once maps and assets start getting larger.

My top 3 fave games are unity unity unreal in Empyrion, Eco, Conan. All 3 sprang to life out of the grass then slowed to a crawl, doing minor features here and there with major bugs taking multiple years to fix.

Are there ANY unreal / unity games that are showing fast progress in the later stages?

For conan there's no mystery why they are so slow as I have their devkit. 20 minutes to start it, then a good 15-20 before the UI will even respond to a mouse click because it has 400 threads compiling shaders etc. I'm guessing Empyrion / Eco are similar, but who knows.
 

Control

Ahn'Qiraj Raider
2,197
5,495
I was thinking about engines this morning. Both Unreal and Unity are great at that initial get-something-running stage. Both have serious problems once maps and assets start getting larger.

My top 3 fave games are unity unity unreal in Empyrion, Eco, Conan. All 3 sprang to life out of the grass then slowed to a crawl, doing minor features here and there with major bugs taking multiple years to fix.

Are there ANY unreal / unity games that are showing fast progress in the later stages?

For conan there's no mystery why they are so slow as I have their devkit. 20 minutes to start it, then a good 15-20 before the UI will even respond to a mouse click because it has 400 threads compiling shaders etc. I'm guessing Empyrion / Eco are similar, but who knows.
Are these slow because of the engine? or are they slow because after launch they're left with a skeleton crew to keep them sort of functional?
Bugs that take multiple years to fix aren't because the engine is slow to work in. They're just bugs that no one cares about fixing.
 

Kharzette

Watcher of Overs
4,906
3,549
Could be that for sure. Most development I've worked on, the greatest speed was towards the end of the project, but I've never done one of these early access / support for years things.
 

Control

Ahn'Qiraj Raider
2,197
5,495
Could be that for sure. Most development I've worked on, the greatest speed was towards the end of the project, but I've never done one of these early access / support for years things.
I haven't followed any of these, so I don't know what their timelines have looked like, but Empyrion and Eco released in 2020 and 2018 and they're still in early access? They likely made most of the revenue they'll ever make long ago, so even if the devs didn't intend to put them on life support, that's probably what ends up happening. Once you're in early access, you've launched, and it's very unlikely that there's a mountain of money waiting on you once you change from early access to "we've really really launched". As much as devs need something like early access, it sets up some misaligned incentives from the consumer's perspective.
 

Kharzette

Watcher of Overs
4,906
3,549
Yea Empyrion has been around a very long time. I can't remember the date it went early access but I've been playing many years. For them, almost as soon as the first early access was out, the project barely moved. The build system they started with has changed little, and it is the most impressive part. That usually makes me think whoever did it moved to another project.

Eco has had a strange life, originally being a kind of educational simulation with some educational funding. They got a big boost from the late shift guys starting big servers and streaming RP stuff. So much so that they've shifted their focus around a bit to attract that style of play.

Eco shows progress alot but in developer streams. They tend to wait a very long time before releasing anything. Boats and trains have been in the works for YEARS, and modders ended up beating them to it with boats.

Conan spins their wheels alot with redos and do-overs. Their artists are kept busy doing "battle pass" stuff. Not even really the kind of game that works for, just shoehorned in.

I'd definitely put the engine high in the blame for conan, but it might be their own customized unreal editor to blame. It almost seems single threaded.
 

Control

Ahn'Qiraj Raider
2,197
5,495
Yea Empyrion has been around a very long time. I can't remember the date it went early access but I've been playing many years. For them, almost as soon as the first early access was out, the project barely moved. The build system they started with has changed little, and it is the most impressive part. That usually makes me think whoever did it moved to another project.

Eco has had a strange life, originally being a kind of educational simulation with some educational funding. They got a big boost from the late shift guys starting big servers and streaming RP stuff. So much so that they've shifted their focus around a bit to attract that style of play.

Eco shows progress alot but in developer streams. They tend to wait a very long time before releasing anything. Boats and trains have been in the works for YEARS, and modders ended up beating them to it with boats.

Conan spins their wheels alot with redos and do-overs. Their artists are kept busy doing "battle pass" stuff. Not even really the kind of game that works for, just shoehorned in.

I'd definitely put the engine high in the blame for conan, but it might be their own customized unreal editor to blame. It almost seems single threaded.
I mean, I really don't want to sound like I'm defending the game engines. Can't say much about current Unreal, but Unity seems to get less usable with every release, and pre-SRP versions would probably be better if not for wanting addons that don't work in older versions. But, if you can't make something in Unity or Unreal, what hope do you have? Roll your own just because Unity/Unreal are clunky? Were Funcom's games in their own engine developed more quickly and with less bugs? And if so, why did they switch?

There's just no getting around the fact that the game industry is a shitshow from top to bottom, and everyone just has to find their own way of dealing with the shit. At the very least, the shit that makes money gets dealt with, so if faster releases and bugfixes made money, we'd get them (generally speaking). Instead, most of the efforts are focused on new games while minimal staff keep micro content going for the incremental revenue. Probably works out the same for indies too, so no one's going through any great effort to fix problems with games that have been on the market for 5 years. The time is better spent working on the sequel.
 

Kharzette

Watcher of Overs
4,906
3,549
That last paragraph is depressing but true.

I wonder if this newish trend of releasing early and half-finished has driven the 2 dominant middleware towards being strong at that early prototyping stage, and no work gets put toward longterm large scale projects.

I've had really poor luck with Unity myself lately, but it is encouraging to watch monsters & memories get going. They are still in the very early stages but have a decent sized map in night harbour and it runs decently in game for me, and seems to work well in the editor on stream. He gets a crash now and then, but no more than I do on my small projects.

Will be interesting to see his workflow in a year or two's time when things are more bogged down.

For the first part above, I wouldn't trust Funcom to write their own stuff really. Really I could probably rephrase my original question and leave out the unreal/unity requirement. Are there ANY games that can still create and add stuff at that initial rapid pace?

Apex legends maybe? I don't know that I would call it rapid but they do make new heroes and maps fairly often.

Early everquest was cranking out an expansion every couple years.

Morrowind seemed to release a few expansions relatively quickly, and ugh that was gamebryo.

The money side of these engines would be fascinating to have a peek into. How much do they make off finished games? How much of it is mobile garbage? Do they actually get paid from these dodgy early access games or do they have to sic lawyers on them? :emoji_laughing:
 

Control

Ahn'Qiraj Raider
2,197
5,495
That last paragraph is depressing but true.

I wonder if this newish trend of releasing early and half-finished has driven the 2 dominant middleware towards being strong at that early prototyping stage, and no work gets put toward longterm large scale projects.

I've had really poor luck with Unity myself lately, but it is encouraging to watch monsters & memories get going. They are still in the very early stages but have a decent sized map in night harbour and it runs decently in game for me, and seems to work well in the editor on stream. He gets a crash now and then, but no more than I do on my small projects.

Will be interesting to see his workflow in a year or two's time when things are more bogged down.

For the first part above, I wouldn't trust Funcom to write their own stuff really. Really I could probably rephrase my original question and leave out the unreal/unity requirement. Are there ANY games that can still create and add stuff at that initial rapid pace?

Apex legends maybe? I don't know that I would call it rapid but they do make new heroes and maps fairly often.

Early everquest was cranking out an expansion every couple years.

Morrowind seemed to release a few expansions relatively quickly, and ugh that was gamebryo.

The money side of these engines would be fascinating to have a peek into. How much do they make off finished games? How much of it is mobile garbage? Do they actually get paid from these dodgy early access games or do they have to sic lawyers on them? :emoji_laughing:
I dunno, I think its more that the last 10% of anything takes as long as the first 90%. The initial parts of a project are fun and easy (relatively speaking). You're painting with broad strokes, going from nothing to something in a week or less, etc. etc. After some time though, you end up getting crushed by the weight of all of those decisions that were made when everything was quick and easy. Then when you realize that for some reason you need to split that visible inventory into two slots for some design decision that was made in the first week of the project and that you can't reverse because some other system has been built in parallel that relies on it. So now you have to re-import and set up every character model and piece of gear (for like the 17th fucking time) etc. etc. Or something like that lol.

There's also the problem that it's trivial to design something that's impossible to ever implement. It's a miracle that anything ever gets finished really, but the problem is compounded once you have some success. Then your next thing has to be bigger and better! People always joke about the noob indie wanting to make an MMO, but the biggest studios have the same problem. Every year some big studio goes under because they overscoped themselves into bankruptcy. We practically watched Curt do it first hand (well, he was a noob, but the people he spent $100M hiring weren't). And sure, eq put out the expansions, but they were built with designers that didn't know how their game worked, bugs out the ass, and endgames cockblocked for months while they were actually "finished". I mean, this shit is hard, and what they did is amazing in retrospect, but at least half of the amazing was a happy accident.

I basically picked Unity for my indieing a while back before Unreal really got their asset store going. My logic was that Unreal is making their money from big games, and Unity is focused on indies, so making anything at indie-scale would be playing to Unity's strengths. I'm not sure that's true now, but trying to get proficient in multiple engines at once doesn't seem like a great idea, so you still have to just pick imo. Unreal's royalties are public though, current 5% of all gross rev over $1M, so they're still making their real money from big games. Unity is royalty free though, so they're making their money from fixed license costs and asset store rev (they're publicly traded, so the financials are public if you want to dig into it). That's much better aligned with indies I think, but at the same time, no one at Unity is really making games, and it shows. At least Epic has to eat their own dogfood so to speak (although still, teams of hundreds might be able to stomach issues that would choke a team of 1).