userDaniel Pcancel

2,011 Commits over 488 Days - 0.17cph!

Today
Merge: from spectate_3p_fix - Bugfix for spectating yourself causing a client crash Tests: tried to spectate via F1 menu - no longer possible
Today
Clean: fix formatting for PlayerInfo Tests: none, trivial change
Today
Update: Block Spectate button in F1 Server menu when selected player is local player - updated engineui.serveradmin.playerinfo.prefab to link up the button Tests: Opened Server tab, selected self in list - button was not interactible
Today
Bugfix: Spectating - prevent server accepting spectating yourself Tests: Used F1 Server tab to spectate myself - no crash
Today
Merge: from spectate_3p_fix - Bugfix: fixes 3rd person spectate camera not following spectated player Tests: spectated target in 3rd person while original body was in a box - camera orbitted target as expected
Today
Bugfix: Spectating - when in 3rd person mode, run overshoot checks relative to target entity, rather than current Used to work previously because current entity was part of parent - but since recent changes that's not the case Tests: 2p session on craggy - put spectator into the white box the started spectating. when switching to 3rd person, camera no longer stuck in box and is orbiting around target player
Today
Merge: from jobs_noclip_mask_fix - Bugfix for UsePlayerUpdateJobs > 0 NoClip checks incorrectly using vehicle layer mask - Updated unit test to check for above case Tests: ran unit test, tried to push against modular vehicles on craggy
Today
Bugfix: AreNoClipping - fix vehicle layer inclusion logic actually excluding the layer from the mask - Also uncommented one test that I accidentally submitted as commented Tests: ran unit tests - they now pass
Today
Tests: TestNoClipConsistency - add vehicle detail colliders to catch inconsistency - also don't reinvent the wheel with permutation combinations, just use [Values] instead as before Tests: unit test fails (expected, will fix next)
Today
Tests: Amend TestNoClipConsistency to generate players permutations with non-zero vehiclePauseTime alongside forceCastTime This should trigger a slightly different code path for noclip checks. Still need to generate relevant physics colliders to validate this path. Tests: ran TestNoClipConsistency
Today
Merge: from jobs_coarsedist_crashfix - Bugfix: fixes crash when players connect to a fresh server with UsePlayerUpdateJobs > 0 Tests: local C+S with UsePlayerUpdateJobs 2 enabled from the start - no more exceptions by height and shoredist jobs
Today
Bugfix: UsePlayerUpdateJobs - fix GatherWavesIndicesJobIndirect returning invalid count of deepsea players - Also fixed invalid index usage for acessing positions Tests: local C+S with UsePlayerUpdateJobs 2 enabled from the start - no more exceptions by height and shoredist jobs
Yesterday
Merge: from main - Bugfix: Removes client-side network group setting when updating parents - fixes phantom entities on cargoship and other global network entities Tests: flew around craggy, was able to pick up items, chop trees, kill animals. spawned cargoship and dropped items on it, spawned dressed player & killed him, then deleted them using console cmd - they got cleaned up as expected
Yesterday
Update: BaseEntity.UpdateParenting no longer tries to update network group - When client receives an entity snapshot, allow it to update the network group if it's out of sync We already get network group change messages - there's no need to try to "guess" on the client and potentially desync. Tests: flew around craggy, was able to pick up items, chop trees, kill animals. spawned cargoship and dropped items on it, spawned dressed player & killed him, then deleted them using console cmd - they got cleaned up as expected
Yesterday
Bugfix: Run same network-group-inheritance checks on client when recieving snapshots This resovles a scenario where dropped items/players on a cargoship/crane/etc have local net group, but client resolves global net group. Tests: Spawned cargo ship, spawned NPC, player - killed both. dropped items. flew away, destroyed them via console, flew back - they were gone
Yesterday
Merge: from main
Yesterday
Bugfix: handle spawn groups on non-baseentity gameobjects Tests: procgen 2.5k in editor
Yesterday
Merge: from navmeshsurface_optim - Optim: Ghostships now use a static, detached navmesh, saving us on navmesh re-integration every physics step - New scientists adapted to work with detached navmesh - In C+S editor, we now automatically exclude client-scene entities from dynamic navmesh gen Tests: spawned all ghost ships, observed scientists patrolling, dogfighting, sprinting
Yesterday
Clean: remove obsolete TODOs Tests: none, trivial change
Yesterday
Clean: remove test code that offset the baked navmesh Prepping to merge back Tests: spawned all variations of ghostship, engaged scientists - didn't spot any weirdness
Yesterday
Merge: from main
Yesterday
Bugfix: LimitedTurnNavAgent - when path following, ensure facing direction is applied in world space Previously it was done in navmesh space, causing scientists to look in the sky during dogfight Tests: observed scientists dogfighting and chasing behaviors - they either looked in direction of run or me
3 Days Ago
Bugfix: Ensure NavAgent properly initialzied when trying to spawn on a detached navmesh Tests: spawned ghost ship, AI started patrolling and running around to shoot me when spotted
3 Days Ago
Bugfix: SpawnGroup now applies entitie's world<->navmesh transformations when picking a spawn point Tests: Spawned ghostship - all NPCs spawned, but not moving (likely my other experimental code borks it)
3 Days Ago
Update: DynamicNavMesh allows to exclude specific navmesh source roots - Ghostships register to be excluded, since they have their own baked navmesh - [editor-only] Added logic to exclude all roots from the client scene This CL also has some temp ghostship debug code (offsets navmesh to validate it) Tests: in water world spawned a GhostShip and enabled AI - only backed navmesh popped into existence. AI didn't spawn - need to investigate next
3 Days Ago
Merge: from main
12 Days Ago
Merge: from hackweek_jit_explorer - Buildfix for missing type definitions Tests: built scripts in all editor modes
12 Days Ago
Buildfix: move type declarations to JITViewer Tests: compiled scripts in all editor build modes
12 Days Ago
Merge: from hackweek_jit_explorer - New(editor): Tools/Engine/Jit Viewer that allows to inspect native instruction output from JIT compiling managed methods Tests: used Jit Viewer to inspect BasePlayer::ServerUpdate. Ran perfsnapshot in C+S editor
12 Days Ago
Update: consolidate various editor tools in Tools/Engine Tools top menu still doesn't fit on my 1080p screen .-. Tests: checked the Tool menu
12 Days Ago
Update: Update ServerProfiler.Core binaries to release - built from 6737a87e Tests: perfsnapshot in editor, used jit viewer
12 Days Ago
Merge: from main
15 Days Ago
Update: apped hex prefix when emitting native method address Tests: none, trivial change
15 Days Ago
Update: emit address of native function Trying to chase up why sometimes names missmatch with what VS disassembly window shows Tests: viewed BasePlayer::BoxTest
15 Days Ago
Bugfix: use mnemonics instead of bytes when checking if decoding should finish My initial attempt to inpsect raw opcode didn't work in all cases, leading to false-positive parsing aborts. Tests: viewed BasePlayer::ServerUpdate and BasePlayer::BoxTest
15 Days Ago
Update: better detection when to stop decoding stream - now tracks max referenced jump address and stops on last ret or jmp -offset Tests: viewed nested call in BasePlayer::BoxTest
15 Days Ago
Bugfix: ensure instruction pointer gets saved to list only if we stopped parsing teh stream Previously we could add the ip to the list before we decided to stop decoding, leading to out of sync issues Tests: viewed BasePlayer::BoxTest
15 Days Ago
Update: change asm text color if it's a potential address Tests: viewed BasePlayer::BoxTest
15 Days Ago
Bugfix: avoid double-draw Tests: viewed BasePlayer::BoxTest
15 Days Ago
Update: Add relative jump arrows This was much more painful than expected, but a bit of hodge-podge and it's gud Tests: viewed BasePlayer::BoxTest
16 Days Ago
Update: hook up native symbol resolution - ServerProfiler.Core built from 0b3b7d86 This gets us various mono_... calls, but still missing some function names - guessing those are mono-related but not part of mono dll itself Tests: Viewed BasePlayer::BoxTest and stepped through nested calls
16 Days Ago
Update: separate out JITViewer logic from ServerProfiler - ServerProfiler.Core built from 1074407d - also contains native symbol resolving logic, but not plugged in yet JITViewer functionality is now editor only(dll won't ship with builds). Tests: viewed BasePlayerr::BoxTest
16 Days Ago
Update: couple improvements to JIT viewer display - relative jumps are shown as "signed hex" offsets, to avoid jnz 0xffffffffffffffe cases - avoid duplication of address when we have a method name for a jitted address Tests: viewed BasePlayer::BoxTest and BasePlayer::ServerUpdateParallel
17 Days Ago
Clean: get rid of debug logs Tests: none, trivial change
17 Days Ago
Update: remember selecter row index between dissasm states Tests: viewed BasePlayer::BoxTest
17 Days Ago
Update: use consecutive int3s to stop decoding Doesn't always apply, but when it does saves a lot Tests: viewed BasePlayer::BoxTest
17 Days Ago
Update: allow inspecting instructions at address-like values Need to improve stream decoding in those cases, as it can run away to 12k lines of assembly even though the method was over on line 10. Tests: viewed BasePlayer::BoxTest
17 Days Ago
Clean: logic refactor in prep for multiple view support Tests: viewed BasePlayer::BoxTest
17 Days Ago
Update: resolve addresses to methods/trampolines where possible - ServerPorfiler built from 18130132 A bit ugly, but don't care for now Tests: viewed BasePlayer::ServerUpdateParallel
17 Days Ago
Bugfix: jump addresses are now valid - Also added ability to show opcode bytes - ServerProfiler built from 95cd43f7 Was due to invalid use of library API (I should've RTFMd) Tests: viewed BasePlayer::ServerUpdateParallel