7,277 Commits over 3,592 Days - 0.08cph!
Fix Entity.Replicates always setting to true, whoops
Add bool to mark entities as required by engine so they don't get cleaned up (really these shouldn't even be put into the ent list) Add a bullshit long number onto networkid for client only entities so they don't conflict with replicated entities for now.
When creating replicated entities, create the managed entity class within the replicated scope, create the native class and spawn it outside the scope.
Game server ignores any message except steam ticket without the client being authed
Ignore socket disconnect events if the connection has invalid userdata (library is calling it twice on timeout, maybe a bug)
Refactor game server to identify clients by client id instead of steam id (multiple local clients share steam id, duh)
Skip BeginAuthSession for local clients sending ticket across socket, host process will have already been authed
Cache connection userdata before closing it so it doesn't get wiped
Skip steam auth for local clients for now (having issues with it)
Fix multiple steam auth for local steam id
Gamemode replicates by default. Init game menu system for remote clients because this wont be replicated.
Add generated code to skip RPC and call directly, check is always false for now
Entity replicated false by default, world entity true by default (just to keep it how it was before)
Log replicates bool in ent_list command
Fix Manager.ActorCreated bailing early for native spawned entities
Cleanup world and create replicated entities on world state message
Attempt to create entities from replicated world state inside a replicated entity creation scope
Add replicated mode in entity creation scope (we need to know if an entity is created via replication to set authority and netid)
Add create native function to entity that takes a netid that can only be used in replicated entity scope
Default entity authority to true (eventually this will be set to false for replicated entities) Call remote spawn if entity has no authority
World IsClient check using Global.IsDedicatedServer. World IsServer check using GameServer.Initialized
Server directly accepts client on client connect if server is running instead of sending steam ticket, bypasses sending of server info and world data. Allow main menu to create menu gamemode (IsServer is false in main menu)
Create relay socket if Global.RelaySockets is true
Allow multiple steam auth if steamid is same as server (for testing only)
Remove unreal player state usage
Start the game directly when starting game as listen server (no need to connect to server if we are the server)
Make sure reliable arg in rpc attribute is used in generated code
Add optional validate arg to rpc attribute
Try sending serialized entities as json to client after sending server info
Don't send replicated properties for non replicated entities
Allow server to disconnect clients. Add kick player test command.
Return to main menu when server disconnects a client
Assign entity netid from managed instead of native
Remove all replicated properties from managed component
Move NextEntityId to GameServer so it can reset on server shutdown (only server should be using this anyway)
Return 0 for next entity netid when server isn't initialized (server isn't running in main menu)
Attempt a world cleanup at the start of Manager.StartGame
Only remove entities from main entity list if they have a valid netid. Remove manual cleanup of current gamemode and menu system, assert instead to check world cleanup is doing its job.
Remove steam auth callback on game server shutdown. Ignore steam ticket messages from client if they've already been authed.
Stub out all access to unreal player controller and player state
Assign incremental client id
Fix client to server RPC breaking due to prediction trying to access ClientId from unreal
ent.ClassName falls back on type full name when attribute has no name
Add ent.NativeClassName so I can see what bullshit unreal is spawning
Destroy current gamemode when making a new one (wont need this when we have world cleanup)
Tell gamemode when a client joins/leaves
Make sure socket async stops on close
Close client socket when going back to main menu or ending game
Close server socket on shutdown
Create gamemode and init new menu system on server info. Destroy previous menu system when initializing a new one (we don't have world tear down to handle this yet)
Don't auto connect to local server when running as dedicated server
Get rid of dedicatedserver and menusystem internal unreal maps, only empty bootstrap map is needed now
Manager.StartGame determines game state based on main menu argument and Global.IsDedicatedServer instead of using internal unreal map names
Don't attempt connection to a socket if it already exists, null out socket on disconnect
HandleNetworkFailure not dependant on unreal
Game.JoinServer connects directly to server instead of unreal client travel
Create server socket with port from Global.Port. Make sure to connect using server port when connecting to your own listen server.
Bail starting new game if game server is already initialized
Shut down game server when going back to main menu or ending game
Send server info to client on successful steam auth
Remove required gamemode, unused and sucks
Init game server when starting new game instead of using unreal server travel. Create new client without unreal player controller bullshit after steam auth.
Insert IsServer check before sending var across network (vars can only be replicated from server to client)
Add empty gamemode specifically for testing new networking
Support owner only netvars
Send netvars through steam sockets instead of unreal sockets (message per var change until we bunch them up)
Add auth ticket message type. Client sends auth ticket message on initial connection, server uses it to begin auth session.
Server->Client RPC sends to connection that owns the entity