usermattcancel

1,708 Commits over 1,219 Days - 0.06cph!

3 Years Ago
Add remote asset.party location to asset browser, fill it with model query Add drag data to Package in AssetList: e.g package://matt.box Add managed handler for Hammer map view drag drop events ManifestMount from Sandbox.Game -> Sandbox.Engine Bare bones dragging asset.party models into Hammer https://files.facepunch.com/matt/1b0611b1/sbox_5qCyTB85LC.mp4 Tidy up map view drag/drop targets in C#, interop more MapDoc so we can create an empty model and asynchronously set it's asset from the package fetch. There's still some messy code here, I think I need to figure out how to do handles for map nodes before this becomes a sprawling mess. And the async method is getting blocked on the main thread once dragging.. but a background thread is going to crash it. Paginate asset.party assets in browser so we see all of them Make our package drag data in the format "https://asset.party/facepunch/boomerjumppad" we could easily extend this code to let you grab these assets straight from the website then Delete dota healthbar SFM code that plagued the IToolService and ISource2Engine
3 Years Ago
Update paddle hit physics, calculate bounce with relative ball velocity to the paddle, dont add multiplied paddle velocity to ball on bounce normal, simply transfer the velocity 1:1 Fix up debug mode so the game throws endless balls at you to return
3 Years Ago
Calculate drag properly, remember that we use kg/in³ and in/s² - fuck knows how what I was doing before worked in the slightest, this feels much better Bounce a bit higher Only use this paddle sound, it's cooler
3 Years Ago
Keep cleaning / refactoring, keep game logic seperated from everything else, isolate RPCs for future lag comp
3 Years Ago
Tidy up, remove any concept of serverside balls, isolate all physics logic to its own class
3 Years Ago
More sync fixes, got a better idea though Adjust networking even more, this is very playable now, but I think I can still do better Don't bounce on carpet, scale bounce sound w/ velocity
3 Years Ago
Client decides when it wants to take control, various other desync fixes Haptic feedback when hitting ball
3 Years Ago
Make the ball completely clientside with a backing server entity for sync, make all of serving clientside too
3 Years Ago
Revert "Make Entity.IsAuthority a virtual property" This reverts commit 1533014f19347562cbac07a148ee3926da2f64ad.
3 Years Ago
Quick hack to update client values to server values when authority changes to you
3 Years Ago
Pack our ball velocity into the usercmd as well so the server/other client can take it over
3 Years Ago
Alternating client authoritative networking * Implement an alternating client authoritative model - whichever clients side of the table the ball is on gets complete authority over the ball position and velocity. * Physics are simulated entirely on the current authoritative client now. Pack the ball position into the UserCmd and the server sets the ball entity's position so the other client can see it and takeover when authority switches. * Substep the physics at fixed(ish) 0.005ms steps within FrameSimulate's delta time, each step moves the ball and checks against the paddle sweep. This may be unconventional but it gives us a perfect result and never misses. * Fix paddle collision sometimes sending the ball backwards because of a negative velocity length, added an abs.
3 Years Ago
implement simple debug slowmo to make sure the angular hits are correct Implement alternating client authoritative - whoevers side of the table the ball is on gets complete control of the ball
3 Years Ago
Make Entity.IsAuthority a virtual property
3 Years Ago
Neater way of giving client authority over the ball Implement physics substeps on a fixed-ish time step within FrameSimulate, move the ball and try to collide with the paddle each step - this is probably quite unconventional but it gives us the perfect result and never misses
3 Years Ago
Use abs on our paddle return velocity length before multiplying by the sweep normal, stops the ball flying behind the paddle Simulate physics entirely clientside each frame, make the client authoritative packing the ball position into the usercmd. The game should decide which client is authoritative based on which side of the table the ball is on.
3 Years Ago
Tidy up map view drag/drop targets in C#, interop more MapDoc so we can create an empty model and asynchronously set it's asset from the package fetch. There's still some messy code here, I think I need to figure out how to do handles for map nodes before this becomes a sprawling mess. And the async method is getting blocked on the main thread once dragging.. but a background thread is going to crash it. Paginate asset.party assets in browser so we see all of them Make our package drag data in the format "https://asset.party/facepunch/boomerjumppad" we could easily extend this code to let you grab these assets straight from the website then
3 Years Ago
Add remote asset.party location to asset browser, fill it with model query Add drag data to Package in AssetList: e.g package://matt.box Add managed handler for Hammer map view drag drop events ManifestMount from Sandbox.Game -> Sandbox.Engine Bare bones dragging asset.party models into Hammer https://files.facepunch.com/matt/1b0611b1/sbox_5qCyTB85LC.mp4
3 Years Ago
BaseItemWidget: Ctrl clicking selected items removes them from the selection
3 Years Ago
Fix AssetBrowser not loading saved settings correctly - Fixes Facepunch/sbox-issues#2063
3 Years Ago
Fix Hammer texture replace window's asset picker shrinking and becoming unusable Asset Browser: can make new folder from AssetList
3 Years Ago
Enable MultiSelect on AssetList Don't try to open a context menu if we have no options, otherwise Qt will moan Implement shift click multiselect in BaseItemWidget https://files.facepunch.com/matt/1b0211b1/sbox_2u4H5Gcpcl.mp4
3 Years Ago
Entity.networkTags should use StringComparer.OrdinalIgnoreCase when updated from network
3 Years Ago
Fix FileSystem.RebuildContentPath() skipping over addons because it was using File.Exists instead of Directory.Exists. Fixes Facepunch/sbox-issues#2085 and probably quite a bit of other stuff
3 Years Ago
steamaudio_enabled -> steamaudio_enable, drop FC_ARCHIVE since I suspect loads of people had it saved to 1 :(
3 Years Ago
Temporarily disable Steam Audio by default to resolve crashes as the heap corruption has persisted even without IPL_SCENETYPE_EMBREE
3 Years Ago
Tag steamaudio_enabled so we can see it in Sentry, so we can be 100% sure
3 Years Ago
Add steamaudio_enabled cvar
3 Years Ago
forgot to force add the .dll / .lib for aftermath
3 Years Ago
Catch nvidia gpu crashes with nsight aftermath and `-nvgpucrashdebugging` cli flag, struggling to get any significant context out of this on D3D11 so may just revert this at some point
3 Years Ago
m_pDriverVersion reports as "unknown" instead of a null string
3 Years Ago
don't use V_vsnprintf in SentryOutput, external code can specify the funky %S format specifiers Texture2DBuilder.Finish(): correctly check the memory required for texures w/ mips
3 Years Ago
Remove fallback DX9 code for getting driver version, it's straightforward to grab from the registry by the DX adapter LUID. This returns the same windows driver version numbers DX9 was reporting, but I've added some vendor specific renames e.g for nvidia "31.0.15.1659" becomes "516.59" making it easier to filter by driver for us rendersystemdx11: stop linking d3d9 rendersystemdx11: stop linking nvapi LoadD3dCompiler calls Plat_LoadModule without full path ( this is exactly the same way ADJ and we use the same d3dcompiler_47.dll - so hopefully that fixes weird WINE shit ) Replace Direct3D 9 PIX with D3D11 ID3DUserDefinedAnnotation - we're getting a much better list of events in RenderDoc now too New: https://files.facepunch.com/matt/1b2911b1/qrenderdoc_5uxtBKqZlV.png Old: https://files.facepunch.com/matt/1b2911b1/qrenderdoc_fcTCgPGtQT.png - Enable CPixEventScope to record events, these are used to tell us our View / Layer - Don't limit these events behind Plat_IsRunningOnCustomerMachine() - there is no overhead and it can be incredibly helpful for us having them on Steam builds Implemented following guidance of: https://developer.nvidia.com/blog/best-practices-gpu-performance-events/ rendersystemdx11: don't link d3dx11 legacy stuff Fix ErrorReports::UpdateGpu usage from rebase conflcit Delete dead D3DX dlls
3 Years Ago
Delete dead D3DX dlls
3 Years Ago
Remove fallback DX9 code for getting driver version, it's straightforward to grab from the registry by the DX adapter LUID. This returns the same windows driver version numbers DX9 was reporting, but I've added some vendor specific renames e.g for nvidia "31.0.15.1659" becomes "516.59" making it easier to filter by driver for us rendersystemdx11: stop linking d3d9 rendersystemdx11: stop linking nvapi LoadD3dCompiler calls Plat_LoadModule without full path ( this is exactly the same way ADJ and we use the same d3dcompiler_47.dll - so hopefully that fixes weird WINE shit ) Replace Direct3D 9 PIX with D3D11 ID3DUserDefinedAnnotation - we're getting a much better list of events in RenderDoc now too New: https://files.facepunch.com/matt/1b2911b1/qrenderdoc_5uxtBKqZlV.png Old: https://files.facepunch.com/matt/1b2911b1/qrenderdoc_fcTCgPGtQT.png - Enable CPixEventScope to record events, these are used to tell us our View / Layer - Don't limit these events behind Plat_IsRunningOnCustomerMachine() - there is no overhead and it can be incredibly helpful for us having them on Steam builds Implemented following guidance of: https://developer.nvidia.com/blog/best-practices-gpu-performance-events/ rendersystemdx11: don't link d3dx11 legacy stuff Fix ErrorReports::UpdateGpu usage from rebase conflcit
3 Years Ago
Hammer: fix crash when closing editor sessions with active working sets
3 Years Ago
Make compile errors from publishing report to error list, catch this and report it properly on the publish window. Also make tool addons report to error list properly.
3 Years Ago
Include prerelease versions of Visual Studio when looking with vswhere Fixes Facepunch/sbox-issues#2058 Accidentally removed 1 line too many, fixes non-tools not opening
3 Years Ago
Remove some obvious dead code and unused stuff from gameinfo.gi, update the DeveloperHelpURL to the wiki Get rid of -toolsonly, didn't launch anything and our tools are so integrated with the editor it doesn't make sense Remove GameUI interface Cleanup native tools menu bars to match our C# editor, I'd do this entirely in C# but we don't have interop on every tool
3 Years Ago
Delete complicated / hacky pane modes from Hammer map views ( Game, Asset Browser, Object Properties, Entity IO ) Create a dock widget below the Hammer viewport for the asset browser Create the new C# asset browser in Hammer, quite a few things work already with no effort :o Reimplement the Hammer pane embedded asset browser as a dock widget, tabify it at the bottom alongside our new C# one, always show the legacy first (for now). And in general tidy up / simplify the implementation of this Add these asset browser dock widgets to the View->Toolbars menu Need to setObjectName on these so they saveState properly Remove QHeaderView from asset browser grid layout, not useful takes up a shit load of space Legacy asset browser icon sizes match our new asset browser icon sizes, makes the medium icons actually usable in embedded browsers Don't bother showing the new asset browser at all in Hammer, have it opt in from View -> Toolbars so we can get some proper feedback on it Asset browser dock widgets collapse properly on ToggleAssetBrowserDockWidget command Add ToggleAssetBrowserDockWidget command to Hammer that does exactly that, default key bind Alt + A Cleanup HammerAssetBrowser class location, move OnAssetHighlight / OnAssetSelected that inspect / open in editor to MainAssetBrowser Setup default locations for Hammer dock widgets a bit better, open selection sets by default but tab them next to the Outliner since you're going to be using one or the other and not both. Give asset browser dock widget a sane default size Default Hammer map view port to single 3d pane since thats what 90% of people use all the time
3 Years Ago
Default Hammer map view port to single 3d pane since thats what 90% of people use all the time
3 Years Ago
Don't bother showing the new asset browser at all in Hammer, have it opt in from View -> Toolbars so we can get some proper feedback on it Asset browser dock widgets collapse properly on ToggleAssetBrowserDockWidget command Add ToggleAssetBrowserDockWidget command to Hammer that does exactly that, default key bind Alt + A Cleanup HammerAssetBrowser class location, move OnAssetHighlight / OnAssetSelected that inspect / open in editor to MainAssetBrowser Setup default locations for Hammer dock widgets a bit better, open selection sets by default but tab them next to the Outliner since you're going to be using one or the other and not both. Give asset browser dock widget a sane default size
3 Years Ago
Reimplement the Hammer pane embedded asset browser as a dock widget, tabify it at the bottom alongside our new C# one, always show the legacy first (for now). And in general tidy up / simplify the implementation of this Add these asset browser dock widgets to the View->Toolbars menu Need to setObjectName on these so they saveState properly Remove QHeaderView from asset browser grid layout, not useful takes up a shit load of space Legacy asset browser icon sizes match our new asset browser icon sizes, makes the medium icons actually usable in embedded browsers
3 Years Ago
Delete complicated / hacky pane modes from Hammer map views ( Game, Asset Browser, Object Properties, Entity IO ) Create a dock widget below the Hammer viewport for the asset browser Create the new C# asset browser in Hammer, quite a few things work already with no effort :o
3 Years Ago
AssetPicker explicitly plays sound files and sound events, these are normally handled w/ the inspector previews of them.
3 Years Ago
Add IAssetSystem::OpenPicker( IAssetType* type, IAssetPickerListener* pListener ) which opens our AssetPicker from tools addon CQAttributeEditor_SoundPicker ( used in Hammer and probs other shit ) uses the managed AssetPicker, this is way easier to use, doesn't show duplicate entries and shows all sound events not just base ones. Old: https://files.facepunch.com/matt/1b2311b1/sbox_yEIejKDxCd.png New: https://files.facepunch.com/matt/1b2311b1/sbox_8xvDTdEb0c.png
3 Years Ago
Addon creator will derive a path from the provided ident
3 Years Ago
Fix tool.minimal template Tool addons reference base tools addon
3 Years Ago
Add Rider as a code editor (thanks @peter-r-g), I didn't test it but it's just the same as the VSCode one with different regkeys so it should be fine, & clean up some duplicate code around code editors too For default code editor pick VS > VS Code > anything that is installed
3 Years Ago
Fix touch events collision filter exclusion where it needed both entites to have touch events off Fixes Facepunch/sbox-issues#2046