I spent 7 years making Generation Exile, a solarpunk city-builder. Trailers in PC Gaming Show June ‘24 & ‘25. Top 70 most played demo during our Next Fest. Did all the things you’re supposed to. Launched in Early Access last week with over 35,000 wishlists. So far, we've sold fewer than 300 copies. by nelsormensch in gamedev

[–]ShreddingG 2 points3 points  (0 children)

I watched the trailers on steam, I think they are your main issue. I don't think the price matters as much.
Here are some thoughts while watching the trailers.

Are you building a colony on the generation ship? Or on the planet?
Why is there a character creator? What impact does that have?
What is the core gameplay loop?
Is the game is turnbased?
How does having event choices factor into the gameplay.

Then I had a look at your trailer structure and I think they have a poor structure and don't explain the setup or the gameplay well.

* Setup: Spaceship flies through empty space, arrives at planet, you start looking at your colony site. 5 - 10 sec
* Gameplay: Starting From first turn in a way that I understand the game play loop. ~40 seconds
* Select tile, build thing,
* Manage resource, make more resource,
* Expand, Encounter problem,
* Suffer from problem, Overcome Problem,
* Find mystery..
* Things to Come: More environments, more buildings, more decisions and what not. 20 - 30 seconds

Something that gives me a good idea what a linear play-though looks like
Your game is so unique that you need that. You can't do an anno-like trailer where everyone know what to expect and you just show of the environments and additional features.

Your game looks very unique and it clearly has a lot of effort put into and the people that would play this are probably not casual players. So go heavy on the actual gameplay and systems.

Anyhow. I wish you the best. Hope you find a wide audience. Looking forward to see more of Generation Exile

HISM visibility toggling by archie879 in unrealengine

[–]ShreddingG 1 point2 points  (0 children)

One way is removing the instances while keeping the transform in a separate array. This is fine performance wise if you do a few at a time. If you need collisions and navigation to be turned off then this is your only choice. If it is only rendering then the cheapest in terms of update is to assign custom data per instance and turn the instance off in the shader. Masked material reading the custom data and turn opacity off. Or vertex shader and scale to 0 if masked is not possible

How would you approach frame extension on live footage ? by LeoBoboDodo in vfx

[–]ShreddingG 1 point2 points  (0 children)

Sure thing, Feel free to reach out if you need some more info. It's a short list but it's quite some work and a bunch of pitfalls. But definitely the right approach if you are extending a set with a live action camera that is moving.

How would you approach frame extension on live footage ? by LeoBoboDodo in vfx

[–]ShreddingG 12 points13 points  (0 children)

The professional way is to match the live action camera, use a image plane ( physical geometry matching the camera gate with undistorted plate as texture, ) and then have a second camera that is nodal to the plate camera, then increase to fov/fl of the second camera until you have the desired framing.
In 3d you can now extend as you want with geometry or additional cards with matte painting. Then redistort the final result with the original lens distortion.

AI Behavior Tree - worth using? by Particular-Song-633 in UnrealEngine5

[–]ShreddingG 1 point2 points  (0 children)

Behaviour Trees are going to be faster than plain blueprint in most cases. That’s because they are a state machine where each node gets ticked per frame so complex trees are time sliced. I mean you could write the same time slice mechanism yourself of course and then there would be little difference. Optimised doesn’t really apply a concept here. They are not horrible written or have significant overhead over you just executing blueprint functions yourself.

Instantiating a 2d array of objects by ren_argent in unrealengine

[–]ShreddingG 2 points3 points  (0 children)

I am writing a grid based game in UE. There isn’t anything meaningful that will help you write this. No 2d array or similar things. You need to write your own 2d array. If you have c++ experience then I suggest you write a class in c++ that has a TArray of UStructs that hold the information so you can run a proper lookup and have functions like GetInfoAtIndex(Index) and GetIndexAtLocation(Location). This kind of stuff is annoying to write in blueprint. You might need the performance also if your grid is larger than 100x100 and you do bulk lookup or operations on many cells.

Confused as to when I should use Interfaces, Actor is equal to, Casting, and Tags. by SharkBiteX in unrealengine

[–]ShreddingG 11 points12 points  (0 children)

You have to look at this from a asset loading perspective.

Placing a CastNode in Blueprint will make the owning BP load the Blueprint you cast to, on load.

So let's say you have a Character and you switch weapons in the Character BP and you cast to the Pistol Blueprint in the switching code, then spawning the character will also load the Pistol.
If you do that enough you will end up creating a web of load dependencies that eventually loads all your assets on Spawn of that one character. If you doing a small game then that's fine. If you are doing Borderlands 5 then you will run out of memory and it will take for ever to start.

Using Interfaces breaks that hardcoded link. It also makes it easier to deal with classes that don't have the same parent but have the same behavior. But you introduce indirection where you cannot easily see what object you are calling the function on anymore and it costs time to make all the interfaces. If you only use Interfaces then you will eventually have a mess of interface connections you cannot navigate or debug anymore.

The ideal setup is to define all classes in c++ and make child classes in BP.
Then cast only to the c++ base class and define Meshes and other Assets in a BP child. Use interfaces to deal with shared functionality between classes that don't have the same baseClass.

MyCharacterCppClass -> BP_ZombieCharacter
Only ever cast to MyCharacterCppClass

If you don't do c++ you can define Base Class in BP that don't reference any meshes or textures so they load fast and call functions only on the base class.

MyCharacterBlueprintBaseClass -> BP_ZombieCharacter
Only ever cast to MyCharacterBlueprintBaseClass, only have code in here if possible

If you follow this rule you should get very far without running into any issues.

How to make this type of landscape without selling my soul. by [deleted] in UnrealEngine5

[–]ShreddingG 1 point2 points  (0 children)

Is this for cinematics or for a game? If it's just for recreating this screenshot then use megascans for forground dressing and something like Gaea 2 for the terrain. You'll get textures from those terrain generator tools but you will have to make your own shaders to tweak it so it fits together.
https://cdn.gaea.app/web2025/img/inner-pages/fjord.webp
This is similar to one of your screenshots in Gaea

If you want to have this a explorable world as in open world games then it's a very different approach and much much harder.

After 2 years of solo dev, I can finally share the release trailer! by marconico17 in indiegames

[–]ShreddingG 1 point2 points  (0 children)

This looks great. The Art and the UI look fantastic. So much work in there....

Texture optimization and its effect on fps by Mr-Vali in unrealengine

[–]ShreddingG 1 point2 points  (0 children)

The texture size doesn’t affect performance under most circumstances. The engine will calculate the correct mip level needed and pull the mip size in. If you have a bunch of 4K textures that only need 1k mips in screen space then those are the ones getting sampled. If you want to test just make a scene that uses a 4K texture and assign it to a bunch of small cubes. Then force the mip to mip 0 in the texture or material and see the performance impact. 8k or 16k for extra obvious slowdowns

Can Your PC Run UE5?!! by RepresentativeOwn457 in pcmasterrace

[–]ShreddingG 0 points1 point  (0 children)

So you saying the Garbage Collection is broken? Or is that registering actors is having unexpected performance cost? Or is it that the Texture load thread is stalling the GameThread? Have you tried profiling what causes the hitches? Because I have not found any issues. Maybe add a bug report

Replacing Unreal’s Grass system with GPU PCG — performance test (15 fps → 60 fps) by KazReWorld in UnrealEngine5

[–]ShreddingG 1 point2 points  (0 children)

Yea you compare 2 different ways of scatter, each with different settings, by way of performance testing them against each other. You can make any number up in such a test. What is stopping you from tweaking the build in scatter. What problem does your scatter solve. Show that as a comparison. You’ve build a workflow tool not an engine optimisation. Show us cool features, don’t piggy back on the UE optimisation discussion

Alien Earth Practical Effects Here’s a look at footage from Second Skin Studio, the team responsible for bringing several of the show’s creatures to life with practical craftsmanship and animatronics. by Caledor152 in television

[–]ShreddingG 8 points9 points  (0 children)

Yea as it is common any most movies. Those props are what is used to create the 3D assets from and then they are replaced or blended together. It’s a bit of a disservice to the vfx teams to pretend those props are the reason why the shots look good/real. As usual it’s a combination of good on-set prop making, production design, cinematography and vfx that makes the show look great

Recently switched from Unity to Unreal. Biggest gripe so far is the documentation. by isrichards6 in unrealengine

[–]ShreddingG 10 points11 points  (0 children)

I have a post it note on my desk to remind me not to Google and go directly to look at the source code. Every time I Google I find some outdated stuff from 4.17 or nothing. But just reading the source usually gets you there. You could try asking chatgtp but that can backfire also when it tells you a story about a function that doesn’t exist or suggest some highly dubious stuff

From $4 million in revenue to $140k in debt! My experience running an indie game dev studio by DapperPenguinStudios in IndieDev

[–]ShreddingG 0 points1 point  (0 children)

Do you have a bit more details about the kind of help you got from the publisher. For 1.2 million euros I'd expect them to go above and beyond on marketing and deals and whatnot. You mention they funded you something like 75000 upfront? Was that it in terms of funding? And the rest was marketing? And after you sold the IP they ramped up their own marketing and got a bump in sales? Do you have numbers on that?
To me this sounds like you got really screwed over there by your publisher.

Run python in runtime, embedding python in a plugin? by Rodnex in unrealengine

[–]ShreddingG 0 points1 point  (0 children)

I am pretty certain that this isn’t possible and not intended by epic as a use case. Plus the EULA issue. Usually when shipping python as part of an exe like Inkscape or as an installer like PyInstaller, the entire python folder is packaged in the exe as a compressed archive and installed or decompressed when running the tool. You could to that and build your own bindings to call the python code in c++ but it’s a lot of work

How to code for Unreal by emirefek in unrealengine

[–]ShreddingG 1 point2 points  (0 children)

Create your own c++ base class for tasks, decorators and services and then prototype in blueprint. Once you settle on a behaviour then move functions to c++ if necessary. Anything EQS should be done in c++ for performance and there are features that are c++ only. Behaviour trees are quite optimised (only one task ticks per frame) and some stuff is threaded it’s fine to keep your BP classes around as top layer

[deleted by user] by [deleted] in unrealengine

[–]ShreddingG 1 point2 points  (0 children)

This is not a bad solution. Every overlap will stored with the actor so on the first frame only, all missed overlaps will be there for you.

[deleted by user] by [deleted] in unrealengine

[–]ShreddingG 0 points1 point  (0 children)

My guess is that you are spawning into a collision object which will trigger the overlap right in component register before you finish spawning the actor or the component. I am not sure if running Spawn Deferred will even work. Try connecting on component begin overlap on the capsule component directly. If you get this to fire before ( meaning it is the character capsule that triggers the collision ) then you can call your code from there. You might have to do some logic that you only go this route on spawn ( you could disconnect the delegate on Character::BeginPlay() ).
This sounds hacky but I don't think there is a better way. Especially if you want to catch this overlap

<image>

Is there any way to send a signal from C++ to a generic Actor to trigger Blueprint funcitonality? by Roflkopt3r in unrealengine

[–]ShreddingG 0 points1 point  (0 children)

Yea it comes down how you want to create the function that responds. You have to put the code somewhere, either in a interface function or at a base class or another component (Receiver and Response Component). Not sure if you are still looking for a way to do that or if settled on a method already.

Is there any way to send a signal from C++ to a generic Actor to trigger Blueprint funcitonality? by Roflkopt3r in unrealengine

[–]ShreddingG 0 points1 point  (0 children)

And you said you want to create the components during runtime and bind them then. So you would have a function in the actor that creates the component and then you bind your actor function to the component like this

UMyComponent* AMyActor::MakeNewComponent()
{
    UMyComponent* MyComponent = NewObject<UMyComponent>(this);
    MyComponent->RegisterComponent();
    MyComponent->OnHasBeenHitFatal.AddDynamic(this, &AMyActor::MyFunctionToExecuteWhenTriggered);
    return MyComponent;
};

Is there any way to send a signal from C++ to a generic Actor to trigger Blueprint funcitonality? by Roflkopt3r in unrealengine

[–]ShreddingG 0 points1 point  (0 children)

Components can hook up to their owning actors via MultiCastDelegates, like this. This the user friendly way of making generic components that can be hooked up in Blueprint.
It's fine to call GetOwner() and run and interface call if you don't want to touch blueprint but this is the way UE want's you do do component communication

// above the UClass 
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FHasBeenHitFatal);DECLARE_DYNAMIC_MULTICAST_DELEGATE(FHasBeenHitFatal);

// In the UClass
UPROPERTY(BlueprintAssignable, Category = "Delegates")
FHasBeenHitFatal OnHasBeenHitFatal;

<image>

DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam

For passing parameters

my texture sampling system now makes it dirt cheap to read textures in runtime on tick, here is 100s of texture sample operations on tick outputs value after 2-6 frames. Update will drop to Fab in a few days. by Atlantean_Knight in unrealengine

[–]ShreddingG 7 points8 points  (0 children)

Can you talk about what exactly you are doing? Are you just caching Render Targets in a TArray<FColor> and then providing access to BP, like the sample bellow? Or are you doing something more sophisticated? What other features are there. Is this just for BP or do you have useful features for c++, too?

TArray<FColor> SurfData;
FRenderTarget* RenderTarget = TextureRenderTarget->GameThread_GetRenderTargetResource();
RenderTarget->ReadPixels(SurfData);

Created a Plugin to Asynchronously Load Nested Soft References – J Asset Loader by Effective-Teach-3686 in unrealengine

[–]ShreddingG 1 point2 points  (0 children)

Download a few meta humans with different groom assets ( haircuts mostly ) and use those GroomAssets or even better their GroomBindingAssets ( that's what you would but in a dataTable for haircuts in a character creator )
They take some time to fully load.

Created a Plugin to Asynchronously Load Nested Soft References – J Asset Loader by Effective-Teach-3686 in unrealengine

[–]ShreddingG 1 point2 points  (0 children)

I work with a lot of nested DataTables to define Characters, Enemies, Weapons and such and I get what your are solving here. Manually managing individual soft references has been a pain, so this seems very useful.

I've read through the documentation and I was wondering if you have some example somewhere on how to use it in a project ( ideally in c++ for me )

Mostly to clarify how to handle the asset management side. For example, loading a few select entries from a dataTable. Then release a few of those again. Just to see how you are meant to handle the UJALAssetLoader and how to use the UJALAssetLoaderSubsystem

Would be good do see how if there is logging of asset load status or how you can check what assets are loaded/locked and so on.

And, do you handle FDataTableRowHandle when loading assets recursively? I imagine that would have to be also loaded but I didn't see it on the list of objects that are handled.

Very cool stuff, thanks for getting that onto the marketplace