Collision detection mostly works and each day it gets mostly-workier. All that’s left, seemingly, is some special case collisions that don’t work well, mostly colliding the left and bottom sides against sloped ceiling tiles, which only comes up when making pointy ledges. I could pretty much just make the game without using ledges like that, since they’re never really necessary, but I’ve come this far and I’d really like to just get this one last thing working so I can just call this done done done.
I replaced the old version of ground tracking with something a lot simpler, which is mostly good except I carelessly made an assumption or two which leads to it working incorrectly on steep slopes, so that will need to be addressed as well. Once I tackle those two things, I’m done with collision, hopefully for good this time.
I also spent several hours tweaking the player movement parameters, trying to tune her in a way that would work well for gameplay. The original movement speed and jump power meant that a vertical jump would be 9 tiles high and the longest jump possible would land on an equal-height platform about 32 tiles away. The screen width is 48 tiles, so that means with the camera centered on the player a ledge 32 tiles away would be well out of sight, which seemed pretty sub-optimal. After a lot of tweaking of maximum movement speed, jump height, and acceleration, I finally settled on a set of values that seemed pretty satisfying, leading to a vertical jump that’s just barely 8 tiles high and a horizontal jump of 24 tiles, leading to a ledge that’s just barely off-screen. I dunno if that’s perfect, but I experimented with making the player sprite smaller and didn’t really like the effect, and reducing the values any further would, I think, start to feel unsatisfying with the player at her current size. I’ll likely end up playing with this a bit further once I have more test enemies and can focus on really optimizing moment-to-moment gameplay for a little while, but I think I learned a lot and have started to zero in on something satisfying. I’d like to add some visual guides to the tile editor, either once these values are finalized or generated by code based on current parameters, to help me place jumps in a way that’s challenging in a satisfying way.
Aside from that, I’ve been having a bit of difficulty adjusting to my current more-demanding schedule. These difficulties have been a bit exacerbated by circumstances making my days generally a bit crowded and busier than they would be otherwise, but regardless I find myself struggling to keep up with my four assigned tasks at once: EverEnding, art commissions, music composition, and writing. I don’t think it’s too much, but it is a lot, and at this point I need to be sure to take breaks as-needed and maintain focus so I can keep up. I think it will be fine, and I’ll get used to it, but I don’t think I can really add anything on top of what I’m already doing, so hopefully nothing big comes up.
So: Over next week, finish collision detection/ground tracking, add guides to tile editor (and maybe some other improvements), create test enemy class. Seems feasible.