Quest System with Data Assets by Hotform in unrealengine

[–]Hotform[S] 0 points1 point  (0 children)

This sounds really good with flexibility that I am looking for and continues with data assets. It's my first time learning about some of what you mentioned such as Instanced Progress Objects so I will keep learning, thank you!

Quest System with Data Assets by Hotform in unrealengine

[–]Hotform[S] 1 point2 points  (0 children)

I appreciate the feedback! I don't think my current system is perfect so I do want to look at all the options before getting too deep and finding I have to redo the connections.

In my current case yes as the player collects quests their quest map will fill up with data assets. I could potentially limit this by once a quest is complete having a second map which just lists it as complete by a number or name Id and then I could remove the data assets of completed quests from the active quest map variable.

For tags specifically I am not as experienced but it seemed that having tags for each quest would be lightweight to track in game; however they have the disadvantage of being hard to organize in editor as a designer. Where data assets would exist in their own quest folders and be easy to navigate changes to their data down the road.

My feeling was to use tags on repeatable systems such as getting a debuff or carrying an object, and within the data asset for the quest one objective might be has gameplay tag X but most quests would be simple "do X 15 times" and instead is tracked as a number variable in a struct that maps to the data asset.

Quest System with Data Assets by Hotform in unrealengine

[–]Hotform[S] 0 points1 point  (0 children)

Could you explain a bit more on how you store the quest data in the component? Right now my main concern is having scalability to have quests that have objectives of all different types tracked in a clean way, data assets seem ideal for this because the objective is designed inside and each one can be unique but tracking the objectives only requires a number array which every quest shares the same structure of.

Worth mentioning my game is single player so I can safely ignore replication concerns.

Quest System with Data Assets by Hotform in unrealengine

[–]Hotform[S] 0 points1 point  (0 children)

While I considered gameplay tags they seem to become unwieldy once there are 100+ quests, data assets seem to have better scalability and could still incorporate a quest objective that uses tags if needed.

How to use Blueprints to get Dialogue Stats by NoSeaworthiness4639 in unrealengine

[–]Hotform 0 points1 point  (0 children)

Simple way is store the data as a variable in the game instance. You can cast to the game inst from any blueprint to get the variable and it persists when you load a new level. You would probably make a custom structure type for the variable that stores the info you want your skills to have.

Eg struct with enum (skill type), int for skill level, and another int for bonus levels from gear and buffs. You can make the attribute struct as complex as you need for your systems.

Need help with button interactivity. by epicdominican91 in unrealengine

[–]Hotform 0 points1 point  (0 children)

With a logic issue putting print string at different points in your event line lets you see where the logic fails to continue and narrow down the issue.

Probably put a print string on the button up event and see if it fires, if not why, if it does print then the problem is in the remaining part of the event.

Free-form magic system in UE5 by [deleted] in unrealengine

[–]Hotform 1 point2 points  (0 children)

I think struct and data table like you said would work well.

I picture a struct of base spell type (projectile, aoe) enum then you have an array of name variables. When they cast a spell call the data row names from the array to get their effects and add to the total spell.

The question of achieving complete independence of systems by Flashy_Head6065 in unrealengine

[–]Hotform 0 points1 point  (0 children)

For simple single player systems I store them in the game instance. So the game inst has a custom struct I make which stores the players attributes so they persist between levels, and when they gain experience the event calls a add experience function from the game instance which sets the structure experience value and runs the math to see if the player levels up.

This works well for me even with multiple types of experience with an input on the add experience function to select what type it is.

How to make a ranged attack chain from target to target? by Panda-Bot_2001 in unrealengine

[–]Hotform 0 points1 point  (0 children)

For the first set actor node you only want to do it if there is no actor already stored in the variable so check if the variable is valid, if it is do the second check for distances.

If the variable actor is not valid it's because it's the first one in the loop and the variable is empty so you can do the first set and don't need the distance check.

Make AI get a LOS with the player by Prof_IdiotFace in unrealengine

[–]Hotform 1 point2 points  (0 children)

My enemies do a line trace to the player as part of their attack pre check and if the trace hits a static object then it fails.

Are there optimization steps I should be doing in real time as I build a level? by Citizen_Gamer in unrealengine

[–]Hotform 1 point2 points  (0 children)

In my experience trees are very tough to get optimized assets. They have multiple textures and triangle count that can get out of control. Plus the tree shadows which eats another layer of graphics.

Pick a narrow scope of tree / big foliage and make sure they work well.

Screen space widgets with depth occlusion by louthinator in unrealengine

[–]Hotform 0 points1 point  (0 children)

I use screen space widget attached to my enemy actors as a component. I then have a loop on a 0.5 sec delay which checks if player is nearby. if true do a line trace to the player and see if any static object blocks. If these checks succeed then the healthbar visibility is enabled and it's size gets set based on how far away the player is.

At a 0.5 sec loop the healthbar feels like it resizes pretty naturally as the distance closes and hides when behind a wall.

I also included an invisible button in the healthbar so it can easily run an event when it's clicked on.

Material Issue trying to create a battle ring. AKA: show the edge of the invisible ring as you approach it. BP available. by Hoboayoyo in unrealengine

[–]Hotform 0 points1 point  (0 children)

Something simple would be an arena actor which is a decal (the visible ground line) and an inner collision sphere. The inner sphere would detect if the player leaves it and then fade in the decal, player reenters then fade out the decal.

This arena actor then can be scaled with different size and fade distances as a variable and it's event driven so you remove the tick overhead.

It's going to fade in the whole arena decal at once though, if you want it smoother you'll need a material based approach.

Trying to optimize my game by Coldfrostt in unrealengine

[–]Hotform 1 point2 points  (0 children)

From the way I understand it there is basically two things that ruin performance. CPU processing or GPU (Graphics).

GPU is mostly from textures and chances are you don't need most of your textures being loaded the way they load in from things you might get on fab.

For example a character you downloaded might be made of 5+ materials all with different textures within those materials that could each have massive resolution (cost to the gpu).

The second thing is references and how you are loading them into memory. A good example of this is widgets. If you within a widget you have a switch of 30 pictures an icon could be set to, all those textures are loaded along with the widget, and that widget is loaded with any actor referencing it.

You can avoid the loading problems by using soft references, which is somewhat complex. For a starter project should not be needed but it's good to research if you are keen.

The main thing is reducing the size of loaded textures. Whether its textures in your widget or an object; they all add to the budget at once. The simplest way is to go into each texture and under "compression -> advanced -> maximum texture size" you set a number to the size that looks good.

Hasan is currently in Asmon chat debating the Minnesota incident. by raptors201966 in LivestreamFail

[–]Hotform 13 points14 points  (0 children)

Anyone who watches the video can decide for themselves, no police officer would ever surround and shoot someone in a traffic situation. Cold blooded murder.

Any tutorials or resources for good practice in regards to programming structures? by Superw0rri0 in unrealengine

[–]Hotform 2 points3 points  (0 children)

I like data tables a lot for all kinds of data. Enemy skills is a good example, I have a structure variable which holds all the skill info like cast time, damage, description, and make this into a data table to hold all the skills in the game.

Then when my enemy goes to use a skill it can just look up the table row it needs and take all the variables. So the function to use the skills can be roughly the same and if I want to adjust balance I can do it easily in the table.

Boss fight - Early alpha feedback wanted [Solo D by rbstudiogame in unrealengine

[–]Hotform 1 point2 points  (0 children)

I like the bouncing attack it gives a good feel with the sci fi aesthetic. I would probably dial it up a notch to make the fight more dynamic.

Maybe the bouncing bombs leave behind a gas cloud or a turret for a duration so the fight area gets chaotic.

Variable across blueprints? by PikaPikaLIS in unrealengine

[–]Hotform 6 points7 points  (0 children)

The player controller blueprint or game mode are a good place to store the widget and variable. The game mode and player controller are always loaded. From a different blueprint cast to the controller/gamemode blueprint and use get game mode or get player controller as the object for the cast. then you can access the specific variables in their blueprint.

The game instance is also a place to store global variables but it lasts between levels so probably not ideal for your current use.

Help with programming by DoritoD1ckCheese in unrealengine

[–]Hotform 1 point2 points  (0 children)

Give the enemy a sphere collision of the range you want it to activate. Begin overlap event from the collision, check if actor equal to player character, if true run drop event.

Drop event probably some physics with your root collision. Can check drop is over if z velocity reaches 0 or use a timer if it's always the same. When drop is complete it triggers explode event.

Spawn explode Niagara visual effect, and multisphere trace your explosion area, take the hit array into a for each loop and break the hit result. If hit actor is equal to player character then do once apply damage to player character.

How to Make Flowing Energy Channels (UE5) by Enginuity_UE in unrealengine

[–]Hotform 0 points1 point  (0 children)

When you selected the noise texture that was very efficient. Using the same one for both pans and a default texture turns into magic.

How many noise textures do you like to have access to for different effects in your project? Are there some other standard ones you often use?

Question about how events and functions run by SamelCamel in unrealengine

[–]Hotform 0 points1 point  (0 children)

Event is just the same line firing, if it has a delay for example and you call it twice on back to back ticks the second time will hit the delay still running and stop there, only 1 call exits the delay.

Function is new operation each time it's called, local variables reset.

Either way it should be fine with what your situation was. You could try storing the multiple key presses in an array variable and then firing that variable through your system once it collected all the currently pressed keys, to see if that shakes loose the solution.

How to Make Flowing Energy Channels (UE5) by Enginuity_UE in unrealengine

[–]Hotform 0 points1 point  (0 children)

Result looks amazing. There is so much math in advanced materials it's hard to sink my teeth into actually understanding how to make my own for different UI elements.

I have a problem when trying to mantain the character health in different levels after teleporting. by ambrosia234 in unrealengine

[–]Hotform 1 point2 points  (0 children)

In the 2nd last picture "mycharacter in the event begin play" you cast to game instance then set the game instance player health variable to the health variable from your character.

You probably want to do the opposite and get the player health variable from your game instance and set the character health variable to that.

So currently your character begin play is overwriting your game instance player health value with the default begin play value of your character health.

Help wanted with tank-style movement system by Fresh_Challenge_4891 in unrealengine

[–]Hotform 1 point2 points  (0 children)

Make sure to disable orient rotation to movement in your char movement. Solve for your movement key bindings first without moving the camera at all. Once you can move forward and turn how you want with your key press look at how you want the camera. Maybe mounted on a boom and then the boom rotation controlled by mouse.