Hello again
@Josepho
About the textures being loaded at the begining of the game, look for example right now im working in a game that has a result of more than 20 textures pages of 2000x2000 but if i compile it with the yyc it only looks that weights 19 mb in the process, which is a bit confusing it should be a lot more. Isnt it?
About the textures swapp, I read about it throguth internet but i am confused about how it works. So what i understood is that game maker only has 1 texture page loaded at the same time and he loads and unloads different texture pages in order to draw the scene? That would explain why the game weights so little in memory. Am I right about it?
Please people, correct me here if I'm in anyway wrong. But think of it as always being page related.
If you have 2 things that are in different texture pages (or groups) and you're going to draw both in the same scene/surface/anything, you'll have a texture swap during the draw processing. Again, your VRAM is not your RAM, maybe you're just checking your RAM, and much more was already indexed in your VRAM, which you need some driver/program to check.
VRAM is what is loaded in the video card ram, that receives the texture page, draws it and then goes to the next texture page (which is also loaded to the VRAM, unloading the last one if necessary). Therefore, your VRAM may be able to hold more than one texture page, but that depends on your graphics card or the device you're playing on.
GM does all that for you, you simple needs to tell it the size of the texture page and set the texture groups. Which, if they're big, may improve to a lower number of pages to be swapped, but takes longer for each swap to happen (since more memory needs to be translated between RAM and VRAM).
Ive got the paid version of windows, and mobile and the only thing i have seen related to that its just the image, but i was talking about a loading bar or something like that. Is it possible? But maybe its not important if its so fast loading the texture pages..
For some platforms you can't. Usually those things are loaded with the binary at the very initialization of the program. In the case of Android and iOS, you may have load screens but no loading bars (as far as I know). Unless you create one of yourself while loading by code your sprites with sprite_add. For windows it doesn't have a loading screen at all, everything is loaded with the binary. And lastly (I don't know about the remaining ones) in HTML5 you can make an loading extension, which can be googled (i don't have the link anymore) and is pretty simple to build, since every texture page has to be received as an HTTP request for the image, and usually takes some time if you have too many pages or very big texture pages (in this case I can tell you that more pages is usually worse than bigger pages).
Not exactly, all the graphics can be inside the game bundle, but they are more than 400 drawings, they use 6 textures pages, the texture pages wont be used dinamicly depending on what im showing on that moment if I group them in the different texture groups and im sure they are not being draw by any draw event?
Well, it's like I said, they'll be probably loaded to your ram right at the start of the game (which is the slowest process, but believe me, wayyy better than not doing it at the beginning). The things that drop fps are the ones that takes too much of your draw time. Loading a texture page between rooms or when loading a new room is SLOW, since the disk is the slowest thing ever. Therefore, loading it at the beginning of the game allows you only to move from your RAM to your VRAM.
If you have an asset/sprite that is on a texture group, and is going to be draw, the texture group page will be loaded to the VRAM to allow it to be draw. But if you never use that asset at all, but any other asset in that texture page is needed at any given moment, a swap will happen so that other asset is able to be draw....
At the begining i wanted to do it by loading from the external files included in the game, but if game maker has this dark magic system that loads and unloads things from vram then i would prefffer doing it like that.
Which is the proper way to do it?
The proper way to do it is to load everything in the IDE. Memory wise you will be fine because its compressed and only uses one copy of it.
https://forum.yoyogames.com/index.p...jectively-worse-memory-wise-vs-ide-why.47258/
Well, that was a nice discussion, pretty important to take that in mind when deciding what to do. Great!