Enslaved<\/a>: \u00a0Dude (or dude-ette, as appropriate), your dead-zone is broken on the right analog stick. \u00a0You’re clamping small values of the right analog stick to zero, but you’re not re-normalising the rest of the stick’s throw. \u00a0You need to do something like this: \u00a0“inputValue.x = (inputValue.x < 0.1)? 0.0 : (inputValue.x-0.1)\/0.9;” \u00a0(obviously, I’m simplifying that code by ignoring negative numbers, but you get the idea). \u00a0Additionally, after fixing the dead zone, you really should square the values you’re getting from the right analog stick (while still maintaining the sign). \u00a0So like, if the stick is reporting a value of 0.5, square that value and feed it into the camera rotation code as 0.25. \u00a0This will give players finer control over low-speed camera movement, while still allowing fast camera movement to work at the same 180-degrees-per-second speed that you’re using now. \u00a0You know how the game control feels a little bit wobbly right now, how it’s difficult to run in a straight line? \u00a0A lot of that is because of exactly this issue, the camera turning faster or slower than the user intended, and taking the player’s “run” direction along with it. \u00a0 If you made the two changes I’ve outlined here, the rest of the game control would feel a lot more steady. \u00a0(The bad “crossing-the-line-of-action” camera placements in some levels, of course, would still be a problem. \u00a0But that’s not your fault, and wouldn’t be as easy to fix. \u00a0I feel your pain, and will note that this is exactly why it’s so important to build your camera strategy together with (or before!) the levels, instead of placing cameras after the level mesh has been built. \u00a0Be sure to get this note into the game’s internal post-mortem, if it isn’t already!) \u00a0I hope you get this message and implement the changes; \u00a0you’re doing a lot of really neat cutting-edge camera stuff in this game, but it’s being let down a lot by these fundamentals. \u00a0In any case, I’m quite looking forward to seeing what exciting new things you do in your next game! \u00a0:)<\/p>\n","protected":false},"excerpt":{"rendered":"Haven’t had a whole lot to say in the past week; \u00a0various potential (but not yet accepted) real-life-income-making details have been taking up all of my attention, so I haven’t actually gotten much coding done at all. I was particularly surprised at the level of response I got to my earlier comment about master classes;…<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":""},"categories":[7],"tags":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/po9WK-rX","_links":{"self":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts\/1733"}],"collection":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/comments?post=1733"}],"version-history":[{"count":0,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts\/1733\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/media?parent=1733"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/categories?post=1733"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/tags?post=1733"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}