# Graphics Contribution Guide > :warning: This section is about pixel art that will appear in the game itself. > For promotional illustrations, see [*Art Contribution Guide*](contributing-art.md). First off, thank you for your interest in creating graphics for Vegan on a Desert Island (VOADI)! We are thrilled by your eagerness to help make this game awesome, and dearly cherish your contributions. This guide will help you get started creating graphics for VOADI. ![Spinning seagull sprite](assets/seagull-spin@8x.gif) ## Our agreement VOADI is an **Open Source** video game, and **the game's graphics will also follow this principle.** We're asking contributors to license their graphics under [Creative Commons Attribution-ShareAlike 4.0](https://creativecommons.org/licenses/by-sa/4.0/), or a similar [free-culture license](https://creativecommons.org/share-your-work/public-domain/freeworks/), for inclusion in the game. To summarize the license: you allow anyone to use your graphics for any purpose, including commercially, without asking or paying you, as long as they give you proper credit. Also, people who modify your graphics have to share their modifications under the same terms. This summary is not a replacement for [the actual license](https://creativecommons.org/licenses/by-sa/4.0/legalcode). ## Art limitations VOADI has a retro-game aesthetic, influenced by NES and Game Boy Color graphics. We follow rules when creating graphics so the game looks like it was designed for limited hardware. Our rules are different than the NES or GBC to allow more flexibility. VOADI is a modern game and these rules *could* be broken if we have a good reason, but sticking to the rules gives the game a cohesive visual style. Many of our graphical choices were influenced by [*Shovel Knight and Nailing Nostalgia | Game Maker's Toolkit* ](https://www.youtube.com/watch?v=rHhX5GtWNr8). ### Color palette VOADI uses the Zoria color palette. It is based on the NES color palette, but [modified and tweaked](https://opengameart.org/content/zoria-tileset#comment-73750). You can use the image below as a reference. ![Zoria color palette](assets/zoria-palette.png) #### Install the color palette A `*.gpl` palette file is [available here.](assets/Zoria.gpl) You can download this file and import it into GIMP through the [palettes dialog](https://docs.gimp.org/en/gimp-palette-dialog.html) or Krita through the [palette docker](https://docs.krita.org/en/reference_manual/dockers/palette_docker.html). It might work with other programs, too. ### Number of colors Up to **4 colors** should be used per each 16x16 tile. **Transparency counts as a color.** This means most sprites will effectively have 3 colors, while background tiles may have 4. This rule is often broken, but only after multiple attempts to iterate upon the graphic and condense it down to 4 colors. Most character sprites have a dark outline (for better visibility) which increases this challenge. Less is more, and creating nice graphics with less is a skill that's developed over time. ### What NOT to do: dithering & anti-aliasing ![Dithering example](assets/dithering.png) We avoid dithering, eg checkerboard patterns of pixels for shading or to give the impression of more colors. Dithering worked okay on small, blurry screens, but this game will be blown up on large LCD displays and the dithering effect just looks like a lot of visual noise. ![Anti-aliasing example](assets/anti-aliasing.png) We also avoid anti-aliasing, or using gradations of similar colors to create shading or blend pieces of a graphic together. The above example uses too many colors anyway, but this rule still applies when using only 4. VOADI has a flat, clean art style and anti-aliasing doesn't match it. ### Screen dimensions The game's screen is **144 x 256 pixels**. The screen's height matches the Game Boy Color's screen, and its width has been extended to fill a modern 16:9 display. Ultimately, VOADI is a modern game: 4:3 is out and 16:9 is in. Letterboxing the screen doesn't increase the player's nostalgia, it just makes them able to see less stuff at once. Even Game Boy-sized screens available in 16:9, so this won't prevent us from putting VOADI on a small embedded device. That said, **the game is still compatible with 4:3 if the sides are cropped.** The game's HUD and menus all fit within a 160 x 144 pixel area, allowing us to export the game with a 4:3 camera if desired. We see no reason to compromise this feature unless it inhibits our creative expression in the future. When creating maps, they should always be at least 144 x 256 pixels in size so they fill the screen. ### Tile / sprite size In general, the games tiles are **16 x 16 pixels** each. The Solarus engine supports tiles of any multiple 8 of, meaning 8x8, 8x16, 16x8, 32x8, 16x64 etc. are all valid. 16x16 is the most common. ## Sprites Sprites are dynamic map entities. In other words, they are parts of the map that can move around or be interacted with. Usually they are characters, items, etc. ### Characters Characters are usually 16x16px and have four directions. Most characters stand in place. When talked to, characters will face the player, so they need up, down, left, and right-facing sprites in order to be interacted with from all directions. ![Angry Toast sprite](https://gitlab.com/voadi/voadi/raw/master/data/sprites/npc/angry_toast.png) ![Fox sprite](https://gitlab.com/voadi/voadi/raw/master/data/sprites/animals/fox.png) ![Gnu sprite](https://gitlab.com/voadi/voadi/raw/master/data/sprites/npc/gnu.png) Characters are usually outlined with a darker color to make them stand out on a variety of different backgrounds. ## Submitting graphics Before submitting a graphic, please take the following steps. If you can, try to follow the existing conventions for [the game sprites](https://gitlab.com/voadi/voadi/tree/master/data/sprites). If you need help with any of this, please make a submission anyway and we will work with you. ### Sprite sheet format Sprites of the same character/entity should be grouped together in a single PNG file. For example, a turtle with four directions will have all the directions in a single file. ![Sea turtle sprite](https://gitlab.com/voadi/voadi/raw/master/data/sprites/animals/sea_turtle.png) There should be **no spaces** between each sprite on the sheet. ### Attribution On the graphic itself, write your name and the graphic's license. For example: ![Angry Toast sprite](https://gitlab.com/voadi/voadi/raw/master/data/sprites/npc/angry_toast.png) This will reaffirm your commitment to VOADI's open source nature and give us a way to attribute you in the game's credits. We cannot accept your graphic without this. You could use a pseudonym instead of your real name if you want. ### Compression To decrease the file size of your image, you can run it through a program like [trimage](https://trimage.org/) first. It's important that you do this if you make a submission via GitLab merge request. If you submit your graphic some other way, you can skip this step and we'll compress it for you. ### Submission To submit a graphic, you may do one of the following: * Upload your graphic into the VOADI chatroom: [#voadi:matrix.org](https://riot.im/app/#/room/#voadi:matrix.org). * Create a new [GitLab issue](https://gitlab.com/voadi/voadi/issues) and upload your graphic there. * (*Advanced*) Create a [GitLab merge request](https://gitlab.com/voadi/voadi/merge_requests). * Send your file in an email to `alex+voadi@alexgleason.me`. ## Using your graphics We'll make effort to respect your creative direction and communicate directly if we'd like to see a graphic changed for whatever reason. That said, be aware that someone else may modify your graphic before including it in the game. It's also possible we won't be able to include your graphic at all, possibly because we receive too many submissions. We'll upload your graphic to OpenGameArt.org (giving you proper credit, of course) after the game is released, so that more game developers can benefit from your work. Thanks again for your interest in VOADI, and we look forward to seeing what you come up with!