branchSandboxGame/mastercancel
6 Months Ago
Bundle up entity transforms into a single message every tick instead of a message per entity Move entity movement replication to BaseWorldEntity, BaseEntity is non visual so shouldn't need this. Remove scale from movement replication as scale changes happen less frequently. Add entity movement update rate, defaults to 60, included in movement packet for interp Use bitflags to pack entity movement packet with components of transform that changed from previous packet Replicate entity relative transform if it has a parent Save entity relative transform as properties so they can be used when first replicating the entity to client Save entity parent netid directly instead of using properties (this is because public attachment functions are authority only) Add SourceExport addon. Get SourceImport addon working again. Fix NRE in ModelJsonConverter when model path is null or empty Fix up shadows on dynamic lights on source maps Skip entity spawn and destroy messages if there's no other client connected except for the host, saves an unnecessary entity serialize Add incorrect protocol disconnect reason code Add auth fail discconnect reason code Only send entity parent netid if it changes, use attach flag if it changes to non zero, use detach flag otherwise Send entity position and rotation if parent changes, just to make sure everything is synced Don't write any movement data to packet if entity has no movement flags for the movement tick SourceImport fixes to allow bsp conversion to our own format Reflection based lump reader for new map format Write map data to lumps Write lumps to map file Some Arcade gamemode fixups Basic loader for new map format Add lightmaps to map format Save displacements as mesh in new map format Add uint color to map vertex structure (displacement needs alpha to blend) Save lightmap data and try loading it from new format Create shadowmap from lightmap Save the unencoded lightmap data, slightly longer to load but less data to save and keeps the format unrelated to unreal Save ambient light samples to map format Save bounds in map model structure. Load light volume from ambient light samples. Gather vertices for convex collisions
9 Months Ago
Allow wheels to be removed by removing their prop, handles destroying of constraint
9 Months Ago
Try broadcasting entity transform each tick if ReplicateMovement is enabled Broadcast entity attachment if it has a parent Add entity relative scale Get sandbox gamemode compiling again, remove NetTest gamemode Fix toolgun click effect on listen server Add OnChange callback back to replicated vars (only when a var is recvd) Fix sandbox particle emitters not activating on spawn Replicate movement for all sandbox entities Remove attachment replication for now, needs to be designed better Add material list property for static model entity so that spawned models replicate initial material overrides Fix hitscan tool secondary fire not working when firing on client Remove base entity parent property for now, stalls client networking for some reason Only add model material path if it's valid Fix balloon pop effect not playing on listen server Call multicast rpc directly if we have authority Don't send multicast net message or netvar message to host Never send message to host when sending messages to all clients, should never need to do this Close all connections when shutting down server so client doesn't have to wait until a timeout Add disconnect reason 1004 for server shutdown Disconnect from current server before joining a new one with connect command Running connect command while connected just disconnects from current server for now to save some headache Use Trace instead of Info to clean up some spam logging from networking Add ViewAngles to IHasTools so physgun can use it for rotation Fix particle emitter name not being replicated and activated Fix model entity materials property not being generated when addons have their own properties Damage entities with hitscan right click explosion Custom collision responses for camera entity (ignore player) Right click for tracking camera. Only allow one camera spawn per player. Interp entity movement on remote entities Enable movement replication for sandbox entities
9 Months Ago
Add optional collision bounds checking to human player
9 Months Ago
Fix human spawn offset and eye offset. Fix uncrouch detection. Lerp view offset when crouching/uncrouching
9 Months Ago
Fix read/write of blacklist and whitelist json user data
9 Months Ago
Drop client if they fail handshake or auth Clamp penetration adjustment. Use box collider instead of capsule collider, capsules suck when resolving penetration for some reason. Disconnect and return to menu when cancelling on connecting screen Update Facepunch.Steamworks to get reason code and reason string OnDisconnected Always pass 0 reason code when closing connections, allows us to use customized debug reasons Use reason code 1001 for kicked from server messages Use reason code 1002 for ban messages Allow gamemodes to validate users before their connection is accepted. Can be dropped if blacklisted or not on a whitelist Use reason code 1003 for not whitelisted Add Global.EnableWhitelist, if it's disabled, use blacklist. Implement whitelisting and blacklisting from json saved in User Data. This is the default implementation for BaseGamemode, other gamemodes are free to override it Add gamemode callback for adding user to blacklist Save blacklist entry to json file when added Remove ban length from console command, isn't used yet
9 Months Ago
Bail out of Steam_OnAuthChange if response is not OK
9 Months Ago
Add C2S_ChangeUsername
9 Months Ago
Add IGamemode.ValidateUsername to allow gamemodes to validate and change username before it's assigned
9 Months Ago
Send net protocol version in handshake packet so we can reject out of date clients
9 Months Ago
Rename C2S_SteamTicket to C2S_Handshake now that the message contains desired username as well as the ticket data
9 Months Ago
Remove UnrealUtil, no longer needed Ensure every class under UnrealEngine namespace is internal
10 Months Ago
Allow client to bypass steam auth if client with same steamid is already connected
10 Months Ago
Update Facepunch.Steamworks
10 Months Ago
Send username with the auth ticket to server
10 Months Ago
Hopefully fix server sending wrong entity netid to destroy
10 Months Ago
Don't call SteamClient.SteamId on server either
10 Months Ago
Don't call SteamClient.Name on server :/
10 Months Ago
fuck it, don't auth clients, see if that works
10 Months Ago
Try installing SteamUser events on server
10 Months Ago
comment out SteamNetworkingSockets.InstallEvents(true);
10 Months Ago
init steam client on dedicated
10 Months Ago
Try again
10 Months Ago
Revert "Update Facepunch.Steamworks" This reverts commit 84c41430fb5b3d02b0aec082436df98ff971e331.
10 Months Ago
Update Facepunch.Steamworks
10 Months Ago
Ignore add block broadcast on server (so listen server doesn't add twice)
10 Months Ago
Add voxel block on server before broadcasting it
10 Months Ago
Fix incorrect client count in client info message
10 Months Ago
Don't wait until next frame to start server on dedicated, this is only needed when running listen server
10 Months Ago
don't bother waiting for assets and gamemode to load on dedicated server, this is just for loading screens
10 Months Ago
Create gamemode entity after starting game on dedicated server
10 Months Ago
Try calling SteamClient.Init on dedicated server (probably fixed in later Facepunch.Steamworks update though)
10 Months Ago
Refresh addons before starting game on dedicated server, hopefully fixes gamemodes not being found
10 Months Ago
Replicate entity model with replicate attribute instead of RPC Remove functions to get assets from native, no longer used
10 Months Ago
Remove all unreal replication and interp code from base world entity and controllable entity Remove remaining unreal networking code Try to replicate static model entity's model import settings in managed instead of native Fix human player to work with new networking, use human player for block builder gamemode Add missing radius getter to sphere entity Don't send destroy entity message for non replicated entity Send destroy entity message after destroy events, gives entities chance to send any last messages Add IsRegistered to BaseNetworkable, this allows generated rpc and netvar code to bail if entity hasn't spawned yet Add naked version of citizen player model to cut down on load times when clothing isn't necessary Add velocity and flags to server move RPC, allows human player to sync animation with movement velocity and movement state
10 Months Ago
Move InterpolationHelper to C# Try to interp flying player movement Lerp view angles properly Move player movement replication and interpolation to BasePlayer. DefaultPlayer (basic flying player) uses client side movement replication by default.
10 Months Ago
Only log non zero netid Zero out entity data offset if length is zero
10 Months Ago
Get block builder gamemode working again. Fix non background loaded textures not applying to material. Only allow setting of Replicates on entity construction and before spawning Fix movement replication for block builder player Allow gamemodes to stall the loading screen read/write voxel spawn data Fix crash creating voxel map from serailized data Serialize entity spawn data in world state as offset and length into binary blob Allow client players to add blocks to voxel world
10 Months Ago
Don't load cubemaps in background, having issues with it
10 Months Ago
Replace networkable HasOwner with OwnerConnection, we care about the owning connection, not the direct entity owner
10 Months Ago
Also wait for assets loading in background before removing loading screen
10 Months Ago
await for huds to load before removing loading screen
10 Months Ago
Don't send netvar messages to host connection
10 Months Ago
Fix all gamemode compile errors after networking changes Move AssetRef read/write into their own class instead of BinaryReaderWriterEx Spawn menu system hud once and keep it around throughout the lifetime of game, show/hide when needed. Only load menu system addon once at startup instead of every time going back to main menu, makes leaving game faster async delay before starting server so that loading screen can show up straight away before any heavy loading is done Call client rpc directly if the networkable is owned by local connection
10 Months Ago
Remove unreal replication for light entities Make light properties replicated Allow assets to be replicated with asset references Fix NRE in AssetRef Allow asset refs to have their own serialization depending on asset type
10 Months Ago
Add client.connection.status command
10 Months Ago
Handle client disconnect reason (only server timed out for now)
10 Months Ago
Add nameplates to NetTest
10 Months Ago
Add LocalClient class to deal with anything needing UPlayerController (a single player controller only exists on the local client now, not for every client on server) BasePlayer has their own ViewAngles on the managed side but uses control rotation locally, this is so server can know player view angles without having a player controller Orientate test player model with ViewRotation
11 Months Ago
Drop connection if client isn't following protocol
11 Months Ago
Bail from RPC if the networkable doesn't have replication enabled
11 Months Ago
When calling server rpc directly, set rpc client to local
11 Months Ago
Add control rotation back, needed until we remove unreal player controller shite Call server rpc directly if has authority, Call client rpc directly if has no authority, Ignore multicast rpc if has no authority.
11 Months Ago
Player.ControlledByLocalClient handled by us instead of unreal Remove control rotation and location stuff from player Give players a replicated player state property. Send client info last so that client can create a local client object from local player state. Add very basic client side movement replication to test player
11 Months Ago
Use player state as player owner so that IsOwnedBy passes
11 Months Ago
Attach model to test player so I can see where people are
11 Months Ago
Removing testing replicated properties from BaseEntity
11 Months Ago
BasePlayer replicates by default
11 Months Ago
Possess player locally using a client RPC in player state
11 Months Ago
Destroy player on client leave Add/remove player state from world connection list when player state entity initializes or shutsdown
11 Months Ago
Pass an optional reason to Gamemode.OnClientLeave. Handle ClosedByPeer and ProblemDetectedLocally disconnect reasons
11 Months Ago
Destroy player state after Gamemode.OnClientLeave. Add chat messages on client join/leave Call Gamemode.ClientJoined after sending client info and world state so that gamemodes can't send an early RPC
11 Months Ago
Add scoreboard to NetTest Destroy player state when client leaves
11 Months Ago
Cache local player controller so pawns can be possessed on client Keep a seperate IConnection list for clients in authing stage so that player state entities etc aren't spawned until they're let into the game Authed clients spawns a replicated player state entity. Multicast rpc and var replication only sends to authed client list Make player state a public entity so it can be replicated properly Remove EntityClass from SaveData, unused Fix LinePreserve preprocessor error
11 Months Ago
Server sends connecting client info (client id and user id) so that local client can be created Set client username as steam name Set client authority if it was created on server Add chatbox to NetTest so it can be tested through new networking Server renames player name if it's in use, sends the name in client info message (only useful right now for testing multiple clients with same steamid) Send client info for every client on server, not just the connecting client
11 Months Ago
Just destroy replicated entity with DestroyProper for now (forgot that Destroy is Authority only)
11 Months Ago
Server sends all clients (except for host) serialized entity data when a replicated entity is spawned Deserialize entity creation message data on client, attempt to create and spawn Bail instead of throwing exception on recv var for entity that doesn't exist yet (need to stop vars coming in before entity creation) Enable new entity replication again, previous commit fixed the fuckup Send destroy entity message Destroy replicated entity on client when receiving destroy entity message Add test entity that despawns after 5 sec to test entity destroy message
11 Months Ago
Load replicated entity properties and spawn after native initialization so that NetworkRef is valid Serialize entity property with netid instead of uniqueid when sending over network
11 Months Ago
Entity spawn data no longer goes through unreal sockets, handled all in managed Move game messages from ClientConnection to GameClient. Add World.IsListenServer Bypass authority check on world cleanup Ending game while there's a client connection will close the connection and wait for a disconnect event before returning to main menu Create new list to hold entities on world cleanup, main ent list is invalidated when destroying an entity
11 Months Ago
Set client side entities netid to 0, seems to work fine
11 Months Ago
Remove replicate attribute on test entity field, need to make sure world state comes in before replicated vars before that can work
11 Months Ago
Fix Entity.Replicates always setting to true, whoops
11 Months Ago
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.
11 Months Ago
When creating replicated entities, create the managed entity class within the replicated scope, create the native class and spawn it outside the scope.
11 Months Ago
Game server ignores any message except steam ticket without the client being authed
11 Months Ago
Ignore socket disconnect events if the connection has invalid userdata (library is calling it twice on timeout, maybe a bug)
11 Months Ago
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
11 Months Ago
Skip steam auth for local clients for now (having issues with it)
11 Months Ago
Fix multiple steam auth for local steam id
11 Months Ago
Gamemode replicates by default. Init game menu system for remote clients because this wont be replicated.
11 Months Ago
Add generated code to skip RPC and call directly, check is always false for now
11 Months Ago
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
11 Months Ago
Fix Manager.ActorCreated bailing early for native spawned entities
11 Months Ago
Cleanup world and create replicated entities on world state message
11 Months Ago
Attempt to create entities from replicated world state inside a replicated entity creation scope
11 Months Ago
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
11 Months Ago
Default entity authority to true (eventually this will be set to false for replicated entities) Call remote spawn if entity has no authority
11 Months Ago
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)
11 Months Ago
Create relay socket if Global.RelaySockets is true
11 Months Ago
Allow multiple steam auth if steamid is same as server (for testing only)
11 Months Ago
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
11 Months Ago
Try sending serialized entities as json to client after sending server info
11 Months Ago
Don't send replicated properties for non replicated entities
11 Months Ago
Allow server to disconnect clients. Add kick player test command.
11 Months Ago
Return to main menu when server disconnects a client
11 Months Ago
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.
11 Months Ago
Remove steam auth callback on game server shutdown. Ignore steam ticket messages from client if they've already been authed.
11 Months Ago
Stub out all access to unreal player controller and player state
11 Months Ago
Assign incremental client id