When drawing textures, I’ve learned that it’s a much better idea to bind them to one sprite sheet in order to save memory. I want to make the level tiles be either 32x32, or 64x64 seeing as this makes enforcing a sprite sheet’s size much easier. The problem is, I don’t want the game world to look too big, and I don’t want it to look too small. Is forcing the graphics context to transform an entire area to a certain size an expensive operation?
No, it’s entirely free assuming you make a few calls for the whole map, not per tile. Your GPU does a matrix multiplication anyways, so it’s literally the exact same load for your GPU, and your CPU simply does glTranslate(), glRotate() and glScale() a few times per frame. Just don’t do it per tile.
Concerning texture size, there’s no difference here either, but you might want texture filtering which is a bit tricky to get right with sprite sheets.
Scaling won’t necessarily be expensive but it probably will look ugly. Scaling 2D art usually doesn’t look great (except for up-scaling 2D pixel art w/ nearest neighbour, which is a stylistic choice).
If you want your game tiles to be, say, 42x30 pixels, I’d just do that and not worry too much about the small amount of wasted space in your sprite sheets.