In the train to work I wanted to start with the collision detection per tile. However I noticed I didn’t fix one of the issues with the tile edge detection. It was what I expected, that one row and column of tiles wasn’t included in the check. Just including them froze the game though. The check I used was incorrect so it went on indefinitely. Now it checks if it gets in range of the starting point. If so it aborts further checking and that seems to resolve the issue.
After that I quickly set up a struct for the per tile collision. Tomorrow I can try to implement it. The tiles will contain a lot more data right now. But later on I think I can compress it down again to just a single 32-bit value. So just for testing it’s way easier to just use as much data that I need to be able to quickly test and iterate.