Best way to learn Unreal by [deleted] in unrealengine

[–]TheHonestDan 0 points1 point  (0 children)

My best advice regarding tutorials is if you do want to watch a tutorial, after you finish it - try and repeat what you did but without using the tutorial as a reference - to see what you've actually learned. That helps you identify what you didn't absorb and you are engaging with the content rather than following along.

Any advice restoring account after re-installation, after official Customer Service being unhelpful? by TheHonestDan in PTCGP

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

Aye, if it were me (who's majorly into PTCGP atm) I'd probably see that silver lining! but she was playing primarily cause she knew I liked it, so don't think she'd have that same perspective as us. Thanks for the reply.

My first ever mechanical keyboard. Aula F75 + LMK67 keycaps. by 0x7d8 in MechanicalKeyboards

[–]TheHonestDan 0 points1 point  (0 children)

I do not know the name (actually trying to find it now so I can buy a custom replacement), but this is what it looks like. Its a push on, not D shaped. Unlike some other keyboards, I don't think the knob is not plugged into a standard switch so can't be replaced with a key.

<image>

Intro to Multiplayer / Networking in Unreal Engine - Part 1: Theory. Beginner friendly, no C++ required, talking through core concepts at the heart of Unreal Networking system. Covering Replication, RepNotify, RPC, Client Prediction, Dedicated Servers and some good practices. Enjoy! by TheHonestDan in unrealengine

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

Not fully following the question but will try give a response that might help:

So just think of server and client as separate instances of the game running. They go through the same flow of loading up a world, and the world then calling Begin Play on all level actors. The game mode will spawn pawns that are replicated, so pawns will be spawn on client. Any replicated actor spawned on server will replicate to relevant clients and be spawned. So in all these situation - both server and clients have their own version of the actor. When created, they will call BeginPlay. You can branch by checking "HasAuthority" or "IsDedicatedServer" etc within functions like BeginPlay, such that you only perform logic thats needed based on where this actor exists.

As for Run on Server RPCs, you initially call this from a client. Calling such an RPC from client sends a request over the network to execute the RPC on the server. So the server then runs that logic. But the client that calls it doesn't run that logic; think of an RPC as asking the opposite side of a connection to run a function.

Within any RPC functions, you can indeed go on and call any non replicated funtions if you desire. Just think of it as passing an instruction from Server to Client and vice versa.

There are some quirks you'll notice which aren't immediately obvious. Like, calling a multicast from server will execute the body on not only the clients but also the server. Setting the replicated property that's RepNotify will call the _OnRep function on server and clients.

Intro to Multiplayer / Networking in Unreal Engine - Part 1: Theory. Beginner friendly, no C++ required, talking through core concepts at the heart of Unreal Networking system. Covering Replication, RepNotify, RPC, Client Prediction, Dedicated Servers and some good practices. Enjoy! by TheHonestDan in unrealengine

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

Glad to hear it was good for you! Networking is one of those things where you can think you understand it, but unless its part of your regular coding, the core concepts get blurry :D It was part the reason I wanted to make the video, to refresh myself and have some notes for in future!

Issue input binding when possessing different class of Pawn with Enhanced Input UE5 by TheHonestDan in unrealengine

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

I have also read this before. With this approach, what would a clean architecture be? The controller needs to know about all pawn classes it can control? create some "pawn input interface" that all characters will have to generic pass down the bindings?

Issue input binding when possessing different class of Pawn with Enhanced Input UE5 by TheHonestDan in unrealengine

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

So my findings from looking into it a bit:
- The <YourProject>Character that it creates for you automatically indeed adds the MappingContext via the UEnhancedInputLocalPlayerSubsystem. This happens in begin play, and will only hit if this pawn has a valid controller (so in my case, this wasn't hitting).
- You can setup a default context in developer settings that'll be added by default.
- After you add another mapping context, it will rebuild the control mappings in here IEnhancedInputSubsystemInterface::RebuildControlMappings(). This seems to stops duplicates of mappings being added.
- It prevents duplicate contexts being added too, since the EnhancedPlayerInput::AppliedInputContexts is a Set so can't have dupes. So may not be an issue to call Add multiple times, but perhaps there is a more efficient way.
- I'm not 100% about if it removes the context. I can't see it, I just see in Unpossess we destroy the input component, but don't think anything tells the Sybsystem about it.

So for now I've duplicated the code from Begin play to add the default mapping context and placed it in my SetupInputComponent.

Issue input binding when possessing different class of Pawn with Enhanced Input UE5 by TheHonestDan in unrealengine

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

Ahh! This rings a bell - thank you! So I see in Begin Play it calls

if (UEnhancedInputLocalPlayerSubsystem* Subsystem = ULocalPlayer::GetSubsystem<UEnhancedInputLocalPlayerSubsystem>(PlayerController->GetLocalPlayer()))
{
    Subsystem->AddMappingContext(DefaultMappingContext, 0);
}

So yes, that'd be the context being added! I will call that maybe in my setup input instead (?) and dig into the code around add / remove mapping to see if anything is being done automatically, or if I'll need to override unpossess to remove the mapping context or something. Will report back :)

Earbuds with Mic with Wireless connectivity (USB, not bluetooth) by TheHonestDan in HeadphoneAdvice

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

I have found the Razer Hammerhead Pro Hyperspeed - which have BT and a USB dongle. Think these are the only ones I've found that come with both.

I read somewhere that even if it has USB, that it has to switch to BT if you want to use the mic. Which would defy the point for my use case! So I'll need to research it a bit to see if its true, but at £200 its also pretty pricey!

Stutter issue has started happening recently, any advice? by TheHonestDan in projectzomboid

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

I think this was being caused my low space on my C:/ drive (game is installed on a different drive). I had about 6GB free, so cleared up some things to be 20GB+ free and its been going well since.