1
\$\begingroup\$

I am new to game development and am trying to learn how to use Game Maker to create pixel art games.

I've created a demo game with 16x16 pixels art style, the room size is 1024 x 768 and the viewpoint has 384x216 size.

When I've imported my own pixel demos (like a dog and ground tiles) everything looked ok, but when I've imported a tile set from Stardew Valley (also with 16x16 pixels) just to practice the proportions these new tiles started to distort every time the game is run. When I just preview it in a room editor - everything looks crisp and 16x16, but when the game is running my designs stay 16x16 and Startdew Valley designs switch to 8x8.

I would appreciate any help.

Here are the screenshots.

View in-game editor and in the game itself

enter image description here

enter image description here

enter image description here

\$\endgroup\$
4
  • \$\begingroup\$ I can see the SW tileset is 400x1264 pixels. What does it look like on its texture page? Was it scaled down somehow? Or, is it looking good? You can preview texture pages by clicking Game Options > Platform Settings > [Your platform] and then by clicking the Preview button in the Graphics tab. \$\endgroup\$
    – liggiorgio
    Jun 10, 2022 at 15:47
  • \$\begingroup\$ Hi, thank you for answering! When I click preview the textures render scaled down as shown in the game. Only my sprites that I drew myself are ok and SW sprites look as if they are 8x8. \$\endgroup\$
    – nadiavi
    Jun 11, 2022 at 15:57
  • \$\begingroup\$ Oh, I found where was the issue! When I changed "Texture Page Size" to 2040x2048 as it was 512x512 for some reason, all textures rendered as they previewed in the game editor! Thank you for pointing where to look :) \$\endgroup\$
    – nadiavi
    Jun 11, 2022 at 16:03
  • \$\begingroup\$ I put up my comments and wrote a full answer to your question for completeness, plus additional info about texture pages and resources. \$\endgroup\$
    – liggiorgio
    Jun 11, 2022 at 16:25

1 Answer 1

0
\$\begingroup\$

The reason your tileset appears low-res is it was resized because it didn't fit its assigned texture page size.

Texture pages are used to store sprites tightly and are actually the GameMaker-version of sprite atlases. In particular, texture pages are packed into texture groups, which are the actual atlases. Besides, you can define different groups for different target platforms.

Some platforms are only compatible with limited texture page sizes, usually a power of 2. The standard size is 2048x2048 and it works on most devices and OS.

Your Stardew Valley tileset is 400x1264, so it needs to be stored in a texture page of a minimum of 2048x2048 (unfortunately, 1264 is greater than 1024, so the next power of 2 is 1024*2=2048).

However, if a sprite (or tileset, or background) is too big for the current texture page size, it needs to be "adapted" in order to be used by the engine. The standard behaviour is scaling.

Texture groups define what sprites are to be stored in texture pages for the current platform. Groups also define additional options for packing sprites, such as scaling, crop, and mipmapping. In the Texture Groups window, you can set these as you wish. Here, Allow Scaling is applied on a per-sprite basis whenever such a sprite is too big for the current texture page size. If you disable it, the sprite will be moved to a different page, but I'm not sure how it behaves for small-size page sizes.

Anyway, you can prevent resources from being downscaled by increasing the texture page size from the Graphics Tab in Game Options > Platform Settings > [Your platform]. If you want some resources to NOT be scaled under any circumstances, you can also untick the Allow Scaling option for those resources.

\$\endgroup\$
2
  • 1
    \$\begingroup\$ Thank you so much this explains a lot, I thought the size of texture page was just for preview of the texture sets that is why I overlooked it. Now I have inspiration to continue my project again! Thank you :) \$\endgroup\$
    – nadiavi
    Jun 11, 2022 at 16:48
  • \$\begingroup\$ You're welcome to ask here on GameDev whenever you encounter an issue you can't solve, the community will gladly help. Also, if you found this answer useful, you can mark it as accepted :) \$\endgroup\$
    – liggiorgio
    Jun 11, 2022 at 17:18

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .