What if as vehicles rotate and their tile locations get skewed, the sprites were also skewed to match?
Ignore the fact that I skewed every tile for this screenshot, that was just the easiest way to code it. Pretend it’s just the vehicle tiles that are skewed. Everything is actually still arranged on a square grid. At a 45 degree angle, this looks pretty darn good, I think.
22.5 degrees gets trickier. Now the tiles are laid out in a 2:1 (or 3:1 at the midline) pattern, so the skewed sprites don’t line up. However, it would be possible to draw the sprites shifted left/right by about 1/4 of a tile to make this look just as good as the 45 degree version. Shifting the tile draw locations by 1/4 of a tile shouldn’t confuse the player too much. They can still get in and out by aiming for the mostly-right location of the tile outside.
Now for a crazier part of this idea… What if movement inside a skewed vehicle was also skewed? Right now, when a vehicle is skewed certain tiles move together and apart. Some things that were 2 moves apart are now 1, and vice versa. I would change that. When inside a vehicle, I would change the movement metric, so that moving in a compass direction moves along the axes of the vehicle rather than on the world compass, and moving diagonally moves to the same tile that you’d end up with the same move in an unskewed vehicle. I think this would actually make for a lot smoother gameplay than we have now with skewed vehicles.
To explain the movement idea:
Vehicle: Skewed:
ABC ABC
DEF DEF
xGHI xGHI
Currently, moving north from E goes to B in the normal vehicle and C in the skewed vehicle. I would make a “north” move from E go to B in both cases.
Currently, skewing the vehicle brings D/C and G/F closer together, and A/E/I farther apart. I would keep their movement/combat distance the same throughout the skew.
Currently, parking the vehicle in the skewed configuration allows a zombie at x to step into E, which would normally be surrounded by walls. My proposed warping of the local coordinate system would prevent that from happening.