- Home /
Question is off-topic or not relevant
Alternative to vector graphics for 2D
Is it realistically possible to create AAA quality graphics across multiple platforms using Unity 2D? From what I understand, Unity doesn't support vector graphics. Aren't they required to get really high quality across all of the various screen resolutions today, without having to create some massive package that contains different size images for every resolution possible?
I know if all I wanted to target was iPhone 5, or a PC (and somehow force to one resolution) I could follow this forum post to get a pixel-perfect display.
I want to create a game like "Cut the Rope", just one screen, the user cannot pan or zoom, and I want super crisp (pixel perfect) images, not stretched/scaled images like everything I've seen in Unity (including the 2D demo by Unity). The scene/level needs to fit exactly the same on every screen, like "Cut the Rope".
I don't imagine anyone knows if Cut the Rope uses vector graphics or not, but if not, how else could they do that? Only target a few devices, or create dozens of sizes?
I started looking at other game engines thinking I'd have to ditch Unity, but seems like other engines don't support vector graphics either, so guess I just need to think harder but stick with Unity. Probably not kosher to post a link to a tutorial of a competitor's game engine so I'll just post the info I found, which seems like what I need to do:
What about the fragmentation amongst Android devices? With so many screen resolutions and ratios, how does one write a single game code base that handles all those devices?
It's actually really easy. You just need multiple tiers of art assets and some flexible game code.
For example, you might have a sprite that is 100 pixels wide by 100 pixels tall on standard-definition devices. If that file is called "sd/Sprite.png" then you just need to output a 200x200 version called "hd/Sprite.png" and a 400x400 version called "hdr/Sprite.png", then instruct [Unity] to use either the "sd", "hd" or "hdr" folder depending on the resolution.
Combine that magic with some flexible positioning of art resources on the screen based on the dimensions of the current display, and you've got a single code base that plays well and looks crisp on any device.
There's nothing wrong with scaled images, as long as you scale down, not up. But this is really a discussion question that should be posted on the forums, since you haven't asked a specific question that has an objective answer.
Geesh, least-friendly Q&A ever? Post a short/quick question and everyone jumps on you for "not enough info", post some details, and it gets closed. Guess I'll stick to forums, this Q&A is a joke.
Answer by robertbu · Apr 27, 2014 at 05:28 PM
@Hi shopgui - Unity Answers and Unity Forums are each designed for different questions. UA is designed for a single, specific technical question in which you get one or more proposed solutions. You then pick a 'right' solution. We ask that discussion questions and design questions be asked on Unity forums. Their discussion format is a much better fit for these kinds of questions. When you have a specific implementation question, this is the place to ask your question.
Also I thing the solution to your problem depends on the situation. In many/most circumstances authoring to the highest resolution and then scaling is just fine. In addition, in some situations perfect half scale images seems to be nearly identical to full scale images at 1/4 the memory size. And there may be more vector-like solutions for some graphics using a custom mesh.
SVG Importer | Vector Graphics Plugin for Unity

Unity 4.6.0 Compatible, fully cross-platform.
Easily drag and drop your SVG files directly in your scene. SVG importer fully mimics Unity native sprites so your $$anonymous$$m doesn't have to learn anything new. Extremely fast and simple workflow for rapid level design. Resolution independent graphics ready for retina displays and full support of the new Unity UI system.
SVG importer automatically converts SVG files into highly optimised meshes and does fully supports both linear and radial gradients.
Features
UI rendering
Opaque rendering
Transparent rendering
$$anonymous$$anual level of detail
Depth compression
Custom pivot point
Drag & Drop
Recolor artwork
Automatic Colliders
Full demo project
SVG Importer fully Supports
Simple shapes
Complex shapes
Holes
Linear Gradients
Radial Gradients
Strokes
Not sure why I never saw this answer before (from robert, not the recent comment by Jaroslav). At any rate, I'm 95% happy with the results now that I found the "create mip-maps" option for sprites and figured out what mip maps are. I suspect the Unity devs decided I wasn't the only one missing or not finding that, because in 5.0 they default to that being enabled now, and you don't have to switch to Advanced mode to toggle it. I've also learned, since I asked this question, that vector graphics don't "always scale to any size" well, and at small sizes (like a lot of 2D sprites/games would use) they are actually worse looking in a lot of cases than a raster scaled using a good method. It's nice to have options though.
Follow this Question
Related Questions
Getting a 2d Sprite to move over time to an Array 1 Answer
Basic 2D movement C# - Key presses cancel eachother out 4 Answers
Broken pixel for iOS build 1 Answer
On which side of the object is this point - 2D 0 Answers
Unity2D vector sprite sheet is blurry compared to single image with the same resolution. 1 Answer