GML Visual Memory...

It will ALWAYS look pixelated, vecabec monitors use pixels!
Seriously tho, why this sentence? You could tell me that apples are red, and it would be less useless.

The best quality you can achieve is by using sprites that are the same size as they will appear on screen.
(Because the downsampling is done before hand at a higher quality).
I'm having severe brain damages...
You are telling me that the best quality is achieved by using sprites that are the same size as they appear on screen.
Ok, but if I do so, I need a bigger image, USING ALOT OF MEMORY, because my game runs on full screen mode.
I want them as the resolution of my screen (1920x1080). This makes no sense!

I'm just stupid, or you are kidding me?
 
Of course, that's why you create them at the size you plan are drawing them at like GMwolf said. See, this is all the planning phase of the game, figuring out resolutions and such. Much better to create the sprites smaller at a manageable memory footprint then scale up from there. You didn't answer our questions, is your character actually taking up pretty much half of the screen?
The character is taking 1/8 of the screen. It's pretty big.
 

kupo15

Member
Ok, but if I do so, I need a bigger image, USING ALOT OF MEMORY, because my game runs on full screen mode.
I want them as the resolution of my screen (1920x1080). This makes no sense!
This is confusing all of us. We are all assuming due to the size of your sprites that you are drawing your assets as if the resolution of your game is at 4k or something. It baffles me how saying us telling you draw your assets at a smaller resolution requires you to make BIGGER sprites??? Your character currently is taking up 70% of the vertical height at 1080 resolution...not 1/8
 

GMWolf

aka fel666
The character is taking 1/8 of the screen. It's pretty big.
1/8 of 1080p: thats 138pixels. Yet your sprite is 750px

if you mean 1/8 by area, that would be ~360 px. still not 750px

If you need larger than that, then you either sacrifice the option to use animations, use vector graphics, or use actual video encoding.
 
1/8 of 1080p: thats 138pixels. Yet your sprite is 750px

if you mean 1/8 by area, that would be ~360 px. still not 750px

If you need larger than that, then you either sacrifice the option to use animations, use vector graphics, or use actual video encoding.
This is confusing all of us. We are all assuming due to the size of your sprites that you are drawing your assets as if the resolution of your game is at 4k or something. It baffles me how saying us telling you draw your assets at a smaller resolution requires you to make BIGGER sprites??? Your character currently is taking up 70% of the vertical height at 1080 resolution...not 1/8
Ok, it's something like, 1/4 of the screen... :|

Screenshot (51).png
 

GMWolf

aka fel666
Ok, so that's 1/2 of 1080 vertical.
540. Not 750.
So just that will reduce you vram usage by half.
 
Ok, so that's 1/2 of 1080 vertical.
540. Not 750.
So just that will reduce you vram usage by half.
Ah come on, if I do something smaller it will be disgusting to look.
Look it by yourself. I need to see the character big, is not a platoformer.
View attachment 21368 View attachment 21369
If you watch here, I've posted the fixed version of it. And its less big than 540.
I don't know, I kinda feel that I'm wasting your time guys.
 
I don't know, I need to convert and redone ALL of the sprites and then try.
Sure it will be better, but I don't know for how much time. But whatever, the hope is the last thing to die right?

In case it will work: thanks everyone for the help, sorry if I'm clear as a backwarded book, hope to never have such problems. :D
 

kupo15

Member
In case it will work: thanks everyone for the help, sorry if I'm clear as a backwarded book, hope to never have such problems. :D
No problem, its all part of the learning to be a game designer. Picking a game resolution and figuring out the appropriate resolution to build your assets at is a big decision. Kinda hard to do if you don't have much experience knowing the memory limitations to balance HQ assets with memory footprint. I can't tell you how long I spent thinking about it for my game and trying to figure it out and how much trial and error I went through.
 

Gamer (ex-Cantavanda)

〜Flower Prince〜
Why did you have to keep the entire sprite sheets in the project?
If you make the animations, after that you can delete the huge sprite sheets, 45K pixel width seems... outlandish to say the least.
 

kupo15

Member
Why did you have to keep the entire sprite sheets in the project?
If you make the animations, after that you can delete the huge sprite sheets, 45K pixel width seems... outlandish to say the least.
Well the way it seems like he is doing it is concerning for sure. However, having full sprite sheets isn't that bad of an idea if done correctly. Its currently what I'm doing and I'm saving much more memory doing it than if I split them into individual animations in the IDE and have GM make texture pages for me
 

Gamer (ex-Cantavanda)

〜Flower Prince〜
What's a texture page? What's saving something in the IDE?
Is it possible to have a sprite sheet and automatically letting GM make the animations? Is that what you're talking about?
 

kupo15

Member
A texture page is a single sheet (or multiple if it doesn't fit on one) that all your sprites get crammed into to fill up as much space as possible. Putting the animations in the IDE is making sprites as normal in the resource tree. GM takes those individual animations and fits them on a texture page to save space, then when you go to draw your animations, GM basically does "draw_part" of that big tex page to only display the frame of the animation it needs to. draw_sprite is really the same thing as draw_sprite_part except the draw_sprite_part gives you control over what part to display.

Is it possible to have a sprite sheet and automatically letting GM make the animations? Is that what you're talking about?
No, you can't just import a sprite sheet and have GM automatically draw the animation as it normally does. All GM knows is that this sprite sheet is another single sprite image. Besides, importing a sprite sheet wouldn't be very efficient if everything is in order and evenly spaced ect..because all that empty space isn't being cropped out or used at all. What you can do is use a program like Texturepacker for example, which creates full texture pages out of individual sprites (just like GM does), import that page in the Sprites folder, and manually draw_sprite_part each subimage at the right time to create the animation. This is essentially doing manually yourself what GM does for you when you simply create sprites in the resource tree.

I only use this method because Texturepacker is much better at packing textures than GM is able to do, thus saving me more memory. Not everyone needs to do this though, my project is very animation and resource intensive that I need all the savings I can get to create the experience I want to create.
 

TheouAegis

Member
And reducing even more and more the size of the images will only cause them to look disgusting...
I'm not saying reduce the size of the sprite, I'm saying reduce the size of the whole asset. I said you can go ahead and use oversized sprites if they mean that much to you; but sprites that large need to be in manageable image sizes. Wolf and Kupo are talking about scaling sprites; I'm talking about getting rid of all of those unnecessary frames and having unique sprites for each animation or even each unique frame. If you have 20 frames of a sprite in one single asset, that whole entire asset will get loaded into memory every time. If you have 5 assets with 4 frames each, then only those assets that are currently being drawn should get loaded into memory.

Edit: wow my browser did not update at all..
 
Last edited:
N

NeZvers

Guest
Changing animation speed can affect whole animation (if you want it), but you can control every aspect of animation through code and do any quirky tricks you please. Generally animation should be made with steady FPS (most of the time they are 15fps or 10fps) so for speed you should be worrying when drawing animation and not implementing in game.
Mostly image_speed is set when changing states because each state has it's own animation (idle, hit, jump, etc.) hence use best animation speed for it.
 
D

dannyjenn

Guest
Some people told me that doing so, will only increase the amount of memory occuped. I don't know how, or why, but that's it.
Strictly speaking, this is true. Because each sprite has additional data associated with it (e.g. sprite's dimensions, origin coordinates, bounding box dimensions, etc.) and all of this extra data takes up space. If you put all the frames into just one sprite, you save a little on the extra data. But in your case, you simply can't put it all into one sprite (because it's way too big!). And generally the extra data is negligible... the saved space simply isn't worth the trouble in most cases.
 
Top