Development update - December 8, 2023 (Patreon)
Downloads
Content
Today's development update video does include new grappling hook and various network connection simulations with on-screen keyboard info to notice latency easier.
On-screen keyboard could be used to simulate quite non-standard keyboard & mice controls on tablets in future (something very similar to how it is done in Star Defenders 2D. Has anyone checked that on tablets/phones already by the way?).
I have a feeling today's video clips were recorded with my system's equalizer settings. If something feels off about sound - it could be because of that. It actually starts to worry me that I might be hearing game not in a same way everyone else does - I have tested sounds under different headphones and in each case nothing sounds the same. In theory though, all this could be solved with some sort of global EQ effect later.
Multiplayer
- Fixed a bug causing slowly sliding ragdolls to not be visually updated on client-side due to physically sleeping;
- Implemented rotation sync for "T" entity;
- Fixed a bug in speculative projection & collision logic for time nudge that was causing shaking for characters idling on sloped surfaces;
- Improved speculative sliding for time nudge;
- Fixed an issue causing sniper rifle and low ammo warning sounds to not work on client-side;
- Fixed an issue causing "cloud" projectiles to not have shrink effect early when client's interpolation is disabled;
- Fixed an issue causing frozen spots to not be seen due to particle shader error on client-side;
- Fixed a strange offset for bullet holes on 3D entities due to lack of matrix update whenever entity gets synchronized to client for the first time;
- Fixed an issue causing bullet holes on characters facing left direction to be flipped;
- Implemented synchronization for ambient sounds such as antigravity hums (especially needed because otherwise humming would instantly stop and resume the moment antigravity field appears on screen or no longer seen within screen bounds);
- Fixed a bug causing incorrect detection of data resent attempts during attempt to reorder event packets that either come out of order or some packets are missing on receiving side (essentially event resend logic was not working most of the time);
- Decreased status messages array size down to 1 status message since any other messages are never really used for delta-compression (some memory saving);
- Added icon over lagging players in multiplayer (red triangle with exclamation sign, can be seen in the video clips about 90% packet loss);
- Fixed an issue causing "in lag" and "is chatting" icons to not be removed whenever player's control was redirected to another character;
- Fixed a bug that was letting clients crash servers by sending truncated status message;
- Decreased amount of data client sends to server on each tick;
- Made it so "is chatting" and "is in menu" icons do block movement and attacks of a player who is afk (so we won't have players who will distractingly blink with them while fighting using some sort of possible cheats). Such block duration is around 300 ms;
- Fixed a bug causing ambient loop sounds to be occasionally muted in replay mode and especially in replay mode while in slow-motion;
- Entity scale is now synced;
- Fixed a bug causing bullet holes to be moved to strange offsets on 3D entity flip;
- Fixed a bug causing bullet holes to appear in wrong places on 3D entities if entity was not seen at the moment of hit;
- Fixed an issue causing bounding boxes for visibility of complex entities to be built while excluding some parts;
- Fixed an issue causing bullet holes to scale with scaled characters solely in multiplayer;
- Optimized wall lookup for wall referencing that would become too slow on complex maps;
- Optimized number of simulated interpolation states per each object that would often increase because of lag spikes and stay like this while causing performance degradation for client;
- Fixed crash due to removed walls being referenced during world snapshot decoding on client-side;
- Optimized number of walls participating in collision prediction for time nudge logic down to solely ones that can be seen on screen by client;
- Fixed an issue causing invisible blood particles to play collision sound (they are invisible if they were spawned when player sees them for the first time but did not see them at the moment of spawn);
- Fixed a bug in trusted controls mode (when server moves character exactly where client wants it to be, kind of allows cheating but can help with client's connection issues) that would occasionally teleport character to where character is according to server;
- Fixed an issue causing too smooth and slow interpolation for objects when server is sending world snapshots at a very low rate.
Gameplay
- Fixed an issue causing new "T" entity to play high pitch sound on flip. One of "T" entity parts had incorrect flip logic;
- Made it so "whoosh" sound is not played if player throws grenade without throwing it (holds the grab key during throw);
- Fixed a case that could make player to be frozen forever when specific new weapon was used on him in addition to freezing;
- Fixed a bug causing "beam" projectiles to not deal damage to players standing on parts of "T" entity that have projectile ignorance logic yet projectile protection with same part logic was still being triggered;
- Made it so freezing explosion can create frozen spots on movable walls;
- Fixed incorrect frozen spot spawn tracing for freezing explosions;
- Fixed an issue causing freezing explosions to not scan entities for freezing properly;
- Reworked freezing explosions frozen spot spawn to be done with radial raycast in 9 different directions;
- Fixed a crash as a result of object removal whenever player stands on top of it;
- Fixed an issue causing fire to not have decreased duration whenever there is a custom-shaped wall right on top of it;
- Fixed an issue causing players to explode on attempt to teleport outside of Hound Walker-CS they drive using teleport grenade;
- Fixed an issue causing explosions to damage walls through other walls;
- Fixed an issue causing frozen "C" entity to lose visuals of being frozen if one of parts gets broken;
- Made it so holes aren't scaling with entity scale;
- Fixed a bug that was making stuck projectiles appear smaller than they were initially;
- Fixed an issue that would spawn bleeding points with improper offset on scaled entities;
- Made jetpack activation a bit more reliable when player slightly jumps into air due to previously going up the slope;
- Made it so holding jump key and X key at the same time but releasing X key while still holding the jump key is considered jetpack activation attempt;
- Made it so players can't flood with jetpack start/stop activation sounds too much;
- Fixed an issue causing Hound Walker-CS to have invisible turrets after destruction that would prevent it from despawning completely if Hound Walker-CS had never any weapon installed into it with Level Logic;
- Made it so characters pull gun closer to their body if they are about to hit entities (and ruin accuracy);
- Made it so dust is not spawned under "T" entity when it is idling;
- Made it so "T" entity can enter sleep mode to save on calculations;
- Made it so held guns and grenades can be teleported whenever teleport grenades are used (perhaps could be useful to teleport ragdolls at some point too, but it is not implemented yet);
- Made it so crew characters leaving "T" entity at the same time won't start damaging each other due to being moved into the same spot;
- Implemented partial spawn of "T" entity parts;
- Added support for entity missing parts restoration if they were broken or were not spawned;
- Bug fixes and more improvements for "T" entity's new logic;
- Fixed an issue causing entities with restored parts to fall off of entity after flip;
- Fixed an issue causing restored parts to have wrong orientation on restored parts;
- Fixed an issue preventing proper part restoration for "T" entity due to destruction logic;
- Fixed an issue causing part duplication on part restoration for entities;
- Fixed a bullet hole issue that was causing sprite mask to not work when character is facing left direction;
- Fixed an issue causing improper offset of broken spine sprite of up-scaled characters;
- Fixed an issue causing up-scaled characters to hold their arms up while weapon slot 0 is activate;
- Made it so ledge climbing for up-scaled characters is more reliable;
- Made some parts of "T" entity to not collide with the parts of same entity type;
- Fixed an improper z-offset for parts of "T" entity when spawned with Level Editor rather than through Multiplayer snapshot decoding;
- Added regular rope kind of hook - perhaps could later be used for something;
- Fixed a crash that would happen if player was holding space key while his character was being deleted but ragdoll was kept (non-revivable character);
- Made a grappling hook that can be used to manipulate physical objects;
- Added animations to physics hook;
- Added dynamic lights for physics hook;
- Added spin limitation of physics hook's end;
- Fixed a bug causing mass calculation (for reverse push force) for connected entities to which physics hook is attached to to include players standing on the walls;
- Made it so physics hook isn't being thrown unlike regular grappling hooks;
- Made extra version of physics hook that doesn't react to damage, has minimal influence on player unless it is attached to a wall or movable and has unlimited pull force - could be used as some kind of admin tool and for tests. Has a slightly different color;
- Made it impossible to restore missing parts of "T" entity variants that are missing parts on their own to save on calculations;
- Fixed an issue causing explosion sprite to be never generated if explosion happened slightly offscreen. It wasn't working too accurately for larger explosions and especially if player happens to move camera quickly towards the source of explosion after it was made;
- Increased maximum number of allowed bullet holes on "T" entity, made this logic alterable on per-entity basis;
- Made it so liquid particles can play impact sound (as seen on video);
- Implemented lightmap texture morphing for "T" entity;
- Added lightmap update for "T" entity that depends on count of total parts and total of connected parts for each part;
- Implemented optional 3D model swapping for restored entity limbs (two entities can essentially merge into one);
- Fixed an issue causing lightmap morphing to be not inherited on broken "T" entity parts;
- Disabled alpha test cache for 3D model-based entity parts to speed up first construction.
Interfaces
- Made it so main menu background is following cursor position on screen slightly;
- Disallowed menu opening during level loading with Esc key;
- Fixed an issue causing main menu to not have animation until first click if synchronization did not happen in time;
- Fixed an issue causing inconsistent interface sound stereo balance on some devices when camera was far from zero coordinates;
- Improvements to Creations browser interface;
- Improvements to progress bars for Settings-like screens;
- Optimizations for game updating & level loading screen;
- Fixed a global font rasterization error that caused certain characters like lowercase letter "b" to have clamp effect on the left whenever character was built as polygon text;
- Loading screen image corrections;
- Fixed an issue causing crosshair to not represent speculative character's aiming and his current weapon which caused crosshair to appear delayed in case of high latency;
- Fixed an issue causing ammo HUD to not represent speculative character's aiming and his current weapon when there is one;
- Added virtual keyboard of some sorts. So far it just shows held keys, but in theory it can be used to provide UI if game will be optimized to run on tablets or other sensor devices.
Level Editor
- Fixed incorrect syntax highlighting in code editor;
- Fixed a bug causing connections between characters and their skins to be shown because of caching during level loading that was missing yet to be spawned objects;
- Fixed a crash when wall was being created in preview mode and had zero height;
- Made it so surfaces are rebuilt when shape is converted into region;
- Fixed an issue whenever missing global method was not loaded from any imported module but wasn't giving any visual error in Level Editor either;
- Made it so exiting to main menu from previewed map is warning about unsaved changes in Level Editor if there are any;
- Fixed incorrect source Creation ID detection of imported files in order to form a proper "on behalf of" Creation ID specification in request (grants access to skin that is not available to player but is available to map designer and aforementioned map is available to player);
- Made it less trivial to copy skin sources by having access to a map that references skin to which user who views map's source has no access to;
- Added padding for some of UI switches;
- Made it so newly created guns (and other objects) are assigned preview model when preview mode is enabled (probably broke after undo optimization that prevented call of the movement event until object was dragged by zero distance);
- Made it so pasted entities are centered by their bounding box rather than logical center;
- Fixed a crash from pasting an entity that never had bounding box calculated;
- Added an option for water classes to force drawing the background extension layer on top of foliage and natural textures as it happened to not always be very reliable;
- Fixed a crash that would happen when environment generation was enabled but nothing was creating foliage.
Server
- Fixed a bug that was allowing "on behalf of" logic to work even when reference source's owner did not have access to referenced Creation.
Sounds
- Decreased amount of bass in explosion sounds;
- Made one new sound for "T" entity;
- Made 4 sounds for physics hook;
- Made liquid drop sound;
- Updated barrel break sound.