#multiplayer

1 messages Β· Page 346 of 1

chrome bay
#

MP gameplay programing... no problem. backend programming.... ugh.

rough iron
#

if you have to use your own backend and not the one provided by Sony or MS

#

it will be a hell to get ir all through cert

chrome bay
#

dangit

rough iron
#

I remember doing it for XBox 360 on live

#

and we had to audit it

#

for security issues

#

because you handle user info

chrome bay
#

Ah ok

#

I was hoping to do something like UT

rough iron
#

I would not advice to use any external backend for consoles if you do not know how

#

xD

chrome bay
#

Hmm ok... I guess I'll do my steam version for now then work on it later for console lol

#

So massively out of my depth with this shit now haha.

rough iron
#

I had to build 3 different matchmaking systems for PS3, XBox 360 and Steam

#

xD

grand kestrel
#

Maybe by UE4.30 Epic will have on there that's multiplatform..... nah

rough iron
#

it'0s not becasue of epic

#

it's the provider which does things differently

#

Steam has their own feature/limitations

#

as Sony, Nintendo and MS have

#

so Epic can only provide a minimum common denominator

grand kestrel
#

Ah right, I get you

rough iron
#

if you need more, it's your responsability

chrome bay
#

Is this the kind of stuff you do for freelance Moss?

rough iron
#

yes xD

#

if I had time xD

#

just ditched a 3 month contract yesteday xD

grand kestrel
#

Have either of you looked into Gamesparks, or more specifically, translating CMC code to GS realtime?

#

Does matchmaking for you too haha

rough iron
#

@thin stratus uses gamesparks

#

@chrome bay but I can forward you an ex collegue that actually did the steam interation and has experience with PS4

chrome bay
#

Yeah that'd be cool. I'm trying to fund this project atm. If it's succesful I can reach out.

rough iron
#

He is a generalist programmer

grand kestrel
#

Gamesparks actually looks amazing, but building a game specifically for it is kinda off-putting

rough iron
#

but coded is ass of for quite some years xD

#

both UE4 and UE3 as a licensee

chrome bay
#

Noiiiiiice

#

Gamesparks confuses me. I'm not sure what it really replaces

grand kestrel
#

They don't let you upload an exe for server, instead you set variables that are replicated

#

So I'm not sure if it'd even be able to work off CMC's prediction, maybe you'd just send it the velocity and acceleration etc

chrome bay
#

Yeah my situation is complex enough as it is haha

#

I'll stick to what I know..

grand kestrel
#

Yer

#

It does matchmaking etc for you, as well as all the social features and so forth

#

It's nice that you don't pay them anything unless you're really successful too

#

Hard to find information from people who have used it though, thus far anyway

thin stratus
#

GameSparks is a PlayerManagement Service

#

It gives you the ability to login via their Accounts or via PS4, XBox, Steam etc

#

And link the players

#

You can use it to save PlayerData, such as Money, hats etc

#

You can also score skill and use the skill to perform a matchmaking request

#

Once players are matchmaked, it calls a function with which you can actually connect the players

#

I use that to get a server from GameLift

#

It offers real time stuff, so you would actually not need the UE4 backend for networking

#

But since that's already there, you can ignore that part of GameSparks

#

We use it mainly for Matchmaking, Stats and Microtransactions

chrome bay
#

Interesting. Like the guys said I'd probably struggle going through cert with it anyway

worn nymph
#

Yeah I love gamesparks now I've gotten used to it and the support staff are really great

#

@grand kestrel

grand kestrel
#

Ah. Gamelift seemed super pricey when I checked. The appeal for gamesparks would be a lot higher if I could use their servers

#

But I guess could do gamesparks + Google cloud

#

Though I wonder if gamesparks is worth it just to have that stuff done for you; I'd guess so

#

Have actually gone through gamesparks documentation, my concerns or questions were all around their realtime

worn nymph
#

@grand kestrel not sure what you mean . Gamesparks realtime is using gamesparks servers . When a match is created it spins up a server on the fly much like gamelift etc . Not sure on the scalability though as in how many instances you can have at one time and how many players you can support . You would have to take it up with them . If you send a message to support they normally reply within 24 hours most of the time sooner . And the game I linked is using gamesparks realtime and servers instead of unreal replication system that's why I mentioned it .

grand kestrel
#

That's unrelated, I mean it uses it's own replication, I want to use UE4's

worn nymph
#

Oh yeah that's kinda what I do at the moment . I use gamesparks for backend and matchmaking and my own dedicated server and management system to spin them up and shut them down . You have to override the functions in gamesparks api with c++ though so when a match is found it returns your server ip rather than gamesparks

twin juniper
#

If Gamesparks goes under, does that mean no more multiplayer?

#

And loads of free BR tutorials on YT.

worn nymph
#

What's BR?

twin juniper
#

battle royale

worn nymph
#

I'm confused what does gamesparks going under have to do with multiplayer ? They are just one option . And BR games are multiplayer so why would BR tutorials increase because gamesparks go under ? . The rumours floating about is that gamesparks is being purchased by Amazon so not sure what the future holds yet

twin juniper
#

"No longer will you have to worry about setting up multiplayer with those pesky dedicated servers nor having to pay a hosting company for overpriced servers. All multiplayer networking is provided by GameSparks..."

#

So if GameSparks goes under, no multiplayer essentially.... no?

worn nymph
#

Oh you mean for the template . Makes sense now lol

twin juniper
#

If doing multiplayer and expect it to stay a while, get your own rack, shove it in a data center, pay colo fees, done :p

#

ASIDE from the multiplayer coding in the game D:

worn nymph
#

It's a bit of a no win situation for indie devs . Most people don't have the skills to make a backend system secure enough to support a game launch . And even if they can it's months/years of work . So the only real option is to use thirdparty solution but as you pointed out it's risky because of the provider goes under you are screwed

twin juniper
#

yeah

grand kestrel
#

Gamesparks seems to be doing pretty well for itself, beating the competition

#

So wouldn't worry too much

inner iris
#

Also if the Amazon thing is true then that would likely make it much less likely that they’d go under

grand kestrel
#

Hopefully Amazon don't do away with the current indie pricing scheme though

twin juniper
#

lol went to their site and saw this

#

"Games from members of the Indie & Student Programme will sit on a multi-tenant instance of the GameSparks platform. We may make ask you to implement changes if your game is or could create a performance impact on other users. If you do not make these changes, we may block the individual problem script and/or move your game to a β€˜quarantine’ cluster that limits impact on our other customers."

#

and GameSparks splash screen

#

So it's essentially on a cloud server or shared server, they have a say in what to change in the game to improve performance on their side, splash screen, and $20 a month if 100,000 monthly active (mathing is not my strong suit)

drowsy badger
#

Gamesparks is tempting but we'll just do how FortniteParagon does it and hope for the best

#

I mean paragon

#

I always mix those up

worn nymph
#

How does paragon do it?

grand kestrel
#

@twin juniper It's charged at 2 cents per user for every user over 100,000, so you'd need 200,000 to be charged $20

#

Well, that number is wrong

#

2 cents * 100,000 = 200,000 cents = $2000

twin juniper
#

but... .02 * 100,000 = 2000 = $20

grand kestrel
#

Oh

#

Eh it's 4am

twin juniper
#

lol

#

could always cap the player count at 99,999 lol

grand kestrel
#

$20 per 100,000 users a month isn't so bad

twin juniper
#

maybe 99,995 to be on the safe side

grand kestrel
#

They also have spike protection and so forth

twin juniper
#

yeah but it's them having a say in what to change and a splash screen that deters me from it

grand kestrel
#

Would be nice to hear some user stories

#

I don't mind the splash screen

#

And I saw the disclaimer about them having a say in the matter, but that only seems to be the case if you're doing something wasteful

#

Might be worth emailing them about it if you're concerned

inner iris
#

Seems they are taking advantage of the client side shooting mechanics in order to completely remove the spread / bloom which is the thing that makes most gunfights take time.

#

I wonder if there are any simple ways to prevent this particular part of the cheat short of completely simulating shots on server (like checking random spread seeds or comparing client / server shots for any major changes in spread/angle of shot)

#

Genuinely very curious about how this works since it completely ruins a round for everyone else if they can have perfect aim. Even if they can see other client locations but have the same shooting advantage it wouldn't be as bad

thin stratus
#

The wall hack can technically be removed very easily

grand kestrel
#

My approach was to run the same logic on server and client however ignore the result of the server, but check it to see if there's a large margin of difference

thin stratus
#

Stop replicating the enemies pawn if he's not in sight

inner iris
#

The problem there could be if two players with say 200 ms ping both ran into sight at once- there'd likely be some sketchy pop in?

#

Or even worse, the player with the low ping seeing the other client before he sees him?

#

I think the larger problem is the fact that they can remove the spread in their shots which means they can just lazerbeam through anyone in the lobby

grand kestrel
#

Maybe some form of pathfinding, with a threshold

#

Where the server will deny the hit if it had to travel too far around a wall

inner iris
#

@grand kestrel I also have set up my system similar to your client /server shot, seems to work fine, It'll be interesting to see how Epic handle it for Fortnite

#

Seems to be all about tradeoffs

#

Too reliant on server = poor experience for all players- shots feel like they aren't registering etc

#

Too reliant on client= cheats + potentially unfair deaths around corners etc

grand kestrel
#

Ultimately client-side feels responsive and server-side doesn't

inner iris
#

Yeah exactly

grand kestrel
#

I like what OW does, client gets what they see but server authorizes everything

thin stratus
#

Sorry, but 200ms ping

#

Is just the player's fault

inner iris
#

But they have an advantage in many other cases with that ping

#

People playing on servers far way purposefully

#

Or else players in regions of the world that aren't near to servers

grand kestrel
#

Because it takes longer before a player you've shot is notified they've been shot and you can kill before they can respond

thin stratus
#

I dont see how you have advantages with a high ping

#

You lag for others

#

others lag for you

grand kestrel
#

The advantage comes from you expecting it and them not, in some cases

inner iris
#

Well if the shots are client side like in many current games, they can register hits on the lagged players they see

#

Without a full server rewind implementation which many games don't even have

thin stratus
#

Yeah don't do shots on client lol

#

Yeah they don't cause it takes too much time

#

Don't let clients process the hit

#

Let them do FX stuff ,but let the server do the actual hit and damage work

inner iris
#

I think in fortnite right now, the clients are trusted with the shot

grand kestrel
#

That feels really unresponsive

#

Having server fully authoratitve

thin stratus
#

I don't have any problems that way

grand kestrel
#

It's why shooters are primarily client-side detection nowadays

inner iris
#

Yeah it feels very unresponsive if the server does the hit

#

Without taking what the client has and allowing within a tolerance

grand kestrel
#

Server-side is easy, but that's about the only advantage

thin stratus
#

Then give him tolerance

#

Client side only is just bad

#

I can easily move an enemy in front of me

#

"Yo I hit him!"

inner iris
#

Of course

#

But the point is that the tolerance client side method can give an advantage

#

To higher ping players

thin stratus
#

Fornite is a PvE game that recently added PvP

#

I doubt the shooting is ever meant to be competetive

grand kestrel
#

We're not talking about doing client fully authorative, we're talking about client does hit detection and the server confirms the result

inner iris
#

Yeah

thin stratus
#

The start was fortnite

inner iris
#

Very very interested in the tradeoffs here both against cheating and for responsiveness

thin stratus
#

And that is probably doing a lot of client stuff

inner iris
#

The funny thing is, it seems PUBG does it very similarly too

thin stratus
#

Your best bet is to have the tolerance version like you said

#

Both perform the hit

inner iris
#

Yeah, compare within a tolerance

grand kestrel
#

That's what I was doing

inner iris
#

Check angle, distance etc

#

Deal if reasonable

thin stratus
#

Client will directly get hit

grand kestrel
#

Been toying with the idea of pathfinding the hits on the server too

thin stratus
#

But only visual

#

If you play a bit of OW

inner iris
#

And then players with pings higher than a certain amount have to use server side hit detection only

#

Like BF1

thin stratus
#

you will notice when the server says NOPE

#

Cause clients always play hit events

#

And play the sound

#

I often have headshots with hanzo and don't get them acknoledged

inner iris
#

I have it set up so that all non damageable actor fx / sounds play right away on the client, but I only play actual damage sounds / hitmarkers if the server approves

#

Also have a bit of artificial delay on the client between the gunshot and the impact to help hide the server delay too

#

It's a lot of fun to try and make it feel as seamless as possible from the clients perspective, lots of fun tricks

#

In OW, if your client thinks he got a headshot and the server says NOPE, does the clients UI get updated instantly with his shot and then set back, or does the server do all the UI updating?

sterile pebble
#

there is gdc video about cod multiplayer and speaker touches that point

inner iris
#

Yeah a great video, well worth the watch

#

Love the animation tweaks they made to reduce percieved latency

#

I think almost all their savings / improvements they had from that video were purely cosmetic / tricks

#

Not actual netcode

#

Really cool to see

sterile pebble
#

It's my nightmare to run into such issue

inner iris
#

There's also one from Halo that does similar things which is great

sterile pebble
#

There were some info about handling death event in case where server and client stuff desync, but I cant find it right now.

inner iris
#

It's pretty interesting reading about big games and how their netcode tweaks really impacts the game, for example BF1 pre patch- if you artificially increased your ping, you had a big advantage

#

The main thing I've learned is that doing shots serverside is a big no for responsiveness / accuracy- having someone run back and forth and trying to hit them with a ping of >50ms just leads to a lot of frustration

#

Seems like the clientside shot with serverside validation is the best thing for responsive shooting under proper snapshot rewinding that cod does

sterile pebble
#

yep

thin stratus
#

No idea if that was already posted

#

Mainly 4.19 updates for allowing more players on dedi servers

inner iris
#

Super happy to see this- with the massive playercounts hitting Fortnite lately, it should result in loads of great fixes / improvements to the engine which benefits everyone

thin stratus
#

True, however, why only if Epic needs it..

inner iris
#

I think since they are not only providing a world class engine, but also openly adding fixes to make it better for everyone- even if some of the fixes aren't relevant to some people, it's a big win win

#

Would be nice of course to see some of the issue tracker requests solved instead of backlogged of course, but I think the most seems to get done when they are all working on an active project- glad they don't just maintain the engine but are also constantly using it for their own projects

#

"Added a way to view a dedicated server's network stats on a client in real time to more easily see stats for cloud-hosted servers. (Will be in 4.19)"

#

This sounds really interesting- would the current way of doing this be actually running the netprofiler on the server itself and then sending back the log file to examine?

thin stratus
#

Yus

#

I guess in generell you have no way to properly check a cloud hosted server

wary willow
#

I asked earlier, but what do you all think are some of the "Top Ten-Twenty Must Knows/Tips&Tricks" for doing Multiplayer in Blueprints?

#

Stuff like using GetPlayerController(0) for local player

#

(stuff not documented very well or at all)

thin stratus
#

hm

inner iris
#

Probably best to set up a list and have people add suggestions πŸ˜ƒ

thin stratus
#

I see people failing with the most documented things

#

So?

wary willow
#

lol

#

That is true already.

thin stratus
#
  • What Classes exist where? (Server, Client1, Client2) (GameMode, PlayerController, etc.)
  • Visual representation of "Your Character exists another time on Server and Client2!)
  • Ownership!
  • RPCs
#

That's what people fail with

#

That's what is big and fat in my compendium

#

If you want more advanced tips, then maybe don't add "GetPlayerController0"

#

Cause that's not a tip, that's just using it correctly

#

Otherwise you have to apply that to all nodes

#

If you want a cool tip, put the NetProfiler on it

#

And the PacketLoss Settings

#

Maybe an example on how to put up a proper "Server does the job, Client shows the FX" logic

#

For shooting a weapon for example

#

Such things would probably help more

hybrid ermine
#

@worn nymph thanks for the tag, i just want to clear a few things up, sorry for the incoming long post. yes i understand that my template is not for everyone and that not using Unreal networking can be off-putting. I have been wanting to build a multiplayer game since I started working with Unreal and even after all the research and going through exi's compendium, I always had the hardest time, probably the most difficult thing I could wrap my head around. I can still do it but it is still difficult.

After dealing with Gamesparks and its multiplayer/networking functionality, I was actually able to get things done and understand it. I just seem to understand it better, personally. I mean other people might understand Unreal networking better than socket driven P2P packets with a Javascript-based server for packet and functional authentication, that's fine. To each their own. Also just wanted to show that you can do things differently to achieve the same or similar results.

Back to normal multiplayer business...

twin juniper
#

does anyone know why is my packaged client getting loop/kicked from the dedicated server?

stoic scaffold
#

anybody here have experience with Multiplayer networking blueprint or code? I'm looking to pay somebody for some work to be done.

raven holly
#

Happy about the BR improvements being made to the engine. Although for this to work effectively their needs to be some education into network optimisation, which epic lacks in.

#

I am able to optimise the network of my game, after months of research. But it would be nice if epic took the time to educate devs on how to use their tools.

eternal anchor
#

@thin stratus the answer to it is simple. Unreal Engine is still mainly made for Epic internal projects

#

or for external high profit/high publicity projects

#

the upside of it is, that unlike Unity Unreal Engine actually solves real game development problems and is battletested for doing certain types of games

#

in the past it was mainly about FPS/small scale games

#

now with fortnite it's going to be (hopefully) optimized for big scale open world multiplayer games

#

which are now mainly made using Unreal engine

#

wouldn't be surprised if someone at epic noticed that top selling Unreal games are survival open world multiplayer

#

so they need to improve engine in that regard and Battle royale for fortnite is just testing ground

grand kestrel
#

And it's worth noting that the network optimizations benefit all games too, not just large scale ones

twin juniper
#

For everyone who is using GameSparks Real-Time for bigger games, please be aware that if you have a lot of big packets, GS is dropping them like crazy.

#

From GameSpark's Tech Support: If you've got an RTS or FPS with a lot of raw data moving up and down that wouldn't be optimal for the architecture of the Realtime SDK which is intended for smaller packets (It can handle bigger packets but we never tested or design the SDK this way).

thin stratus
#

With packets you mean LogEvents that have data with them? @twin juniper

#

Or the RealTime stuff they provide?

twin juniper
#

The Real Time stuff

#

Some LogEvents drop as well

thin stratus
#

Hm okay. UE4 already gives us that, so I won't use that

twin juniper
#

if the traffig gets too crazy and/or the data is too big

thin stratus
#

Yeah log events shouldn't :/

twin juniper
#

I'm an idiot because I didn't to high-octane tests before

#

Now I read that they don't really recommend using it for normal games (just smaller ones)

#

Now I'm with my dick in my hand, probably looking at Steam now πŸ˜‚

#

I'm still going to use their matchmaking/authentication system though

#

@thin stratus I know you're using Steam, is that right?

thin stratus
#

We only use Steam for Friendlist, Party and Lobby

#

GameSparks is the User Backend for Matchmaking and microtransaction

twin juniper
#

Do you launch instances based on GS matchmaking?

thin stratus
#

Yeah, contacting GameLift

twin juniper
#

It's basically uploading your dedicated server to their cloud, right?

thin stratus
#

Yeah, lots more technical stuff though

twin juniper
#

How are the costs?

#

Sorry I keep pestering you about this, I'm still getting my bearings after GSRT failed me πŸ˜ƒ

drowsy badger
#

how do you do the party with steam @thin stratus

jagged knot
#

advanced steam sessions plugin?

thin stratus
#

@twin juniper Can't tell. Not my own project.

#

@drowsy badger Using the Party Session and Beacons

#

@jagged knot

drowsy badger
#

can it do party chat and stuff?

#

sorry I'm uninformed on this plugin

twin juniper
#

aight, @thin stratus I'm gonna give it a whirl

#

thanks for the info πŸ˜ƒ

thin stratus
#

@drowsy badger It's not the Advanced Sessions Plugin

#

There is a plugin for Steam Party stuff on the Marketplace

#

Which is using the Beacons and Party stuff

#

it already does a lot of heavy lifting for you

twin juniper
#

I think UWorks is pretty well-rounded

#

but it's $100

thin stratus
#

I don't think UWorks has party sessions or?

twin juniper
#

I think it does, might be wrong, don't quote me on that

thin stratus
#

@fleet sluice

#

Also most of your pages seem to link to the wrong forum page

#
Content:
- Authentication
- Friends List
- Friends Chat
- Server Browser
- Server Registration
- Voice Recording
#

It's not listed though

twin juniper
#

I think they're hidden

fleet sluice
#

It does have parties, using Steam lobbies

thin stratus
#

Worth listing mate

#

Your Reddit and GumRoad post seem to link to the wrong forum page

fleet sluice
#

Servers (listen+dedicated) are 100% supported as GameServers, especially with the update I released yesterday, which hole-punches cone NATs. So lobbies are free to use as parties, independent of UE

#

Yea, I have to update them. I totally forgot about Reddit though

twin juniper
#

@fleet sluice really cool job with UWorks, it looks super appealing

fleet sluice
#

Thanks ^

twin juniper
#

will buy it when I'm no longer poor πŸ˜„

#

foarte tare, keep up the good work!

fleet sluice
#

And about that list: those are just the currently available examples. I'll rework the example project into a modular fashion once I finish integrating the web API and the OnlineSubsystemUWorks

#

Ty!

drowsy badger
#

is it 100$ ?

twin juniper
#

$110 if you're on the Marketplace, right? πŸ˜ƒ

drowsy badger
#

well time to continue my IOnlinePartySystem implementation then blobsad

twin juniper
#

Gumroad updates are more hassle-free and don't need to be checked by Epic

#

@drowsy badger I'm pretty stupid, so stupid question: is Steam stuff P2P?

fleet sluice
#

110 USD Epic, 100 USD Gumroad

drowsy badger
#

@twin juniper I guess yeah, the engine communicates with steam backend too

#

I'll be releasing my party implementation using Xmpp for free but you'll need to host an xmpp server blobthinking

twin juniper
#

Just trying to wrap my head around presence and stuff

#

ATM I'm using Advanced Steam Sessions

grand kestrel
#

@thin stratus what made you choose to use Steam for friend list, party, lobby instead of using gamesparks for it also? I believe it supports them

thin stratus
#

GameSparks has no MasterServer for advertising them

#

Why reinvent the wheel

urban trout
#

hi all, new to MP / replication etc. just read back-up the chat and lots of good info to help get orientated. guess it would be useful to start with someone elses project to get a feel for the mechanics and there were a couple of battle royale assets released recently... the one that uses gamesparks has already been discussed, what about this one: https://gumroad.com/l/lYBkn# not much info I can see on how it works but assume it's standard-ish? ..and a good reference?

worn nymph
#

Don't get that gumroad one it's garbage and been abandoned by the creator

thin stratus
#

Okay, I think I'm getting confused by either the LocallyControlled Node or ShooterGame

#

Inside of a Weapon, that is spawned from Server and set the Owner (in the Spawn Node) to the Controller of the Pawn that spawned it, I check if the PawnOwner is LocallyControlled

#

In the ShooterGameCode, this is true on Server and LocalClient

#

In my BP, it's false on server

#

:/ why

#

That function is called on Client and Server (after RPC).
Owner of that BP is the Client. As far as I can see, that should return true for the Server

jolly siren
#

when are you calling HasLocalPawn?

thin stratus
#

When pressing a button

#

But I assume, on Server of a Client owned Actor, it returns false

#

They have ListenServer code in there. Guess I'm just confused by their code

jolly siren
#

yeah it goes off of the remote role on the server

#
    if (GetRemoteRole() != ROLE_AutonomousProxy && Role == ROLE_Authority)
    {
        // Local authority in control.
        return true;
    }```
thin stratus
#

Other thing is

#
void AShooterWeapon::StartFire()
{
    if (Role < ROLE_Authority)
    {
        ServerStartFire();
    }

    if (!bWantsToFire)
    {
        bWantsToFire = true;
        DetermineWeaponState();
    }
}
#

If Client calls it, we ServerRPC and continue

#

So it's called on both

#

So far so good

#

That should end in "HandleFiring" being called on server and Client

#

In there, this happens:

if (MyPawn && MyPawn->IsLocallyControlled())
{
        // local client will notify server
        if (Role < ROLE_Authority)
        {
            ServerHandleFiring();
        }
}
#

Which then calls "HandleFiring" again

#

Β―_(ツ)_/Β―

#

For me that's 2 times server calling it

jolly siren
#

Yeah I hate the pattern shootergame uses there

thin stratus
#

Hm

#

FireWeapon is only called here

#
if (MyPawn && MyPawn->IsLocallyControlled())
{
            FireWeapon();

            UseAmmo();
            
            // update firing FX on remote clients if function was called on server
            BurstCounter++;
}
#

;-; that makes no sense

#

That means this if is true on the server for local clients too

#

Guess not for me then

#

Let's just use the good old controller

sterile pebble
#

@thin stratus for me shooter game fire code is too "overhead"

thin stratus
#

It is. I'm only using the stuff I need for now

#

I'm half sure that code there is either bugged or I'm using it wrong

#

With my change to check if Server/LocalClient, it works now

#

And I don't even need to call the ServerHandlingFire again

jolly siren
#

I replace shootergames spaghetti pattern with

1) when you hit fire, you call StartFire
2) StartFire calls ServerStartFire in _all_ circumstances
3) ServerStartFire fires the weapon
4) StartFire handles any sort of local simulation
#

but glad you got it figured out

thin stratus
#

Their code technically works quite fine

jolly siren
#

yeah it works, that part just isn't very intuitive

inner iris
#

@worn nymph I picked that one up when it first came out to learn from and although it’s been abandoned and has some clear bugs, I thought it was a pretty good reference for typical GM/GS/GI/PS setups and how they all interact with a game. Did you find things about it that are incorrect etc? (Finding good BP reference projects can be difficult)

worn nymph
#

Yeah just the bugs , the fact it's abandoned , it's sold as a multiplayer asset but is not setup to replicate properly and doesn't work properly across the network .

inner iris
#

It’s surprising that some basic things like reloading aren’t functioning properly (if you don’t have enough ammo in ammo pool, it’ll still reload the gun fully), yet he has the entire project set up including deep UI and a fairly complete architecture at a high level

#

You’d think he would spend the time to actually polish it up

#

From what I’ve seen, loads of it is setup really solid, just no proper considerations for a real life network situation outside PIE multiplayer

sterile pebble
#

I suppose it slowly deprecated

#

as unreal engine grow

inner iris
#

Nah it was riddled with small bugs from the start

#

But I still think as a whole it’s actually a good thing to learn from- even to see where things are in relation to the GameMode

worn nymph
#

Yeah I see your point maybe when I said garbage it was a little strong I just meant for the money the guy had a lot better purchase options with more value

#

This is kinda my gripe with marketplace assets that advertise fully multiplayer ready or supported etc . I mean there are some great ones but really in all fairness they aren't what I would actually consider fully multiplayer . Or at least not to a standard you could release a game with them . Most use internal databases or the save game system or store game data locally which in a real multiplayer game wouldn't be viable because players would just give themselves items etc . Ok the network replication might work in small player tested games but wouldn't stand up to real network conditions .

inner iris
#

Yeah I definitely agree with you. I think the main value with assets like these isn’t to receive a game that works fully networked like advertised (and a lot of people seem to think they’ll make the next PUBG by simply downloading and switching out the assets- using a pack as a template for your game is a bad idea), but it is to try and learn the overall architecture of a multiplayer game, where things go, how it’s laid out etc. Then when you understand, build your own game and improve the areas such as hit detection or like you said database stuff properly- I don’t think there’ll ever be a fully featured asset like that out as it likely relies on things external to the editor

#

It’s just nice when starting a new feature to see if you did it the same way as a reference, and if not, why

#

Building up that questioning mindset to figure out for yourself what works best I think is the biggest value- which is why I don’t mind that the pack is abandoned

worn nymph
#

This is the other trouble though how do you know that the pack or tutorial your learning from is doing things right I mean there are so many examples where something works but that doesn't mean it's the best way to do it . Just because a pack has passed epic checks etc and ticks all the boxes doesn't mean the actual code or way they have programmed is good. You could just be learning their bad habits and then you pass that on to someone else and the circle continues

inner iris
#

Yeah exactly that is something that I’m always trying to figure out- on one hand if everything is perfect from Epic, you may just copy paste the logic and not fully understand why it works, but on the other like you said, you could be learning bad practices that work but not as intended.

#

I guess the more reference the better and patterns will start emerging- why did they do that there and not here? Etc

brittle thunder
#

This isn't online multiplayer, but I figure the question is still relevant here.

#

How can I setup asymmetrical multiplayer in my Unreal 4.17 VR project?

#

I've gotten the spectator view to work fine, but for the life of me I can't figure out how to get the non-VR pawn to recieve input.

#

And this part has been, like 90% of my Unreal experience, INCREDIBLY frustrating to deal with.

#

Everything I read seems to point to using UGameplayStatics::CreatePlayer();

#

But that function only seems to work if I have the "Spawn Pawn" parameter enabled. Otherwise it returns null. I don't want to spawn a pawn automatically because my gamemode's pawn is our VR controller.

#

Aside from that, even if I use auto-posses or auto-recieve input with like 3 controllers connected, I can't control my non-vr pawn.

#

I think I got it to half-work once and since then I've been completely unable to get the input to work.

#

The only time the input works is if I have a scene with just the non-vr pawn in it and even then it seems like it

#

will randomly fail half the time.

#

Anyway, I appologize for the rambling, it's just that I've wasted like 2 days on something I can do in Unity in a few hours. If someone has any tips or links I can use to work through this I would appreciate it.

agile crane
#

Hey guys. I learned a bit for how to make my own server and stuff but, i got a problem with one of my mp game. Whenever i try to package it with the Steam subsystem plugin on i get this error;

UATHelper: Packaging (Windows (64-bit)): ERROR: Command failed (Result:5): C:\Program Files (x86)\Epic Games\UE_4.18\Engine\Binaries\DotNET\UnrealBuildTool.exe FPS_coop_shoot2 Win64 Development -Project=C:\Users\PC\Desktop\FPS_coop_shoot2\FPS_coop_shoot2.uproject C:\Users\PC\Desktop\FPS_coop_shoot2\FPS_coop_shoot2.uproject -NoUBTMakefiles -remoteini="C:\Us
ers\PC\Desktop\FPS_coop_shoot2" -skipdeploy -noxge -NoHotReload -ignorejunk. See logfile for details: 'UnrealBuildTool-2017.10.05-22.41.31.txt'
UATHelper: Packaging (Windows (64-bit)): (see C:\Users\PC\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+(x86)+Epic+Games+UE_4.18\UAT_Log.txt for full exception trace)
UATHelper: Packaging (Windows (64-bit)): AutomationTool exiting with ExitCode=5 (5)
UATHelper: Packaging (Windows (64-bit)): BUILD FAILED
PackagingResults: Error: Unknown Error

Anyone can help me ? i'm using blueprint btw.

brittle sinew
#

If you could, it'd be best to throw the full error up on Gist, to give us more context as to the error

wary willow
#

@agile crane Look at your logs

#

And yeah link it

agile crane
#

You mean to upload the full error ?

#

If so, sure

wary willow
#

yes

#

Look at the logs

#

in saved/logs

#

get the latest one with the error

agile crane
#

That's the package full text ? or something else

wary willow
#

If it's not in there

#

Actually doesn't matter

#

Just CP a crapton before that

#

And put it online somewhere and link it

#

You should see something like ERROR:

#

Those are the ones we care about, but if you have a crapton of WARNINGS: could also be a cause

#

Anyway, the logs should be in cooked I guess

#

for builds

pallid mesa
#

hi @agile crane

#

could you try to erase the spaces in your folder directory?

agile crane
#

Which folder ?

#

I don't really understand what you mean. I'm french

pallid mesa
#

C:\Program Files (x86)\Epic Games <- notice the space on "Epic Games"

agile crane
#

Oh, yeah

#

Does that's why it caused the error or smth if so, how do i change the folder name inside my project?

pallid mesa
#

i'm not a hundred percent sure if that's the case

#

but usually (at least on older versions) unreal dislikes the spaces

#

is not the folder name since unreal doesnt let you make content folder with spaces if you are working in the editor

#

its the ue4 path/location

agile crane
#

I don't get it, idk if that's a problem or not. This is my path in my hard drive C:\Program Files (x86)\Epic Games

brittle sinew
#

I'm going to guess the direct problem is probably that UBT is failing, haha

#

Regarding exactly why it can't run on that DLL however, I'm not sure

agile crane
#

Is there any way i can fix that problem ?

#

I tried packaging the game with 4.17 and i switched to 4.18. Still the same error :/

brittle sinew
#

Have you tried a repair of your VS install?

#

That seems more like a compiler issue than a UE4 issue

agile crane
#

Oh

#

Which thing should i download or repair ?

#

Like, the exact name

#

there's a lot of visual studio or stuff like that for me i can't remember which one should i need

pallid mesa
#

you can do that verifying integrity on the VS isntaller

agile crane
#

but i asked, what mean vs ? i heard of that and same in UE4 its visual studio but

pallid mesa
#

vs is visual studio

brittle sinew
#

They're on VS2015, so I imagine they'd have to go through the Windows add/remove program menu and modify it there

agile crane
#

which downloader should i download ?

brittle sinew
#

There's no "Visual Studio Installer" on VS2015, only 2017

pallid mesa
#

oh nono, go to control panel

#

programs

#

and in the programs list

agile crane
#

I need to download the 2015 or 2017 ,

pallid mesa
#

search for visual studio

agile crane
#

I did

pallid mesa
#

then press on repair/change/whatever is your option

agile crane
#

Oh yeah but, i'm confused. I need to repair the 2015 or 2017 ,

#

?

pallid mesa
#

lethal suggested that you are compiling with vs 2015

#

so if that's true

#

you should repair vs 2015

agile crane
#

alright

#

and my first question was, which i need to repair ? the community or professional or code or interprise or smth

pallid mesa
#

@brittle sinew there is indeed the possibility of the spaces affecting the compilation, i was ducked up in one project just because of the space i had in one folder, but now that im speaking, it could be just because of path length and erasing the space made the lenght of the path one character less lol

#

usually the community one

brittle sinew
#

I dunno, I don't think they'd have the default UE4 installation in a folder with a space if it could mess it up like that :p

pallid mesa
#

dunno if you are using another distro to work it out

brittle sinew
#

And you have all three? @agile crane O_o

pallid mesa
#

yeah yeah thats what i was wondering

agile crane
#

I don't know. I prob have community 2017 and code

pallid mesa
#

the first thing is...

#

figure out what version of visual studio

#

is your project using

#

hahahaha

agile crane
#

How can i know that ?

pallid mesa
#

well usually on the project settings you can set the project to be vs 2015 or 2017 (if you have them installed)

#

so the one you set there

#

will be the one you will be compiling with

agile crane
#

ew, i'm on project setting and idk where i can change that. Sorry if i'm wasting your time

pallid mesa
#

just go find on the nets how to configure vs 2015 or 2017 with your ue4 project

#

let me hand you down a piece of doc

brittle sinew
#

It's trying to use VS2015, I can tell you that much. Not sure if that's what you intend

#

(Microsoft Visual Studio 14.0 in your log)

pallid mesa
agile crane
#

aw jeez. I give up sorry

#

but, i don't like reading and also, i don't use VS or c++ i only use blueprint and these docs page are too complicated for me

#

;_;

pallid mesa
#

with that attitude you'll go nowhere brother

agile crane
#

True. I'm a lazy fat ass really, i don't like read and let's be real, i always search UE4 tutorial and check description if there is a download link for project or stuff, i'm also too lazy to stay on a tutorial and watch how to build a dedicated server since it need VS and stuff like that and most of people that are making multiplayer server only use c++ and people that use blueprint ONLY work lan really. Sorry

#

And btw, whenever i try to open VS it say i need to log in and when i do that it say, we cannot log you in or smth

#

I just click the log in button and it say that

#

i can't even writ my email or password. It sent me there

wary willow
#

lol

#

@agile crane Is your Version on C:/ drive?

#

Oh it is

#

Yeah so, I had similar issues mainly in VS2015

pallid mesa
#

well, doing things on bp doesnt excuse you. Also, download visual studio community version 2017 and set that up following this guide i sent you, then you'll need to change a lil thing on unreal project

#

but nothing major

wary willow
#

But I would get something like that error

#

So, I installed my epic version on my d: drive now

#

Away from C: drive, permissions issue

pallid mesa
#

paths with spaces? i had to put them all on desktop.... yeah same

wary willow
#

I highly recommend doing so anyway

#

Fuck microsoft

pallid mesa
#

under a projects folder

agile crane
#

But i can't even open VS and the error say my browser don't let Java script and my Java script on all my browser are on

wary willow
#

No idea if that'll fix your issue, but it does seem like it is similar

pallid mesa
#

just download visual studio 2017

#

and follow the guide dude

#

you won't lose anything

agile crane
#

Its the one already opened

pallid mesa
#

ad it will work

agile crane
#

I have 2017 installed already

pallid mesa
#

do you have all the complements installed requiered for unreal engine 4?

agile crane
#

Like ?

#

I don't get what ''complements'' mean.

pallid mesa
#

open the guide, it says it there, which ones, windows 10 sdk for game development, 8.1... ect

agile crane
#

okay

pallid mesa
agile crane
#

Yes, i did that before

pallid mesa
#

πŸ‘ then you are good to go

agile crane
#

i downloaded the c++ thing and some other stuff, Took me about 20gb

pallid mesa
#

dunno if its on project settings or editor settings

agile crane
#

but, i need to fix how to log in

pallid mesa
#

you need to change your project visual studio to 2017

#

just use your ms account

agile crane
#

but

pallid mesa
#

@outlook @hotmail ... ect

agile crane
#

how do i change my project visual studio ?

#

and i know but, i can't even log in, i can't even put my account. I open it sent me on the error

pallid mesa
#

so uninstall/install

#

repair the installation

agile crane
#

Alright

#

But i dont understand how to switch vs version inside my UE4 project file

pallid mesa
#

to change vs version i think its on project settings, people correct me if i'm wrong

agile crane
#

But where ? like, in which button should i click on the left ?

#

Package or map or description ?

pallid mesa
#

dunno, look around

#

i'm not even in my room rn

agile crane
#

alright, ill search now

pallid mesa
#

thats the attitude!

#

haha

agile crane
#

So, i fixed my visual studio i can open it now. But, i still have the same package error and as you said, i need to switch inside my UE4 project file and check which vs version is packaging with. But i don't know where do i can change that please help

ruby epoch
#

how to change max walk speed smooth?

jagged knot
#

I'm still trying to figure out what I'm doing wrong with my replication... I tried so many tutorials and different attempts, but it's still just not working.

#

^the link has 2 images^.

#

I only want to spawn 2 characters; thus I used the replicated boolean. That seems to work.

#

Now, Player 1 can move, but P2 can't see him move. P2 can not move since the P2's position on the server is replicated to the client???

#

if I use the SwitchHasAuthority in the character BP, P2 will just be stuck in one place and won't move at all

fossil spoke
#

@jagged knot OnPostLogin resides in the GameMode. The GameMode exists only on the Server, so the SwitchHasAuthority and variable replication will not work as you would expect.

jagged knot
#

okay

fossil spoke
#

Since no client has an copy of GameMode (since it only exists on the Server) it has no where to replicate variables to.

#

The SwitchHasAuthority will ALWAYS evaluate to Authority because again, the GameMode only ever exists on the Server and the Server is always Authority.

#

If you could explain what you attempting to do i could help you achieve it.

jagged knot
#

I am just trying to spawn the characters at different locations; the second one joining should also change his color (but I have already read that replicating vercor parameters on materials doesn't work and has do be done in a different way)

#

so p1 spawns at -1500, 500, 100. p2 at -1500, -500, 100

#

I also wasn't sure about "possessing" the character; the tutorial said I'd need it, but the "possession" node sais it's only for pawns(?)

fossil spoke
#

Ok well first off, this sounds like an good candidate for an Spawning System.

#

Building modular systems that perform specific functions can help you simplify alot of processes.

#

It also enables you to create clean and easily modifiable code later down the track when your goals and features change.

#

Hard coded values for example such as your spawn locations for these characters is not ideal.

#

The way to get around this is to use something an little more dynamic

#

Such as an Actor within the Level itself to help you define where these characters can spawn.

jagged knot
#

the values are only hard coded to simplify my BP for my question, the original one looks for a decent spawn

fossil spoke
#

Ok, then to clarify, only Controllers can "possess" pawns.

#

And it looks like your attempting to seperate out where the Host spawns as opposed to other Players?

jagged knot
#

I only have 2 players, so yes

fossil spoke
#

So instead of using an Boolean for HOST

#

You can check this quickly with bIsLocalPlayerController

#

If the game session is an Listen Server then the Server will have an locally controlled PlayerController, this is the PlayerController that the Host uses.

jagged knot
#

ok, did that now

fossil spoke
#

This should work how you wish.

jagged knot
#

both spawn at different locations now, just like before. It does look cleaner though

#

but p2 still can't move, p2 is always getting teleported to where p1 sees him

fossil spoke
#

Make sure that your Characters have their movement set to Replicate. Also make sure that you havent spawned the Character inside an collider otherwise it will be stuck and would seem that it cant move.

jagged knot
#

checked both already, many tutorials and forum posts told me that

#

I am not replicating the code right now

#

this is in the character itself

fossil spoke
#

Oh your using your own movement code?

jagged knot
#

...yes, is that a problem?

fossil spoke
#

The Character class already implements an very robust movement system.

jagged knot
#

yes, but not really what I want. I wanted a very simple movement that is compatible to "natural" head movement later on

#

does that mean the tutorials saying that "characters already have replication" only refer to the movement in the character itself?

#

no selfmade stuff?

fossil spoke
#

Yes

jagged knot
#

ooh, that explains a lot

fossil spoke
#

Implementing your own movement system is not an small endeavor.

#

Especially an correctly replicated movement system.

jagged knot
#

...so in that case, if I were to do that, a pawn would probably be a smarter choice than a character, right? I only switched to character because of those tutorials

fossil spoke
#

Pawn is an bare bones "possessable" class that provides some movement code but it is not as specific as Character.

#

If your implementing your own movement, Pawn maybe more ideal.

#

However that is something you would need to research.

#

I have no idea what type of system your working towards to even be able to recommend something.

jagged knot
#

ok... So my next step should be researching how to replicate custom movement?

fossil spoke
#

Yes

jagged knot
#

okay

fossil spoke
#

But you will most likely find alot of questions about replicating custom movement that is extended from the CharacterMovementComponent.

#

You will also most likely benefit from researching and getting an full grasp on Replication itself.

#

I noticed your using an Physics body as well, replicating Physics components is another very deep subject that is not easily achieved.

jagged knot
#

I don't really need it to have physics, in an earlier version I just teleported the actor forward every tick

#

if that makes it easier

gaunt kestrel
#

can someone help me with a quick multiplayer UI thing?

#

I'm trying to create a 3Dwidget for my characters health

#

and I've got the progress bar and everything, but whenever my host/client takes damage, the UI updates the same for everyone

#

Hopefully I can figure it out myself lol

#

lol nvm fixed it

#

Only the owner will see it.

hasty adder
#

So I got a question if someone wants to take a dive.. Imagine you can jump only if cs jump bool is true.. And you hit a key sends rewuest to server server checks bool and if true sets false makes you jump and then on land sets it back to true

#

Now you spam jump key. You can get the request in somehow twice to jump twice before it know not to allow it. Seems to be the case for me right bow

regal hazel
#

What is the general consensus on how to replicate view pitch in multiplayer?

wary willow
#

@regal hazel Unless the playercameramanager is fully replicated (? I actually barely have touched that class), you could just multicast the rotation of the camera.

#

I am curious as to why you would want the camera to be replicated though

#

Maybe for the head to move in relation to it?

#

(if attached)

#

If anything, I would look into how VR HMD rotation is replicated

#

Which I am like 99% sure that's good on Epic's end

#

Motion controllers aren't

regal hazel
#

Solution I've gone with is to use GetBaseAimRotation courtesy of @trail dragon bouncing ideas back and forth with me.

It has RemoteViewPitch which is packed and replicated. Was using a similar solution to this except doing it myself, difference is however RemoteViewPitch supports replays with CMC which is an added bonus

#

As for the why i need pitch basically so I can track player head/torso movement

#

For melee attacks, interactions and animations

#

Just curious if anyone had done something similar in the past and what solution(s) they had come up with

past bear
#

I have six transmitters according to the logs, but the repnotify at the end is never called - anyone understand why?

#

(this is inside a game mode)

#

(NumActiveTowers is 2)

#

...and it's just started working

#

wtf

raven holly
#

@past bear Game mode only exists on the server

past bear
#

yes

raven holly
#

πŸ€”

past bear
#

replicated variable is on the transmitter - but it does actually work

raven holly
#

whos it replicating too then

past bear
#

well, everyone, it's a repnotify var

raven holly
#

the game mode cant replicate anything directly

#

the clients dont see even replicated vars

past bear
#

"replicated variable is on the transmitter"

raven holly
#

on the game mode

eternal anchor
#

use GameState

#

that's what are you looking for

past bear
#

it isn't

#

once again: replicated variable is on the transmitter

raven holly
#

huh

#

where is the transmitter spawned

past bear
#

it's placed in world

raven holly
#

ok, replicated ofc?

past bear
#

yup

#

and it's working - there's nothing wrong with the above BP

#

not sure why it wasn't

raven holly
#

ok its fixed then?

past bear
#

yup

eternal anchor
#

maybe values of variable which called repnotify didnt changed ?

raven holly
#

rep notify is only called when it changes from its current state

past bear
#

BP logs say it was failing to find the repnotify function

raven holly
#

weird

past bear
#

aye

raven holly
#

compile issue

#

probs

red ledge
#

so, I wanna make like an rpg trade system
not really a system more of a window
a player can request a trade with another player and the other player accepts to show a window where they can drag items and then accept etc
I have no problem with the UI but how should I manage the calls or the refrences here?

hasty adder
#

Not sure never made this kinda system but I can theorize... Assuming all item information is help on a server somewhere. You would generate a transaction Id when a trade is proposed. Both users are then moving items about etc both should end up with the same transaction is and item numbers that would exists on this server uoandy made the database updates outside the igenne after both have submitted to accept

red ledge
#

not excatly on server it's replicated so

#

just a small inventory

#

so client call server, server calls the other client to open a trade and when they both hit accept the trade closes and all get their items

heady merlin
#

@wary willow its not, VR HMD isn't replicated at all.

#

view rotation is from the camera in the camera manager

#

then player control yaw/roll/pitch is if enabled

wary willow
#

@heady merlin So, is the CM replicated by default then?

heady merlin
#

the POV is yes

wary willow
#

Basically, I'm like 99% sure that if you use the regular VR template, package for MP. Without anything, the HMDs move independently

heady merlin
#

UT turns it of by default

wary willow
#

And are "replicated"

#

The hands are the only issue, since server controls both

#

But, I haven't used regular VR crap from Epic in awhile. Since you know...some guy made a pretty cool VR plugin

#

I forgot his name

heady merlin
#

mmmm, i'm pretty sure that the POV isn't applied to the camera though

#

I don't remember exactly, I don't use the camera manager stuff since I run smoothin

thin stratus
#

Clients which just joined can simply use GameState->PlayerArray

#

Well, existing clients too

#

There are 2 different things you need to handle

#

If the Player opens the Scoreboard

#

By pressing tab

#

Yo ucan just get the PlayerArray

#

Loop over it and create an entry per player

#

If however, someone joines while you have it open, you either ignore it (so he has to reopen it to see the new player), or, on BeginPlay of the PlayerState (serverSide), you do a simple multicast and tell everyone to update the scoreboard (well everyone who has it open)

#

Sorry?

wary willow
#

...

#

why delete your msgs?

#

And why would you even argue with eXi?

#

On how something should get done in Multiplayer

jolly siren
#

🏫

thin stratus
#

The hell..

wary willow
#

@thin stratus lololo

#

He deleted everything now

#

So, now my conversation looks just as silly as yours

#

Word of advice to everyone.... leave your messages.... it helps others out whenever they search

#

Or if they jump on and look, they might learn something new.

#

Deleting messages just doesn't really help anyone at all (other than yourself, since you know wtf is going on)

thin stratus
#

:P Well

hasty adder
#

Wait actualy

#

There

#

Conspiracy to make you and Vic look crazy

chrome bay
#

I missed the action 😦

brittle sinew
#

Uhh...

#

<@&213101288538374145>

minor anchor
#

goodbye person whose name I didn't even check before I banned him

trail dragon
#

Man all sorts of fun action going on in this channel today

wary willow
#

Damn...I missed something good

civic belfry
#

ah did I miss a crazy person being crazy?

#

fun times

civic belfry
#

@wary willow figured you'd appriciate this and might run into someone that needs it later

#

simplest method I could find to determine if there's a room beside another one and then move in that pathway if its clear - no idea if its normal to do something like that lol

wary willow
#

what is that?

civic belfry
#

the detectors are these collsion boxes

wary willow
#

So, it's just creating the rooms

civic belfry
#

moving already existing rooms

#

into clear paths

wary willow
#

moving?

#

Oh

#

Hmmm

#

wtf

civic belfry
#

works so far

wary willow
#

So, those rooms are always moving around?

civic belfry
#

lol its interesting - prototyping

#

yeah totally

wary willow
#

Basically like a huge maze

#

puzzle

civic belfry
#

yeah exactly. working on a weird battle royal idea in a big space ship that moves around, players have to make it to the center and the path always changes due to the moving rooms

#

the only bug I have is turning out to be a real head-scratcher

#

two rooms will detect nothing - then move into the same space

#

so I'm working on a system where they claim the empty space first

wary willow
#

Hmm

#

I think if you simplified your system right now

#

you'd figure it out quickly

civic belfry
wary willow
#

you're basically doing the same thing 6 times

#

So, first, make that into a single function

civic belfry
#

still an early prototype, but its working. getting rooms to move smoothly was fun

#

think you helped me a bit with that a while back

#

getting them to move on the clients instead of replicating movement from the server - really helped smooth things out and fix network performance

wary willow
#

also, instead of that length == 0, use IsValidIndex

#

I was trying to remember, but had to open up editor

civic belfry
#

ahh will that perform quicker? I remember having to do a lot of searching around for something so simple. it was hairy lol

wary willow
#

well, it's one calc vs two

#

well, no idea tbh, it's basically just one node doing what you're doing in two nodes

civic belfry
#

sweet, making that change now. this happens many times given the number of rooms, so I'll take any optimization I can get!

#

for the empty space claiming, my most solid idea - which is probably wrong - is to have the box collision on its own object channel and change its position to the empty space before moving it

wary willow
#

hmm

civic belfry
#

its going to be damned buggy though I bet

wary willow
#

Is Get Overlap Infos a custom node?

civic belfry
#

nope, its built in

wary willow
#

version?

#

I can't find it in 4.17.2

#

But I see it in docs

#

hmm strange

#

ahhhhhhhhhh

#

Because it's dead

#

I was like, wtf is that node

#

GGWP Epic

#

You should probably not use that node

#

@civic belfry

civic belfry
#

ahhhhh

wary willow
#

This is what I got in 4.17.2

civic belfry
#

planning on upgrading as soon as volumetric lighting is built for 17.2 as well.. haha I would have been scratching my head over it

#

nice, will note that for sure

wary willow
#

But anyway, make that one function

civic belfry
#

still on 16 on my end

fossil spoke
#

@civic belfry and @wary willow For performance sake, IsValidIndex is not quicker than an simple if (Array.Length == 0)

wary willow
#

And just expose the areas you are going to change as inputs

#

@fossil spoke That's in C++ though πŸ˜‰

civic belfry
#

the IsValidIndex isn't working for me for some reason

#

still looking into

fossil spoke
#

I meant in BP it is slower as well

wary willow
#

Maybe

#

I mean, I don't know, it's still two calls

#

versus one

civic belfry
#

tried checking both index 0 and 1

wary willow
#

And I am not going to test it, so you win πŸ˜ƒ

fossil spoke
#

IsValidIndex creates an ArrayHelper in the background which encompasses all of the Arrays information so basically your loading the entire Array just to check if it has any elements.

wary willow
#

Yeah, but Length gets all the items in the array

#

How is that not the same thing

#

and then you have to get element 0

fossil spoke
#

No, Length is an property of the array

wary willow
#

then check if it's == 0

fossil spoke
#

which is created immediately

wary willow
#

true true

#

But, I'm talking about number of calculations here

fossil spoke
#
bool UKismetArrayLibrary::GenericArray_IsValidIndex(const void* TargetArray, const UArrayProperty* ArrayProp, int32 IndexToTest)
{
    bool ReturnBool = false;

    if (TargetArray)
    {
        FScriptArrayHelper ArrayHelper(ArrayProp, TargetArray);

        ReturnBool = ArrayHelper.IsValidIndex(IndexToTest);
    }

    return ReturnBool;
}
#

Thats what IsValidIndex does

wary willow
#

That's sexy

civic belfry
#

ahhh I changed some other crap earlier and broke something else. not realted to IsValidIndex lol

fossil spoke
#

Performance wise for an simple operation of checking if an array has any elements, your better off just using Length

wary willow
#

Hmmmmmmmmmm

#

I lied, I'm going to test πŸ˜‰

#

Need to confirm anyway before I put it in book

fossil spoke
#

Good hustle

civic belfry
#

so the IsValidIndex always returned true

#

:/

#

lol I think I see what I did

#

had to switch my false and true paths after the branch, IsValidIndex now works as expected

#

like that

#

Back to claiming empty space - Since two rooms will check and empty space and detect no room in it, they will both then move into that same empty space, causing them to overlap with each other

#

I was thinking of taking a big cube collision compnant and placing it in the empty space right after it, but then after I move the room - that cube moves with it since its attached to the root scene componant. How performace heavy would spawnign and removing cube componants be in comparison?

#

seems like a solid approach unless it takes crazy resources to make and destroy them over and over

wary willow
#

So @fossil spoke

#

Interesting results here

#

I would definitely just go with the IsValidIndex

#

There is neglible performance costs, and they bounce back and forth

#

the other one had the other function obviously

civic belfry
#

interesting, I'll stick with it now that it works πŸ˜„

wary willow
#

Anyway

#

Now, make one function

civic belfry
#

I guess I could make an 8x8x8 grid of collision boxes overtop of the level

#

and then have an IsClaimed boolian on each

#

and true/false it before moving into its territory

#

uggggggggg

#

I haven't messed with making functions - should be a good time to do it

#

everything I make is still big roadmaps LOL

#

are you saying to make one fucntion that runs through all six checks, or better to make one function that does the check and adds the value to the path index, but run it one time for each direction?

#

each of those six paths, runs into a corrosponding move event

#

you helped me with that bit

#

then the move event runs on the server in multicast

fossil spoke
#

@wary willow I can hardly see that gif man lol

#

Honestly the gains for choosing one over the other would be small

civic belfry
#

Some day I will figure out why these rooms have managed to suddently start moving diagonally even though they are given only an x y or z value that is not zero

#

even when printing the xyz going into move componant to - no movement has more than an X, Y, or Z value that's non-zero

wary willow
#

@fossil spoke I just like it because it's one node

#

vs two

#

And now that I know there's no performance difference, there's no reason for me to waste .5 secs in creating an additional node πŸ˜‰

fossil spoke
#

Fair enough πŸ˜›

wind totem
#

IS some one working with
Advanced Sessions Plugin

thin stratus
#

You might just ask your specific question

wind totem
#

How specific u wish to see

#

Does some one working with { Advanced Sessions Plugin } i need help searching for server problem....?

#

@thin stratus is that good

thin stratus
#

I meant you should just post the exact problem.

wind totem
#

I dont have errors to show

#

its it self

thin stratus
#

Then describe the problem

wind totem
#

well ok

thin stratus
#

Same as me asking "Does someone use UE4?"

#

Maybe someone can help without using the plugin, as it's basically just exposing functions we all use anyway

wind totem
#

I made everything create server search server and etc...but when me and my friend try to play he or me no meter creating the server i cant find the server nothing shows

thin stratus
#

Alright, for this it would be interesting to see the LOGs of the person that hosts

#

In addition, it would be helpful to see with what settings you host

#

Are you actually using a Subsystem like Steam for this?

#

If yes, do you use your own AppID or the TestID?

wind totem
#

steam

thin stratus
#

Your own AppID?

wind totem
#

no test

#

i guess

thin stratus
#

Well you've set up the Subsystem. You need to know what you entered in the ini file

wind totem
#

wait i show u

thin stratus
#

If you use 480, then it's totally possible that you can't find the Session cause the thousands of other devs that are using it too are spaming your results

wind totem
#

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

[OnlineSubsystem]
DefaultPlatformService=Steam

[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480

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

[/Script/Engine.StreamingSettings]
s.AsyncLoadingThreadEnabled=True

thin stratus
#

I think the normal AppID entry is missing though

wind totem
#

mm can u show me plz to fix this pain

thin stratus
#

I would first try to add SteamAppId= next to the SteamDevAppId

#

with the same number

#

Then add this to your DefaultEngine.ini

#

[Core.Log]
LogOnline=VeryVerbose

#

Then start the game again and try to host

#

Then check the log if it shows any errors

#

If that works fine, package the game (or how ever your friend tests it) and let him host

#

and then you search

#

and check the log again

#

I don't have a magical fix for you

#

Can totally be that everything works and 480 is just pushing too many results

#

Might be worth setting the number for results higher

wind totem
#

can i use my own id

thin stratus
#

If you have one

#

Yes

wind totem
#

hmm that is maybe my fix tnx πŸ˜ƒ

ruby epoch
#

calling nativized bluepting overrided child event calling fatal error

wind totem
#

@thin stratus can u see my log and tell me what is the problem

#

if u have time

drowsy badger
#

480 appid works fine btw

#

can confirm, tried it with a dedicated server

thin stratus
#

Had the same just with a 480 project that I tested. Log is spammed with other sessions

wary willow
#

@wind totem make sure you are both on the same download region if using 480

#

And that the little steam window pops up on both your games in the bottom right.

wind totem
#

we both have steam on

#

can i try with u

#

if u have time

wary willow
#

Nope

#

And you didn't read what I wrote

#

And/or just ignored what I said and responded with something completely different

wind totem
#

Wow what a ignorance and attitude

#

tnx u for help

thin stratus
#

He did advice you to set the Download Region to the same

#

You kinda ignored that

wary willow
#

Nothing I said was out of ignorance. On the contrary, it was from experience that I stated such things.

#

The nope was to playing with you because I am on my phone. But I truthfully don't even need to really validate my reason to not needing or wanting to playtest with you.

wind totem
#

I did not asked u to play with me

wary willow
#

...

wind totem
#

🀐

#

u ignored my question

wary willow
#

Are you being serious or maybe I really misunderstood what "can I try with you please" meant ?

wind totem
#

well if u not on pc the u cant

wary willow
#

Oh, you didn't even say please

wind totem
#

u can say so not be a smart ass

#

ohh who are u to say please xD

#

wow

wary willow
#

Hmmm. All I said was nope. That's not being a smartass, just being direct.

wind totem
#

Well did i say thanks

#

sry cant waist more time

wary willow
#

I don't even understand your logic in all this.

ruby epoch
#

I use set max walk speed for abridge player speed if he strafe

#

but I have 0.1 sec stutter if you change speed

#

that 'cause of lag

#

any ideas to fix that?

thin stratus
#

You setting it on everyone?

inner iris
#

Fortnite still getting hacked to shreds- now speed looting and flying along with the insane aimbots / no spread shooters. Looks like this was the downside of it going F2P. I wonder how much info Epic will share on their solution and how much of it will be moving more things serverside vs implementing anti cheat / other in engine tools to fight hacking in general.

#

Hopefully this won’t mean that hackers have had a chance to take advantage of the CMC / other core components of UE4 that are used in many other projects in order to be easily able to hack other UE4 games based on this knowledge

civic belfry
#

I'm surprised PUBG doesn't suffer from this more than it already does - which hasn't been too bad based on my addiction, err experience.

#

the weapon system for instance is the FPS Starter Kit - for $200 you can see exactly what the meat and potatoes of the weapon logic looks like

#

pretty sure the base multiplayer template is from the marketplace too

#

I'd put more faith in Epic handling it than Bluehole lol

inner iris
#

It’s not actually using a template is it?

#

I know they used loads of models from the marketplace but would be surprised if the code is too

civic belfry
#

man this template I ran into the other day looks pretty much identical

inner iris
#

And yeah exactly- thought Epic would have done a much better job, but I guess it’s way harder to protect against F2P

civic belfry
inner iris
#

And there are reports of higher number of hackers spilling into PUBG lately

civic belfry
#

yeah for sure, there's nothing to lose if you get banned on F2P

inner iris
#

Wow if they really did use that template... not sure what to think.

#

Well will be interesting to see what happens next

civic belfry
#

and this

inner iris
#

Yeah the guns, medkits, loads of buildings

civic belfry
#

actually a pretty good deal if you don't have the resources to make a ton of assets

inner iris
#

Yeah good job to them of course they made a smash hit. I’d just feel dirty putting together a game based on a template and other people’s assets

#

I think the concept is why people play though and that’s why even they didn’t expect the success it had

civic belfry
#

I've got no problem with buying assets - but after 500 million in sales, I would hope they'd have the resources to make their own and replace everything

#

nothing wrong with prototyping on pre-made crap

inner iris
#

Yeah for sure

civic belfry
#

I'm trying to stop buying crap while prototyping. I've got like a graveyard of licenses I don't use at this point - looking at you voxelfarm

#

πŸ˜›

#

using low poly geometry for everything until I have most of the game mechanics worked out

#

which is weirdly looking nice, despite the lack of effort

#

also making it battle royal style. might as well jump on the gravy train LOL

inner iris
#

Nice! The harsh black walls contrasted with the bright windows is a bit hard to look at- maybe some indirect light / less flat shading might be easier to look at. This is getting pretty far off multiplayer discussion though so might want to talk in work in progress if you’d like more feedback

agile lotus
#

Should I be checking for authority before vinterp movement with a timeline?

#

Or should it run on server and client

vital steeple
#

anyone know what causes the "jiggling" from character movement when they stand on static meshes or collision boxes?

#

seems to be on replicated objects

vital steeple
#

nvm objects werent being replicated properly so each client saw something different

sweet spire
#

god cant remember last time i was in here oops

twin juniper
#

how do i detect a disconnect from dedicated server event? where are those?

cursive herald
#

game mode I believe

twin juniper
#

can't find anything useful...

twin juniper
#

is this exposed through BP?

cursive herald
#

from looking at this page its not

#

but its virtual

#

so you can route it to a BP

twin juniper
#

ok, i'll check how to do that

cursive herald
#

You can also just do something on PlayerController destroyed event

#

if you just need an event when a player leaves on the server

twin juniper
#

yes, exactly what i need

#

i'll try with that, thans

cursive herald
#

NP

#

make sure you use switch on authority or it will execute on the owning client too

twin juniper
#

i'm making a dedicated server, so i'll put it under isdedicatedserver

cursive herald
#

that works πŸ˜„

twin juniper
#

is it possible when i build development version of a dedicated server, print strings don't show in the log output?

#

i'm talking about a BP version

#

of dedicated server

rain coral
#

when I set number of players to 2, one of the windows spawn 2 clients, and the other puts the camera in a random location and doesn't receive any input. anything in particular that must be done?
https://puu.sh/xTLu8/a996195f51.png

charred tulip
#

i can't get skeletal meshes to replicate :( anyone know how?

#

just checking the box "component replicates" does nothing. they fall in different locations on the client and server.

stark dome
#

@charred tulip you want the actor to replicate. The component doesn't need to replicate

charred tulip
#

even so, doesn't update the skeletal mesh

stark dome
#

What do you mean by update

sterile pebble
#

@charred tulip what do you mean by "fall in different locations?". You need to check "replicate movement" to sync actor location between clients and server

#

@charred tulip if you are trying to change skeletal mesh ingame for other model you need to replicate this action too (actual mesh 3d model is not replicating by ue4 without you actions)

chrome bay
#

Guys can someone just sanity check something for me?

#

You can have both the PartySession and GameSession active at the same time right, and players can be members of both?

#

This goes for steam & other platforms...

#

pinging @thin stratus

thin stratus
#

Nope

#

Steam does not allow party and game to be active at the same time

#

You have to save the Steam session, let the host rehost and the clients to reconnect

charred tulip
#

@sterile pebble im simulating physics on the skeletal mesh on my characters for a "death animation." but where they fall is different for everyone. so if a player wants to revive the other fallen player, they have to go to a different location to target the skeletal mesh because it's not in the same spot.

#

which can lead to some weird situations where if player A wants to revive player B, they have to go across the map sometimes, whereas on player B's screen player A is just walking away from what he sees as his body.

#

replicating on actors or on the skeletal mesh component itself will not solve the issue

chrome bay
#

fuuuuuuucking hell. So after all that, my party system won't work anyway

#

fekin hell man