3 stories

Nak explains his navigation system's pathfinding

In #developer-talk, Nak explained his navigation system to Zemen. It runs a double A* search from start to goal and from goal to start, meeting in the middle ("a trick GPS use"). The search tracks polygon entry points, and the system reads the map's AIN info_nodes. NPCs such as the 200 antlions in his video run a "dumb" AI while waiting for a path, so they seem to react immediately.

2 stories

Evgeny Akabenko asks Facepunch to publish the source of its own shaders

In #next-update, Evgeny Akabenko asked Rubat to publish on GitHub the source of GMod's own, non-Valve shaders: g_bloom, g_blurx, g_blury, g_bokehblur, g_colormodify, g_downsample, g_morph, g_premultiplied, g_refract, g_screenspace, g_sharpen, g_sky, g_sobel, g_sunbeams and g_texturize. not.ejay noted they could already be decompiled half decently with vcs-decompiler, but saw no reason not to publish them.

8 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.

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.

3 stories

Fading static props stop writing depth

In #next-update, Earu asked why fading static props stop writing depth while they fade out. Artemking4 and Evgeny Akabenko explained that fading props are moved to the translucent pass, and translucent objects don't write depth. In the evening discussion, Rubat asked why transparent props would write depth at all, and said alpha testing is irrelevant for fadeouts. Earu said he would remove his issue. Evgeny Akabenko and Earu then discussed dithered fades combined with TAA.

3 stories