#multiplayer

1 messages ยท Page 297 of 1

jolly siren
#

i have heard it works in 4.13. I haven't upgraded yet tho so I can't say from experience

#

in 4.12 I hear the other person for like a couple seconds after they spawn and that's about it

#

I'm on a dedicated server tho, so it could just be broken for that in 4.12

proud wren
#

@thin stratus Yes. The character is replicated

stiff wasp
#

johnny.... I already told you step by step how to do dis

#

stop asking

#

seriously

#

if you can't figure it out after I told you, just stop programming and go back to maya

thorn merlin
#

@proud wren perhaps something is already possessing it, like a default UI controller

#

default AI controller

severe widget
#

Pretty sure you have to call "spawn AI" for the AIController to take over. That, or place it in world.

thorn merlin
#

there is that multi player jeep on the marketplace, that may help you see hwo they do it

severe widget
#

I usually place in world, and it's been awhile since I spawned AI from code.

thorn merlin
#

a character can have settings to be auto possessed by ai on place in world and spawn

#

its a setting on that character/pawn - just saying, i think ive had this happen to me before

severe widget
#

Default on that would be off, though, yeah?

#

As in "placed in world" and not "placed in world or spawned".

thorn merlin
#

i dont recall off hand - im just presenting a scenario for johhny, trying to possess an already possessed pawn does result in odd behavior

#

anyway, thats my 2c, good night everyone

turbid stratus
#

Replication is funny... whenever I find myself thinking "YUSS, I have fully sussed out this replication business now", that's when it comes back and bites me hard.

#

Usually it's been the whole "server has a copy of each playercontroller, but client only has their own" thing that shafts me... but I think I'm getting the hang of that now

#

(oh sh*t, I just said the words)

#

I think I just need a big diagram on the wall behind the monitor, showing the server, client and the things they have... a reminder to think about what machine code is executing on before I reference a player by index or anything like that

thin stratus
#

Well, print the pages of my compendium and put them up your wall

#

@stiff wasp Yo, i would like to not read text like this here. If you don't want to help him any further, then just be quiet. It's not helpful to demotivate someone

#

@proud wren so it's "Client joins. Server spawns Character. Server uses the Controller of the joined Client to posses the Character"?

#

Where do you call your code?

#

And can you show me a screenshot of it?

#

Though i head to bed now, so just leave me a private message

frank quartz
#

What's the proper way to replicate the transform of a child mesh of an actor. For example I'm trying to replicate a HMD mesh parented to the pawn's camera. Do I need each client pawn to call a function on the server to set that transform value each frame and then broadcast that value to the other clients?

knotty kelp
#

@thorn merlin I'm not concerned about the server's CPU hardware as long as I'm actually able to spread out the workload, since stronger CPUs tend to just add more cores instead of increase single thread performance. We do have a master server, the plan is to store character data in an SQL table, I'm told from a friend it'll help with everything if we go that route. So we're already capable of breaking things down into multiple server instances or maps, the only challenge is how can we make it a seamless transition for the player?

thorn merlin
#

@knotty kelp are you able to use some kind of cutscene? ark has that animation on spawn where you look at your arm (which I think is to allow for replication to catch up), EVE online has this animation of star gate travel when you transition servers, if you are doing a big open work fps.. maybe look at what planetside 2 does, im sure they have the same issue

knotty kelp
#

I've been trying to find out what Planetside 2 does actually, since it's actually rather similar

thorn merlin
#

i know that isnt very helpful, sorry

knotty kelp
#

I haven't been able to find any information on how that actually works on their end though

thorn merlin
#

its been a while since ive played but i do remember there being some kind of transition zones

knotty kelp
#

Planetside 2's servers are 10x larger than I'm targeting, so even if it's a mere shadow of what they have, it'll work

#

They break it up into multiple continents, but each continent is 2,000 players capped. Somehow, -somehow- they made it so you can get in a plane and fly, seamlessly, from one end of the continent to another, with no transition or loading.

#

It's some kind of black magic, and it's also a possible solution if I can find out how it's done.

thorn merlin
#

maybe its just player trickery, looks like you arent in a loading zone but you are

#

best of luck, i hope to see your results some day

knotty kelp
#

Thanks ๐Ÿ˜ƒ I'm sure I'll be able to work it out somehow

thorn merlin
#

after my learning last night of a better way of getting all the player states it had me wonder - is there a more efficient way to get all of the player controlled pawns then getting all of the pawns that could possibly be controlled and then seeing if they have a player state attached to them?

#

if i try and go the other way around, locally only my player state has an owner reference to my controller, the remote states do not have a valid owner

#

my only other thought is to make actors with states self register with the player controller when they are created, then it can enumerate the list

eternal anchor
#

@knotty kelp no magic here

#

continents are just small

#

about 10x10km

#

which fits into floating point

#

precision

#

clients do not load entire map at once

#

i guess there is just distance based streaming for content

#

only server need full representation of map, but server doesn't need graphics so it takes way less memory (;

livid aspen
#

If you want to do client hosted multiplayer sessions, you still need a server somewhere for matchmaking, right?

radiant falcon
#

there might be steam functionality for matchmaking, not sure though

livid aspen
#

Oh, thats a good idea. I didn't even think about that. I haven't even decided if I want to do dedicated servers or client hosted yet so theres time to figure that out

modern fable
#

you're fucked if Steam dies though

#

ยฏ_(ใƒ„)_/ยฏ

livid aspen
#

Hopefully that shouldn't be a problem for years to come. I think CS and Dota will probably keep it running for a good while

modern fable
#

not that, meant its uptime

livid aspen
#

Oh, lol.

modern fable
#

๐Ÿ˜›

livid aspen
#

Do you have any experience with steamworks? Seems fairly straightforward

amber plume
#

Unreal has Steam SDK partially ready to go. There's just a few initial setup things you need to do to activate it.

#

Then you need to bind to its callbacks and stuff

#

I'm actually giving a presentation on this at my local IGDA chapter next week

knotty kelp
#

@eternal anchor It's not the map size I said was magic, but the player count. Getting 2,000 players onto the map without needing any noticable transitions to other servers even when flying over the entire map in a plane. The project I'm working on would only need 1/10th that playercount to work, so I may need to look into how their servers actually handle the load

#

I suspect it may have a lot to do with the Unreal server being locked to a single thread intentionally. Found an old answerhub post from 2014, apparently it was an active decision to do so, so people could more easily host multiple servers on a single machine. It's possible that changing that back to allowing multithreading would fix the 80-90 playercount cap that the current server is limited to.

eternal anchor
#

there are two solutions I see

#
  1. most of things are calculated client side, and server just accept it sometimes checking if it is valid (very common solution)
#

or they are running some complex distributed architecture, where each player is microservice,

knotty kelp
#

Option 1 wouldn't introduce space for a lot of cheating in the game?

dusk granite
#

never trust the client

#

in any regard

#

anything that is crucial to gameplay has to be checked by the server

fierce birch
#

unless.. it's a co-op game where cheaters wouldn't beat you

#

well, I guess some would want server authority then as well

#

but it's not as bad situation

#

also, option 1 would always introduce a lot of cheating if the game became popular

knotty kelp
#

Yeah, with 200 or so players, I wouldn't quite trust the client with anything at that point. But, unless there's some magic option hidden away on the server that will make it run 4x faster, may need to consider it.

dusk granite
#

variables like position do not have to be replicated every netpack

#

it can be an interval check

#

if the difference is too big, correct

knotty kelp
#

If it's just a matter of a faster CPU, I can throw hardware at the problem just fine, the only issue with that approach is that faster CPUs tend to just add on more cores, which the unreal dedicated server won't use

#

True, they wouldn't need to. Would that introduce any issues in regards to general fps gameplay?

eternal anchor
#

one possible solution

#

would be to make game code multi threaded

#

but with Unreal it's monumental task unfortunetly

#

in anycase

#

i don't think replication per se

#

is the biggest issue

dusk granite
#

well apart from potential rubberbanding when packetloss is factored in

eternal anchor
#

the big issues are things taken for granted in singleplayer like tracing

#

collision detection etc

#

or tick for updateing actors on server

#

if all of those things could be done async, it would scale much better to big number of players

#

right now you are locked by performance on single core in those cases

knotty kelp
#

Is that just something we would need to do when working on the project itself, or is it something that would need to be done at an engine level as well?

#

And what sort of things could be done to assist with tracing and collision?

eternal anchor
#

you need to do it at engine level

#

uobjects are not thread safe

#

and gamplay code in unreal is inherently single threded

#

ie. there is no build in way for UObjects to communicate between threads, you can't even spawn them on separate threads

#

but there are things which are done async, like animations,

knotty kelp
#

How much do you think we can safely get away with threading? And I take it making these changes is no small task?

thorn merlin
#

EVE online does some things to manage this - time dilation and people control to make sure systems can't get loaded up with people when the behind cluster can't handle it

#

2,500 in one system is a big deal, and even when they are - its rare they are on the same "grid" (network relevance)

knotty kelp
#

Would it be possible to maybe assign certain parts of the map to have a lower update rate or priority than other parts? Maybe areas that I know wouldn't have any PvP conflict, that we could afford to have higher latency in? I doubt anyone will notice if a chat message takes a few miliseconds longer to send while standing around a city.

dusk granite
#

you can set a custom tick for blueprints, or lower the netpacket rate in certain areas

#

no idea how well that second thing translates to ingame

thorn merlin
night jay
#

Blergh clients and their cheating possibilities

#

Dealing with a similar issue where I have to spawn the projectile of my weapon on the server

#

Meaning everyone but host has to lead their shots

#

Which is blergh

eternal anchor
#

@knotty kelp Making UObjects will be quite an challenge, especially if you don't know engine internals well (and then you must maitain it).
Without it you can only offload to worker threads things which are not dependandt on uobjects.

#

in any case i still believe that making UObjects something akin to Actors in actor model, where each of them can indepdently work on any thread and communicate with other objects trough messages, without race conditions and mutexes is best solution for highgly scalable system

#

highly*

#

otherwise you will always run into some wall be it AI (behavior tree processing), path finding, or simple movement.

#

RIFT game is using somewhat similiar apprach, they split their load not by zone but by tasks

#

there is no simulation of zone X, there is AI simulation, collision detection, etc.

regal relic
#

@eternal anchor Had wondered several times what a good way of implementing threadable behaviour into the engine in a blueprint friendly way. And what you describe sounds like an excellent method of achieving that.

thorn merlin
#

if microsoft wanted to make some money with the azure platform, after they ship crackdown 3, i hope they ship a UE4 plugin let us use its distributed physics engine - https://en.wikipedia.org/wiki/Crackdown_3

Crackdown 3 is an upcoming sandbox-style third-person shooter video game for Microsoft Windows and Xbox One developed by British developer Reagent Games, a studio led by former Realtime Worlds head and series creator David Jones, and published by Microsoft Studios. Continuing the series 7 years after the release of 2010's Xbox 360 video game Crackdown 2, the game focuses on Microsoft Azure-powered mass scale destruction that enables everything in the game to be destroyed.

fierce birch
#

how's physics engine related to Azure?

#

@thorn merlin ^

thorn merlin
ivory parcel
#

Does anyone have an example of how to get steam or normal lobby beacons working in c++

knotty frost
#

Has anyone encountered this logspam when playing multiplayer?

FRepLayout::UpdateChangelistHistory: History overflow, forcing history dump <Actor>
knotty frost
heady delta
#

physx 3.4 in 4.14 -- any improvements of note? (particularly related to vehicles)

#

whoops wrong chat

wintry flower
#

Can someone help me with this? I am making a very simple platformer where you have to jump to platforms in the right order. Each platform has an id, and the playercontroller has a NextPlatform variable. So when the game starts, NextPlatform is 1, meaning they have to jump to platform 1, and then NextPlatform becomes 2 and they have to jump to platform 2, and so forth.

If you look at my code below, it works, but I'm wondering how I can avoid all of the checking to make sure the playercontroller should increase NextPlatform

In the platform cpp

OnActorBeginOverlap.AddDynamic(PlayerController, &AMyPlayerController::GetOverlappedPlatform);

In player controller

void AMyPlayerController::GetOverlappedPlatform(AActor * OverlappedActor, AActor * OtherActor)
{
    UE_LOG(LogTemp, Error, TEXT("Test"));;
    AJumpPlatform *JumpPlatform = Cast<AJumpPlatform>(OverlappedActor);
    AJumpCharacter *JumpCharacter = Cast<AJumpCharacter>(OtherActor);
    
    if (JumpPlatform && JumpCharacter)
    {
        AMyPlayerController *MyPlayerController = Cast<AMyPlayerController>(JumpCharacter->GetController());
        if (MyPlayerController && JumpPlatform->PlatformID == CurrentPlatform)
        {
            CurrentPlatform++;
        }
    }
}
#

In the player controller function, even if you ignore everything below, the "Test" log goes off for botht he server and the client (or both clients if dedicated). How can I make that function only run for the player that lands on the platform?

#

It works the way it is, but it seems stupid to have to do all of those checks lol

#

NextPlatform = CurrentPlatform. sry, forgot what i called the variable ๐Ÿ˜›

neon bluff
#

@wintry flower check if the player controller is local player controller

#

Ah, that doesn't really fix your problem, your problem is in your subscribing logic

wintry flower
#

How should I go about it?

neon bluff
#

Well, you can just check at the beginning of that GetOverlappedPlatform

#

IF the actor overlapping the platform is actually your controlled Pawn

#

check if GetPawn() == OtherActor

wintry flower
#

wow that simple?

neon bluff
#

if it is, then you're in the proper playercontroller

wintry flower
#

ok

#

i will try that ๐Ÿ˜„

neon bluff
#

it's the simplest solution, not the best one, though

#

but it's more question of style

knotty kelp
#

@eternal anchor I don't suppose making the UObjects thread safe is on the Epic to-do list, is it? After consulting a few references, it seems like it's my project's best bet for the player count I'm targeting. After having some discussions, it doesn't even sound possible to do what I'm looking to do on a game design level without it.

haughty star
#

I try to compile my standalone server, but do you know how can I extend the "develop..." because I don't see if I selected server, client, or other

neon bluff
#

@knotty kelp If I would have to guess, I would say no

#

Especially since it's a really niche need.

knotty kelp
#

Well it would help both Ark and Squad, two of the UE4's most high profile multiplayer games

#

I wonder how long the process would take.

neon bluff
#

To make them thread safe?

knotty kelp
#

Yeah, along with making the dedicated server multithreaded in general

neon bluff
#

Making uobjects thread safe is easy.

knotty kelp
#

No use doing one without the other.

neon bluff
#

I mean, it seems trivial.

knotty kelp
#

Really? o.O

neon bluff
#

Making the server multithreaded is such a big amount of work that it will never ever happen.

#

๐Ÿ˜‰

knotty kelp
#

D:

#

๐Ÿ˜ญ

#

If hypothetically someone were to do it though, any idea how long it might take?

neon bluff
#

I would assume, a very, very long time.

#

I mean, it would probably mean changing the engine's architecture.

#

@haughty star tested, it works

haughty star
#

@neon bluff thx it works too!

haughty star
haughty star
#

Do you have any idea?

eternal anchor
#

@knotty kelp it's on the table, but since no games in Epic using it, I guess it will be a while

dusky flicker
#

how do I get player controllers from a dedicated server?

#

in BP if possible please

brittle sinew
#

You can still get the player controller of a pawn on the server

#

If you want it by index, use GetPlayerController

#

I'm not sure if the PC iterator is in BP however. Doesn't look like it in the docs

#

@dusky flicker

dusky flicker
#

I see I see. thanks

brittle sinew
#

If you really need the iterator though, making a function in a BP function library is always good ๐Ÿ˜

late sundial
#

New to multiplayer, should I be doing my movement on my character or player controller?

#

Doing it on the character works without issue but trying to put it in the player controller makes it crash for me

brittle sinew
#

Generally you want to put movement functions on the character (which you might not need if it's a pretty default character), and call them from the PC

#

That's interesting you're getting crashes from doing that however

late sundial
#

yea..

#

I have a RPC function in the PC called OnAskMoveForward which calls the Ref->MoveForward(rate)

#

and I bind it to the setupinputcomponent but nada

#

and im setting the character ref in the Posssess function

brittle sinew
#

You should probably use GetPawn(), as if your character goes null you won't know

#

The performance difference should be pretty negligible

late sundial
#

Where should I be using this GetPawn?

#

Oh wait

#

You mean you getPawn when calling the function right?

#

Then I dont need the override Posses?

brittle sinew
#

Not unless you're doing anything else in Possess

late sundial
#

Nope

#

I was just setting the ref in there

brittle sinew
#

Yeah generally you want to avoid calling a method over and over, but in this case it's the most safe way to do it

late sundial
#

Ah that worked!

#

Thanks so much!

#

Trying to get a whole grasp of this multiplayer stuff

brittle sinew
#

And just another thing, if you're using pointers you should always be checking them

#

Even check GetPawn(), if it returns null and you don't check it you'll crash

still finch
#

Hello, I have an AI pawn and I'm trying to call some RPC functions on it but I'm getting an error message: ProcesRemoteFunction: No owning connection for actor AICourier_212. Function evtSetIsMoving will not be processed.

#

Do I need to some how get the server to 'own' this pawn?

neon bluff
#

AI runs on the server only.

#

RPCs don't make much sense

#

Unless you're replicating movement/and or animation

still finch
#

I'm replicating movement -- or trying to

neon bluff
#

The warning you're seeing is because there's really no remote object to call the rpc on

#

RPCs are properly called if their in the ownership chain of a playercontroller

#

AI is no

#

*AI is not

#

(At least, IIRC)

still finch
#

If my little AI pawn is simple enough, (just basic movements). Should I just try and avoid RPCs alltogether?

neon bluff
#

usually in those cases

#

basic "replicate movement" in the movement component

#

is enough

still finch
#

Well it's a pawn, I don't have an option to "replicate movement" in the "Floating Pawn Movement" component. Unless I'm using the wrong kind of movement component?

#

Or did you mean its class defaults?

regal relic
#

There are severeal different movement component, The mostly commonly used is The CharacterMovementComponent, The Floating Pawn MovementComponent is pretty limited in its built in functionality.

#

If you have a Character that walks, jumps, runs, etc. Best to move to the CharacterMovementComponent.

#

Especially if you doing multiplayer stuff, Any other movement component has none of the builtin network replication, correction, prediction functionality that the CharacterMovement Component has. And yes you must use RPC (Custom Events ()) in all multiplayer behaviour.

regal hazel
#

Anyone had any issues with Login not being called in Game Mode? (Using 4.13)

ripe folio
#

@regal hazel I've heard of this problem recently. Something to do with the game mode refactoring that's happened in 4.13

#

@chrome bay, was it Login that wasn't being called?

regal hazel
#

Yeah I think I remember @chrome bay saying something about that

#

Post Login gets called fine, just strange that Login isn't being called

ripe folio
#

Although that might have only been InitNewPlayer he was talking about

#

@regal hazel I'm definitely getting a Login call in AGameMode

#

AGameMode::Login(UPlayer* NewPlayer, ENetRole InRemoteRole, const FString& Portal, const FString& Options, const FUniqueNetIdRepl& UniqueId, FString& ErrorMessage)

#

That's the new one I think

#

Similar to what @chrome bay said before - they didn't deprecate the old one, just used it to invoke the new one

#

I think

fossil spoke
#

Im pretty sure InitNewPlayer was changed

regal hazel
#

Yeah I saw that :/ wonder why mine isn't getting called strange...

ripe folio
#

@regal hazel Have you breakpointed in the base Login function to confirm it's being called?

karmic jacinth
#

I was wondering, if I do two reliable RPC calls on the same tick, am I garanteed that those two calls are going to be received at the same time?

ripe folio
#

Definitely not

#

You can never count on ordering like that

karmic jacinth
#

That's what I thought

ripe folio
#

๐Ÿ˜ƒ

karmic jacinth
#

Well, I will explain my problem

#

I have a replicated actor that I attach to an other actor

#

Since the actor is replicated, the attachment gets notified to the other clients

#

Though I don't just want to attach it, I want to run code on the client once it gets attached

#

Well, I need to be sure that the actor is attached on the client side

#

Before I run this code

thorn merlin
#

is there a way to know when an actor has been successfully replicated to all clients from the server?

karmic jacinth
#

Basically yeah

thorn merlin
#

(after a spawn)

karmic jacinth
#

So I'm 100% sure that the replication is done and I want to do some process

thorn merlin
#

it would be worth buying that multi player vehicle blueprint from the market place

#

as it attached player 0-4 characters to a vehicle

karmic jacinth
#

Yeah but it's probably not gameplay relevant

#

I don't know

thorn merlin
#

as a learning resouce i mean

karmic jacinth
#

I just realized that I'm not just attaching it to the actor but also changing the actor properties

#

@thorn merlin Well, I don't really want to buy something just to figure out that it's not fitting my use case XD

chrome bay
#

Yeah, they added an Override for InitNewPlayer, and that's the version you need to override in your own class now.

#

Stupid change, but hey...

ripe folio
#

@chrome bay Also true of Login? Or no?

chrome bay
#

Login works the same I believe

thorn merlin
#

i think thats a bug, they overloaded, the original calls the extension, yet the framework calls the new overload

haughty star
#

Hello. I launched my server with ProjectNameServer.exe --log in my CMD, but when I try to do "open localhost:7777" in my client, I get nothing in my console?

#

why i didn't get the connection?

ivory parcel
#

why is it if I see a LogNet: SteamNetDriver_0 SteamNetDriver_0 IpNetDriver listening on port 15000 in console I still don't see the process listening on port 15000?

#

It seems to start listening on port 14001 instead

late sundial
#

Hey everyone, trying to get rotation working on my top down character, working currently on the sever anytime I try it on the client tho it crashes

#

If anyone can take a look and see if their something im doing wrong i would be very greatful ๐Ÿ˜ƒ

surreal prism
#

Can I'm change Outer in UObject? Have problems with ReplicateSubobjects if Outer is TransientPackage

#

or need to create a new UObject with Template?

haughty star
#

Hey. I build my standalone server, I want to try to make a little game multiplayer like two player can running. How can I find a list of server ? Do you have a tuto about that?

haughty star
#

blueprint ๐Ÿ˜ฆ

#

thx, i will check

surreal prism
#

@haughty star you can check ShoterGame for C++ API

haughty star
#

@surreal prism ok i will check

regal relic
#

Its my understanding the executing functions on the Login event could have deleterious effects on the server. Supposedly thats why they dont expose the event to blueprint at all, Instead using PostLogin.

#

Something along the lines of it can cause the server to a halt until the login phase is completed.

vestal cobalt
#

how do you use the "Steam Inventory" like CSGO, Rust has?

ivory parcel
#

Can anyone help me figure out why beacons are not functioning on the steam subsystem

#

Or the method to make them work

regal hazel
#

@chrome bay @ripe folio
Quite a simple fix had to change Login to the new login override and it all works fine

ocean dust
#

Hello all.

thorn merlin
#

everyone found out the hard way tho, i think they meant to phase it out and obsolete it

ivory parcel
#

what hard way ?

ocean dust
#

I have built a Rocket projectile that is an Actor with the following structure:

#

But, in my multiplayer game, the ParticleSystem Component is not replicated when a new player joins

#

Is there a way to set that ParticleSystem to replicate automagically?

ripe folio
#

@regal hazel Awesome! So you just overrode the other one instead?

regal hazel
#

@ripe folio Yep ๐Ÿ˜ƒ

frank quartz
#

anyone working from promoted or master source that's also doing some steam multiplayer? I have steam overlay coming up in ue4.12.5 but it always seem to revert to LAN in promoted. maybe i don't have certain steam SDK files installed i need?

frank quartz
#

so #1 thing is it seems "Online Subsystem Steam" is now a plugin that is not enabled by default.

frank quartz
#

I've tried all the suggestions on UE4 AnswerHub that should work in 4.13 but still no luck getting it to work on my UE4 build from promoted branch. If anyone has steam working in 4.14 on promoted and you know of anything extra required please let me know, thanks!

night jay
#

I don't even have it working in 4.13

rough iron
#

@ocean dust how are you spawning the particle system? or how are you activating it?

#

you might need to handle the state of your projectile and replciate the state

#

so you can recreate it on the client side acordingly

haughty star
#

hey, i am trying to make a little system with replicated, i have two client and one server, i want when i client on or off the furnace, my server call all the client, i try run on server or multicast but only the client who on/off work

#

@rough iron where i am wrong?

rough iron
#

I do not fully understand what you want

#

just a on/off switch?

#

that should work in MP right?

haughty star
#

yeah i want try this simple system

#

I have an boolean replicated

#

and a custom event musticast

rough iron
#

you just need a repNotify on that bool

#

so the client get's notified when the value changes

#

you do not need to send a multicast rpc

#

with variable replciation it's more than enough

#

so if a client switches it on/off you just send a RPC to the server

#

the server changes the value which gets replicated back

haughty star
#

idon't understand, if I use repNotify, where I know when the value is updated?

rough iron
#

the client that started the change can also just simulate the change locally for imidiate effect

haughty star
#

i did that

rough iron
#

if you ser a variavle to RepNotify you will get an event that fires when the values changes

#

but you have to take into account some stuff:

haughty star
#

OnRep_bIsFree() I see that

rough iron
#

yep

#

the client that switches the switch will send the on/off to the server which does the actual change

haughty star
#

yeah

rough iron
#

if your clent is a listen server you wont get a repNotify

haughty star
#

it is not

#

it's a dedicaced

rough iron
#

so you have to perform the change on the listen server on your own

#

just in case you have listen servers

#

also the client should simulate the action at the same time it sends the RPC

haughty star
#

currently I got that

#

@rough iron but when I client swith, the second doesn't change something

haughty star
#

@rough iron do you have an idea?

rough iron
#

You action must be executed onthe server

#

very that first

haughty star
#

@rough iron i already try that, but if I run my Action on a server, nothing works

rough iron
#

so you have an error setting the variable to replicate

#

if you have a varibale set to replicate properly it will replicate

haughty star
#

My Boolean is set the RepNotify @rough iron

rough iron
#

so it should replicate, are you sure you are modifying it in the server?

#

or is the bool set to replciate only to it's owner etc

haughty star
rough iron
#

is you actor set to replicate?

#

I would make a test project for yo ubut I'm in the office atm xD

haughty star
#

It was not, but now it was ^^

ivory parcel
#

Has anyone here ever used lobby beacons ?

rough iron
#

yep but quite some time aho

#

*ago

ivory parcel
#

I attempted to get them working on the steam substeam and I appearntly can't connect via IP:PORT when using the subsystem, and using the NULL subsystem tells me I got a close message before the open message

rough iron
#

Using Steam you should use steam sockets

ivory parcel
#

the test beacon seems to work on the null subsystem however

rough iron
#

they are nat negotiated

#

also the null subsystem is not really suited for online purpose

ivory parcel
#

Is there any documentation on how to use the steam sockets ?

#

because I would preferribly also allow connecting via ip:port

rough iron
#

not really, just the engine source

#

and ShooterGame

#

if you use SteamSockets you can not connet via port/ip

#

it's all in valves backend

haughty star
#

@rough iron Still don't work. Strange.. Other question, I added Steam SDK to my Game, how can I get all of servers online? (I build my server etc from source)

rough iron
#

There is a steam setup in the docs

#

and some tutorial on the wiki

#

it's not a thing to be done in a minute xD

haughty star
#

I know ^^

rough iron
#

also if you do not have an SteamID you have to reuse an existing one

ivory parcel
#

I mean, the reason I would like port/ip is that the steam matchmaking is not the best, I know my ARK servers only work via ip/port

rough iron
#

or the one from the SDK sample or the one that ShooterGame uses

haughty star
#

steamID? it's not appID?

rough iron
#

yeah taht

#

xD

haughty star
#

480 I use

#

I guess

rough iron
#

@ivory parcel of course you can create 2 separate matchmaking systems but the ip/port thing wont be negotatied or announced

haughty star
#

SteamDevAppId=480

ivory parcel
#

How would that work?

#

because if someone can atleast connect via ip/port thats good

#

I would want to use steam 99% of the time but with ip/port as a fallback for whenever it fails

rough iron
#

You would have to come up the logic yourself, I never did such a setup because I had no need for it

haughty star
#

@rough iron I need to use Find Session Node?

rough iron
#

you need that one, the create session

haughty star
#

Oh no, Steam use only C++?

rough iron
#

no

haughty star
#

So I can't use Find Session Node?

rough iron
#

you can do simple things with BPs

#

check the pinned items in this channel

haughty star
#

But I need to create session even if I got Dedicaced Server?

rough iron
#

yes,the dedicated server needs to create oine

#

and it must login to steam

#

you can run it from the commandline providing a user and a password

haughty star
#

waw,

#

ok I will watch the tutorial

#

thx

rough iron
#

^^

vestal cobalt
#

hey guys and girls, so im making a fairly simple game and i think i need to start thinking about the multiplayer part! since i've never realy worked with multiplayer in UE4 i thought coming here for some tips and tricks would be a good idea, so what i want is

  • Person starts game (from .exe)
  • In main menu, grab the saved inventory for that person (by steam_ID) from the server and display
  • When a match is won, grab the new inventory with the items won and overwrite the old inventory for that person (on the server)
  • Back to mainmenu, again fetch/update the inventory

how could this be done? i've followed a multiplayer tutorial by Epic Games, but they dont explain how to save everything SERVER SIDE, only to load from local save, push that to server so that every player can see the players details

#

any links to tuts or anything would be appreciated

rough iron
#

So you need a connection to an external backend I guess

#

If you use SteamWorks you can save custom files per player or per game to be accesible to all players

#

that would work

vestal cobalt
#

i use the Steam SubSystem, i was thinking about what Rust, Csgo and Payday (to my knowledge) uses the "Steam Inventory" to add/store items won/found ingame, how is that done?

rough iron
#

they use the provided steam API for user specific files

#

UE has an abtsraction layer for them called CloudFile

#

or user file

#

can't remember the exact name though

vestal cobalt
#

hmm need to find out that name

#

IOnlineUserCloud

#

this one?

rough iron
#

could be xD

vestal cobalt
#

hmmm do i have to manualy install the steamworks?

rough iron
#

yes and setup your project for it

#

and you wont be able to test it without a proper appID

#

with your own appid xD

vestal cobalt
#

yea so i need to get a greenlight from steam in order to get my own appID

#

but is the standard test appID limited to what i can test?

rough iron
#

For some stuff you need access to the backend

#

to the administration page

#

which you can not access if it's not your own appid

#

for example you need to have access to the backend to submit achievements

#

xD

#

(makes sense actually)

vestal cobalt
#

ye it does

#

but it looks dumb to search for a greenlight from steam when the game is not even done :S doesn't it?

rough iron
#

you can always try to apply to get an appid and not go through greenlight

#

if every one just gets free appids it would result in hughe costs for valve

vestal cobalt
#

people say that you have to get the greenlight from valve befor you get your appID

regal relic
#

I think you should be able to apply for the appid after you pay the hundred bucks, and get it. Then they only take it public if they feel its up to snuff on the greenlight.

vestal cobalt
#

so how would you guys build the system i described earlier?

rough iron
#

You can create your own backend for now and use steamworks later

vestal cobalt
#

so on the multiplayer tutorial by Epic Games, they use "open level -> option (listen)" so the user creating game is the host, my game is kinda like a card game, up to 4 players can play together and are stationed arround a table, is this method good for this type of gameplay or should it be dedicated server?

rough iron
#

Ich you go with the listen server approach you don't need a backend

#

If you need a dedicated one I would not use a UE one

regal relic
#

Whats your platform?

rough iron
#

For a card game you can just use a aimpler backend

#

For example smartfox is a viae commercial option

vestal cobalt
#

is there any tutorials on the smartfox and UE4 ?

eternal anchor
#

why wouldn't you use unreal server for simple game ?

regal relic
#

I would especially if you dont know C++

#

Integrating other servers is very much advanced coding.

rough iron
#

Implementing a card game for 4 players and spawing a dedicated server for it seams a bit hard xD

#

imagin maintaingn servers for 1000 players xD

#

@vestal cobalt their aren't any

eternal anchor
#

doest look that hard

#

easier than implementing networking yourself if you don't know what are you doing (;

regal relic
#

Yes

ivory parcel
#

I get this error every time I try to connect to a lobby beacon Malformed_Packet: UNetConnection::ReceivedPacket: Received control channel close before open

#

also, that compendium is nice, first time seeing it

ivory parcel
#

Also to people that have used party/lobby beacons is there an explanation somewhere?

#
#

but PartyBeacon client seems to be between a client and a server based on the function calls however Moss makes it seem like its between two clients

charred crane
#

Have any folks had issues with blocking volumes breaking when in standalone or packaged but not PIE? (I'm running 4.11.2, I checked patch notes and didnt see a fix anywhere for newer versions)

frank quartz
#

@night jay (and anyone wanting Steam on 4.13 or early 4.14 source builds) I was able to get it working. In my case I had upgraded the project from 4.12.5 and something in my cached/intermediate folders was causing it to not work. once I deleted those and rebuilt project files it started working. I also recommend building a new blank project in 4.13 or later and trying to get it working there first. If you are using c++ be sure to uncomment the line in your GAMENAME.Build.cs file // PrivateDependencyModuleNames.Add("OnlineSubsystem");

livid aspen
#

Lord help me I'm losing it

#

I can't get the steam overlay to launch in 4.13

frank quartz
#

@livid aspen i just got it working maybe i can help

livid aspen
#

@frank quartz I tried building a new example project and it wasn't working. I'm going to attempt a blank proj now

frank quartz
#

@livid aspen yeah try that first, i wasn't able to get it to work in my project untill i backed everything up and then wiped all the cached/intermediate folders and rebuilt my c++ project files.

#

@livid aspen you've enabled the plugin? and if in c++ uncommented the line mentioned in your GAMENAME.Build.cs file?

livid aspen
#

So far I've only done BP projects

#

I figured it would be simpler to try and get one of those working first

twin juniper
#

Is blueprint network realisation fast?

livid aspen
#

The steps I've taken are, check the engine build to make sure all the steam dlls are there, enable the steam subsytem in the plugins menu, add the blob from Rama's guide on the wiki to the engine.ini file

#

My output log shows: LogOnline:Display: STEAM: Loading Steam SDK 1.32
LogOnline:Warning: STEAM: Steam API disabled!
LogOnline:Display: STEAM: OnlineSubsystemSteam::Shutdown()

#

I can't get any more logging information out of it for now

#

@frank quartz From what I can tell, everything should be right so far. The blank build has nothing done to it except the changes I mentioned above. I can dump the blob I'm adding to engine.ini if that will help too

frank quartz
#

try pasting this DefaultEngine.ini

#

[/Script/Engine.GameEngine]
!NetDriverDefinitions=ClearArray
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="/Script/OnlineSubsystemUtils.IpNetDriver")

[OnlineSubsystem]
DefaultPlatformService=Steam
PollingIntervalInMs=20

[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480
GameServerQueryPort=27015
bRelaunchInSteam=false
GameVersion=1.0.0.0
bVACEnabled=1
bAllowP2PPacketRelay=true
P2PConnectionTimeout=90

[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="/Script/OnlineSubsystemSteam.SteamNetConnection"

livid aspen
#

Yeah, this is the same one I'm using

frank quartz
#

hmmm

#

so i haven't gotten confirmation from you on some things. (just to eliminate some simple things) #1 you have enabled the Steam Online Subsystems plugin and restarted UE4? #2 are you using c++?

livid aspen
#

#1 yep

#

#2 I was not

frank quartz
#

oh i see you did say that up top

livid aspen
#

But I am trying a cpp build now

#

just a blank one to see if that will work.

#

Did you turn any of the other online subsytems off?

frank quartz
#

I will say that i have only tried with c++, i never tried a blank blueprint project.

#

hmm no, not even really sure how you turn other one's off, how do you do that?

#

@twin juniper hi, sorry didn't see your question till now. can you rephrase it I'm not sure what you are asking exactly.

livid aspen
#

Just unchecking them in the plugin menu I think

#

but for the cpp build.cs changes, what line are you referring to

#

// Uncomment if you are using online features
PrivateDependencyModuleNames.Add("OnlineSubsystem");

#

this one I presume

twin juniper
#

I want add multiplayer in my "game". Should I use cpp for speed and quality, or blueprint

frank quartz
#

ah, no I didn't do that. I created a blank c++ project, pasted the above into DefaultEngine.ini went into plugins, enabled Steam Online Subsystem plugin. uncommented that line in build.cs, built in vs. then starte ue4 and it worked.

#

yeah, in projects before 4.13 there used to be some other lines related to online below it but in the 4.13 it's just that one line related to online subsystems.

livid aspen
#

Ok, are your steam install and engine install on the same drive?

frank quartz
#

@twin juniper the speed of sending stuff over the network is going to be the same, the only thing that would be potentially slower is the processing. I would say unless you're doing a game that is heavy on processing (if your generating procedural worlds for example) blueprints work really well. Even if you do use c++ blueprints are great for wiring up events in any game.

#

@twin juniper you can always switch a project to c++ later too. so there's no real problem starting in blueprints. especially because they can help you learn how UE4 works a bit easier than diving into c++.

#

@livid aspen hmm i don't think they are.. checking...

twin juniper
#

Ok, understood, thanks!

frank quartz
#

@livid aspen yeah steam is on d:\ and ue4 is on c:\ (my ssd drive)

livid aspen
#

Yeah I have mine the opposite

#

So that shouldn't be a factor

#

Man, this is really confusing

#

I followed the steps you did word for word

frank quartz
#

you know.. technically i never did this in 4.13

#

let me try a blank project in 4.13 and if it works i'll .zip you the files

#

i did it in a promoted version of 4.14

livid aspen
#

ok thanks.

#

This is really my only blocker right now

#

I appreciate the help

frank quartz
#

sure thing. ๐Ÿ˜ƒ the guys here and at epic helped me so i'm just passin it on

#

@livid aspen works for me. hey one thing.. you know that steam overlay only works if you're in Standalone.. i.e. not in PIE right?

livid aspen
#

Right

#

Was the overlay instant as well?

frank quartz
#

well i could do shift+tab instantly.. it took like 2 seconds before the toast popped up in the bottom right

#

i'm on 4.13.1 same for you?

livid aspen
#

Yeah, I'm not getting either. And yes, 4.13.1

#

I even uninstalled and redownloaded the engine earlier

frank quartz
livid aspen
#

Alright, loading it now

#

Not working for me

#

Ok, so this means it must be something on my pc/config

frank quartz
#

yeah something is wrong on your end it seems then.

livid aspen
#

Are you on windows 10?

frank quartz
#

so.. you mentioned that you downloaded the steam SDK or something?

#

i never did that.

#

just have steam installed

#

and i'm on windows 10 yeah

livid aspen
#

No, not for this

#

Is steam open when you are running the editor?

frank quartz
#

yes

#

in the task tray.. i mean i'm signed in

livid aspen
#

ok

#

Soooooo

#

It just worked

frank quartz
#

haha

livid aspen
#

um

#

I closed steam

#

opened the editor

#

then reopened steam

#

So maybe its the way steam was hooking the system process

frank quartz
#

@livid aspen kind of off topic but do you have a vr headset by the way?

livid aspen
#

No

#

I wish lol

#

I am on a gtx1070 though

frank quartz
#

i'm trying to add steam multiplayer to my vr game so i thought maybe you could help test it ๐Ÿ˜‰

livid aspen
#

So there are some nvidea drivers sitting around on my machine for vr

#

Haha I would if I could

#

What are you working on?

frank quartz
#

that's great that it's working for you now though ๐Ÿ˜ƒ

livid aspen
#

Hopefully the other files will work now

livid aspen
#

Wow that looks great!

frank quartz
#

thanks!

livid aspen
#

Is it a puzzle game or more exploration?

#

The vr gameplay makes me think myst

frank quartz
#

have you ever played FTL?

livid aspen
#

Yep

frank quartz
#

a lot of the game play will be like that but first person

livid aspen
#

Thats an awesome idea. Im sure the vr lends itself to that really nicely

frank quartz
#

you're controlling every aspect of the ship, making repairs (using your drones), doing battles as you make warp jumps trying to get home

livid aspen
#

Thanks again for your help. I went back to my actual project and its working fine now

frank quartz
#

sweet ๐Ÿ˜ƒ

livid aspen
#

I'm building an online only game so it was pretty imperative that this works LOL

frank quartz
#

heh yeah.. i'm not sure if ghost vector will have online in the actual game but i'm wanting to add it for the purposes of demoing it to people and getting live feedback

twin juniper
#

Hi Guys, I'm new in UE4 and have a question about persisting Playeritems/Playerdata. My current solution is to break my Itemobject, write the data in Json, and send to Request to an PHP API. The API is writing it to an MySQL DB. Are there any other Solutions to persist the data? Later there are more then 1 Server, so the save-game should be loadable on each server.

eternal anchor
#
  1. What kind of data ? 2. Why SQL server ? 3. If you persists it must be some kind of database, why not call to it directly from unreal Server ?
#

where are you hosting your game ?

ivory parcel
#

I have a forums post up about lobby and party beacons, if anyone can help with explaining them it would be helpful

#
haughty star
#

How works a game like Rust? How work something similar with servers which can save their map, save objects and when players login to the server, get the data for players on THIS server? do you have link or other? How save data on server?

drowsy veldt
#

Can you not RPC an event inside of a UMG widget?

#

@haughty star I thought it was timed events to loop through the map saving each actor state?

haughty star
#

I don't understand @drowsy veldt

drowsy veldt
#

@haughty star at perodic times the server will record each actor(walls models etc) state and data and save them into a database then when they load the server they just reverse the process

haughty star
#

yeah, but when "server is loading"? how do that? i compiled my server but i don't know how can I work on the server

#

i'am lost with Unreal aha, idk where coding

drowsy veldt
#

You should do a level/map which you call loading

#

then in that time you should load the data in while you STREAM your map

#

You can then load the next map instantly since you put it into memory in the background

#

after you have reloaded all the map data

haughty star
#

so when I connect to a server, i detect the server and load the server map to the client? @drowsy veldt

drowsy veldt
#

are you trying to replicate games such as rust?

haughty star
#

i don't want replicate game, i want to know how works game like rust, I just want to lean actually @drowsy veldt

jolly siren
#

when a ustruct is replicated does it replicate the entire struct or just the properties that have changed?

#

sorry I know it's been asked before, but I can't remember

drowsy veldt
#

When you replace the gamemode with a BP derived version, how to you replicate what the template does since it makes second, third, fourth players etc, all spectator and doesnt spawn a pawn

rough iron
#

@jolly siren only the changed values

#

a common way to refire an RepNotify is using an int nounce, you just increment it on the server forcing replication

jolly siren
#

Right that makes sense. I just wanted to make sure it wasn't having to send data that wasn't changing over the network.

#

primarily because my character stats struct is getting quite large

#
struct FFPSCharacterStatsData
{
    GENERATED_BODY()

    UPROPERTY(BlueprintReadOnly, Category = Stats)
    float Health;

    UPROPERTY(BlueprintReadOnly, Category = Stats)
    float Speed;

    UPROPERTY(BlueprintReadOnly, Category = Stats)
    float RunSpeed;

    UPROPERTY(BlueprintReadOnly, Category = Stats)
    float CrouchSpeed;

    UPROPERTY(BlueprintReadOnly, Category = Stats)
    float CrouchRunSpeed;

    UPROPERTY(BlueprintReadOnly, Category = Stats)
    float Jump;

    UPROPERTY(BlueprintReadOnly, Category = Stats)
    float DefenseBallistic;

    UPROPERTY(BlueprintReadOnly, Category = Stats)
    float DefenseAOE;

    UPROPERTY(BlueprintReadOnly, Category = Stats)
    float DefenseMelee;

    UPROPERTY(BlueprintReadOnly, Category = Stats)
    float DefenseFire;

    UPROPERTY(BlueprintReadOnly, Category = Stats)
    float DefenseElectric;

    UPROPERTY(BlueprintReadOnly, Category = Stats)
    float DefenseWater;

    UPROPERTY(BlueprintReadOnly, Category = Stats)
    float DefensePoison;

    UPROPERTY(BlueprintReadOnly, Category = Stats)
    float Stanima;
};```
jolly siren
#

all the defenses ๐Ÿ˜…

jolly siren
#

Not sure if this could cause issues

regal relic
#

I'd just keep going. By the time is starts to cause issues, You might know how to fix it.

jolly siren
#

Hmm maybe I shouldn't rep them since they are really just used for cosmetics clientside.

#

Well except the speeds. Since the character movement's MaxWalkSpeed isn't replicated.

#

I don't really care if the client hacks their local cosmetics.

thorn merlin
#

you do also have the option of using client RPC calls to send data you want

#

for surgical updates

#

also you can use smaller data structures, if you don't need all that precision

jolly siren
#

so send data as parameters of a client rpc?

#

that makes sense

thorn merlin
#

if you are worried about rep spam

#

but imo, dont optimize until you are sure its a problem, theres that network profile tool

jolly siren
#

yeah that makes sense. I will leave it for now. May decide to stop reping it later and just let the client's hack cosmetics.

thorn merlin
#

oh they'll be busy hacking your server RPCS ๐Ÿ˜„

jolly siren
#

lol ๐Ÿ’ฆ

thorn merlin
#

"don't trust the client" i kept getting bit on that over and over

twin juniper
#

Does anyone have experience with VOIP in 4.13? In 4.12 it was a known issue, packets dropping even with just two clients. It was supposed to be resolved in 4.13 but alas, same issue

ocean dust
#

Hello all.

#

I have a Blueprint class that is meant to hold some data. It inherits from Object

#

And I have an Inventory Blueprint class that holds this Object subclass

#

But I want my Inventory to be replicated.

#

It seems that Object does not replicate. My Inventory variable is replicated, and its length is updated, but all of the instances in the Module array are empty.

#

I have tried many things to make my Module (the Blueprint inheriting from Object) replicate. I have tried a custom UObject C++ subclass, with no luck (and LOTS of editor crashes)

#

Is this at all possible? I really don't want to have to rebuild my Module class hierarchy to get replication. Can anyone help?

#

Thanks in advance!

mystic pilot
#

Object does not replicate.

#

You'd most likely have to swtich to using Actor as the base.

ocean dust
#

That involves a large amount of reference changes. And there is no "find and replace" in blueprints ๐Ÿ˜ฆ

jolly siren
#

@twin juniper damn I was hoping it was fixed in 4.13

twin juniper
#

@jolly siren It worked better, but still not consistent enough

jolly siren
#

hmm okay, in 4.12 it seems to work for like 1-2 seconds after a player spawns and that's it.

#

@ocean dust you can replicate UObjects

#

@twin juniper may want to up this if it's the same as what you are seeing

twin juniper
#

@jolly siren Yes when enabling "StartNetworkedVoice" by default. It works again for a couple of secs when you use push to talk

jolly siren
#

ah I'm not even using push to talk

#

I would respond to that AH post and say you are experiencing it too

#

the more people that do the quicker they will look at it

#

I just responded to it as well

#

@twin juniper ^

mystic pilot
#

Steam PTT in 4.11 works - still gets that log spam sometimes.

#

Haven't checked it out properly in 4.13 yet.

#

But again, this is PTT.

jolly siren
#

VOIP in general worked fine in 4.11

#

it was broken in 4.12

#

and apparently still is in 4.13

mystic pilot
#

Damn - coz we skipped 4.12 ๐Ÿ˜ƒ

jolly siren
#

lol yeah 4.12 was a rough release

#

We are still on it, I've been planning on upgrading soon. Mainly for the voip

mystic pilot
#

No idea. We just have a habit of skipping a version if possible.

#

Longer dev time on single base FTW.

jolly siren
#

makes sense. 4.12 took 5 hot patches, so that's never a good sign

mystic pilot
#

I waited 2 weeks before switching to 4.13, expecting a hotfix too.
I'd upgrade to UE4.13.1, but Windows10 decided it didn't like me.
I should have known better, as it was a day ending in Y.

#

Back on topic - the Steam mute bug is still there.

jolly siren
#

lmao yeah 4.13.1 took a bit

drowsy veldt
#

When you replace the gamemode with a BP derived version, how to you replicate what the template does since it makes second, third, fourth players etc, all spectator and doesnt spawn a pawn

jolly siren
#

@mystic pilot if you get around to testing voip on 4.13 and you see it's broken can you post on that AH thread too? Need to get it some attention if it's still an issue.

mystic pilot
#

@drowsy veldt Clients starting as spectators? That's a game mode setting you can override.
If it already is, there should be nothing stopping them spanwning in.
The game mode won't replicate - only the game state will.

#

@jolly siren Will do.

jolly siren
#

thanks

drowsy veldt
#

@mystic pilot The moment I changed the gamemode it stopped the second player character from spawning

mystic pilot
#

That suggests something else going on that we are unaware off.
What does the first player do that others do not?
The only thing I can think of is that on login, they "start the match".
Do you have anything in there that prevents other players joining a match in progress?

drowsy veldt
#

It's happened before the moment I touch the gamemode in a multiplayer setting

#

it seems in the template there is an overriden function that is not apart of the gamemode when derived

#

ChoosePlayerStart I believe it is

mystic pilot
#

If it cannot find a player start, they should spawn at 0,0,0 (where world settings actor is).

drowsy veldt
#

It's strange but they don't even instantiate the actor

#

player 2 is straight into a type of spectator mode

mystic pilot
#

If the default choose player start/find player start (what ever) isn't called, then, yes, that would prevent them spawning ๐Ÿ˜ฆ

#

I've had that issue.

drowsy veldt
#

did you locate a fix?

mystic pilot
#

Yes - don't have invalid spawn points in the map ๐Ÿ˜ƒ

#

Probably not the same as the issue you're having.

drowsy veldt
#

ill have a check, anything is possible since i wiped the map originally

mystic pilot
#

Hmm... did you remember to add multiple player starts?

drowsy veldt
#

If i say yes will you believe me without any additional questions? ๐Ÿ˜

#

lol

mystic pilot
#

Totally.

#

๐Ÿ˜›

drowsy veldt
#

Argh actually i have the same setup as the template still. A player pawn setup as well as a player start

jolly siren
#

๐Ÿ’ฉ

#

debug it

mystic pilot
#

I bypass a lot of the default game mode behaviour ๐Ÿ˜

drowsy veldt
#

I think it's a matter of what is not included from the original template instead of a bug, such a pain ๐Ÿ˜›

mystic pilot
#

Yeah, check your log.

#

That's origin.

drowsy veldt
#

I'm seeing nothing within the log

mystic pilot
#

You may need to enabled game mode logging.

#

LogGameMode=VeryVerbose or something like that in DefaultEngine.ini

drowsy veldt
#

@mystic pilot LogLinker:Error: ObjectProperty_65 has an inappropriate outermost, it was probably saved with a deprecated outer (file: ../../../../../../Users/Null Byte/Documents/Unreal Projects/networkTest/Content/ThirdPersonCPP/Blueprints/ThirdPersonCharacter.uasset)

#

this is the error

mystic pilot
#

Base class missing?

drowsy veldt
#

now, absolutely fine, strange

mystic pilot
#

...

#

That's Unreal baby ๐Ÿ˜ƒ

drowsy veldt
#

Q_Q ๐Ÿ˜›

mystic pilot
#

Its all I can ever think to say when UE4 acts this way.

brittle sinew
#

It's a feature

drowsy veldt
#

haha

mystic pilot
#

So is my ass, doesn't mean its a good one.

vestal cobalt
#

hey guys

#

i've downloaded the Advanced Sessions Plugin and im working on my own "ingame friendslist" and i noticed something weird you can get the "Online State" of each friend like (online, offline, away, busy and so on) but there is ACTUALY something called "Extended Away" in that enum (Online State) and i see some of my friends are listed as "Extended Away" WTF does that mean xD if they are away they should just be "Away"....

#

even steam itself doesn't have "Extended Away" xD

#

is it something like "this person has been away for an extended amount of time"?

#

like hes been away for several hours

vestal cobalt
#

erh... sorting arrays is hard -.-

#

trying to sort a structure array but can't get it to work

granite jolt
#

how are you trying to sort it?

vestal cobalt
#

foreachloop (current array) -> make new array (sorted array) here is where i sort it (2 sec i'll give you some pics)

granite jolt
#

I mean are you sorting it by struct values?

vestal cobalt
#

ye

granite jolt
#

int/float?

vestal cobalt
#

oh shait no i mean i sort by array element!! in this case the "Online State"

granite jolt
#

what type is Online State?

vestal cobalt
#

Enum

granite jolt
#

so its sort by int

vestal cobalt
#

here it is

#

i take the first array and check the online state against the "sorted array" and see if it matches or not

#

i followed an online guide for this btw cause i've never sorted an array befor

granite jolt
vestal cobalt
#

so i only need 1 foreachloop then?

ivory parcel
#

Anyone have any knowledge on lobby and party beacons that might be able to help me with my forums post ?https://forums.unrealengine.com/showthread.php?124784-Party-Beacon-Lobby-Beacons-Oh-My

granite jolt
#

@vestal cobalt yeah you can do it in one

vestal cobalt
#

@granite jolt im confused, cause that damn BP site doesn't show the actual BP node name -.-

granite jolt
#

ok ill whip up a couple of screengrabs. blueprintUE is kind of hard to read unless you are familiar with it. What you can do though, is copy and paste the nodes into a blueprint function

#

might help to do that

vestal cobalt
#

i tryed that and UE just went, aaah fuck it this is to much code, see you later...... (it crashed)

granite jolt
#

ugh. photoshop and unreal just crashed at the same time. bear with me :/

vestal cobalt
#

sure sure

#

why dont you just use Windows Snipping tool? ^^

#

much easier then screenshotting and editing in PS

granite jolt
#

checking it out now

vestal cobalt
#

you just CTRL V here in the chat ^^

#

after you have snipped the code

granite jolt
#

heres the first part

vestal cobalt
#

see

#

in the BP site it doesn't show if it's a variable OR array

granite jolt
vestal cobalt
#

where does the acsending bool come from?

#

is it relevant?

granite jolt
#

you pass it through on the function as an In var

vestal cobalt
#

but where do you set "Sorted Array" float?

granite jolt
#

in that case, I am getting the max float in the array and adding it to the SortedArray

#

I only needed it for ascending but I coded it for both.

vestal cobalt
#

quick question, outside of that macro/function you have 1 for loop right?

vestal cobalt
#

peeps

#

does anyone know how to get the Game name of the game the steam friend is currently playing?

ocean dust
#

@jolly siren "You can replicate UObject" I'm guessing this was a typo, and was supposed to be "can't"?

jolly siren
#

lol no

#

wasn't a typo

ocean dust
#

Oh ok! Great!

#

I have been unable to get Blueprint classes derived from Object to replicate.

jolly siren
#

are you using c++?

ocean dust
#

Only if I absolutely must

jolly siren
#

it's only possible with c++

ocean dust
#

But not in Blueprint?

jolly siren
#

nope

#

gg

ocean dust
#

Alright, fair enough.

#

I already tried subclassing UObject, overriding IsSupportedForNetworking, and other methods. Still no dice

jolly siren
#

yeah I use UObject's at the core of my Ability system and they are replicated just fine

ocean dust
#

Are they utilized in Blueprint at all?

jolly siren
#

yes

ocean dust
#

Hmm. Would you mind sharing a gist with some of your replicated UObject code?

#

Also, I'm guessing that storing one of these replicated UObjects works fine, but creating a Blueprint child class doesn't work (that's what I tried).

#

@jolly siren

jolly siren
#

yes ofc it works fine, my abilities are all blueprintable

#

You can also replicate a UObject's sub UObjects

#

share what you did and I will take a look when I can

ocean dust
#

Well then I have no idea what I missed when I built my UObject subclass, overrode IsSupportedForNetworking, marked the class as BlueprintType and Blueprintable, and then switched my data classes to derive from this UObject subclads

jolly siren
#

did you try and replicate a property on the UObject? lol

#

it won't replicate the object if you don't replicate a property

#

via GetLifetimeReplicatedProps

ocean dust
#

Yeah I had a book flag that I replicated using 'GetLifetimeReplicatedProps'

#

Still nothing

jolly siren
#

lol

#

it works

#

it's built into the core of Unreal's Ability framework too

#

just look at that

ocean dust
#

sigh

lament kettle
#

I think this question should be placed here instead of animation, considering it only happens when I have more than one client.

#

Any help would be appreicated.

rough iron
#

@lament kettle are you using the base characterMovementComponent?

lament kettle
#

Yes

#

@rough iron Im using the AnimStarterPack

rough iron
#

It might be just the client side smoothing, I use my own movement component for it but I bases my changes on the UT movement component which has a lot more smoothing techniques

#

you can also tweak the smoothing params I think (not sure atm though)

lament kettle
#

Should I use my own movement and not the base?

rough iron
#

You should be able to use the base one tweaking it to your needs

#

first step is to check two important facts

#
  1. Are you actually smoothing?
  2. Could it be that the server is correcting my position all the time?
#

You could also check if it happens with the Multiplayer TwinStick shooter sample (pinned). It uses the base CharacterMovementComp

jolly siren
#

Vote for this guys^

#

(Steam voip)

ocean dust
#

@jolly siren I have resolved to approach my inventory system differently. I will not be replicating UObject subclasses, but instead replicating item ids (integer) and random seeds (integer) to then build inventory objects on the client.

jolly siren
#

Yeah that sounds like a better design anyways.

#

Have fun

lament kettle
#

Found my issue

#

Use Controller yaw

#

Its fighting the client when on server for some reason

regal relic
#

In multiplayer the server should always do the actual moving of the ships, Not the client. Make sure your Input from the client is setup more like a request. You have an input from your mouse/keyboard/controller and then immediately turn that input into an RPC IE Custom event that go's straight to requesting the server run the input command on its side.

lament kettle
#

Ah alright.

#

ive been doing C++ for that

#

but i think ill do it in blueprints

#

and when i get it working ill transition the logic

thorn merlin
#

commited to master - PR #2359: UE-13079: World Origin Shifting for Multiplayer (Contributed by michail-nikolaev)

lament kettle
#

would this be fine (repost form bp section)

modern fable
#

input latency though

lament kettle
#

What do you mean
?

#

can you elaborate

#

?

modern fable
#

you are sending a movement request to the server, which then decides whether it should move, then server replicates the new location back to all clients

lament kettle
#

Should I then leave it as defaul and ue4 handle this?

modern fable
#

what I mean is, when you move an actor locally it does move locally and then replicates (I guess)

lament kettle
#

It does... technically.

modern fable
#

so if you have a high latency, it might take a bit long to respond to your input

lament kettle
#

That's the user's problem?

modern fable
#

well yea xd

lament kettle
#

if two people shoot

#

and server says

#

here he is

#

but you've moved forward

#

but technically your still back

#

your dead if shot

#

but your right

#

ill leave it as ue4 default replication

#

for this..

brittle sinew
#

The default CharacterMovement component includes client-side prediction for movement. Moving on that system would feel really weird

lament kettle
#

yeah

#

i just put it back to defauly

#

from inputaxis --> directly to move input

#

i might put a if statment

#

to prevent constant connection if no movement tho..

#

also, i found out the stutter issue for anyone curious

#

GetCharacterMovement()->bOrientRotationToMovement = false;

#

that needs to be false

#

i was messing around with the value in blueprints

#

and for some reason that modifys the animation direction

#

:/

regal relic
modern fable
#

you won't be able to control your ship if you are a listen server

#

you'd be authority

wary willow
#

What is a Steam Session Ticket ?

lament kettle
#
ivory parcel
#
lament kettle
modern fable
#

lmao

hollow bear
#

Goes to show that sometimes a simple idea can be a good game.

fierce birch
#

well, it doesn't take long to make RL clone with stock components

#

but the downside is that it just simply doesn't work

#

I see no value on that asset

#

unless someone wants to do just lan or splitscreen (that asset has no online MP nor it could have with built-in ue4 physics networking)

#

well, not one that would play properly for a game like that anyway

regal relic
#

I see no reason it cant be done with ue4 built in physics. And even in blueprint.

fierce birch
#

the difference in quick moneygrab BP implementation and one that would actually work is probably measured in several hundred working hours if not in thousands (depending how well said person understands physics)

#

well

#

it can be done in blueprints

#

in one weekend

#

it just doesn't work properly

#

that's the thing

#

ue4 doesn't have proper physics replication on online play that would allow proper clientside prediction

#

only part that has such things are ue4 characters

#

so you'd need to implement that side yourself manually, for both vehicles and the ball

regal relic
#

Are you talking about something in particular?

fierce birch
#

in general about physics based multiplayer

regal relic
#

We are talking about a rocket league clone ala the assets above?

fierce birch
#

yeah, this is related to that pack

#

and it's LAN only for a reason

regal relic
#

I use physics based multiplayer no prob.

fierce birch
#

sure, they replicate

#

but there's no proper clientside prediction

#

you can't make a fast paced multiplayer game without one

#

and ue4 physics is not deterministic

regal relic
#

There is client predicion and correction on the charactermovement component.

fierce birch
#

you can get 3-4x difference in physics velocities just by running the game at 15fps or 120 fps

#

yes

#

that's what I said already

#

but char movement != ue4 physics

regal relic
#

This true, but thats a common physics problem

fierce birch
#

characters do their own prediction and physics

#

but.. it's not

#

it's ue4 specific issue in this case

#

I mean, in general, game engines tend to tick physics at fixed rate

#

but ue4 does not

#

which presents additional issue

#

it's ok that physics engine is not completely deterministic

regal relic
#

Well sure they, but they should. Just so long as it doesnt disagree with the server simulation.

fierce birch
#

but if you just calculate it randomly, it's 10 times worse

#

thing is

#

every client and server simulates the physics differently, unless you lock the framerate

#

(because unreal ticks physics by default on your framerate speed)

regal relic
#

So... lock the framerate like everyone else?

fierce birch
#

that's not a real solution for the issue, you'd still have issues on people who can't reach say 60fps

#

also

#

prediction issue still remains

#

I'm not saying it can't be done

#

it can be done

#

but you'll need more than just stock ue4 components slapped together with blueprints

regal relic
#

I agrer ohysics timung systems are a bitch. For all of us.

#

Ugh cellphone keyboards.

#

If they cant do 60 fps..ban em ;p

fierce birch
#

for example, just read on some forum that new rockey league map plays under 30fps for tons of people

regal relic
#

Ouch

fierce birch
#

but I kinda suspect they keep their graphics settings at max :p

#

it's a pretty level though

regal relic
#

Proper simulation needs frames..

#

Just like animation. Only way more important.

fierce birch
#

I'd disagree on that, as if you don't couple rendering and physics, proper sim works regardless the rendering speed

#

how well you can control it at 15fps rendering is another thing though..

regal relic
#

A sim is just a frame in time.

fierce birch
#

yeah

regal relic
#

You need lots of frames for high simulation resolution.

fierce birch
#

yeah, I've been doing my custom physics at way higher speed than regular framerate is

#

even difference between 60 Hz and 100 Hz on vehicle sims is huge

regal relic
#

Yeah. I can feel it big time too when its unlocked.

fierce birch
#

ideally you'd get to 500+ and more you go up, more accurate tire math you get

#

my custom solver still coped 2000 Hz physics sim

#

but I'd not go that far :p

regal relic
#

100hz would be a nice number.

#

For multiplayer

#

But ill take 60.. no less.

wary willow
#

Why wouldn't Shift-Tab work in game?

#

To bring up Steam overlay?

#

I mean, the overlay appears, but I can't use shift-tab (or any other combo) to bring up the full screen overlay

fierce birch
#

what do you mean?

#

like you get the notification but can't enable the full screen mode?

livid aspen
#

Hey guys, a bit of a weird issue here

#

I have one direction steam server joining working

#

As in, if I host, my friend can see the server, join, and everything works great

#

But if he tries to host, I can't find the server

#

Our builds are identical

#

Not sure why this would be an issue

regal relic
#

Maybe he needs to open up the the ports on his firewall/router?

fierce birch
#

^

#

didn't steam implementation have some nat punchthrough or do you need to use it some specific way to do that?

#

never done any of that myself

jolly siren
#

yeah it's his firewall

pliant cypress
#

morning everybody! ๐Ÿ˜ƒ

jolly siren
#

morning

ruby furnace
#

@nocturne token is your multiplayer client launcher application still working ?

thorn merlin
#

speaking of nat punch through, has anyone figured out how to do it on android yet?

dawn linden
#

Anyone else running into issue where the first Join session attempt made to a server is "successful" but after loading screen the player is kicked back to menu? Seems to only happen with first join attempt, all join attempts afterwards are fine. Even waiting until host has fully loaded the map before attempting first join.

thorn merlin
#

ive noticed that randomly - you mean since going to 4.13 right?

dawn linden
#

Might have been in 4.12 but not certain.

#

but currently having the issue in 4.13

#

Using Steam for online subsystem

#

If seamless travel is enabled, would a client attempt to use transition map if host is already in the level and fully loaded?

neon bluff
#

I'm reading though the network compendim and I have a problem with it.

#

Not the Client is moving the Character. The Server is getting the Move-inputs
from the Client and is then moving and replicating the Character!

#

Or, I'll be more specific.

#

The whole compendium implies a Dedicated Server architecture.

#

Waiting for a server to replicate your movement before starting it is wrong.

#

You should react to the input right away

#

Or you will have visible lag which is completely avoidable.

brittle sinew
#

The proxy setup is a fairly advanced topic if you actually want to do things with it, I don't think that's the main purpose of the document

#

But yes, you're right there

nocturne token
#

The compendium doesn't do client side movement at all?

brittle sinew
#

It spends a few slides on saying what proxies are, but not any implementation of them

#

Which personally, I don't see that as a bad thing. Seems a bit out of scope

twin juniper
#

"You can use the Replicates checkbox for any Interfaces containing functions that need to replicate across the server. This is found within the Details tab by first clicking the Class Settings button. " I can't find the checkbox?

#

Is that deprecated?

#

Quoted from docs

neon bluff
#

Well, the actual movement replication is a much more advanced topic

#

making a new movement ability that replicates properly is not trivial at all

#

and the listen server adds a bit of complexity as well

#

for a long time there was a bug in the engine that listen's servers representations of remote characters weren't actually updated unless there was an RPC

fossil spoke
#

Anyone know of a way to freeze a players movement from the GameMode in an online environment

knotty kelp
#

So nothing can move them or so they can't move? Because if it's the latter, just set the walk speed to 0 temporarily.

past bear
#

port forwarding is my first guess

#

or I'm replying to an old message because this thing did not jump ahead or show me it was an old message!

#

bah

jolly siren
#

lol

heady delta
#

@fossil spoke Either set ignore move input in the controller, or disable movement in the pawn, has to be called from the server and executed on all clients

#

disable movement doesn't have to be called locally though I'm pretty sure, so you could just have the server do that on all pawns

rough iron
#

Does his ISP block P2P?

livid aspen
#

Awesome thank you. It worked outside of the network my friend was on so I'm not sure what it was. We're moving to a dedicated server format

#

So hopefully it fixes these issues.

#

He was technically able to connect to my hosted session so I'm not sure why it would be on incoming connection only.

rough iron
#

Cool ^^

livid aspen
#

I tried to get him to open the udp ports up but he didn't really know what he was doing so I can't be sure it was opened or not. Does steam throw any errors on inbound network logging? Seems like it would be hard to trace that down though.

#

My dedicated servers are gonna be tested using droplets though so hopefully that fixes any connectivity issues

rough iron
#

Yes you can open the steam client in debug mode

#

With a console

livid aspen
#

Will it report blocked ports though? Seems like something that would be a silent failure though

rough iron
#

It reports any errors xD

#

So yes hehe

#

You will see a timeout I guess

livid aspen
#

Cool beans. I'll have to check it out when I'm not drinking lol.

#

Have you done any dedicated server work before?

rough iron
#

Yes quite some time xD

#

Btw is this for the jam?

livid aspen
#

No, I'm just working on a project with a friend. First game project though.

#

Is it hard moving from p2p to dedicated server?