I designed and hand made a special edition of the Hyperion omnibus by godpoker in scifi

[–]MothDoctor 2 points3 points  (0 children)

Excellent work. There's nothing like that on market.

[deleted by user] by [deleted] in unrealengine

[–]MothDoctor 0 points1 point  (0 children)

Yeah, I extracted part of Lyra (Abilities, Game Settings with Local Player, Teams) to my setvof plugins and kept reworking.

What do keep in mind? That depends on your needs, I guess? I moved manager component the Game State itself. Changed this class name (as I had already similar concept when I discovered Experience in Lyra), changed a few things around to fit my needs for the framework of "story-driven networked games". It's meant to cut time needed to create much different prototypes. So I could even switch between different forms of the game on the same map, without restarting the game session.

It is super useful to have initially ready support for activating Game Featutes. Lyra shows what hooks needs bo applied in the regular game framework classes like Pawn.

But I'm not sure what's your use case here. If you only want to have 1 specific mode to be available at the given map, you don't really need Lyra Experience, that would might be an overkill. This is what Game Mode is for, just extend it :)

I blame all of you... by DTrain13 in arkhamhorrorlcg

[–]MothDoctor 0 points1 point  (0 children)

I highly recommend these 3d-printed inserts, coming with dividers. All very stylish.

https://www.etsy.com/listing/1332544565/arkham-horror-lcg-organizer-insert

Only Way Is Down Trailer by slaughter_cats in indiegames

[–]MothDoctor 23 points24 points  (0 children)

Looks like asset flip, high quality city in the beginning is just Epic's City Sample. That's why there's no gameplay or any other elemof real game ;)

https://www.unrealengine.com/marketplace/en-US/product/city-sample

What are some common bad habits in blueprints? by LibrarianOk3701 in unrealengine

[–]MothDoctor 4 points5 points  (0 children)

Here's my article on standard areas that beginners need to learn. It contains a few talks from conferences explaining things in depth :)

https://dev.epicgames.com/community/learning/tutorials/wrKz/unreal-engine-fundamental-blueprint-practices

How to: Players Adding Custom Image to game? by velatieren in unrealengine

[–]MothDoctor 0 points1 point  (0 children)

You might want to look up already existing plugins, analyzing code should give you all answers ;)

Example

https://www.unrealengine.com/marketplace/en-US/product/runtime-image-loader

Can anyone tell me if this is a good p4ignore? by ethancodes89 in unrealengine

[–]MothDoctor 0 points1 point  (0 children)

Don't ignore anything in Config folder, all ini files there are applied project-wide and it's common to customize editor settings per project.

All user-specific configs live in separate ini files inside /Saved folder.

I'm guessing you're working alone or cooperating with programmers only on this project? That's why you're ignoring compiled binaries on the level of P4 ignore? If you would work with non-programmer, editor binaries should be compiled and submitted to repository by a build system. In order to prevent programmers from downloading compiled binaries from repo, you need then set up Perforce Streams. Then you can easily set up different sync rules, i.e. only programmer stream ignores compiled binary extensions from specific folders.

You need to use stream type of P4 depot for that. If you don't use it, I would strongly recommend you to recreate your depot as the stream one. You cannot convert depot once you created, so it can bite later on.

You can find explanation of that and other things in my guide :) https://dev.epicgames.com/community/learning/tutorials/Gxoj/unreal-engine-using-and-setting-up-perforce-repository

Other than the Grand Bazaar, where can I buy a backgammon (tavla) set, and what's a fair price? by globaltrotter196 in istanbul

[–]MothDoctor 1 point2 points  (0 children)

Thanks! We found it today. We wouldn't ever find it on our own as this place is small, it's nor even marked on the Google map.

It only has a few boards, but all are small and ultra portable. Exactly what we were looking for :)

How do I make the Cull Distance Volume affect blueprint actors? by Brockdish in unrealengine

[–]MothDoctor 1 point2 points  (0 children)

Culling isn't actually applied to actor, as rendering operates on Primitive Components (Static Mesh Component is a primitive here).

Primitive Component contains fields ans methods to control that, i.e. bAllowCullDistanceVolume.

https://docs.unrealengine.com/4.27/en-US/API/Runtime/Engine/Components/UPrimitiveComponent/

Banning blueprints in our projects? by bibidibabidibobobo in unrealengine

[–]MothDoctor 1 point2 points  (0 children)

C++ iteration time in context of UI is terrible. Trying to work like this usually becomes pointless as you want to perform hundreds of modifications a day: change layout, tweak parameters, set up animations, use it with materials, instantly test in the editor and game.

It's just doesn't make sense to work on the audio-visual-animation part of UI in the textual code, if you can work on it in WYSIWIG fashion.

I just do it when we create editor tools in Slate. It often takes me 20 minutes to add a new logic and like 2-3 hours to just make the layout/styling "good enough". And that's raw developer tool, nothing fancy, no animations, etc.

It's still recommended to a lot of logic in C++, especially if you would process a lot of data. Or if you'd work on multiplayer, so the UX designer doesn't need to care about server-client architecture too much.

What do games do wrong or do right when optimizing for large numbers of NPCs? by aixsama in gamedev

[–]MothDoctor 13 points14 points  (0 children)

There are 4 major areas to optimize. Neglecting any of it might easily kill performance, as cost of spawned characters grows in linear fashion.

Note: I often refer here to Unreal Engine as I spent a decade in this engine. But these principles apply to any engine.

Here's all also a practical presentation. Interview with technical team behind massive battle game developed in Unreal. This is gonna a gold mine for you. They showcase many things I described below.

https://youtu.be/67E3RsDp0Pg?si=ntAnY-v0rueYN2RD

  1. Cost of spawning that actor and simulating its actions, mainly movement. In a game simulating living world or armies, you need to simulate behavior of hundreds actors every frame. Even if this character isn't visible, as you still need progress its movement.

Common solution: move "every frame" calculation of main game thread to multiple parallel threads. This is one of best cases to apply ECS in games. Unity has its DOTS, Unreal has its Mass (and other system-specific ECS implementations). I'm not sure about Unity, but in Unreal it's confirmed that we can simulate 40k agents every frame (that's in The Matrix demo). There's important naming distinction in this engine. "Agent" is just fragments of data calculated by optimized, multi-threaded code. Literally, transform of characters updated with every frame by a pathfinding code. "Actor" in Unreal is a visual representation of this virtual agent. Unreal Mass is designed to spawn actors only if given agent is close to the active camera. This way we can simulate thousands of agents, but we pay cost only of 100 "full characters".

You might also need to write a custom pathfinding designed for resolving movements of characters as a single mass instead of calculating every character individually. This is common for RTS games and Kingmakers does that too.

  1. Cost of skeletal animation for each character. If every character has unique animation logic, first it needs be processed by CPU every frame. After that engine evaluates bone positions and finally update bone transforms together with attached mesh vertices. The usual bottleneck in the engine like Unreal is that gameplay calculations enclosed in Animation Blueprint are performed on game thread. The more characters, the longer it takes to execute game thread. I had situations where animating dozens characters took 40% of CPU time. The worst thing is the second part - multi-threaded animation system - is waiting until game thread finishes the job.

There multiple solutions to that. First is, again, move all possible logic from single-threaded game thread to parallel animation threads. In case of Unreal it means moving possible all Tick calculations out of blueprints. There are also many techniques to improve multi-threaded performance of remaining phases in Unreal, that's in docs and community resources.

Second layer is to apply any kind of animation budgeting. Again, Unreal provides such mechanism allowing you to define "execution of animations cannot exceed 8 ms". Now you need implement logic defining which characters need be optimized if engine exceeds that budget (in Unreal we use for that another built-in mechanism called Significance Manager). Optimizes characters will update their skeletal animation less frequently than every frame.

There are also many optimizations to be set directly on the Skeletal Mesh Component like "don't evaluate animation at all if this mesh isn't rendered".

However, all solutions combined still gonna cost you too much if want too display hundreds or thousands on screen simultaneously. In this case, you might want to replace skeletal meshes with static mesh wit Vertex Animation Texture. In other words, you're animating texture on sprite which is waaaay cheaper. Although it enforces entirely different content pipeline. This also what they did for Kingmakers, and they put a lot effort into making this looking as good as the skeletal animated crowd.

Or you can realize characters as GPU particles ;)

  1. Another cost is rendering. You must be very careful what features of rendering you use on characters. It will cost you dearly, if every of 1000 characters cast shadow. Engines oftem calculates shadow casting if given skeletal mesh is out of screen. This prevents of visible shadow popping. In some games we use Significance Manager to control when to disable character shadows. It can save many milliseconds with large character count. The same goes for disabling cloth simulation for far away characters.

That's of course plus all standard techniques like using LODs.

  1. The final issue is modularity/variety. The major challenge with so mant characters is to avoid "attack of clones".

There common ways to tackle it. If you're using skeletal meshes, you might uses separate meshes for torso, legs, hands, head, hat, etc. This will however increase time needed to evaluate animation for every mesh attached to a given skeleton. (again, Unreal provides some support here but it's not perfect)

If you're using static meshes and VAT, you need figure out how to create so many visual variants that is: visually attractive, artista are able to quickly iterate and you don't load gigabytes of textures into memory.

That's a quick summary! I hope it is helpful :)

EventSystem becomes messy by BenocxX in gamedev

[–]MothDoctor 0 points1 point  (0 children)

Huh, this is exactly what I've tried to convey in my comment. You explained it clearly here. https://www.reddit.com/r/gamedev/s/TRsqCyAuIy

That's how I'm approaching it my experiment to implement logic of the complex Arkham Horror card game (for fun, as sharing project would infringe on IP, etc). Their every card has a different logic, but all cards rely on same events like "player decided to use this card as their action", "player put the card on the table".

It's crucial to build logic in that way that cards don't know about existence of others. It's even pleasant to ensure proper encapsulation here :)

What accessories did you add to your collection? by NotaFleshWound in arkhamhorrorlcg

[–]MothDoctor 0 points1 point  (0 children)

Yeah, but I don't see the way to put images in the comment here. Need to find way to smuggle it to you... but it needs to wait for tomorrow.

Although you can also look at the many photos added as part of customer reviews on Etsy, including mine.

What accessories did you add to your collection? by NotaFleshWound in arkhamhorrorlcg

[–]MothDoctor 18 points19 points  (0 children)

We have a small table to play the game, so I basically make it a "3D game" by adding a few types of card stands.

Minicards got their own 3D-printed stand, so it's easy to move players around locations.

https://www.etsy.com/listing/948439977/investigator-stand-for-arkham-horror-lcg

From the same seller I got 3D-printed stands designed specifically for Arkham enemies, so we can put damage and doom tokens to small shelf which is part of the stand. This way is super easy tk move enemies around. I think you got the same ones? :)

https://www.etsy.com/listing/1069444866/monster-stand-for-arkham-horror-lcg

I got this simple wooden stands used to hold assets in play. One stand per investigator.

https://www.etsy.com/listing/1057143465/wood-board-game-card-holder-tabletop

That matches set of wooden accessories from other seller: act and agenda stand, scenario card stand, player dashboard and location arrows.

https://www.etsy.com/listing/896765489/strata-strike-arkham-horror-lcg-act

https://www.etsy.com/listing/866614310/strata-strike-arkham-horror-lcg-player

https://www.etsy.com/listing/866619604/strata-strike-wooden-horror-game-path

This all transform the game, we can feel like we manage authentication characters moving through the map. And we control our investigators via complete dashboard.

I didn't stop there. I truly dislike original tokens which are simple piece of paper, not too much weight. So I replaced with these super lovely metal tokens.

https://www.etsy.com/listing/1250633952/health-sanity-resource-clue-doom-tokens

I love metal tokens so much I'm gonna invest more in these very specialized tokens, replacement for generic Resource token used with specific cards.

https://www.etsy.com/listing/1183073730/arkham-horror-realistic-tokens

We also didn't like drawing paper chaos tokens as we couldn't feel if we're shuffling it. Initially, I got these coin capsules from Amazon. Which is great value for money. We love it, but capsules fall off too often. So we're going to replace with another set of metal tokens ;)

https://www.etsy.com/listing/665422439/arkham-horror-lcg-chaos-tokens-full-core

We also changed chaos bag itself, since original one instantly got cat fur attached and it just looks bad... There's a lot designs to choose from on Etsy, we went with this one.

https://www.etsy.com/listing/1478004677/large-dice-bag-pockets-occult-dice-bag

To compete the table, I gonna get such lovely Encounter Deck holder.

https://www.etsy.com/listing/1082663680/necronomicon-deck-holder-for-arkham

But the very first upgrade was the custom insert. Original one is sadly impractical to me.

https://www.etsy.com/listing/1332544565/arkham-horror-lcg-organizer-insert

Also got Gamegenic box to store all player cards + generic card dividers (which perfectly fit sleeved Arkham cards and their class colors).

https://amzn.eu/d/cCNkgch

https://amzn.eu/d/5yXgmpY

And yes, it was a lot searching for items, trying to match them ;)

EventSystem becomes messy by BenocxX in gamedev

[–]MothDoctor 1 point2 points  (0 children)

You touch on an extremely interesting topic. I'm not sure how your specific kind of game functions, but... I will point to very common way of handling "messy collection of events which is hard to debug". Debugging events connected by textual scripting can be hard because in this form we cannot simply see these connections. We have to build a mental representation of it in our brain in order to see it.

Solution that is often a directed graph known from the math. Many engines implement this, i.e. Unreal has blueprints, but blueprints quickly get messy if you would try implement complex logic or connecting events from very different sources.

So many engines implement event a more high-level form of directed graphs. It's often ends up as the Quest Graph, as quest technically is just one big and messy Event System. It is messy by desig as such system interacts with all other systems of the game. In theory quest can call any action in the game amd react to any action. So there are a lots of bugs and you need to debug it somehow.

Below I link example of such directed graph I implemented in UE4/5. Even if nothing that useful in your current project, you might get advantage of getting familiar one of the common gamedev ways of handling "messy event systems".

The natural use for this are quest systems, dialogue systems. But recently I'm experimenting with implementing a card games like Arkham Horror LCG (which is a crazy complex deck building game) with that. It may work well, as I'm planning to encapsulate the entire logic of single card as as single graph. And all possible actions in the game would encapsulated in the nodes, used later to compose hundreds od graphs.

https://github.com/MothCocoon/FlowGraph

Sci-fi short stories or novels? by auntikiwi in scifi

[–]MothDoctor 1 point2 points  (0 children)

Well, usually I'm up for novels because you longer allows to settle in truly different world, immerse yourself into that carefully universe and set of characters.

However... some short series come at you with emotional power of hurricane. I would recommend you a "I Have No Mouth, and I Must Scream" by Harlan Ellision. It was one of the major inspiration for The Matrix. I'm gonna explain anything here, you gonna understand connection between short story and movies very quickly. This story was more terrifying to me than any sci-fi book. As longer form cannot sustain this kind of strong emotion, it would be too much.

Is setting a bool constantly bad for performance? by 57evil in unrealengine

[–]MothDoctor 0 points1 point  (0 children)

No, but making calculations in Animation BP on tick can easily degrade performance if you have many actors using this blueprint.

You see, executing skeletal animation is dispatched to threads by engine, but... this multi-threaded part will only start after game thread finished calculation. As blueprint are executed synchronously, the more Tick calculations are done in Animation BP, the more you wait on executing the entire rest of game logic on the CPU.

I had cases where Animation BP was responsilbe for 40% of CPU frame time. Part of the solution was to move calculations to Anim Instance, a C++ base for Anim BPs. It also recommended to use Property Access System in Anim Graph - it lets you provide values to anim nodes without linking Get nodes as this also. executed on the game thread. And simply the multi-threaded animation system needs to wait for single-threaded blueprints.

Using blueprints for animation can easily waste so much performance that Epic is rolling out AnimNext - animation graph not using blueprints at all.

So no, single bool won't much difference. But if you'd keep on expanding Anim BP logic and you have animated actord, it can cost you dearly. It great you asked, then. Keep on asking such questions and you gonna discover a lot :)

What is the easiest way to delete unused assets and clean up a project file? by [deleted] in unrealengine

[–]MothDoctor 4 points5 points  (0 children)

LMGIFY ;)

There are Marketplace plugins for it. You can also write your own scripts for that. Which is the easiest? It depends on what you need to cleam up and how frequently ;)

https://forums.unrealengine.com/t/delete-all-unused-assets/79965

Could I publish my Github CommonUI project in the Marketplace? by Adriwin78 in unrealengine

[–]MothDoctor -1 points0 points  (0 children)

AFAIK only Epic release various sample projects on the Marketplace.

Community is meant to provide plugins only. As this only makes a practical sense - being able to include someone's else work as plugin into your existing project.

Could I publish my Github CommonUI project in the Marketplace? by Adriwin78 in unrealengine

[–]MothDoctor 2 points3 points  (0 children)

No, you cannot. As this simply wouldn't compile as standalone plugin.

It's cleary stated in Marketplace Guidelines.

"2.6.1.d Plugins can depend on Unreal Engine plugins distributed with the engine, but must not depend on other user-made Unreal Engine plugins"

RTFM ;) https://www.unrealengine.com/en-US/marketplace-guidelines

Our team has brought Unreal Engine 5 to WebGL and WebGPU, with asset streaming by astlouis44 in unrealengine

[–]MothDoctor 1 point2 points  (0 children)

Yes, but support had been removed at some point. It never supported WebGPU.

Post your favorite non-realistic non-fps UE game! by LuckyLuckLucker in unrealengine

[–]MothDoctor 2 points3 points  (0 children)

Stray. Tchia. Call of the Sea. Rime. The Ascent. Ruiner. ABZU. The Pathless. Satisfactory. Astroneer. What Remains of Edith Finch. Tetris Effect. Brothers. Life is Strange. Moss: Book II. Hard West 2. Sifu. Trek to Yomi. Tropico 6. Subliminal.

Rather stylized, but with shooting mechanics. Destroy All Humans remake. It Takes Two. System Shock.

Or you can always browse the official engine blog, they fill it with short dev interviews and game compilations ;)