#blueprint
1 messages ยท Page 386 of 1
try actor
is this a seperate component
in the same bp, or another bp ?
i would see if the actor is overlapping
with ActorEndOverlap is work
right and does start work ?
But I need this box to know when an object passes through so I can close the door
Already tried x)
lol
The box is cursed
box collision
did begin overlap fire ?
so this is a box, and your trying to overlap a sphere ?
the sphere is another bp ?
whats that look like ?
No, I'm trying to overlap my "ModoCharacter" character. I have a few years of experience in BP, and I'm completely baffled by this. I don't understand why this is happening because it should work
i'm trying to help you but it seems like your basically gave it up consider it a flaw in the system
i only know what your telling me
i can see you have a box collision
and your pulling weird
but you can do whatever you want
๐คทโโ๏ธ
if you gave up thats fine i'm trying to debug from here
its usually user error tbh
are you trying to collide the box and sphere in the same bp ?
or what ? idk
jsut out of curiosity where is this other acdtor plugged into ?
I'll keep looking on my own, I haven't given up, it's just illogical that it's not detecting a collision
๐ซก
Hey all! I'm having some issues with an interact system. Everything works fine until I try to make the final adjustment to adjust the visibility collision once the weapon is equipped so that it doesn't interfere with the ability for players to interact with new equippables in the environment; right now, the weapon in the players hand will occasionally be outlined when the trace hits it.
Brief summary of the system: The trace hits a child actor component in the item BP, an actor component calculates which item is being targetted and which inventory slot to send the item to (based on tap vs hold logic), and the inventory BP component handles the logic for equipping the item to the appropriate socket.
Issue Summary: Any attempt to Set Collision Enabled to False on the child actor of the interaction area causes the system to fail; when the player attempts to pick up their first weapon, it stays on the ground. When picking up their second weapon, the first weapon drops in front of them as if it was equipped to a holstered socket and the second weapon goes to that holstered socket. From here, no weapons can be picked up.
Screenshots: These screenshots show the functions in the inventory component (aside from Event_ToggleInteractHitbox which is in the InteractionArea BP -- this uses two meshes since some items may have skeletal meshes and others may have static). Everything works until the "Cast to InteractionArea_Custom" > "Event Toggle Interact Hitbox"
tldr, i skimmed through, so whats the problem, traces hit the weapon your holding ?
Exactly - can't seem to turn them off without breaking the system to equip the weapon
tldr, because i get confused easily
you can ignore them
whats your line trace look like ?
i would just ignore the object type
hopefully your weapons are all a specific object type ?
hmm
but wait the other is the same object
hmmm
so holding the weapon are they an exact copy of what you picked up ?
or are they exact what you picked up ?
i'm thinking maybe even a holding flag, where you can multi trace
and ignore it if it comes down to it
The weapons are all under a parent BP, but they're created via data tables rather than each having their own BP. When the trace hits an equipped weapon, it causes the outline and makes it so the player can't interact with another interactable item in the environment. Weapons are the exact weapon that was in the environment since that seemed easiest given that stats are randomized for weapons ๐ค
do you have any reference to the current think your holding ?
in the line trace see ignore actors ?
another way is to do a custom channel when pick it up switch the channel response on the weapon
so it would shoot right through the picked up weapon
because you set ignore on that channel
you can even ignore visibility, but i would make a custom one
Yep! There's a variable in the InventoryComponent BP component which states the currently held weapon, and some arrays for the items in the holster sockets. That makes sense - I'll try adding them to the ignored array and a custom channel if that doesn't work. Appreciate you ๐
my struct has a value that I set based on the actor.. This works but I'm wondering if there's a better way to process a struct and insert more data?
probably the best way tbh, idk of many other ways to do this
Are you using a plug in or modification for the execution lines? There are no circle nodes changing the direction.
If I execute one Custom Event that has a Timeline in it, and then another that also has a Timeline in the same chain, will they carry out at the same time?
i think so
i'm using electronic nodes (sold) for the lines.
flat nodes for the flat look on the nodes. (free plugin)
and the circle you're talking about are called reroutes nodes
As stated, regardless. I was able to create "Art". It's actually important. It's really more functional than anything else. Color coding and proper separation and taking the time to connect things properly.
It's easier to read, follow and trouble shoot. More people should put a little more time into it.
its really not an issue if your solo nodes can be whatever you want
but thats nice it looks clean
easy to understand like to show someone or if someone else was to look at your code
or even later on when you go back it is nice to be cleaned up and notes
As stated, regardless. I was able to
You can customize it for better results even just personally.
-- All my skills are color coded for Melee / Magic / Mobility
When I need to reference them it's easy to pick out. Or sections of code matching. Like game/ player controls.
programming is a form of art, you take a blank canvas and create something out of it
this is like playing factorio or whatever but yu build your own systems.. if i didn't appreciate that i wouldn't be here hehe
Factorio at the core
I cleaned up the bottom green comment. (Blue is enemy stats, Green is player stats)
IDK why people bother with electronic nodes, it looks worse than stock IMO
its funny because you have a / in the variable name
๐คทโโ๏ธ
its not bad, its just really uncommon like it shouldn't even be allowed lol
i can see why you use it tho, it makes sense
Yes, because it represents 2 variables depending on the attack type. If a melee attack is being used Evasion is used, if the attack is magic it will use resistance. That naming convention helps identify what information it contains ๐
Yeah I was like REALLY? It's going to allow this!!!
at that point i wouldn't be surprised you can add quotes
It's probably just a text field for naming or string so yeah
@!#--|'.`~) / my personal variable
ya it's probably a string or something really weird
Doing an entire Combat Mechanic overhaul it's nearly done. Just shifting where the code resides and improving it to be cleaner and be Universal for all situations. Such as an enemy projectile can use it also to hit the player just as the enemy would.
turns out the / has a specific purpose ?
"Category/SubCategory/VariableName automatically organizes it in the details panel, which is highly useful for cleaning up blueprints with many variables." -gemini
i didn't know this
interesting
There is a bookmark feature and short cuts in code also. However, I just use comment naming with things like FIND Skill Name
So I can search find devastation and it will go directly to that skill (not other references)
find restoration etc every skill
I wonder if i would like or dislike nodes actually stacking somehow
Like inputs to a function, and you'd snap it to the bottom, no wire needed
I would love execution flowing top to bottom with data flowing left to right or some other setup where it's not all trying to go left to right
in code execution pretty much flows top to bottom and data flows right to left but that might be a bit goofy in BP
well, it,s just a matter of habit.. it does one of the bend by default and the lines are less curvy.. having curves in a graph like that doesn't make sense to me..
so i add the 2nd reroute to keep it organised
I never ever use reroutes, all my BP just looks like this
It is probably related to some brain function, what feels more natural to a person. Curves work IMO because they don't change directions, you can predict where it is going. While electronic nodes change directions abruptly and I would need to always follow it along
yeah i'm a big fan of placing stuff vertically liek you do too..
Id wanna see it the other way, flow left to right. Data up or down
Reason: i got faaar more vertical space than horizontal
That's kinda what I do
I have seen 1,000's of workstation setups in professional environments. Then you across that 1 PERSON who rotates their monitor!!! And a few cases of people using approx 60 in wide monitors. But in ALL those cases it was for specialized software/use
We all know that one guy ๐
This might drive me nuts. Is this due to a snap point? Sometimes you can't align node connections evenly. However, if you click on the reroute you can fix it.
Left * fixed with reroute, but it has to be done manually for each reroute
What drives me nuts here is that I can't see what the hell numbers are coming in to this code and where the result is going
Not sure what you mean
Why is stuff so spread out that you can't see the entire expression at once? It's not that much math.
I'm cleaning it up. It was a lot cleaner assinging local variables. But really that isn't necessary and those variables will exist in the BP forever doing that.
the parameters already ARE locals
unless you mean intermediate locals
this is fine as is IMO
I'll get an example of why
I'd lose the unused input parameter though unless this is an override
All inputs are in use
I'm not sure you can do that another way?
To reference it without assinging it to variable
you can just pull Mastery
you already have a local called Mastery
But for this function it's not that necessary, it's small enough that you can just fly the pins
if it was big it'd be a lot more of a mess
I created the local for demonstrating I'm removing all the local vars
to essentially just do that fly them all
It's also needed, but the conversions Int to Float make it messy. You should not be doing / * on ints without converting them. You won't get an error, but you may not get the right results either.
Got it, thank you. One issue that was causing extra confusion on that was I named one of the input Player Stat. I couldn't find the local variable for it so I renamed it. Probably best as that's more of a reserved variable name.
I don't see why this has to be a function at all, you aren't returning anything so just make it a part of the greater DoTheStatMath function
A function that's called in only one place shouldn't be a function IMO
Any time a skill by the player is used that calc is performed. Instead of an output variable since it's on the 3rd person sheet already I can reference it as Skill Damage.
Skill calc - Use 70% of your STR stat and add that skills mastery as damage (essentially)
Also randomize the final result between 70%-100% of that number
Another skill might use 82% of Magic + Mastery. It's designed to be flexible.
Since you're calling it every time you use it I'd just make it a pure function and override in your subclasses (which I think you already are doing)
I'm watching a video to help get a clearer explaination of the pure function.
It sounds like the pure function may lock the value and cause issues if it's trying to change the value later on?
in theory a pure function should not have whats called "side effects"
It does though. As this explains the value is 2 different results depending on the setup https://www.youtube.com/watch?v=TZ4xZq2BEEg
Have you ever wondered what those green nodes are in blueprint? why dont they have pins like normal nodes? how are the different and when do you need to use them? Well, let's take a look at that!
Wishlist my game on steam! : https://store.steampowered.com/app/3271340/Dark_Reflection/?beta=0
Get Jetbrains IDEs (including Rider) the first 3 mon...
pure functions are deceptive af if you don't fully understand them
I can see maybe potential cases for them, but is there really an advantage in this case? Such as a pure function using less resources etc?
The locking of value is this done by habit may be helpful or problematic. I would presume if the output is just transfered to a variable then it wouldn't matter so much.
I don't know if It's an advantage necessarily but it does gaurantee no values can be set in them
and it doesn't have any exec pins (thought you can give it them)
In that specific example an output isn't needed. All the output would do it push the information back into a variable using set right after the function is called.
Whether the value is changed after this is more complex. I would have to consider how it's calculated, but I don't think I would want to lock it.
Such as if it's a critical attack : Skill Damage * Crit Dmg = Player Damage
However, maybe a buff Skill Damage * 1.1 (10% extra) after. That would generally be in the function though.
Ideally the main point is though with just leaving it non pure that doesn't matter.
I almost always use pure functions for convenience, and someone seeing a pure functions lets them know immediately "this function doesn't change state" and only returns information
I get that, but in many cases it's not possible to know and would require restructuring afterwards potentially.
I don't really think, I've been programming for about 7 years now and I don't think I've ever "regretted" using a pure function
I'm not sure in this case that will even do much of anything. That value is going to be referenced somewhere else entirely. Another section or function. Not right after the output
I don't think it can be referenced directly like the local inside the function?
there is also some issues with pure nodes, if used wrong
like they run for everytime they are attached
To me it's a simple concept similar to making things const or not. I do think it has some small optimization benefits when compiling for a packaged game
I'm not really sure what you mean by that
You don't ever need to use a pure function though if that's what you're wondering
But I definitely love them and use them every chance I get
It's refering to this: where the inputs are being referenced
you can do that in pure functions too, a pure function is exactly the same as a regular function just without execute pins, and setting variables
I will need to use the variable Skill Damage somewhere later on. So I will need to reference that variable. It's just an output I don't see how without assinging it.
sometimes you'll see people be sticklers about pure functions but its really a choice, it helps in some situations like if you want a quick value or a getter function
What if the result value needs to be called in a completely different function later on?
i've never actually like mentioned "needed" a pure function, but they can be useful
But in that case regardless of the function type it would need to be assigned to a variable to access it?
I think I get what you mean
couple ins, do maths, out
Like this for example, if you're gonna have to do the calculation every single time in order to be sure skill damage is correct, you could just remove the set "skill damage" variable, and always call the function itself and return the skill damage as a pure function
but in practice they are not necessary at all so i can see why you would question it lol
but they can be useful
There may other logistical issues. That function has a bunch of inputs. That data is created / sorted out in the skills function. So it makes sense and for testing purposes.
Otherwise it's a scattered mess. It would probably need to be structured in a table or something to really pull it properly.
These block are on each skill and each one is different. It's manually assinging the stat to use, which mastery, and what % of the stat point etc.
i mean you could definately make this a pure node, then use the results to set the variable
you could then use the formula to set any variable
isntead of being stuck to just the one
I'm a little unclear about the locked in value also. That may or may not be used universally at this point. I'm uncertain. For example an enemy skill might use that same function and call that function from a different blue print. What happens with the "locked value" at that point? Or does it no longer exist as the execution of that page finishes first?
Regardless for now I'll probably leave it as is. Thanks for all the feedback though. I leaned a few things and will use the local variables inside a function.
Just trying to keep peeps aware of the accumulative cost of non-cached values ๐
In a foreachloop for instance
yep of course
Today you can force cache pure nodes aswell so that's neat
You can right click it and 'convert it' in place to a regular non-pure func
So you can get the best of both worlds ๐
oh nice yes, pure functions can really be a huge issue
^.^
called is probably better word
i like it when i don't want to mess with the execution for whatever reason and i just need some data
or a formula is perfect
so setter/getter there are some benefit, but definately don't connect it to the foreach
lol
Exactly
this is nice ya cool feature
with bp i think you got to be careful because you need all the performance you can get
its kind of like len(array) in a loop
but because its bp the performance hit is enormous
i even make sure to do this is any code i keep the redundant calls outside the loop
its just n times better
Just to be specifically correct about this. They run for every EXECUTED node they're attached to. You can attach the same pure node to five different other pure nodes running to the same executed node or five different parameters on the same executed node and it will only run once.
Hi everyone, i have a question.
Im in ue 5.7 know and i have a issue when im in the character blueprint.
Normaly you have the component tab on the right. Mine is gone, i cant get it back somehow, I searched everywhere but with no result
yes, thank you!
How often do you expect this function to output a different number?
Meaning, what percent of the time does it effectively have to recalculate the value rather than being able to use a cached value?
How to rotate a Spline Mesh Component relative to itself ?
I'm spawning Meshes along a spline with Construction Script with the Add Spline Mesh node
But when I try to rotate in this node, it rotates all the meshes and the "pivot" is the Spline
I want so each Mesh rotates randomly but with their pivot
It depends on if it's being used universally. For example the player uses a skill which uses that function. However, an enemy uses a skill and gets it's own value. Then an already spawned projectile hits the player and also uses it for a new value. Every time it's called the inputs are different so the value will always change.
I mean per instance.
Is it like WoW or PoE where you have buffs coming and going all the time, so it makes sense to calculate a "fresh" value per usage, or is it pretty much only updated when you swap gear around?
Probably one cycle on the 3rd person BP. But it can also be called from other BP's
Every attack would call that function to part of a damage value. That's not a final formula.
how often do you expect the value to change?
per attack class instance
Maybe try to spawn from a separate bp
Show your current code
I'm not certain it would. I just that variable as a place holder. It just gets over written each time.
Then don't even have it
run the function every time and just use its results
The results still need to be referenced from other locations to finalize the formula.
Why do you have a shared instance for all the abilities in the world, why isn't each ability an instance of some class?
Are you sure they aren't?
That's why it's stored as a variable. So the value can be referenced.
It's very basic code to spawn spline mesh component each X distance on the spline
Show the bit that cooks up the random rotation per instance
On the "Add Spline Mesh Component" node I just change the "rotation" to like "45" but it rotates all the meshes from the Spline Pivot and not the Mesh pivot
show that
Do you mean why is a projectile using that code?
Or other BP's
Here
But that's probably the correct result, as the root of the spline mesh component is NOT at the start point. The root of all of them is in the same spot, the mesh itself is translated (or at least its verts are) from the set start and end points function.
Do you realize that multiple instances would each have their own copy of that variable unless you're purposely making some sort of manager object?
so your rotating the tranfrom of what now ?
And I can't change the "root" to be for each mesh and not the start of the spline ?
I'm rotating the Transform of the node "Add Spline Mesh Component"
That may be a lack of knowledge on my part on what should be a shared function or another method. I may be cheating it a bit by using the 3rd party player as a hub for functions. Because any BP can call it with a cast.
Can't find a way to rotate the Transform of the Mesh itself only
do you see the variable plugged in to your add spline mesh ?
see where it say relative transform ?
That sounds super wacky
OK back up a bit, what IS an ability in your system?
If I wanted to make a Fireball ability, what would I actually be adding to the project?
Yes in the Relative Transform. I tried to do that with a "Make Transform" node also
yes but consider that this is for each, so they will all be the same value
they will all have the same transform
Yes I know. The issue is not that they have the "same" transform
The issue is that their pivot is on the first point of the Spline and not their own pivot (of mesh)
They are pivoting on their own pivot
it just happens to be at the root of their parent
-- A player using a skill
-- An enemy melee attack (on the enemy master (parent BP)
-- A projectile creates it's own actor (the projectilie which pushes the information onto that BP). For example the damage it will do or just a enemy stat like STR to be used as a calc
They are not rotating on themself
They are all rotating from the first "Spline Mesh Component" added
It actually seems quite normal without projectiles or other circumstances. For example the enemy BP really needs information from the player all over. Instead of just passing it tons of variables. A cast to the player BP gets all data access.
You are spawning all at the same location, they all have the same pivot
the meshes are internally offset when you set start and end, but importantly, their pivot is NOT MOVED
Yes ok now I want to be able to rotate independently each rectangle on your draw
Then spawn the SMC at the start or between start and end, and not just at the root position
I want to exclude the rotation of the Spline or anything
Set the rotation to absolute instead of relative.
How ? I don't get it
I tried the set to absolute the rotation of the "SMC" node
No success
you are literally spawning all the components at the same location. The computer is doing exactly what you tell it to do.
A spline mesh component is NOT located at the start position you give it, it's located where you spawn it.
Ok I got it, so I need another way to spawn the meshes along the spline, right ?
What are you actually trying to do here
First off, do you need deformation or are you just doing beads on a string?
Beads on a string
then you dont' need spline mesh component at all
I'm trying to spawn Cubes along a spline each X distance
just spawn mesh components at transforms along the spline
you can get position at time or distance along spline, that's the position. Cook up rotation however you want.
So I need to use the "Add Mesh Component" node ?
Spline mesh component is for bending meshes like this:
Ok I got it thank you
Sorry for that !
I forgot the "Spline Mesh" thing is not for my case..
alright, I am going nuts on how I should do this
So my doors use a BPI to be opened
But my puzzle uses another BPI to make actors interact with each other
But in this scenario, I need the puzzle to open a door
Pic1 Door; Pic2 Component of PuzzleActor
Should I just replace with event dispachers?
i see the one on the right has a trace end and the one on the left is a key thing ? i see it goes up and down increments
Trace end is for a niagara system, unrelated
left, is a door, keys = quota
as far as i know also i don't think you need to set the value after you increment like that
why do you have 2 BPI that effectively mean the same thing "You just got interacted with"?
Ima leave it as is, it ain't the main problem
old systems lol
alr not a bad idea
maybe I should make an electricity component instead of doing this shi manually
how does the puzzle work, and how many things "speak" electricity?
basicaly
You see the pink on the left, is CasterActor that has a receive component
and the right pink is another actor that just receives electricity, and is supposed to give the door +1 key
how many distinct actor classes do you expect to be interacting with this energy mechanic?
thing is, doors function in keys, whilst in the future I want the casters to have Wattage
Make a component
Pretty much anything that an interface can do a component can do better
fair enough
how tf am I gonna translate W into Key, that's a problem for later I guess
If the concept is that things can send and recieve power to do things, that's just a component with SendPower and RecievePower.
Just slap that component on your caster, on the different blocks, etc. The component can implement events (dispatchers) that its OWNING actor can respond to.
Yeah as a rule of thumb casting is basically free if you cast to a class you already use.
You need to debug if left mouse button is even running for a start.
it is, left mouse fires off nodes and such
i tried a breakpoint in the function and it just stopped at the begininng it went nowhere
Can you show the function internals?
It stops on the first branch here?
yeah it goes "grabobject" then first branch then nowhere
Well based on this. Either your trace that is storing this hit info is either not hitting anything, or the thing you're hitting doesn't implement that interface.
the object is implementing
Where are you actually setting this hit result?
like the whole function? in the character blueprint like the tutorial
the grab blueprint interface is on a cube
You should put a print before that function. PrintText. And inside of it do like...
Attempted To Grab: {Item}
Actor is Valid: {IsValid}
Actor implements interface: {ImplementsInterface}
Put that in a FormatText node
And then you can plug the object, and your two booleans in. So you can see why your branch is failing.
I'll try that rn
solved!!
not sure if this is a good place to ask about it
but how could I use the physics bodies in the character physics asset as hitboxes to receive overlap events from an object type?
On a hit animation notification I have an apply damage which sends the damage causer as the 3rd person actor. How would I pull the information (player data) on the other side?
Is that even how it's supposed to be done? I can simply cast to the player character and pull all data that way. Is there really a reason not to do that?
I would presume this may be the answer
Which is just a more accurate way of doing this? In case of multiplayer, multiple character options?
Is that correct? So an enemy blueprint would always cast to the player character regardless? As the data would be essential for all kinds of purposes like combat calcuations?
Or at least cast to something to obtain that information
The first question is - why does the enemy need to know about the player there?
If you cast to the player there, you bind it exclusively to the player. Meaning you will have trouble adding friendly damage or environmental damage
Yes, I think I'm missing everything on the more grand or basic level of how it's supposed to work. Although I have a fully functional game despite that by just casting to the player for informaion. Though that may be fundamentally wrong or maybe not.
For a specific example the player hits an enemy with a basic melee attack. The apply damage passes that to the correct enemy and it starts there. However, how do you know how much damage is applied? Because the damage is a formula based on hit/miss using both the enemy and player stats. Including player strength and enemy armor in this case.
It would seem no side can act on it's own. Between enemy/player. They both need access to all the information. I do that by running most everything off the enemy because it can cast to the player. Thus in that situation ALL information is always accessible from both parties.
Also it works with environment damage, projectiles etc. As when an enemy creates a projectile it passes that information to the projectile BP. Which can also cast to the player resulting in the same effect. All BP's can cast to the player because it can be specifically identified by the index which is always the same.
The only issues I can see is
-- to much casting (resource cost), but that might not be true
-- unable to cast properly in multiplayer environment (this isn't)
-- unable to identify the proper index of which character is loaded (if multiple characters can be created)
If you're using the built in damage system you should look at the damage types. ๐
casting is 'free' in many circumstances, but i wonder why you need the player to know the damage specifically ?
This may sound odd at first, but all attacks are handled by the enemy parent BP. Event Any Damage occurs on the enemy parent class when the player lands an attack on an enemy.
Damage popup would be handled on the hit target side
its not odd att all, inheritance is a powerful way to strucuture it
In the example provided - The player hits the enemy. The melee animation notify creates an apply damage event. That is picked up by the enemy parent and start with event any damage.
That ONLY establishes the player has made contact with an enemy.
There still needs to a system/formula/combat calculations to determine exactly how to handle this situation.
That "handling" requires information from both the player and enemy. For example I have a 3 tier hit/miss system. 1st hit is 100% dmg 2nd is 80% and defaults to 60. That has to know the attack type (melee, magic) and (evasion, resistance, accuracy, focus) from player/enemy.
That's where damage types come in. They're pretty much an object that gets created and passed through to the thing recieving damage. You can setup logic/functions on them for how to handle the damage based on its type.
All damage pop up is actually handled from the enemy parent class. Except the actual create pop up functions. Which reside on 3rd party player so it can be accessed by anything.
It feels a bit backward in bp land, but as pattym says, it solves it directly
Right, it should be handled by the one being hit - that's all im saying
It's actually being handled on the enemy parent BP for enemy and player. Because the enemy can already pull everything it needs from the player.
It doesnt matter that it happens in "enemy parent" ,
its the same enemy
the child is parent and then some
The enemy BP just needs to trace for hits and result in the actor
That's when the enemy attacks
However, it doesn't require anything on the actor bp. (Aside from casting to it and calling functions on the player BP)
Damage pop up btw doesn't really matter which BP it comes from. As long as the proper location can be determined.
A lot of data isn't even really being passed, it's just accessed. I'm not certain if that's standard, but it works. For example the player BP updates when using a skill to what skill is being used. When the enemy BP is ran, it simply checks the information on the player BP and determines which skill is being used so it can create a calculation based on that. Along with the mechanics, hit impact, sounds etc.
Many ways to do a thing
The main question would be how it's traditionally done. What happens if the player can choose multiple characters with the way I set things up? Wouldn't that destroy everything? Any cast to a specific 3rd person BP would change the index and bp
idk about traditionally, i know that if you don't know what kind of thing your using i would probably use an interface
That might make more sense that you're tying the blueprint access together via an interface rather than direct cast. I'm just not familiar enough to structure everything around it. I may do some testing later for it.
Unless the 3rd party BP wouldn't change anyway. I may not really implement it either. But it a matter of changing the 3d mesh and using the same BP
ya i havent been able to keep track of what your saying, i'm easily confused lol
Would it be standard to use the same 3rd party BP and switch characters by just changing the meshes?
its a way to switch characters yes, i would have a parent and children personally
like for me if i have several of a character, i have a parent and the children
then you can cast to the parent and you have any child
this allows for more diversity other then just the mesh
so when you get damage causer, you cast to parent
and you will get any of the children
In this video we are going to learn how to use event dispatchers in blueprints in Unreal Engine.
This is part 5 of my blueprint howto series.
In this video we are going to learn how to use inheritance in blueprints in Unreal Engine. Iโll show a quick demonstration the power of inheritance with blueprints, we're going to create a parent class...
bare with me, i didn't actually watch the video
lol but this is what i usually do in the case of multiple players
but i'm not traditional in any sense either
I feel like i'm repeating myself but I'll say it for a third time. Damage types. ๐ Its a system designed to solve this very problem. Throw in a stats/attributes component and you're golden.
"Inheritance is generally faster and more memory-efficient than using components"
idk if this is true, but its all over the webs
That statement feel like someone saying "Broccoli is more green than oranges". Like... Sure, yeah. You're technically correct. But I'm still not fucking making orange juice out of broccoli.
so its correct, thats all i was wondering
An oliod rolls but I wouldn't use it to make a wheel.
I am already using almost all the concepts in that video. Although there are a few additional things I could probably improve upon. That is essentially how the game is currently structured.
ya idk i didn't watch the video like i said, but i enjoy me some inheritance
The worst part about that is that's essentially a pre requisite to setup enemies. Although a starting dev would not know that.
wdym ?
are you saying inheritance is bad now
lol
of course
If you had someone without knowledge they would probably just create an individual blueprint for each enemy. Without sharing the parent class. Just redoing all the nodes.
idk what your even saying
are you saying someone might fk up and do it wrong ?
Inheritance is good. You can inherit components though too.
Inheritance just kind of creates a concept of something. Your functionality inside of that concept can still come through composition, internal systems in that inheritance tree, or interfaces.
I'm saying it's nearly impossible for them to do it right by default
whatever that supposed to mean
idk
๐คทโโ๏ธ
your saying its too hard ?
its fkn simple
you literally right click, create child, done
Is that why studios have 200 developers working on a project, because it's just "that simple" / ๐
but mega bp's compile slow, and can add confusion about responsibilities etc ๐
Someone new to the concepts, unreal, blueprints, etc does not know any of that. And they don't know what they don't know
the internet drags me down more and more every day, people are so fkn strange
avoid the internet !
Ii got my window open, I'm all good lol
lol thats about what i do as well
sooon my mass migration is completed, and i can start spawning stuff!
i get annoyed but i still go online like some sort of fein everyday
i don't understand your ponit at all
Two to five of those are principal system designers who actually create this structure. 120 of them are artists in some shape or form that almost never touch code, several are marketing and management, and maybe 5-15 are junior to senior people actually implementing the gameplay logic.
i take performance over readability any day
but i'm solo, so it dosn't have to be readable
That's not how Ashes of Cremation staffing works ๐
It means you take for granted all the pre requisite information you already have in order to be able to call it "simple".
i still don't see your point
or are you just saying its hard ?
๐คทโโ๏ธ
and are you a noob or something ?
i don't see what your saying
Anyone new to Unreal has a major burden of concepts all over to get started. It's not inuitive either to know that. It's part of a larger learning process. When you get to the point of deeper understanding, it's a simple concept. For someone new it's not at all.
its really fkn simple in the overall scheme of things
but anyway ig your right in the sense that simple is relative
but i'm not understanding your point at all
is that simple is relative ?
are you new to unreal ?
No, but I'm able to comprehend that situation from the standpoint of someone who would be starting. And the bigger picture that setting a enemy BP with a parent/child relationship is not instinctual or intuitive by default.
ffs
๐
ok man, whatever that means
i'm glad you like to make games
hows the game going ?
It's been a struggle, but it's at a good point and I think I have everything I need to complete it.
FAB's new limited free assets should also be out in a few hours. Grab the current if you want them before they are gone.
i like the platformer pack i could probably use this
You got a SS or vid ?
Yes
this is total doom vibes tho
That was a test for flowing lava and niag splash effects. It works well.
Full action combat with combos
It's still going to take a lot of work time to get everything I want, but it's at least on course. Many people on discord have helped greatly with BP concepts, explainations and general info.
its really really dark imo needs a lot more lights
Can you turn messages into pure functions?
It's a dungeon ^^. The lighting is currently being tweaked and went over some major changes. The end result is that it now comes from the player (point light). It's going to different in the editor vs game play for that reason. It's mainly concerning optimization.
the next thing i would look into is how to improve the look of the tiled textures on the walls and floors
it shouldn't be hard to make them look a lot nicer
For a dark atmosphere lighting can do magic also.
I would give all the players and enemies like trinkets that glow and a torch and magical items that glow
the only thing i can see atm is the UI when its dark cause its super bright , can't see any enemy models or animations
If the enemy hits boxes where not shown, you would just glowing eyes in the distance until you approach. That was done during testing for enemy social AI.
much better
it might look better if cover the walls with vegetation like vines and tendrils to hide the texture tiling
pillars and corner and bottom strip to blend corners nicers would also help a lot
It's a hierarchy issue. The best results would be Lumen with properly lit rooms. It gives a great distinction between day light and closed rooms. The issue in that was performance which is #1. Doing a bunch of individual lights with lumen lowers performence enough to matter.
huh ?
with real raytraced global illumation it wouldn't matter how many lights you have
In general all maps are subject to detailing. Improvements on appearance, not being empty etc. However, the plainness is also part of the design. Such as textures reduced to 1024 and lowering vertices. I could do some tweaks later for that though.
a lot of people will not look at it for more then 0.1 second if they see it look that bad
I need to get the dimensions for an item but plugging it is awkward
i'm not undersatanding ? you have a get dimentions function here you want to make it pure ?
i see
if you can't right click the title and make it pure your pretty much fkd lol, you could however make a pure function and just use this get dimensions ?
like a wrapper
it feels like it would be easier if you moved more logic to c++
I'll check a video on that illumination.
Ohh, i get it. I think that works, thanks
Even in a video about raytracing global illum and what it would take it completely tanks the performance and warns about limited and proper use. I'll get an update video to better demonstrate the lighting. Those are old vids with Lumen + Point lights in some of them.
Also I presume the point light settings could be adjusted by the player. One struggle is to much light ruins the atmosphere, but to little means some objects, corners, enemies may be difficult to see.
The original dream still exists, but I had to abandon the open world design for performance issues.
you basically need a supercomputer
can't you load the different sections on the fly with partitions if you want a open world ?
That is utilizing the open world partition system. However, there are many disadvantages to doing so. Such as being able to more properly isolate issues. If you encounter issues within a single level it's much easier to trouble shoot. Also corruption issues etc. And down to simple asset organizing.
That's important for advanced aspects such as using property matrix. In those levels I had to increase the height of all walls. It was easy to just grab them all by name in a single level and update them.
๐ค
i use single levels in my games as well
but i'm pretty sure world partition allows you to load levels on the fly
idk much about it i've never used it tbh
There are many settings such as loading a specific region in the editor. And controlling what a region/block size is. You are relying on that system to work properly and I'm not sure it does in call cases. It essentially loads/unloads sections as needed. You can set view distance etc also. It seems like a nice system, but
i wouldn't worry it was going to fail
-- When you encounter an issue like FPS issues or problems it's not isolated to a level. It's much more difficult
-- If you just add assets (potentially 1,000's there is no default organizing) they just exist in "the world outliner".
You can create folders or even toggle them on/off with other methods, but it's simply to many assets to manually handle
so, this is soo weird, the hit location goes to zero if make the that hitbox overlap the other character
I'm in control of the one to the right
i'm not sure what your saying ?
but if the hitbox from the other character overlaps with the one I'm controling, I'm getting a result, but still inacurate
so the hitbox on the right and the character is your player, and something is fkd when something overlaps ? your showing zero i don't even see an overlap
here's the visual debug
this time I'm on the left
the white sphere that is floating up there is the result from the static character
wdym "result " ?
the overlap location
the boxes are to debug the stuff so everything would work right
and as you can see in the screenshot, the overlap location is wrong
this is the whole blueprint
I ran into an issue where the player would fall through the ground in certain areas of the map. That was a huge landscape that may have bugged when it was moved around. In an open world partition that's a huge problem and not easily fixed. You can't just replace it because of so many edits to the surface for dips, mountains, etc. At least in a single level environment that only effects that level.
actually i have no clue waht your saying i can't see anything
both characters are instances of the same character blueprint
hmm
i would check there is a hit result
blocking
see if blocking hit is true
I've already set them so the skeletal mesh responds to a custom object type during the overlap
the boxes are set to be Attack type and the skeletal mesh is set to Basic so there won't be any conflicts with the pawn capsule
You may need something like this if your trying to do a melee attack/hit/punch
You are showing a hurt box with just a simple overlap. That should work. But what that image does it trace the actual animation and specfically the weapon location.
always check
don't assume ime
check there is a blocking hit
I'm currently trying without animation
the box is positioned at that location in the character blueprint
so I can see if there will be a trigger on overlap
and since there is, it should return the right location, which for some reason, it does not
ah right, I'm not using on the skeletal mesh to trigger the overlap, I'm using the main capsule collision to see if it has anything to do with the location in world space
so right now the hurt box sends a trigger when it overlaps the pawn type
it's what I'm avoiding to do until there's no other way
Why?
cause line traces require to be fired every tick, or every few ticks
which can get pretty intensive when the project becomes more complicated

Line trace is a built in dream that most older devs didn't have access to
๐ ๐คทโโ๏ธ
guess I ain't got a choice then
That tracing is what makes the combat superior to nearly all other systems. Because it tracks the motion and exact position instead of a sloppy hit box.
Multi trace and for loop are also needed if you intend on hitting multiple targets in a single attack
for this gamemode, it won't be needed
By older. Are we talking like.... people who made games 40 years ago in 2D systems?
Anything pre dating about Unreal 4
Lol?
Dude. UE4 was released in what... 2014?
You're aware that line tracing has been a concept in gameplay mechanics since the mid 90s?
The Crystall Fall demo just released. Made by the devs that did Diablo. I immediately went, this is a horrible combat system and my own single dev project is superior due to Unreal and things like line tracing. Also because they lose their ability to update to today's standards. Combo's, fluidity, animations.
Hey, Im using a timer by event and have it so my Drain Stamina Timer called by event begin play. is that okay for a small horror game?
Image
That's a fantastic opinion. I don't know what this has to do with a line trace not being available before UE4?
Yes, but I would use caution on the timing. How often do you reall need to update?
I want it to only call it when my velocity is greater then 5
is there a way to make the function do this?
or the timer not function
It's a different issue. Things like Street Fighter and old action RPG's had very poor hit detections. They didn't have easy ways to create complex collision vertices or hit boxes that could accurately track movement.
Many where just slopy stick out a hit box and check for collison, like those images in his test.
If you had to create your own line trace system and complex collision it would be rather difficult. Luckily it's just all built in to Unreal.
Technically you can stop a timer and just restart it. Depends on the use.
AI Overview
To stop a looping timer in Unreal Engine, use the
Clear and Invalidate Timer by Handle node, passing in the Timer Handle variable created when the timer was set. This immediately stops the loop, prevents further execution, and clears the handle for reuse
You could potentially create a start/stop condition and when it's met start the call function timer/loop and end it?
Yeah but this is a single player game one player a few enemies(AI) this is trickly just to make sure you dont loose your stamina if your not moving. its calling every .1 seconds to check the player when they are sprinting.
That is actually what I did for some status effects. The same thing as what you are trying to do.
What do you mean? The organization or the setup?
It's not fine. If you happen to start two timers before clearing one. You have an infinite timer.
Though doesn't BP overwrite timers for same object and function? I can't recall.
Yea, i would highly recommend always storing a looping timer handle in a variable. This allows you to clear and invalidate it before you try creating a new one. It also gives you access to it should you need to clear and invalidate somewhere else in the code.
It does overwrite by event, not sure with by function name
Always hated that functionality. Really wish they'd make that a flag on the callsite.
you see how you have the return value on the top execution, plugged into the execution at the bottom ?
yeah i wouldn't do that
right click, promote to variable
and use the variable
You mean something like this
yes exactly
I would also recommend using the 'Set Timer By Event' node instead of the function name version. The moment you change a function name it'll break.
it looks like they are even events
not functions
interesting to choose by function name
This one.
Okay so In my stamina system I set a clear timer handle so when I stop Sprinting it clears the timer until I sprint again
Personally I'd make it so if the character stops moving, it disables sprint. That way the stamina logic doesn't need to do this check.
is this not working ?
Well my character walks and crouch I guess I could check trhe max walk speed and if its over the min walk speed then activate sprint if its less then disable sprint?
No it worked
makes sense
I know calling this timer isnt going to effect my games performance at all. I just want to get use to the best practice!
Generally a run/sprint would be activated by a player input and allowed if conditions are met.
the delat is a bit strange you have 1.5 delay on a 0.1 timer ?
i thought delays are batched ?
the .15 delay is handling other logic due to my crouch so I can sprint then crocuh if its not there my camera wont operate when i crouch
I have my camera move down then move forward when crouching.
what happens when you spam sprint at low stamina ?
like when it hits zero
can i spam it ?
When my stamina is less or equal to 0 I call my stamina system which then calls logic to regen stamina
Ignore the PodCast im listening to
Its my camera system when crouching
here is a better example
an example of breathing ?
i don't see whats going on or how its relative to stamina
So that delay is handling my camera movement in other logic
u asked about that delay
lets just forget this thread on the crouching I think I misunderstood the question.
can you spam run when you have zero stamina ?
๐ค
to delay the stamina regen correct?
where is your start sprinting ?
My start sprinting is called when I hit shift
can you show it jus where it do that ?
i mean a ss is fine, personally i have a hard time with videos
if you are having performance issues with ps1 graphics then it's probably just your art assets that suck
which is weird cause you barely have any
That's part of the problem. Unreal isn't going to tell you what's causing it. You have to figure it out. You presumed that it's graphic (mesh etc). Not only is that not proven the real life truth is it's multi factor and would require a lot of tools/trouble shooting.
well yes you have to measure performance
but lots of games have done open world things
I would look up how to profile. Its very useful. You can start with 'Stat Unit' to see where the bottle neck is and then further refine the tools you use to find the root cause. There's a lot of stuff in the engine to help with this.
lots of better looking games
especially in unreal its pretty easy
compared to doing world streaming from scratch
Factually incorrect. The fact is many games released in Unreal are known for performance issues and bad loading times. With professional teams. And Epic isn't willing to admit any fault on their side. Just all those devs just don't know what they are doing!
partially yes
i mean yes they really didn't optimize well enough most likely
I have stat gpu for example is a nice starting tool. However, realistically it could be an entire job position just trying to optimize. Nothing else, no creating systems, animations, game mechanics, just that full time.
There is also a lot of conflicting information.
And you can easily say things, but real life projects won't match what you say.
i think also the performance issue might stem from low end hardware
That's just factually wrong again. The reporting on this issue is massive and exclusively for the Unreal engine.
In fact I had some issues at times with getting the same frate on a brand new level with nothing in it.
for you yes you had this experience
doesn't make the defacto
and really i think a lof of people complain because of the low end hardware
skill issue
unreal kind of has a high entry level
That sounds like a hardware issue. Most likely enabled features you're hardware doesn't support well.
we're hardware in way but that doesn't make up for the fact that he is measuring performance in editor lmao
that is just so conformist
TSR can cause a big hit on older hardware but is used by default.
How does AI know this exists?
Coincidence? or because it pool data from the web?
Unreal Engine (especially UE5) offers cutting-edge visuals like
Lumen and Nanite, but it faces criticism for high performance demands, often leading to stuttering or low FPS if not heavily optimized. While it can deliver high-fidelity graphics, it frequently requires upscaling (DLSS/FSR) for smooth, playable framerates on average hardware
In order for AI to report that it would have to been reported across the board in many locations ๐
It is a known issue. And why do the Epic developers literally have a discussion about it and get asked that question? I think I know why ๐
If it wasn't an issue they wouldn't be directly asked about it
In many of the occurrences I had it wasn't about just drawing meshes either. It could be lighting, invoker methods etc.
if you have a bug it's because you created it
if you have performance issues its because you did something wrong
stuff doesn't just magically happen by itself
help lumen doesn't run at 120fps 4k on my gtx 960
๐ค
does your game have an issue with performance ?
That doesn't meant the cause of those problems is accurate to what oeople think it is. At the end of the day exactly 0 gamers have ran a profiling trace.
Yes, such tools have higher hardware requirements. No, not all unreal games use it. No, not all unreal games perform like ass. Yes, a large part of such blatant performance issues is probably a result of everyone jumping to a new engine they've not used.
The other thing you've got to remember is that this is a tale as old as time. We're hearing lots about it because there's lots of unreal games being made. It stands to reason. You're not going to hear about performance issues in re engine, because it's proprietary and the company using it uses it well. Likewise, "Unreal game performs to expectations" isn't a news headline that gets people interested, so you're not really hearing about the better unreal games.
There's always a solution to these problems. Epics fault in this, and their consequent questioning is because they released a bunch of intensive features that looked promising in a tech demo, with little documentation on the consequences, systems it interacts with, as well as how to revert to the older methods.
having performance issues and ps1 graphics is actually quite an achievement
unreal's default settings being pretty shit is true
It's more basic then that. If you have tons of games released by completely different independent teams it would be foolish to write it off as they all just don't know what they are doing. If the game engine is that difficult to establish reliable FPS then it's very likely some of the issues reside in the engines design or distributed information on it.
no game engine is perfect, if you want the same rendering functionality as unreal you are going to have a performance hit, and if you make it yourself it's going to be a lot worse
i mean when the thing skips at 4k 120fps
ffs
but what i think is people released un optimized game and didn't relaize the minimum requirements
and then want to blame the tool
very typical
its like blaiming the language for your bad code
lol it do be happening
all bad games are made in c++
so c++ is bad
also computers are bad
and fuck the internet
There are also issues that would be very difficult to explain. How could I have a bad FPS rate on a new level with no changes, close the game reload it and have totally different results. With the exact same settings and hardware? ๐
cause you are measuring performance of the editor
and clearly dont understand what that is
It's the same editor in both cases.
so your saying youve never used a complicated piece of software ?
Same tools reporting the FPS. Literally nothing changed.
so you think there is no difference
No, no you can't use that excuse remember
if you have a bug it's because you created it
if you have performance issues its because you did something wrong
stuff doesn't just magically happen by itself
Can you run Fortnite on a shit cellphone?
the thing is with a huge software like this things can go wrong very easily
to me it sounds like your project is one of those nightmare projects that leak memory everywhere etc
Except the example was freshly created level with no changes
We can take Borderlands 4 as a good case study of why it's not necessarily entirely the fault of the engine.
Despite DLSS being notoriously unpopular, the game was developed around it. It was designed to have lower fps on average hardware and to use framegen. Hell Randy maintained the game was optimal.
You got no chance if the documentation is confusing as well as having a ceo that appears to live in a fantasy world. Most of the poor performance is plain and simple cost cutting. You look in the past and see the same pattern. (Side note, I find it mildly funny I've seen some of the ue5 is bad crowd hailing crysis as an old beautiful game, while also forgetting where the crysis memes came from)
I played my first Crysis playthrough at 15FPS. Good times.
Its foolish to assume they know what they're doing. The engine is too large for one person to know and with solo or small teams, the knowledge available would be low. Not understanding the art pipeline for UE for example could result in low performance. Not understanding hierarchy can cause performance issues. Not knowing about event driven design can cause performance issue. The list goes on, especially when we start looking at feature specific stuff.
I've often looked back at stuff I've created and thought 'What was I thinking, no wonder it ran like sh*t'
unity games run well.. because the default settings look like utter shit
once you crank up unity it still kinda looks like shit and has bad fps
any other alternatives?
There are other measurable factors. For example I played several UR4 games that loaded nearly instantly and had no FPS issues. They felt amazingly different. And while some where less on the graphic fidelity it was a huge difference in everything.
I mean. Like I said. Fortnite runs on a shit cellphone. Hell it runs in a fucking Nintendo Switch for fuck sake. And it uses UE5.
you can use unreal to make a console game
if you really wanted too
it will have a thousand fps
easy
That isn't the case though. That would presume the reporting just came from small dev teams or inexperienced devs. When much larger projects are still yielding those results it surely indicates an issue at some point. Fingers can't be pointed everywhere, but there is certainly a larger issue. You can not just discredit that many people across the board. Many with years of experience in mutiple engines, unreal specifically, etc.
how many of these projects have you worked on
You can discredit them though. Because they made games using new tech that their years of experience meant fuck all for and they optimized wrong for it.
where are all these projects that say that ?
are they in the room with you right now?
Older engine, more performant, less graphically intense. Again it stands to reason.
New engine, new tech, studio doesn't know how to use it, less performant.
I've played plenty of non unreal games as well with performance issues. Hell minecraft still runs like ass without performance mods.
Another thing you've got to remember is a lot of people are on the same, if not similar hardware that they were before ue5. Games get more intensive, that's reasonable. Eventually that hardware will fall behind. I can't blame gamers for being mad the games don't run because not everyone has 2 grand to shell out every 2 years to play on ultra settings, but you also shouldn't be surprised if you have to drop down a resolution or couple of quality levels.
i honestly believe a lot of it is people don't know there should be like a minimum tech to run this, or perhaps there minimum is to low ?
minimum to run editor smoothly is usually 2-3x of what it takes to run the final packaged smooth
you have non optimized development builds
I mean... ARK: Survival Evolved was made in UE4... Lets talk about how amazingly optimized that experience was. ๐
i've not made very graphical intense games, but so far they all run pretty good
my gpu gets howling sometimes lol
but it runs fine
I can remember the first game I made in UE4. It barely kept above 30 fps. I'm currently working on a similar concept (in UE5) and it runs around 110 fps on average and there's significantly more features and looks a million times better lol.
blaming fps on the game engine is like blaming the driving on the car
its common in programming i noticed this trend, they blaim the tech for shit code
Imagine trying to have to learn the complex intricacies of a new engine when you have a release date a year away and a ceo pushing for unpopular technology. It's a losing game. Which again, is epics fault partially because their documentation of this is ass and they never covered any of the pitfalls before releasing. (I get not doing it in a tech demo, but not at all is just bad), but we can't blame the engine when clearly performant games have released, and these studios have the entire source code on hand. If they really cared so much they would take their source build and patch these issues. The fact they haven't is because it costs money to do so
even if your car is a shitbox you can still jerry rig an f1 engine to make something funny
As frustrated as I get with Epic and UE at times. I'd argue this a bit. They were expressly clear that early versions of UE were NOT ready for production and that it was going to be buggy running the new rendering features. I don't think that really changed until around 5.3 And they did actually do a lot of info videos and content on the feature sets.
That's a fair point, I still lay some blame at them though because the documentation issues have been a long standing problem. Not helped when they laid off most of the online learning team.
It's gotten somewhat better regarding new features but it's still far from what I'd expect for such a widely used engine.
That being said, as with most problems with products the majority of the problems lie with upper management who see a new shiny and really really want it while not being able to listen to consumers
Metal Gear Delta had major fps issues. It was built by Konomi. An industry leader for decades. They have over 2,000 employees. So you can't just write it off as these inexperienced devs or small teams.
If the issue keeps occurring and the problem can be resolved it's like BOTH parties that are at some portion responsible for it. You can't just claim everyone doesn't know what they are doing.
2,000 employees trained on ancient practices that don't apply in the new rendering features means zero people who know what the fuck they're doing.
You forget another part of the equation. Most of those employees have no say in what happens and regardless of their personal thoughts have to do their job. Even if they did know, it's likely they had little influence in fixing it
As an industry leader. The smart play is to not use tools your 2000 member team isn't trained in. So yes. Their shit performance is 1000000% their own fault.
they dont get to decide what to spend their time on
If you want to take a risk. Take a risk. That's fine. But fucking own it.
assuming competent leadership is very bold
And don't do a Randy and lie to us that everything's fine.
I'm pretty sure Metal Gear Delta was Konomi's first big game using UE5. I guess it shows. ๐คท
Note. I'm not dissing on the people. But the team leaders who made this choice. It is their fault and it is NOT Epic's. I'm sorry. I will be the first person to bitch about UE and it's systems sometimes, but this is not Epic's fault.
Yea, UE can be a pain at times. ๐คฃ Earlier I said, 'Oh it's just UE being UE.' ๐
That may be true, but it's like a presenter giving a speech and the audience can't fully comprehend what they are trying to convey. Then just stating the audience is all incompetent. The presenters role was to convey the information in a manner that was digestible.
Part of a game engines functionality is to create viable products in a "reasonable" manner. If everyone is just "using the tool wrong" it indicates there is also a problem with the tool itself.
define "everyone"
I don't need to. My part of the discussion is over. I'll go back to blueprints. There is nothing to be gained by further information on this.
"trust me bro"
So what needs fixing exactly? Whats broken?
fps
In part I'd agree, but not necessarily.
If I went and collected a bunch of master sculptors, handed them some arc welders and angle grinders and told them I want a masterful tube steel sculpture by next week I'd probably be disappointed.
No matter how experienced someone is in something else, it doesn't mean they're going to be good in new circumstances with no training in them.
Even through the engine has problems in this department imo, is it not more the fault of the people running the companies that are aware of this and chuck their studio in the deep end with a release date on the horizon anyway
people just love complaining but it's a bit funny hwen it's their own fault ๐
i think it's bait
Probably documentation and conveyance of the issue. I believe it may stem also from the highest levels in Epic down to more human nature. Not willing to accept their flaws and work on a resolution. But instead to shift blame. From the upper level responses that seemed to be the gist.
I could do a game jam in unreal, but ask me to use godot and you're getting a broken mess because I don't know how to use godot
So performance issues aren't down to the engine but how its used?
It can't be simplified to that extent. It depends on which specific tool how it's implemented, how it's tested etc. And where the issue really exists. For example Lumen, Nanite, Nav mesh, etc. If literal AAA studios are having issues getting it right, I think it's overwhelmingly obvious it's not just a "lazy uninformed dev" issue.
you do realize that using unreal doesn't force you to use those features
So tell me one issue with the engine that needs to be fixed to help resolve performance related issues?
i think its hillarious the devs are trying to blame the engine, its classic i see this trend
this is why they have "safe" programming lol
its all bs
anyways
blueprints amirite ?
their baiting is going very well so why would they stop
Remember to keep them tidy. ๐
fancy
That's like asking you.........so tell me precisely what specifically caused Metal Gear to run poorly? What exactly should their developers have done to make the game run at a smooth FPS rate?
smooth curves instead of 45 degree angles ๐ญ
make it less pretty
or more optmized
u have to check the code, measure it
find the bottleneck
and start work on the worst offenders
thats how optimization is for every game
tell me you havn't touched a profiler once without telling me you havn't
to make it run at a smoother rate, you have to eliminate hitches, which you can come to know from measuring
No no no. That's not the equivelant. That's generic "do better". A proper response would be the very specifc aspects that caused the game to run poorly and precisely what changes would have made it run great.
lol
im not sure, ive never played that game or was a part of their dev team
it ran fine on a gtx 1080 which is super fucking ancient
probably older then some people here
1080 was pretty insane
But that would be down to the developers based on the systems they've setup. ๐คฆโโ๏ธ
a lot of optimizations are things devs could have done but they weren't given enough time to do so
or optimization wasn't taken into account at the beginning, and rewriting was not an option too late
hell a lot of the issues are overblown still. i played bl4 a week after launch. performance was objectively bad but the game was still fun, and i was on an RX 580.
i also think people get so bogged down in trying to get 4k 120fps that they just forget to have fun in a game
same kind of vibe from people that argued for a decade that the human eye could only perceive 24fps
rx 580
damn
The summary is: Everyone is incompetent, no one knows what they are doing. They don't have any time. It's all their fault. Just masses of experienced developers across multiple companies in all regions of the planet just mysteriously all get it wrong some how?
they want max settings on 4k ๐ anything less is the fault of the game devs or engine , so bad, just so bad
They have billions of dollars and can hire anyone, yet everyone they find just can't get the job done. I mean at SOME point if you want to be serious you have to look a little deeper.
The summary is: Everyone is incompetent, no one knows what they are doing.
I'm willing to bet this is true for a lot of things.
if you keep repeating things that doesn't make them anymore true
he has obviously never tried to hire a senior dev
Just because somebody is "experienced" doesn't mean they're skilled or doing anything correctly.
I feel like I don't know what I'm doing half the time. ๐
he's an experienced QA developer! he must know how to optimize core engine libraries
The summary (at least mine) is: Studio leaders are ignoring consumers and pushing to abandon tech that has been used for decades in favour of a newer engine that no one is trained in. As a result experienced devs may or may not know how to fully utilise the engine, and even if they did are blocked by ceo's saying things like "30fps is reasonable on average hardware" and "muh DLSS". As an aside, the average user hardware hasn't increased much leaving a lot of gamers left behind as specs increase to match an increased demand for fidelity.
So at what point would the responsiblity ever shift to Epic/Unreal? Just never?
Pretty much. Because why would it? Epic didn't hold a gun to their head and force them to make stupid fucking decisions.
Or
lmao I love your bio
"Slate is not evil"
Just turn off the new rendering features?
๐
fake news
Good afternoon guys
it never shifts to epic. it may partially lie with them, or be exacerbated by them, but epic isn't whispering in these studio's ears: "hey drop that engine you've been working on for 15 years that your devs know how to use well, and switch to ours"
It will never be wholly an engine maker's fault that game studios decided to drop their own tech for theirs
True
esepcially when said engine maker is successfully using said engine in a performant manner
Itโs up the studios what engine they use
there is a reason why they can't afford to write their own editor anymore, it's because gamers are refusing to pay 100 bucks for their games
They use UE for many reasons over other engines
we need to start a movement to demand game developers charge atleast 200 bucks for their games
I've played many games using UE that ran very well. 'Hogwarts Legacy' ran smoothly despite me only have 2gb of vram at the time. Then there's both 'Grounded' games. Again no performance issues.
piracy has never looked better
now if fornite wasn't on low power platforms and needed a 5070 to run on 1440p medium at 60fps, then yes epic would be more responsible. never for studios switching, but just for making a crap engine
its also rather dead
Hogwarts was done on old rendering.
That is at least more reasonable and realistic. However, despite deadlines, top level managements decisions etc these companies would have individual teams working on this. Collaborating, discussing and bringing up issues. Weekly meetings, board room meetings, manager meetings. And this isn't one company. It was enough of them that months ago this was discussed heavily. With many reporting on it.
piracy is dead?
what are you talking about
denuvo is winning atm
What is your main concern?
giving people money for piracy is pretty evil
I donโt use piracy icl
It's just a general discussion. It really can't go anywhere. The bigger concern would just be the lack of interpreting information that should be obvious. Such as -- if major studios on a large scale where having so many issues it just seems common sense that the issue wouldn't just reside with them. There is quite obviously more at play. Again, though there is nothing here to be resolved.
yes they have indidvidual teams working on it, but these teams cannot override the direction the leadership wishes to go. It's not just the C-Suite that's at fault either, it's most of upper management. Again harking back to borderlands 4, Randy thinks 30fps is acceptible, that the game was optimal and that DLSS is magic optimization juice. How are you, as a mid level employee going to convince him to spend money on fixing the problem that is obvious to you, or push back a release date so you can iron out all of the kinks introduced by unfamiliar technology
It's no secret that companies enjoy sacrificing consumer enjoyment for money, see literally anything you've ever bought recently. Why are we pretending games are different?
fair, the point was just that piracy isn't dead
not promoting it
It is still alive
yep
It probably never going to die for a long time
exactly
even if games companies were filled with tiny independent teams with full creative control, the blame still isn't epic's. It's just the leader of that small team for again, ignoring consumer wants, jumping to a new unfamiliar technology and not spending the time to work out the kinks
Agreed
the people who decide when to publish can always say lets spend x amount of time on optimization
but they dont
Because in the larger picture that doesn't matter at all. Lets grant everything stated is 100% correct. That one company or leadership completely failed and thought a low FPS was just reasonable and shipped it. That only elimanates a single company. There are far to many other examples. You can't write them all off.
money is always there
we can't write this off as a company issue because all other companies are notorious for listening to consumers?
Most upper management is completely out of touch with reality. If we can't pretend they aren't then we also can't say that people don't want shrinkflation, AI in their OS, fixes to self driving tech etc etc
it's a pattern you see not just in gamedev
it just so happens that in gamedev that problem manifests as poorly performing games
btw this whole discussion was started by him having performance issues in a solo student project with ps1 graphics
I doubt Crimson Desert is going to have FPS issues. They are MAGIC though!!!! It's a different engine sure. But their developers are magic and somehow ALL of these reasons you state won't exist. Magic!!!!!!!
lol
Really?
scroll up
Way too much text lol
The issue is ps1 graphics then
No, that's actually not true. I had some some FPS issues, but it's not just that.
Alright ๐
^
Mhm
if we can't accept that studios management makes bad decisions en masse, then we wouldn't see issues like ubisoft stock plummetting, games like highguard and concord, issues like FPS game anticheats as well as CEO's saying "you won't own a game, but you'll like it", or things like "microtransactions give a sense of pride and accomplishment"
Crimson Desert's CEO is magic!!! Their dev team magic!! Their dead lines, finances, Magic!! Somehow they will get it done and none of these excuses will apply? I don't know how except...magic!!
Is the game already out?
Lets go back to the topic then. This lead nowhere.. its also wrong channel..
Im thinking if there is people need help with blueprints
Fairs
Not in the US. Not sure about other regions. And it's possible the FPS tanks, but I doubt it.
Do it in general
You mean the studio will continuing to be using the engine they've been trained in for decades and thus avoiding all teething issues about jumping to a completely new engine they are unfamiliar with. That's literally the point I've been making.
well i say decades, idk how long BDO has even been out ๐
This isn't even really en engine issue. They would have done just fine in Unreal.
They just needed to disable the RT required feature set for rendering.
They created a new engine. It's not the one BDO runs on. Whooopsie!!!!
are you a threat interactive fan?
it's not a new engine, black space is built off bdo engine, at least as far as i'm aware
it's somewhat common (for some unknown reason) to keep renaming proprietary engines
though i do understand it if the creativity was limited to "black desert game engine" lol
what bearing does that item have on anything here? I'm really confused as to why you'd do that
you're not actively using the item in level switching
but why do you need to use it, you could take that inventory chunk out and you'd still move to the next level?
because what if i finish the quests
but theres side quests n shit
and other enemy maybe i can kill
then i go when i'm good n ready
I think the consent gate is nice
ah ok i see. so you're kinda using the item as a replacement for like a hub world or an end of level teleporter?
I don't like that the item needs to care about the third person character.
yes
so, the player has to open their inventory and use the item, which says "go to next level" as its name?
what would u prefer ?
they can do that from anywhere?
it just say level but yes
yes
what if you decide you're ready and want to go back at some point? at a surface level of side quests existing, that's something i'd expect to be able to do. Sometimes it's fun to blast through story and go back for the side content, or say, missing an achievement in a level
do a targeted playtest to validate the conveyance
i think folks might get confused
At the very least I'd hope for some kind of level select menu
i have not thought of going backward yet
It sounds cool but i'd worry about backtracking and confusing from the most surface level look at it
yeah, like if it was a special tab where I can go to any level as long as I have the key...
Might be something to consider if it works for you
but then each level needs a unique item
I'd probally have an event dispatcher called 'OnConsume' that the owning inventory can bind to. That way the inventory can just remove it when need. No need to include the player character as middle man.
However, as a quick fix, i'd just use the 'Get Component By Class' to get the inventory component without need to cast to a specific character class.
Yeah I'd want them as persistent items i can use, but not taking up regular inventory slots
like powering up my pocket teleporter with some kind of data source for each level allowing me to travel between them at will
interesting, i see
i have not thought about going backward yet
maybe a forward and backward item and you get limited amounts of them
or just a level item where you can go forward and back
but i have to think more about it, thanks for the feedback
how about this beauty ?
lol
this is actually my fkn combos
Just to cleanse everyone's eyes. This is what I've just setup.
until the spaghetti monster appears and eats you alive
i could refactor it but i can't be bothered it works so idgaf i know what its doing
blueprints quite quickly go from "i'll make a simple system" -> "oh god what have i done" - > "i need to refactor this for my eyes" -> "... it works and i daren't touch it"
I'd dread the moment I need to add something to it. ๐ฅฒ I pray tthe need never arises for your sanity. ๐
lol no comments too
every time
future you is going to despise past you
comments can be a sign that the code needs better structure and naming
nah i'm used to it, i go back n forth projects all the time
its is a pain sometimes to get my thoughts together after a bit of time off
but i just comment some important things that i might of been doing
like a todo kind of thing
on the flip side they can just also be a nice change in colour and shape to aid readability
i madea visual scripting language and i added a source node, this would be nice in blueprints
Present me only just knows what its doing, let alone what past me was doing. Its why I try to keep things tidy.
it really gets rid of a lot of noodles
I tend to overcomment because I have days where I simply have less cognition to spare
just putting a comment that says //Do something doesn't fix unreadable code
I comment for those days
always reminds me of quake 3
Is that the bit shifting magic?
yeah for the inverse square root
I feel like the person that came up with it might have been high as f*ck. Pure genius.
you know i get that feeling about a lot of "magic" from older games ๐คฃ
i refuse to believe the old methods for mirrors wasn't some red eyed engineer going "but what if... what if we like... made a second room and flipped it"
this is like me being organized n clean with it
why'd you crisscross them ๐ญ
i can respect and empathise with that level of lazy
its how i operate
lol
for me its not a big deal it was quick easy fix and its just a few nodes i can mess with it later
based
this is probably the most complex part of my blueprints
i just kept having to make edits lol
so its a mangled mess
its the main inventory/looting window
this is probably my main priority for a refactor tbh
like i'm seriously considering it lol
lol
i know whats its doing too, thats the fkd up part, but with normal code you can flow easier, this click and drag stuff sometimes get annoying
the less i have to right click and drag the better
so i jam shit into the small spaces

anyway i was just showing off how amazingly clean my code is lol
Why don't you manuever them into cute animal shapes?
if it could somehow not be counterproductive i would
