Guidelines For Game Art
Guidelines For Game Art
Table of Contents
Image Formats & Quality
Image Resolution & Scaling
Environments & Tiling
Characters, Props, & Animations
User Interface
VFX & Shaders
3D
The individual sprites each have their own dimensions, but are
displayed with the same pixel density (pixels per inch) on screen – ergo, the
difference in pixel count/resolution between the sprites conveys their sizes
relative to one another, instead of their level of detail. So, as you’re
designing things, please try to have a scale for each of your sprites in mind
at which you want one meter to be represented in pixels, so that we on the
programming side can accurately represent the relative sizes of the game’s
art assets.
Importantly, you need not all use the same scale in your designs (for
example, the environment art could be designed at a higher level of detail
and have a pixels-to-meters scale of 100:1, while a small prop such as a
bullet could be designed at a lower level of detail and have a scale of 10:1)
as Unity scales sprites automatically according to a per-sprite
user-specified value – you need only to make us aware of the scale at which
you made the design, so that we can ensure that all objects are properly
scaled relative to one another in game.
(That said, I would encourage you guys to coordinate with one
another and try to make your designs at similar, if not identical scales, for
the sake of visual consistency >_<)
The following image is a very, very rough example of how one might
tile the foreground elements in one of Nile’s environment concepts:
(Purple blocks denote filler tiles; yellow blocks denote ornamental tiles;
yellow dots denote duplicate instances of one filler tile)
User Interface
Not as many special guidelines for UI – just be aware that Unity has
two different systems for UI design, one of which is almost identical to CSS
(“Cascading Style Sheets” in web pages), so if you have any experience with
web page design, that will definitely come in handy here. “UI” in game dev
often includes both the in-game HUD and the game’s menus, so keep that
in mind. To add onto everything that’s been said so far, consider whether
or not your UI elements will need to be composited and/or animated
in-game (for example, an ability icon glows when activated, or a health bar
turns red once the player drops below a certain amount of health, etc) and
notify the programming team of this, as we may have to set up some
graphical shaders to support it, depending on the effect and its
particulars. If you want any sound effects to play on a given UI event, then
let both the programming team and the audio team know so we can get
that up and running (it’s very straightforward for us to implement, so don’t
be afraid to ask ^_^).
If you will need to do any compositing, make sure that the
dimensions of the image files that you want to composite are all identical,
as the way that it will most likely work in Unity is that we will be stacking
images and using pixel transparency to make them fit together without
occluding one another. Importantly, composited elements do not
necessarily need to be of the same resolution, as Unity is capable of
dynamically scaling image files on its own (bear in mind that this may
cause visible artifacting) – they need only have the same ratio of length to
width in pixels, so that they will overlap properly when scaled (though they
should probably still be designed at the same resolution for the sake of
consistency). Also, make sure to consider whether or not your designs
should contain regions that are partially or fully transparent for aesthetic
purposes. Consider as well whether or not you will want any or all of your
UI elements to be rendered as part of the game world, as Unity supports
this (this would be most useful if we ever end up wanting to apply any
visual effects to the entire game frame, or if we want things like in-game
lighting to affect the appearance of the UI as well).
3D
The Unity renderer is always working in 3D even if the game being
worked on only uses 2D assets, so if for whatever reason you decide that
you want to use a particular 3D asset in an otherwise 2D project, let the
programming team know, because this should very much be possible, and
we will help you figure out the nitty-gritty implementation details.
To End…
That’s everything I can think of that would be useful to you guys for
the moment – I’ll edit the doc and notify all of you if I come up with
anything else. Additionally, if you have any questions, want further
clarification about a given suggestion, or find that the document does not
address something important that you need help with, please let me
(Astronaut/Dylan), Tanha, or Rakshaan know, and we will see what we can
do.