Gamasutra: The Art & Business of Making Gamesspacer
View All     RSS
September 30, 2016
arrowPress Releases
September 30, 2016
PR Newswire
View All






If you enjoy reading this site, you might also want to check out these UBM Tech sites:


 
Small is much, much better
by Peter Kibble on 03/14/16 06:20:00 pm   Featured Blogs

2 comments Share on Twitter Share on Facebook    RSS

The following blog post, unless otherwise noted, was written by a member of Gamasutra’s community.
The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company.

 

I’ve been making mobile phone and tablet apps for a few years now and have had so many face-palm moments - watching my peers repeat the same mistakes - that I’m sure my forehead is permanently flattened. In this post I’m going to discuss how we addressed one of these: resource-bloat; in our new phone app 'Art of Perception – Ravioli'.

Ravioli is a visual puzzle game.  It combines 144 unique basic shapes to make 225 puzzles in 15 levels of difficulty. The game play is entirely graphical so the assets have to be the absolute highest quality and render extremely quickly.

I know most readers of this post will have multi-core, monster-memory, 4G, power houses in their pockets, and tendency is to develop for what you have. Our target was to make Ravioli work really well on little slow phones – and it does. Why make it work on little stuff? Well there’s a lot of people on entry-level phones, and if Ravioli works well on those it work really well on better hardware. Bit of a no-brainer there.

One of the things we did was to make the game resources as compact and efficient as possible without reducing quality and flexibility. This we achieved in spades; the assets for the 225 puzzles are ~30KB compressed / ~150KB uncompressed. The other core graphic assets: icons, badges etc. are ~44KB / ~240KB. The splash screen is ~25KB. All graphical assets, except the splash screen, are held in our proprietary object databases.

This is possible because Ravioli uses our own custom 2D renderer and a binary vector asset format. This means we own the whole graphics pipeline, across platforms. The normal alternatives would have been to rely on either a huge pile of pre-rendered PNGs, which would have been a major asset bloat and a monstrous asset management headache. Or to render SVG assets to PNGs when the app starts, which is often a better technique. Using PNGs just wouldn’t work for us at all and standard SVG rendering lacks the micro-control Ravioli needs. Both alternatives would have made our Mac/OSX game editor more or less impossible and probably would mean that Ravioli would never work properly.

Audio assets were easier to deal with. We standardised on 64kbps, as audio in Ravioli is either background or transient effects - any lower quality than this and it became noticeable. This keeps the audio sizes small, but at about 10% of the package size they still dwarf the graphic assets .

OK, what benefits do we get from this?

  • A very small static footprint. About 11MB on iOS.
  • Ravioli is very fast to download and install, which really helps in low-bandwidth situations.
  • The memory footprint is insignificant.
  • State saving and restoration is rapid.
  • Assets are rendered at optimum quality and size for each device and resolution.
  • The graphical asset databases make development and deployment very efficient and dependable.

All this makes Ravioli a good citizen; an easy and reliable download; a fast install and it looks great on all devices.

Ravioli is currently in beta for iOS. You can register for TestFlight at http://www.q4technologies.com.

There is more about Ravioli, its history and how we assess problem solving skills at our blog: https://q4technologies.wordpress.com/.


 


Related Jobs

Remedy Entertainment
Remedy Entertainment — Espoo, Finland
[09.30.16]

Lead Network Programmer
Cellar Door Games
Cellar Door Games — Toronto, Ontario, Canada
[09.30.16]

Unity Programmer
Cellar Door Games
Cellar Door Games — Toronto, Ontario, Canada
[09.30.16]

Network Multiplayer Programmer
CCP
CCP — London, England, United Kingdom
[09.30.16]

Senior Engineer





Loading Comments

loader image