13 stories

Complaint about the new notification on blocked spawns

In #next-update, a straight white male criticized the warning shown every time a player fails to spawn a prop, entity or weapon (from a commit on 28.08), arguing that the failed spawn is indication enough and that servers run prop placement scripts. Albino said it pops up even with tips turned off. Later the same day, a straight white male added that the code calls the popup with GAMEMODE:AddNotify with no checks.

Menu state on dev loses Vector, HTTP, CreateMaterial and more

In #next-update, Cynthia listed functions missing from the menu state on dev: Angle, CreateMaterial, GetLoadPanel, HTTP, http, LerpAngle, LerpVector, OrderVectors, UpdateLoadPanel and Vector. Rubat confirmed it and said the change wasn't silent: the changelog states "Remove some unused libs from menu state". He added that the wiki shouldn't list menu state functions at all, since the menu state isn't meant for modding. On GitHub, kila58's issue "CreateMaterial missing from menu state" was closed as not planned.

Builds move to GCC 14; FS_fread warnings try to include the file path

Commits aa4090 and bda422 on main move the build toolchain to GCC 14 and try to add the file path to CWin32ReadOnlyFile::FS_fread warnings.

Details
  • aa4090: file path in FS_fread warnings; LuaJIT, Bootil, VPC and the game build with GCC 14
  • bda422: ToGL builds with GCC 14 ("I pushed too soon accidentally"); fixed FreeImage not building on Windows; build scripts can now almost build on vanilla SteamRT 4

Max PVS networking range: CheckTransmit approach suggested

wrefgtzweve suggested that a per-player max networking range could be done by checking distance in CServerGameEnts::CheckTransmit before IsInPVS.

Details

In #next-update, Redox asked Rubat for it before the next update, saying it allows a big client FPS and server tick boost; Astralcircle said his server already uses a PVS-culling client fog and called it a lifesaver for open maps. Nykez asked how it plays with pop-in.

Per-entity materials suggested instead of the matproxy library

In #lua-help, full metal sergeant 228 asked whether there's a better way to do controllable textures, since he heard the default matproxy library is very slow, and noted LVS creates a material per entity. Artemking4 suggested instancing a material per usage from a base material and changing only what's needed. Asked by TankNut how slow matproxy must be for that to be the alternative, he said creating materials is "dirt cheap" because they are just containers for shader inputs.

JSONToTable converts vector-like strings even with ignoreConversions

In #lua-help, 0d9b reported that util.JSONToTable turns strings that look like vectors into vectors even when called with ignoreConversions set to true. He asked whether this is intended, calling a JSON parser that mangles the output without an option to keep the original values "a bit useless for... parsing json". Artemking4 said he prefers MessagePack.

TankNut: no Lua equivalent of PhysicsImpact for physics-driven player movement

In #developer-talk, TankNut described problems with his physics-driven mech: movement is unpredicted, so multiplayer feels slow, and hook order breaks things because the mech moves in PhysicsUpdate after its turrets update in PlayerPostThink/Think. He added that the biggest problem in recreating player movement is that Lua has no equivalent of entity->PhysicsImpact, though ApplyForceOffset might be enough. He later said it may matter less, since it seems to be only for touch-related things.