2009-10-28, 02:27 AM
Jesus, I've made a mockery of myself trying to make this playable (analog simulation mode)
What I finally realized was going on when things got ugly is you basically have two dueling perspectives. This happens when you try to circle something while looking at it (fairly common with combat and generally oggling things) ...and when you're walking forward while turning your view to look down, or walking backwards while turning the view to look up.
So what I did is I recognized these cases and just average the value of the axies to make sure they're in sync with one another. This has some side effects, but in general it's what you want anyway. It actually fairly well forces you into a clean circle when circling, and maybe adjusts for your looking up and down as well. Anyway, if not for this correction things can get ugly.
The rest looks better with slower turn rates and I'm not sure what frame rate(s) SOM likes, but might also benefit from higher frame rates.
It's all a bit silly, but it's also kinda cool to have a SOM game pulling off analog controls (you gotta admit)
Hopefully somewhere down the road we'll find out it's easier/better to let the controller drive the walk/turn speeds to this sort of effect.
Until then however, I will build this analog mode into the control config menu once I work that out. It seems good enough with the perspective correction code. The control config will be much simpler in terms of possibilities than the ini file. It will auto recognize buttons, and assign them to actions instead of keys. You can't make such assumptions in the ini file because it lacks an initialized state (during initialization) ...you wouldn't want to anyway because it would restrict to much and introduce too many dependencies.
What I finally realized was going on when things got ugly is you basically have two dueling perspectives. This happens when you try to circle something while looking at it (fairly common with combat and generally oggling things) ...and when you're walking forward while turning your view to look down, or walking backwards while turning the view to look up.
So what I did is I recognized these cases and just average the value of the axies to make sure they're in sync with one another. This has some side effects, but in general it's what you want anyway. It actually fairly well forces you into a clean circle when circling, and maybe adjusts for your looking up and down as well. Anyway, if not for this correction things can get ugly.
The rest looks better with slower turn rates and I'm not sure what frame rate(s) SOM likes, but might also benefit from higher frame rates.
It's all a bit silly, but it's also kinda cool to have a SOM game pulling off analog controls (you gotta admit)
Hopefully somewhere down the road we'll find out it's easier/better to let the controller drive the walk/turn speeds to this sort of effect.
Until then however, I will build this analog mode into the control config menu once I work that out. It seems good enough with the perspective correction code. The control config will be much simpler in terms of possibilities than the ini file. It will auto recognize buttons, and assign them to actions instead of keys. You can't make such assumptions in the ini file because it lacks an initialized state (during initialization) ...you wouldn't want to anyway because it would restrict to much and introduce too many dependencies.