Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

This week was a lot of future planning and tangential work surrounding the game. I did manage to do a couple things though.

More gamepad tweaks

One problem with the gamepad aim assist discussed earlier was that it would actually adjust your aim away from the target in some cases. I put in a simple check to prevent that. It would also adjust the camera far too noticeably if you were aiming nearly straight up or straight down. Another check fixed that issue.

Even so, some players are still struggling with the gamepad controls. Today I tried a cubic response curve rather than the quadratic one I've been using, but it felt too wild. Then I found this incredibly detailed article about gamepad acceleration in various popular FPS titles.

Turns out that in addition to a response curve, they all apply some form of acceleration. So in Call of Duty, one of the twitchier titles, even if you mash the stick all the way, it takes 0.2 seconds for the rotation to reach full speed. Halo actually employs two acceleration curves: fast for the first 0.2 seconds, then a slower buildup of speed through the 1 second mark.

For now I went with the Call of Duty acceleration model. I also decreased the FOV from 80 to 70 degrees (FOV slider is on the todo list). We'll see how it fares in playtesting.

Rating system

The rating system determines your standing on the leaderboard. Right now, the only two factors that matter are a) whether you won, and b) how much energy you had left over. Could maybe add more scoring incentives later.

SDL

GLFW's gamepad support was simply broken, so I switched to SDL quite some time ago. I've been battling it ever since. On Mac, the fullscreen support just doesn't work. Granted, fullscreen on Mac is totally bonkers. I'm not sure what the expected behavior should be, but I'm pretty sure what I have now is not it.

On Windows, it works fine except on my laptop, where the DPI is 120 instead of 96. I've tried every combination of calling / not calling SetProcessDPIAware(), asking for fullscreen / windowed / borderless fullscreen window, etc. It's 100% a tossup as to what window resolution you end up with. I'll keep fighting it, but if anyone has any SDL tips, I'd love to hear them!