• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
Vincent_M

Supporting Multiple Resolutions w/o Duplicating Assets

3 posts in this topic

The company I work for develops iOS apps for children. We currently support all devices going as far back as the 3GS. That being said, our apps would run on the the following resolutions:

480x320 - original iPhone

960x640 - retinal iPhone

1136x640 - iPhone 5 Retina

1024x768 - iPad

2048x1536 - iPad Retina

 

We're currently using Unity and a on-size-fits-all approach where we use a generic resolution of 1366x768. This produces a few problems:

-This resolution doesn't fit anything exactly so it skews our graphics making our artwork kind sort of fuzzy on everything

-All assets have to be noticeably larger resolution textures on smaller devices (128x128 only takes up 80x80 pixels, for example)

-Massive performance issues due to filtrate bottlenecks

-Memory issues due to larger textures (the 3GS doesn't load)

 

Just to address that fill rate issue further: our games are small click-and-react types right now and just about every scene uses a padded 1024x1024 background texture and a 1024x1024 texture atlas for our game object. We're drawing maybe 18 - 20 things onscreen at a single time in yet, we still have very choppy frame rates.

 

What we'd like to do is develop a game with the following criteria in mind:

-Use one universal app

-Keep the game under 50MB

-Try to stay away from DLC to download assets that don't fit into the 50MB, if possible

 

My approach would be to develop all of our assets based on a generic viewport of 1024x768, which is based off of the original iPad's resolution. Then, just crop for the iPhone's 960x640 display (I'm ignoring the iPhone 5's 1136x640 display for the time being). I'd use a 480x320 display for the 3GS, iPod 4 and iPhone 4 to avoid fill rate catastrophes. I'd generate the low-res textures by rendering the high-res ones in the bundle to a texture at 50% scale, then release the high-res ones from memory. Loading will take much longer on these slower devices, but at least we don't need to keep track of duplicate assets that'll bloat our bundle.

 

Another approach would be to use a generic viewport of 1136x768 to account for the iPhone 5 and low-res iPad resolutions. Then, continue with the crop-n-scale routine mentioned above.

0

Share this post


Link to post
Share on other sites

Can also avoid using bitmap images, instead stores assets as vectors and convert to bitmap as required for the required resolution.

Vector assets are typically much smaller than bitmaps, so file size / load times usually have a good tradeoff. it also avoids getting ugly artifacts from downsampling/upsampling your bitmap art.

0

Share this post


Link to post
Share on other sites

What's the art style of the game? If its sprite-like, one option would be to ship assets for the lower of each bracket (that is, 480x320 and 1024x768), and then upscale rather than downscale, perhaps using an algorithm like Scale2x, or give the user the option to specify which of several upscaling algorithms they like best. You could also, optionally and perhaps for cost, offer "HD" DLC for those with the higher-resolution screens.

 

For the Retina 5, I'd either expand the viewfield or letter-box as appropriate -- and perhaps slide UI elements outwards so as to cover less of the playable screen.

 

If text and UI feature heavily in your game, you might also consider providing just UI and text at native resolution and scale for all devices, and rendering them as such. This actually goes quite a way towards "fooling" a user into not noticing the low-resolution so much -- Back in the day, Unreal running on the software renderer would render the game at 320x240 and the UI at 640x480; you never noticed the low resolution while you were in the action. Rendering UI at full resolution can also serve as a subtle visual queue for what's UI and what's not -- for example, as a hint regarding UI elements that might respond to touch, though if the entire screen responds to touch this may not work in your favor.

Edited by Ravyne
0

Share this post


Link to post
Share on other sites

I think we came up with a workaround. What we'd do is crop the 1366x768 width-wise to 1024x768 for everything, and use that for all iPads. Going retina it too heavy for mobile devices. Next up, we'd have two sets of assets for backgrounds: 1136x640 for iPhone and 1024x768 for iPad. All other assets that would fit in the room could be drawn at iPad-resolution, and scaled-down programmatically for iPhone. Scaling down with linear filtering seems to look nice, and although we're still adding many more pixels to the screen for these smaller screens, we don't have to double everything which allows us to meet managements goal: keep it under 50MB.

 

EDIT: I'd like to mention that the iPhone 5's 1136-width for native resolution is obviously too large to fit into a texture, so we crop the width down to 1024 on each side. That way, the main part of the texture takes up 1024x640 of the 1024x1024 texture. The sides that were cropped get added in the unused region of the 1024x1024. They have to be rotated to fit properly.

Edited by Vincent_M
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0