Great work Otis, I remember the camera frustum/ the clipping going out of sync when only moving the camera coordinates only or something like that, seems like you fully understand how the Cryengine camera work in Ryse. How long did that take you (research and all)?
3 hours, give or take, for this camera from scratch to completion. For the Prey one, which uses the same engine, I spent several days on it (I think all in all 20 hours or so), and I could re-use a lot of knowledge and code from that in this camera, but still had to hunt for the coords and everything. The more cameras you do, the easier it gets

The hardest part now is to get your foot in the door so you have that initial coordinate of the camera, no matter if it's a copy of the real one.
3D engines work with stages, and it's easy to find a camera (3 coords, with or without angles) or matrix (3 coords + 9 floats, or 16 floats) copy as in general they tend to copy this data with the rest for the next stage (as often they have multiple frames 'in flight'), so you run into a lot copies which all seem to be updated when you move the camera around but there's just 1 which is the source of it all. That can be a bit of a puzzle and sometimes timeconsuming. With the work on the Prey camera I knew how it looked like in-memory, it's something like this:
moving the camera around will change the values so you can see what's what. From there, it's rather straight forward: block the writes (which can be a lot in CryEngine, this game had 9 code blocks writing to it...), overwrite camera coords + quaternion with your own values and the game will use your values as if they were the original values
Hopefully you can use this when you're working on a cryengine game's camera next time
for the people bored to tears, here a shot
@NattyDread: thanks, I see you put them to excellent use, as always!
