So how do you optimize your games?
Things that get carried over to scenes get pooled. So things like particle effects all come from the same pool. You don't have to reload your 'fire' effects for each level if you use the same, or similar, effects throughout the game.
See where you can load lower resolution textures. Our normal maps are half the size of our albedo (Albedo being the map that gives you the colours - the actual texture). Some maps can go down to even smaller sizes.
Don't use mipmaps if possible. Mipmaps are maps that scale according to camera distance. In locked off 2D games you generally have fixed cameras (within a couple of zoom levels). Having a texture loading up multiple states becomes unnecessary.
You also have to play around with what you can pool. We pool all of our footstep sounds, and most of our background sounds, and then mix those live as the level is played. So they are always there, they just have their volumes altered depending on the level.
Honestly it just comes down to shaving seconds off of some things. We stream most of our external data 'live'. So all of our text is streamed from external resource files as you play the game. That way there is 0 loading when you come into a level. There is a payoff in that there may be a cycle or two pause as it loads the streaming data when you call it, but you can cover that with fades and transitions. Some people leave optimization to the end of development because it takes time you can end up optimizing things that get cut. We prefer to optimize as we go along.
There are also psychological tricks you can use. We don't have loading screens, but rather a black screen with a little loading icon so we know the game hasn't jammed. That way we aren't drawing attention to the fact that the game is *****LOADING*****. Its more like its
loading.
Its also a good idea to carry over music from the previous screen over the loading page. Even if its background sounds it keeps the continuity of whats happening. Your brain edits out the loading screen because you are still engaged in the game.
Im sure Im missing out on like a billion things, but Im not a programmer. These are just the ones that I know that we use!