---------------
Gameplay Notes:
---------------

- Control the player movement with world-space controls, rather than typical 1st-person 'tank' controls. 


---------------
Installation:
---------------

Select '3rdPerson_Merged.sceA' under Preferences -> Environment -> Map

Turn on Tilt Sprites with Camera:
Preferences -> Graphics -> Rendering Options -> Tilt Sprites with Camera


---------------
Versioning: 
---------------

v1,  14 Dec 2025
-- Initial Release


---------------
Postmortem/Misc:
---------------

Most of the player inputs are not directly accessible by Lua in Aleph One as of v1.11, so it's a bit of a hack.

This implementation uses the following to achieve the effect:
a) Lua forces the player facing to be locked towards the same yaw axis as the camera. This allows for capturing the player's intended relative movement direction. The XY delta between time steps is then used to determine which direction the graphical portion of the Marine should face. Since the legs are locked in the camera direction via the Lua for control capture purposes, the base leg graphics are rendered invisible and a replacement Ephemera graphic is used instead to show facing.

b) The top portion of the graphic is controlled by the 'head direction' and while it can be set in Lua, unless the player is holding the 'Glancing' key,  it tends to move between the Idle() and PostIdle() stages of code execution. This leads to fired projectiles that don't match the intended 'head direction'. Since there's a trigger for projectile generation, an offset is generated for actual 'head direction' and intended 'head direction' and applied to each projectile.

c) The engine uses a portal renderer and despite the camera being associated with the polygon it's above, some polygon culling is observed at the edges. My implementation perhaps isn't the best.

d) Aleph One v1.11 introduced the feature of sprite tilting towards camera. This feature is needed otherwise the sprites would have looked like flat cut-outs when doing this trick.


Because the movement delta determines the facing of the Player, if the player is already pressed up against a wall/monster (but facing away), then they are not able to move-toward further and thus 'face' that monster or wall.
Similarly, since the player is technically always locked towards the camera axis, they won't be able to toggle doors, switches etc that the sprite looks like it's 'facing'. This could likely be fixed with smarter coding.

All new sprites are stored within the Player Collection.


---------------
Credits:
---------------

Author: Zott and Gemini 3.0 Pro

Feel free to modify and include in your own works.
Attribution appreciated but not required.
