(again, proper thumbnail TBA) Controls remain the same: WASD or arrows operate gas, brake and steering. Space to hop and drift is back, as is W+S to turn on the spot. Hold down 2 when clicking the green flag for 2 players: Orange uses WASD and Space, Blue uses arrows and /. If you hold 3 and go green, a CPU spawns, but will do absolutely nothing. AI's TBA, aye? Shift your mouse to the screen's lower end to show variables. When showing checkpoints, hover over them to check their ID and direction. Well, it seems I kickstarted a new collab project. I best get a move on with what I wish to add, starting with a rework of internal functionality based upon a suggestion of Barry's: mapping the 3D karts and objects to a hidden 2D plane. A 2D plane such as the one exposed here, for I haven't adapted the renderer yet. Au reviour, colour-touch blocks! The system is heavily based upon what Boulder Attack REDUX used to apply player hit effects; even post-retirement does the ingenuity of @ZYellow continue to inspire. Here's a breakdown: - The track is divided into clones with paired terrain type IDs, stacked back-to-front compared to the visual seen here, with the complete track layered over the top. (hold Z to hide the main map sprite and see how the clones look) -- Why backwards? As @griffpatch revealed with his sprite-layering tutorial, sprites at the back execute their scripts last, so they'll take priority in the following broadcast... - Every frame, the "terrain check" broadcast is triggered as many times as there are present karts. A set of unique "K-hitbox" sprites, perpetually layered over everything to always execute first, are all aligned with their corresponding karts. - With every broadcast, each terrain clone + the map itself detects if it is contacting each K-hitbox in ID order, updating the state of the corresponding kart if so. As said above, those visually in front and physically behind take priority. -- If a K-hitbox isn't contacting any clones, it's state defaults to "Out-of-Bounds", with each map having a specific default O.B. defined in it's base costume. - Once terrain state is set, the "render" broadcast runs the rest of the kart's scripts, including how the terrain affects it's handling. The walls remain as their own sprite detected by the karts themselves for the time being, though they may become clones too eventually.... Later on, all of this will be made invisible in favour of rendering the 3D visuals on top, with each and every kart, item and obstacle having it's position dictated by the 2D map. Other drastic changes to miscellaneous scripture include: - Preparations made for reintegration of splitscreen multiplayer and programming of CPUs. As said earlier, hold 2 when starting for double the karts! - Internal ground-level reduced from z10 to z0. (render can differ) - Fallen karts respawning at their current checkpoint. (shall be refined later to prevent spawning on mud) - Stunned karts no longer relying on broadcasts + stunned state transferred from terrain state to the invincibility-frames variable. - Checkpoint kart detection utilising the "K-hitbox" sprites, patching conflicts when two or more karts contacted checkpoints simultaneously. - Drift sounds being moved to the same sprite as the terrain sound handler. - Some briefer sounds triggered by broadcast from kart clone to main sprite to evade engine pitching. (a seldom-seen tech intended to save space in a few AY-minigames) Credits to all mentioned + for the original + for karts and miscellanous assets + Nintendo for SFX and BGM.