Working with HD graphics in C2

0 favourites
From the Asset Store
Photoreal planets rendered over transparent. Five different resolutions and phases for each planet. Also includes Space
  • I'm about to begin my first project using HD graphics. There are a few things I'm a little confused about. I would appreciate some input by someone who's worked with HD graphics in C2 before.

    1)Do you import your images at full size and downscale them in the layout editor? I noticed this makes sprites look better when zooming in the camera, but they look bad at the normal zoom level. They don't look as good as the source image at any zoom level though...

    On the flip side, scaling down the source images makes sprites look bad when zoomed in, but better at a normal zoom level. I'll also save a lot of memory that way.

    2)If so, do you draw everything "to-scale" and then downscale it by, say, 50% in the editor? Or is each asset individually scaled to your liking?

    3)Linear or point sampling? With pixel art this makes a huge difference. In my tests with HD art it was exactly the same...

    4)Does source image size affect performance at all? Or is it just the size of the object?

    Any other tips or tricks? Hell even a basic rundown of working with HD graphics would be nice. There seems to be a number of options here and I'm just not sure what's best. I've only used pixel art for 8 years!

  • Source size determines memory usage and I guess pixel fillrate but that's not a problem normally. Memory is the main concern.

    I work with a HD project now (my sig), my images are exactly the size they need to be as in-game sprites, so there's no re-sizing.

    This loss of detail you describe actually happened to me before, I made a post about it.

    Ashley clarified something that was very useful to know. It's the mipmaps that C2 does in the engine that causes blurry loss of details for some sprites. You can disable that by setting Downscaling quality to LOW. Sprites will remain crisp at any zoom level, including default.

  • wrong. source size doesn't determine memory usage. at least not in a way i am thinking you think it does

    if you have 1000x1000 img - saved as 32bit png and another saved as 8bit png.

    when they are loaded in memory, both will be 1000x1000x32. so what's the difference? the 8bit png will be far smaller, but colors won't be as good on 32 bit, also transparency data will be lost. but if image is clean with no transparency - 8bit will save you 3/4th. how - first image will be saved as 3.81 mb and second one as 0.95mb. but in memory both will be 3.81mb, and you lose some coloring / transparency with smaller. ofc you could use some optimizing software to make pngs lesser but again.. it comes with a cost

    and size - you can use higher and resize, but i recommend that you put them all in game as you need them like silver said.

  • saiyadjin I think you misunderstood that part. If source image is 1000x1000 then it does not matter if you scaling it up or down in the game cause it will use same amount of memory.

    Questions is , for example for 720p game. Is it better to make you sprites 1024x1024 - and scale it down in C2 to 512x512 - so you can zoom in/out to maintain image detail, or to make sprites 512x512 from the start (which more less will use twice less memory).

  • My advice is to make a game as it would be typical low-res pixel art game, 1/4 or 1/2 hd, using for example 32px tiles. And for example you have texture 128x128px scaled down to 32x32 in the layout editor. Then you can adjust the zoom to show more or less. This way you will keep layouts small, and have less graphics. With this you can fairly easily transition between high and low quality renderer. Also controls seam more responsive.

    png8 is smaller file therfor it loads faster, so try to have as many of those as you can, even try to lower number of colours where possible.

    I follow this rules, and have pretty good results.

    In terms of sampling, I think you will have to select it to your liking.

    EDIT@ Forgot to mention that I make my projects with full screen in mind.

    EDIT2@ sorry for a bit of chaotic response today. You can add shaders to make things look better, even thought original graphics would be mid-quality. You can separate graphics in to low quality objects in the back and high quality in the front. Strict tiles and then higher resolution none-tiled objects. But also it all can depend on the type of the game however. Could you share with us what is the game you're making in hd?

  • shinkan - oh yeah, i thought he asked for files, i noticed now what was the question

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • With high-res resources, you probably won't know what you actually need until you have most of the content in place - my advice would be to :

    • keep very high-res or vector graphics in your art asset repo in parallel of the game
    • during the level design phase, use 1:1 mid-res graphics ; this gives average quality/memory for quick iterations
    • when you have most of the content in place for one given scene, do a quality/memory balancing pass and apply "per-entity" logic : because this entity will scale up you might a hi-res image for it, while this one remains small so might go with even lower res, etc.

    It's hard to find a common rule (e.g. "downscale everything 50%") that fits everything

  • I don't recommend downscaling things in layout, instead make everything 2x and use a layout scale of 0.5. Tiled backgrounds doesn't allow scaling it's graphics, so if you downscale everything else the tiled backgrounds will still remain low resolution. Alternatively you can make everything 1x and only replace the image files directly in the images folder by a 2x version, I'm not sure if this only works after export though.

    If you want a smooth look on downscale make sure to use only power of 2 images so they get mipmapped. Otherwise they may display some artifacts similar to pixel aliasing. Play a little with the "Downscaling" option on project properties to see what works best for your project.

    In general it's better to use linear sampling for HD graphics, but if you are going for a pixelly look with blocked colors point sampling may look better.

    I'm not sure if the source image size affects performance, but the screen render size (canvas size) does if the "Use high-DPI display" is set to "no". By the way, I highly recommend setting it to no. You can then leave an option to adjust the canvas size (like set resolution) to get better performance for weak hardwares.

  • I don't recommend downscaling things in layout, instead make everything 2x and use a layout scale of 0.5. Tiled backgrounds doesn't allow scaling it's graphics,

    I must add that I didn't mean tiled backgrounds, but tiles made out of sprites.

  • ...If you want a smooth look on downscale make sure to use only power of 2 images so they get mipmapped. ...

    Mipmaps are created from exported by C2 sprite sheets, right?

    So if you design your sprite frames so they all end up on one (or more) 1024x1024 (or any other power of 2) sprite sheet all should be fine.

  • Mipmaps are created from exported by C2 sprite sheets, right?

    So if you design your sprite frames so they all end up on one (or more) 1024x1024 (or any other power of 2) sprite sheet all should be fine.

    Yeah, I think you are right. I haven't thought about that.

    But I guess if you wish to see a smooth result on preview you will need to use power of 2 textures.

  • I know that Aurel worked with Full HD assets on a 720p project, in low quality fullscreen. (The Next Penelope)

    It seems it worked pretty well.

  • Tiled backgrounds doesn't allow scaling it's graphics, so if you downscale everything else the tiled backgrounds will still remain low resolution.

    Yeah neither do 9-patches and various 3rd party plugins that use images now that you mention it...

    Ok this is starting to get annoying. C2 appears to be far less HD-friendly than I thought it was, and few people seem totally confident in their methods.

    Ashley Is there even a "proper" way to use HD art in C2 or is everyone just supposed to hack it depending on their project's needs? I mean really...

  • What is the issue you are having Tokinsom?

  • Just trying to figure out the best way to use HD art in C2, man... That is, retaining image quality, scaling well with camera zooming & multiple resolutions, not wasting memory / bloating project / losing performance, and unison between object types such as sprites, tiled BGs, 9-patches, tilemaps, and 3rd party image plugins.

    Everyone says something different or contradicts themselves. Now there's talk of mipmapping power of two textures on export? So there will be discrepancies between preview and final build image quality? Oy...

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)