{"id":33,"date":"2017-12-05T12:34:36","date_gmt":"2017-12-05T12:34:36","guid":{"rendered":"http:\/\/www.wieringsoftware.com\/ts2\/?page_id=33"},"modified":"2022-09-19T15:30:48","modified_gmt":"2022-09-19T15:30:48","slug":"features","status":"publish","type":"page","link":"https:\/\/www.wieringsoftware.com\/ts2\/features\/","title":{"rendered":"Features"},"content":{"rendered":"<p>In the old days, graphics artists had to work with lots of limitations (limited color depth, maximum number of colors on the screen at the same time, memory sizes, resolution), but still were able to make amazing looking pixel art games.<\/p>\n<p>You could save a lot of memory by splitting up graphics into little tiles and reusing those with different color palettes. This results in far less work than drawing a complete level in pixels and usually results in more consistency in the graphics overall.<\/p>\n<p>Tile Studio II aims to help you produce high quality pixel art graphics, but without the kinds of limitations that the early artists faced. It lets you make little tiles which can be used in different colors and combine those into a tilesheet, with which you can draw your maps.<\/p>\n<h1>Palettes<\/h1>\n<p>Tile Studio II works with indexed graphics. Whenever you draw a pixel, you don&#8217;t actually draw an absolute color value, but a pointer to a position in a color palette. If you would later change the palette at that position, the color in your drawing will change too.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-109 aligncenter\" src=\"http:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/palette1-300x209.png\" alt=\"\" width=\"300\" height=\"209\" srcset=\"https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/palette1-300x209.png 300w, https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/palette1.png 381w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>Tile Studio II works with gradients so you don&#8217;t need to define each color individually. You can define a gradient with just one color, like the grey below. Only the center color was defined as 128, 128, 128 (red, green, blue), and the <em>delta<\/em> (difference to each next color) as 28, 28, 28, which produces a smooth gradient from black to white.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-112 aligncenter\" src=\"http:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/palette2-300x212.png\" alt=\"\" width=\"300\" height=\"212\" srcset=\"https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/palette2-300x212.png 300w, https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/palette2.png 382w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>The second gradient (green) is also defined by just one color, but the delta has different values for red, green and blue to make the lighter part more yellowish.<\/p>\n<p>As you can see in the third gradient, you can place lots of different colors and the gradient will make a smooth transition to them. You can also place two different colors next to each other, like in the forth gradient.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-113 aligncenter\" src=\"http:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/palette3-300x76.png\" alt=\"\" width=\"300\" height=\"76\" srcset=\"https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/palette3-300x76.png 300w, https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/palette3.png 383w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>A palette index can also be between two colors in your palette. As you can see here, when you select a range of colors, you get a smoother gradient of that range with more intermediate colors to choose from (however, if you do want to limit yourself to the colors in your palette, you can do so in the tile designer by setting <em>precision<\/em> to 1).<\/p>\n<p style=\"text-align: center;\"><em>More information: <a href=\"..\/learn\/palettes\">Palette Editor<\/a><\/em><\/p>\n<h1>Bitmaps and the Pixel Editor<\/h1>\n<p>Tile Studio II works differently than most tile \/ map editors. There are actually two layers of tiles. Instead of using tiles from your bitmap to draw to the map, you use them to construct your actual tilesheet. This way you end up having to draw less pixels and can reuse the same drawings several times in your tilesheet.<\/p>\n<p>Here is an example of a bitmap (the pixels you draw), a tilesheet (created from the bitmap) and a map (using tiles from the tilesheet):<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-151\" src=\"http:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/bitmap2.png\" alt=\"bitmap\" width=\"108\" height=\"89\" \/><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-150\" src=\"http:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/tilesheet0-300x95.png\" alt=\"tilesheet\" width=\"329\" height=\"113\" \/> <img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-149 \" src=\"http:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/map0.png\" alt=\"map\" width=\"484\" height=\"351\" \/><\/p>\n<p>The bitmap you use is generally very small. You can edit it with the pixel editor. You can make a selection of tiles to edit simultaneously, like 3 x 2 tiles in this example:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-147 aligncenter\" src=\"http:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/bitmap1-184x300.png\" alt=\"\" width=\"184\" height=\"300\" srcset=\"https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/bitmap1-184x300.png 184w, https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/bitmap1.png 381w\" sizes=\"(max-width: 184px) 100vw, 184px\" \/><\/p>\n<p>Tile Studio II has the option <em>Only One Gradient per Tile<\/em> in the <em>Tile<\/em> menu. If checked, whenever you choose a color from the palette, the drawing in the bitmap editor will be remapped to the gradient you are using. It&#8217;s good practice to only use one gradient in each tile. You can combine them later in layers in your tilesheet and then you can change the colors for each layer.<\/p>\n<p>There is a pattern viewer to let you see the a repeated version of the tile (or area) you are drawing so that you can easily make your tiles seamless:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-153 aligncenter\" src=\"http:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/pattern-300x150.png\" alt=\"\" width=\"300\" height=\"150\" srcset=\"https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/pattern-300x150.png 300w, https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/pattern-500x250.png 500w, https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/pattern.png 542w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>You can set up areas in your bitmap for animations. This allows you to easily cycle through the frames using the keyboard so that you can see how the animation will look.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-154 aligncenter\" src=\"http:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/animation.png\" alt=\"\" width=\"230\" height=\"103\" \/><\/p>\n<p style=\"text-align: center;\"><em>More information: <a href=\"..\/learn\/bitmaps\">Bitmaps\u00a0<\/a>and <a href=\"..\/learn\/pixel-editor\/\">Pixel Editor<\/a><\/em><\/p>\n<h1>Tilesheets and the Tile Designer<\/h1>\n<p>In the tilesheet you can design your tiles that you will be using to draw in your maps. You can construct each tile from blocks you draw in your bitmap. You can combine them in layers and use lots of parameters to modify them.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-187 size-full\" src=\"http:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/tilesheet2.png\" alt=\"\" width=\"364\" height=\"180\" srcset=\"https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/tilesheet2.png 364w, https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/tilesheet2-300x148.png 300w\" sizes=\"(max-width: 364px) 100vw, 364px\" \/><\/p>\n<p>Using the designer may take some time to get used to. You could look at the designer as the editor for the current selection of the tilesheet. See the example below (using the selection in the tilesheet above):<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-186 size-full\" src=\"http:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/designer2.png\" alt=\"\" width=\"381\" height=\"270\" srcset=\"https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/designer2.png 381w, https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/designer2-300x213.png 300w\" sizes=\"(max-width: 381px) 100vw, 381px\" \/><\/p>\n<p>The designer has two rows, at the top you see the layers of the selected tile from bottom to top (In this example the second layer is used as alpha multiplier so the black area is erased). In the bottom row you see (from left to right):<\/p>\n<ul>\n<li>the selection in the bitmap (can be multiple tiles with one selected)<\/li>\n<li>the active tile, transformed and recolored (this is where you set all the properties)<\/li>\n<li>the active tile (all layers)<\/li>\n<li>the selection in the tilesheet (can be multiple tiles with one selected)<\/li>\n<\/ul>\n<p>For the active tile you can set properties in the <em>Properties<\/em> window.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-189 size-full\" src=\"http:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/properties2.png\" alt=\"\" width=\"382\" height=\"418\" srcset=\"https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/properties2.png 382w, https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/properties2-274x300.png 274w\" sizes=\"(max-width: 382px) 100vw, 382px\" \/><\/p>\n<p>In the Indie and Pro version there are even more properties here and you can also use scripting.<\/p>\n<p style=\"text-align: center;\"><em>More information: <a href=\"..\/learn\/tilesheets\">Tilesheets <\/a>and <a href=\"..\/learn\/tile-designer\/\">Tile Designer<\/a><\/em><\/p>\n<h1>Maps<\/h1>\n<p>Once you have a tilesheet, you can start making maps with it. You can select a tile and draw with it. But you can also make a selection of tiles in the tilesheet and place that into the map at once.<\/p>\n<p>You can make a selection in the map as well and then you can fill it with one or more tiles. If you have an area selected in your tilesheet, you can do a stretch fill, which will keep the edge tiles at the edges with selections of any size.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-212 size-full\" src=\"http:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/map1.png\" alt=\"\" width=\"498\" height=\"282\" srcset=\"https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/map1.png 498w, https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/map1-300x170.png 300w\" sizes=\"(max-width: 498px) 100vw, 498px\" \/><\/p>\n<p style=\"text-align: left;\">When you make a selection in the map, there are several things you can do, like flip and move tiles, see the <em>Map<\/em> menu.<\/p>\n<p style=\"text-align: center;\"><em>More information: <a href=\"..\/learn\/maps\">Maps<\/a><\/em><\/p>\n<h1>Map Layers<\/h1>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-215 alignnone\" src=\"http:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/layer1-300x226.png\" alt=\"\" width=\"268\" height=\"202\" srcset=\"https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/layer1-300x226.png 300w, https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/layer1-768x578.png 768w, https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/layer1-398x300.png 398w, https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/layer1.png 773w\" sizes=\"(max-width: 268px) 100vw, 268px\" \/>\u00a0 <img loading=\"lazy\" decoding=\"async\" class=\"wp-image-216 alignnone\" src=\"http:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/layer2-300x225.png\" alt=\"\" width=\"268\" height=\"201\" srcset=\"https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/layer2-300x225.png 300w, https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/layer2-768x577.png 768w, https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/layer2-399x300.png 399w, https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/layer2.png 773w\" sizes=\"(max-width: 268px) 100vw, 268px\" \/><\/p>\n<p>Tile Studio II supports multiple layers. However, these are not meant as background layers (like parallax scrolling layers, those should have their own map). These layers always have the same size and can be merged together when you export your map, but you can also keep them separate (which is specified with the <em>MergeGroup<\/em> property, layers with the same MergeGroup will be merged together).<\/p>\n<p style=\"text-align: center;\"><em>More information: <a href=\"..\/learn\/layers\">Layers<\/a><\/em><\/p>\n<h1>Map Objects<\/h1>\n<p>You can place objects in your maps. In the example below we have two object types, coins and ground. For the coins we enable the property <em>MultipleObjectsInsteadOfArea<\/em> so if we draw an area of coins, these will be stored seperately, instead of one big one. For the ground we just fill the area up with rectangles.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-219 size-full\" src=\"http:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/objects1.png\" alt=\"\" width=\"776\" height=\"583\" srcset=\"https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/objects1.png 776w, https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/objects1-300x225.png 300w, https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/objects1-768x577.png 768w, https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/objects1-399x300.png 399w\" sizes=\"(max-width: 776px) 100vw, 776px\" \/><\/p>\n<p>You can specify a name and a color for each type of object. You can either export objects per cell from your map (you may want to store a map of the coins) or export your objects as a list (you might need to have a list of ground areas to put into a physics engine).<\/p>\n<p style=\"text-align: center;\"><em>More information: <a href=\"..\/learn\/map-objects\">Map Objects<\/a><\/em><\/p>\n<h1>Scripting<\/h1>\n<p>There are two kinds of scripts that you can use in Tile Studio II, scripts to modify the tile buffer and export scripts.<\/p>\n<p>When running scripts, it is good to enable the console window from the <em>View<\/em> menu. There could be warnings or error messages if your script doesn&#8217;t work properly.<\/p>\n<p>You can setup scripts to run whenever you press a certain function key. Here is an example of a simple function that adds a dither effect to any tile:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-244 size-full\" src=\"http:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/script1.png\" alt=\"\" width=\"360\" height=\"287\" srcset=\"https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/script1.png 360w, https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/script1-300x239.png 300w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/p>\n<p>The first line sets up the F4 shortcut key to run the function <em>DitherEffect<\/em>, which is then defined by using the built-in function <strong>ModifyBuffer<\/strong>, which executes a given function f on every pixel in the buffer. In the function f, we add 1 to the color offset if (x + y) results in an od number (bp is the BufferPixel, it contains Gradient, Offset and Alpha, which can be modified in this function).<\/p>\n<p>Once Tile Studio II has recognized your function, it will be available in the script menu:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-245\" src=\"http:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/script-menu.png\" alt=\"\" width=\"189\" height=\"76\" \/><\/p>\n<p>Now, here is what happens when we press F4 for this example tile:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-242 alignnone\" src=\"http:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/dither1.png\" alt=\"\" width=\"236\" height=\"236\" srcset=\"https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/dither1.png 236w, https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/dither1-150x150.png 150w\" sizes=\"(max-width: 236px) 100vw, 236px\" \/> <img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-243 alignnone\" src=\"http:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/dither2.png\" alt=\"\" width=\"236\" height=\"235\" srcset=\"https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/dither2.png 236w, https:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/dither2-150x150.png 150w\" sizes=\"(max-width: 236px) 100vw, 236px\" \/><\/p>\n<p>Export functions work in the same way, you can set up a function key to export your project. Using LUA code, you can specify how you want your graphics and maps to be exported. Or (in the future) you can look for an export function that targets the library \/ system that you are using.<\/p>\n<p style=\"text-align: center;\"><em>More information: <a href=\"..\/learn\/scripting\">Scripting<\/a><\/em><\/p>\n<h1>Configurations<\/h1>\n<p>A project can have different export configurations. For example, you could have one for desktop and one for mobile. You can choose the active configuration before exporting your project.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-246\" src=\"http:\/\/www.wieringsoftware.com\/ts2\/wp-content\/uploads\/2017\/12\/configuration.png\" alt=\"\" width=\"155\" height=\"86\" \/><\/p>\n<p>In your export code, you can do things differently depending on the selected target. Besides, there are some default settings in the configuration, like the maximum texture size.<\/p>\n<p style=\"text-align: center;\"><em>See the <a href=\".\/learn\">Learn<\/a> section for more information.<\/em><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the old days, graphics artists had to work with lots of limitations (limited color depth, maximum number of colors on the screen at the same time, memory sizes, resolution), but still were able to make amazing looking pixel art &hellip; <a href=\"https:\/\/www.wieringsoftware.com\/ts2\/features\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":20,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"_links":{"self":[{"href":"https:\/\/www.wieringsoftware.com\/ts2\/wp-json\/wp\/v2\/pages\/33"}],"collection":[{"href":"https:\/\/www.wieringsoftware.com\/ts2\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.wieringsoftware.com\/ts2\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.wieringsoftware.com\/ts2\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wieringsoftware.com\/ts2\/wp-json\/wp\/v2\/comments?post=33"}],"version-history":[{"count":40,"href":"https:\/\/www.wieringsoftware.com\/ts2\/wp-json\/wp\/v2\/pages\/33\/revisions"}],"predecessor-version":[{"id":425,"href":"https:\/\/www.wieringsoftware.com\/ts2\/wp-json\/wp\/v2\/pages\/33\/revisions\/425"}],"wp:attachment":[{"href":"https:\/\/www.wieringsoftware.com\/ts2\/wp-json\/wp\/v2\/media?parent=33"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}