<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[Tilengine - The 2D retro graphics engine forum - Game development topics]]></title>
		<link>http://tilengine.org/forum/</link>
		<description><![CDATA[Tilengine - The 2D retro graphics engine forum - http://tilengine.org/forum]]></description>
		<pubDate>Mon, 18 May 2026 00:13:26 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Origin of resources]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=2302</link>
			<pubDate>Thu, 07 Dec 2023 20:04:17 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=106859">vonhoff</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=2302</guid>
			<description><![CDATA[Hi Marc,<br />
<br />
I was wondering where you got the resources for the samples, like the palettes, spritesets, tilesets, etc. Did you make them yourself? They look really good.]]></description>
			<content:encoded><![CDATA[Hi Marc,<br />
<br />
I was wondering where you got the resources for the samples, like the palettes, spritesets, tilesets, etc. Did you make them yourself? They look really good.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Animated isometric maps in Tilengine]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=2294</link>
			<pubDate>Mon, 29 May 2023 10:53:52 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=106859">vonhoff</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=2294</guid>
			<description><![CDATA[Hello everyone,<br />
<br />
A few months ago, I started with creating tilesets and tilemaps. Drawing inspiration from classic isometric games like Populous, my goal was to capture the same perspective and atmosphere in my own game. However, I soon found out that Tilengine does not support diamond isometric tiles natively, which made the implementation very challenging. To use such a tileset, I had to divide a pre-rendered (animated) image into square tiles.<br />
<br />
One of the major difficulties I faced was incorporating animated tiles into an orthographic tileset with isometric graphics, like flickering torches, spinning windmills, and other dynamic elements. The process of manually extracting pre-rendered animation frames, slicing them into tiles, filtering out duplicates, organizing them, and creating the tilesets and tilemaps turned out to be extremely tedious and time-consuming.<br />
<br />
Motivated by the desire to simplify this process, I took it upon myself to develop a tool that automates the conversion from an animated image. The result is a command-line tool I named "Animation2Tilemap". This tool is not limited to GIFs; it can also work with other types of animations, such as a folder of extracted video frames. However, I recommend using it with small and simple animations, as large and complex ones may result in very large tilesets that are not practical for game development. Nevertheless, it can be a fun way to experiment with different sources of animation and see what you can create with them. Please let me know if you have any feedback or questions.<br />
<br />
You can find this tool here: <a href="https://github.com/vonhoff/Animation2Tilemap" target="_blank" rel="noopener" class="mycode_url">https://github.com/vonhoff/Animation2Tilemap</a><br />
(Leave a star if you're using it in your projects <img src="http://tilengine.org/forum/images/smilies/tongue.png" alt="Tongue" title="Tongue" class="smilie smilie_51" /> )<br />
<br />
For example, let’s say you have this animated GIF image of an isometric scene:<br />
<img src="https://i.imgur.com/ZVsbn9D.gif" loading="lazy"  width="674" height="566" alt="[Image: ZVsbn9D.gif]" class="mycode_img" /><br />
<br />
By using this tool, you can convert it into this animated tileset and tilemap (PNG, TSX and TMX file):<br />
<img src="https://i.imgur.com/1Ehg1Uw.png" loading="lazy"  width="774" height="410" alt="[Image: 1Ehg1Uw.png]" class="mycode_img" />]]></description>
			<content:encoded><![CDATA[Hello everyone,<br />
<br />
A few months ago, I started with creating tilesets and tilemaps. Drawing inspiration from classic isometric games like Populous, my goal was to capture the same perspective and atmosphere in my own game. However, I soon found out that Tilengine does not support diamond isometric tiles natively, which made the implementation very challenging. To use such a tileset, I had to divide a pre-rendered (animated) image into square tiles.<br />
<br />
One of the major difficulties I faced was incorporating animated tiles into an orthographic tileset with isometric graphics, like flickering torches, spinning windmills, and other dynamic elements. The process of manually extracting pre-rendered animation frames, slicing them into tiles, filtering out duplicates, organizing them, and creating the tilesets and tilemaps turned out to be extremely tedious and time-consuming.<br />
<br />
Motivated by the desire to simplify this process, I took it upon myself to develop a tool that automates the conversion from an animated image. The result is a command-line tool I named "Animation2Tilemap". This tool is not limited to GIFs; it can also work with other types of animations, such as a folder of extracted video frames. However, I recommend using it with small and simple animations, as large and complex ones may result in very large tilesets that are not practical for game development. Nevertheless, it can be a fun way to experiment with different sources of animation and see what you can create with them. Please let me know if you have any feedback or questions.<br />
<br />
You can find this tool here: <a href="https://github.com/vonhoff/Animation2Tilemap" target="_blank" rel="noopener" class="mycode_url">https://github.com/vonhoff/Animation2Tilemap</a><br />
(Leave a star if you're using it in your projects <img src="http://tilengine.org/forum/images/smilies/tongue.png" alt="Tongue" title="Tongue" class="smilie smilie_51" /> )<br />
<br />
For example, let’s say you have this animated GIF image of an isometric scene:<br />
<img src="https://i.imgur.com/ZVsbn9D.gif" loading="lazy"  width="674" height="566" alt="[Image: ZVsbn9D.gif]" class="mycode_img" /><br />
<br />
By using this tool, you can convert it into this animated tileset and tilemap (PNG, TSX and TMX file):<br />
<img src="https://i.imgur.com/1Ehg1Uw.png" loading="lazy"  width="774" height="410" alt="[Image: 1Ehg1Uw.png]" class="mycode_img" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[One single layer, no sprites. Pushing Tilengine to its limits?]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=2291</link>
			<pubDate>Wed, 19 Apr 2023 18:56:45 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=1831">System64</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=2291</guid>
			<description><![CDATA[Hi, did I just pushed Tilengine to its limits?<br />
<a href="https://streamable.com/y8hyxh" target="_blank" rel="noopener" class="mycode_url">Tilengine demo</a><br />
Only one layer was used, and there is no sprite at all!]]></description>
			<content:encoded><![CDATA[Hi, did I just pushed Tilengine to its limits?<br />
<a href="https://streamable.com/y8hyxh" target="_blank" rel="noopener" class="mycode_url">Tilengine demo</a><br />
Only one layer was used, and there is no sprite at all!]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[V-Tilengine]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=2286</link>
			<pubDate>Wed, 25 Jan 2023 11:26:52 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=1831">System64</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=2286</guid>
			<description><![CDATA[Hi! I created new bindings for the V programming language!<br />
V is a statically typed and compiled programming language. More infos about it here:<br />
<a href="https://vlang.io/" target="_blank" rel="noopener" class="mycode_url">https://vlang.io/</a><br />
<br />
You can check my bindings here :<br />
<a href="https://github.com/system64MC/V-Tilengine" target="_blank" rel="noopener" class="mycode_url">https://github.com/system64MC/V-Tilengine</a><br />
<br />
Do not hesitate to report bugs or fork it to improve the bindings.]]></description>
			<content:encoded><![CDATA[Hi! I created new bindings for the V programming language!<br />
V is a statically typed and compiled programming language. More infos about it here:<br />
<a href="https://vlang.io/" target="_blank" rel="noopener" class="mycode_url">https://vlang.io/</a><br />
<br />
You can check my bindings here :<br />
<a href="https://github.com/system64MC/V-Tilengine" target="_blank" rel="noopener" class="mycode_url">https://github.com/system64MC/V-Tilengine</a><br />
<br />
Do not hesitate to report bugs or fork it to improve the bindings.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Slotted Palettes test and the PAL64 palette format]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=2279</link>
			<pubDate>Wed, 09 Nov 2022 21:07:35 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=1831">System64</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=2279</guid>
			<description><![CDATA[Hi! I did some tests with the new palette attribute per tile, and it is a success! I linked a video to show the test.<br />
[video=discord]https://cdn.discordapp.com/attachments/808677096788328448/1040005797654056990/2022-11-09_21-47-10.mp4[/video]<br />
<br />
I also used my custom palette format, PAL64 generated with my tool here : <a href="https://editor.p5js.org/system64MC/sketches/k8vzhPDLZ" target="_blank" rel="noopener" class="mycode_url">PAL64 Palette Editor</a><br />
The reason why I made this format is because loading 8 differents ACT files is tedious. Plus, my tool allows you to use old school palettes such as the Master System Palette, or even the NES palette! It also supports the common RGB24 format.<br />
<br />
Don't hesitate to ask about the format specification or about the code if you are interested. Caution, the code is written in Nim, but it should be straightforward.]]></description>
			<content:encoded><![CDATA[Hi! I did some tests with the new palette attribute per tile, and it is a success! I linked a video to show the test.<br />
[video=discord]https://cdn.discordapp.com/attachments/808677096788328448/1040005797654056990/2022-11-09_21-47-10.mp4[/video]<br />
<br />
I also used my custom palette format, PAL64 generated with my tool here : <a href="https://editor.p5js.org/system64MC/sketches/k8vzhPDLZ" target="_blank" rel="noopener" class="mycode_url">PAL64 Palette Editor</a><br />
The reason why I made this format is because loading 8 differents ACT files is tedious. Plus, my tool allows you to use old school palettes such as the Master System Palette, or even the NES palette! It also supports the common RGB24 format.<br />
<br />
Don't hesitate to ask about the format specification or about the code if you are interested. Caution, the code is written in Nim, but it should be straightforward.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[PyTilengine Tutorial Series]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=1397</link>
			<pubDate>Tue, 18 Jan 2022 14:40:23 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=149">Daniel H.</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=1397</guid>
			<description><![CDATA[Hi everyone!<br />
<br />
I'm creating a YouTube tutorial series on PyTilengine. Here's the first video: <a href="https://www.youtube.com/watch?v=UTBmBl__1Zo" target="_blank" rel="noopener" class="mycode_url">https://www.youtube.com/watch?v=UTBmBl__1Zo</a><br />
<br />
Hope you guys find it helpful, and please consider subscribing to the YouTube channel.  <img src="http://tilengine.org/forum/images/smilies/biggrin.png" alt="Biggrin" title="Biggrin" class="smilie smilie_56" /> <br />
<br />
I'll post new videos on this thread as well.<br />
<br />
Cheers! <img src="http://tilengine.org/forum/images/smilies/smile.png" alt="Smile" title="Smile" class="smilie smilie_60" />]]></description>
			<content:encoded><![CDATA[Hi everyone!<br />
<br />
I'm creating a YouTube tutorial series on PyTilengine. Here's the first video: <a href="https://www.youtube.com/watch?v=UTBmBl__1Zo" target="_blank" rel="noopener" class="mycode_url">https://www.youtube.com/watch?v=UTBmBl__1Zo</a><br />
<br />
Hope you guys find it helpful, and please consider subscribing to the YouTube channel.  <img src="http://tilengine.org/forum/images/smilies/biggrin.png" alt="Biggrin" title="Biggrin" class="smilie smilie_56" /> <br />
<br />
I'll post new videos on this thread as well.<br />
<br />
Cheers! <img src="http://tilengine.org/forum/images/smilies/smile.png" alt="Smile" title="Smile" class="smilie smilie_60" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[How to limit a line scroll to a certain part of the world?]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=1368</link>
			<pubDate>Sun, 19 Dec 2021 03:09:40 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=471">RootBeerKing</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=1368</guid>
			<description><![CDATA[Hello, I'm having trouble figuring out how to go about limiting a raster effect line scroll to a certain part of the world.  I understand the way raster effects work is screen based. But how would I go about having the effect only appear on screen when the world is at a certain position? Example: <a href="https://i.gyazo.com/8c9cb92f7c9108795c7f410a645cac6a.mp4" target="_blank" rel="noopener" class="mycode_url">https://i.gyazo.com/8c9cb92f7c9108795c7f...5cac6a.mp4</a><br />
<br />
As you can see in the example the effect on the grass looks fine when the camera is low to the ground, however once you move up the raster effect is ruined as it is no longer covering the part of the background that it was once scrolling. Currently the code for this effect is pretty simple <div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>void GrassLineScroll(int line)<br />
    {<br />
       float pos = -1;<br />
       <br />
       if (line == 0 ) {<br />
           TLN_SetLayerParallaxFactor(2, 0.50, 1.0);<br />
       }<br />
       if (line == 167 ) {<br />
           TLN_SetLayerParallaxFactor(2, 0.80, 1.0);<br />
       }<br />
       if (line == 180 ) {<br />
           TLN_SetLayerParallaxFactor(2, 0.90, 1.0);<br />
       }<br />
       if (line == 192 ) {<br />
           TLN_SetLayerParallaxFactor(2, 0.95, 1.0);<br />
       }<br />
   }</code></div></div><br />
Any help with this would be much appreciated. Thank you once again.<br />
<br />
Cheers,<br />
<br />
RBK]]></description>
			<content:encoded><![CDATA[Hello, I'm having trouble figuring out how to go about limiting a raster effect line scroll to a certain part of the world.  I understand the way raster effects work is screen based. But how would I go about having the effect only appear on screen when the world is at a certain position? Example: <a href="https://i.gyazo.com/8c9cb92f7c9108795c7f410a645cac6a.mp4" target="_blank" rel="noopener" class="mycode_url">https://i.gyazo.com/8c9cb92f7c9108795c7f...5cac6a.mp4</a><br />
<br />
As you can see in the example the effect on the grass looks fine when the camera is low to the ground, however once you move up the raster effect is ruined as it is no longer covering the part of the background that it was once scrolling. Currently the code for this effect is pretty simple <div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>void GrassLineScroll(int line)<br />
    {<br />
       float pos = -1;<br />
       <br />
       if (line == 0 ) {<br />
           TLN_SetLayerParallaxFactor(2, 0.50, 1.0);<br />
       }<br />
       if (line == 167 ) {<br />
           TLN_SetLayerParallaxFactor(2, 0.80, 1.0);<br />
       }<br />
       if (line == 180 ) {<br />
           TLN_SetLayerParallaxFactor(2, 0.90, 1.0);<br />
       }<br />
       if (line == 192 ) {<br />
           TLN_SetLayerParallaxFactor(2, 0.95, 1.0);<br />
       }<br />
   }</code></div></div><br />
Any help with this would be much appreciated. Thank you once again.<br />
<br />
Cheers,<br />
<br />
RBK]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Tilengine vs shaders]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=1214</link>
			<pubDate>Mon, 19 Jul 2021 00:48:16 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=13">Domarius</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=1214</guid>
			<description><![CDATA[Hey Megamarc!<br />
<br />
It's been a few years since I was championing Tilengine, and wishing I had a game idea that would need it.<br />
<br />
Sadly, now that I am working on a 2D pixel art game, I decided not to use Tilengine!  I've been thinking about it a lot, it's such a shame because I really liked the idea behind Tilengine.  I thought I would describe the path I took, and get your thoughts on where Tilengine sits in all this.<br />
<br />
I think the first reason I didn't start with Tilengine for my retro projects, is the most beaten path to getting Tilengine to run (that I know of) is to run it on top of SDL.  However, I went with Unity for the cross platform support, that SDL doesn't have, even though it pained me to know I was using a 3D engine to draw 2D pixel graphics, and this was very evident in my frame rate testing on very low end hardware, compared to more true 2D engines like Godot.  But it didn't matter - as long as it ran well enough, my ultimate goal was to be able to easily port to consoles like the Nintendo Switch, and Unity was the best at that, at the time.<br />
<br />
Then I came across <a href="http://tilengine.org/forum/kha.tech" target="_blank" rel="noopener" class="mycode_url">Kha</a> (I think from the GamesFromScratch YouTube channel), and I decided to give it a solid go, because it rivals Unity for cross platform support, and it's a more "truer" 2D engine. Even better, it's 2D engine is designed to make the best use of modern GPUs. Each "drawImage" or "drawSubImage" function call actually sends a quad of 4 texture mapped verts to the GPU. Sequential draw calls using the same texture will be batched, to reduce overhead. And you can get more involved in this pipeline if you want, and change the way it works. It's meant to be used this way because it's more of a framework than an engine - a modern replacement for SDL. You can make other 2D or 3D engines with it, and it will always be using the GPU.<br />
<br />
I then quickly learned shaders to implement my own paletted images, so now my sprite atlases have associated palettes, and each sprite instance (or rather, each drawImage call) has it's own palette index that it can use, meaning each sprite instance can have a different palette, but still use the same texture, and still be batched into the same draw call.<br />
<br />
And I've already planned out how I'll do some per-layer scanline effects, by rendering the layer to a pixel buffer and sending that to the GPU where the shader will offset each row of pixels.<br />
<br />
And then I finally realised, I was better off learning shaders to emulate old hardware effects. The experience is more relevant to the way modern hardware works, and everything has a GPU now, and the GPU seems like the right place to spend resources emulating old video game effects, leaving the CPU to actually run the game itself.  <br />
<br />
Although if we're talking about making games that look like SNES or Megadrive games, the extra effort is probably pretty minimal whether it's on the CPU or GPU.  And it is likely very possible to implement Tilengine into Kha, and have it just draw a texture every frame. I guess it comes down to me feeling better about using Kha's GPU based drawing commands and getting involved and writing shaders to be part of that draw process, and knowing I'm learning relevant skills while making the best use of the actual hardware the game is running on. <br />
<br />
Oh I also recently made a video on Kha over Unity or SDL <a href="https://www.youtube.com/watch?v=5A8v7dbkPRg" target="_blank" rel="noopener" class="mycode_url">https://www.youtube.com/watch?v=5A8v7dbkPRg</a><br />
<br />
So yeah, after all the fantasizing I did about making a game using Tilengine, I felt like I needed to come back here and talk about what ended up happening, and see if you had any thoughts on all this.]]></description>
			<content:encoded><![CDATA[Hey Megamarc!<br />
<br />
It's been a few years since I was championing Tilengine, and wishing I had a game idea that would need it.<br />
<br />
Sadly, now that I am working on a 2D pixel art game, I decided not to use Tilengine!  I've been thinking about it a lot, it's such a shame because I really liked the idea behind Tilengine.  I thought I would describe the path I took, and get your thoughts on where Tilengine sits in all this.<br />
<br />
I think the first reason I didn't start with Tilengine for my retro projects, is the most beaten path to getting Tilengine to run (that I know of) is to run it on top of SDL.  However, I went with Unity for the cross platform support, that SDL doesn't have, even though it pained me to know I was using a 3D engine to draw 2D pixel graphics, and this was very evident in my frame rate testing on very low end hardware, compared to more true 2D engines like Godot.  But it didn't matter - as long as it ran well enough, my ultimate goal was to be able to easily port to consoles like the Nintendo Switch, and Unity was the best at that, at the time.<br />
<br />
Then I came across <a href="http://tilengine.org/forum/kha.tech" target="_blank" rel="noopener" class="mycode_url">Kha</a> (I think from the GamesFromScratch YouTube channel), and I decided to give it a solid go, because it rivals Unity for cross platform support, and it's a more "truer" 2D engine. Even better, it's 2D engine is designed to make the best use of modern GPUs. Each "drawImage" or "drawSubImage" function call actually sends a quad of 4 texture mapped verts to the GPU. Sequential draw calls using the same texture will be batched, to reduce overhead. And you can get more involved in this pipeline if you want, and change the way it works. It's meant to be used this way because it's more of a framework than an engine - a modern replacement for SDL. You can make other 2D or 3D engines with it, and it will always be using the GPU.<br />
<br />
I then quickly learned shaders to implement my own paletted images, so now my sprite atlases have associated palettes, and each sprite instance (or rather, each drawImage call) has it's own palette index that it can use, meaning each sprite instance can have a different palette, but still use the same texture, and still be batched into the same draw call.<br />
<br />
And I've already planned out how I'll do some per-layer scanline effects, by rendering the layer to a pixel buffer and sending that to the GPU where the shader will offset each row of pixels.<br />
<br />
And then I finally realised, I was better off learning shaders to emulate old hardware effects. The experience is more relevant to the way modern hardware works, and everything has a GPU now, and the GPU seems like the right place to spend resources emulating old video game effects, leaving the CPU to actually run the game itself.  <br />
<br />
Although if we're talking about making games that look like SNES or Megadrive games, the extra effort is probably pretty minimal whether it's on the CPU or GPU.  And it is likely very possible to implement Tilengine into Kha, and have it just draw a texture every frame. I guess it comes down to me feeling better about using Kha's GPU based drawing commands and getting involved and writing shaders to be part of that draw process, and knowing I'm learning relevant skills while making the best use of the actual hardware the game is running on. <br />
<br />
Oh I also recently made a video on Kha over Unity or SDL <a href="https://www.youtube.com/watch?v=5A8v7dbkPRg" target="_blank" rel="noopener" class="mycode_url">https://www.youtube.com/watch?v=5A8v7dbkPRg</a><br />
<br />
So yeah, after all the fantasizing I did about making a game using Tilengine, I felt like I needed to come back here and talk about what ended up happening, and see if you had any thoughts on all this.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[External rendering SDL2]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=1198</link>
			<pubDate>Sat, 26 Jun 2021 20:26:59 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=471">RootBeerKing</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=1198</guid>
			<description><![CDATA[I’ve been trying to wrap my head around the external rendering feature of Tilengine lately to no avail. I just don’t understand how it’s supposed to work despite reading the documentation and looking at examples. I tried poking around Tilengine’s window.c file to see how it’s done, but attempting to recreate what’s being done in window.c on my own ended with failure. I’m sure it’s just my lack of knowledge in rendering/surfaces to begin with, but I could really use some help on the topic, as I’ve been spinning my wheels here for days. If someone could give me a short example on the proper and most simple way to get <span style="color: #1a1a1a;" class="mycode_color"><span style="font-family: Roboto, sans-serif;" class="mycode_font">TLN_SetRenderTarget working with an SDL_Surface it would be much appreciated. Thank you and have a great day!</span></span>]]></description>
			<content:encoded><![CDATA[I’ve been trying to wrap my head around the external rendering feature of Tilengine lately to no avail. I just don’t understand how it’s supposed to work despite reading the documentation and looking at examples. I tried poking around Tilengine’s window.c file to see how it’s done, but attempting to recreate what’s being done in window.c on my own ended with failure. I’m sure it’s just my lack of knowledge in rendering/surfaces to begin with, but I could really use some help on the topic, as I’ve been spinning my wheels here for days. If someone could give me a short example on the proper and most simple way to get <span style="color: #1a1a1a;" class="mycode_color"><span style="font-family: Roboto, sans-serif;" class="mycode_font">TLN_SetRenderTarget working with an SDL_Surface it would be much appreciated. Thank you and have a great day!</span></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[LDtk - New Level Editor]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=1064</link>
			<pubDate>Sat, 13 Mar 2021 03:30:50 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=471">RootBeerKing</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=1064</guid>
			<description><![CDATA[<a href="https://ldtk.io/" target="_blank" rel="noopener" class="mycode_url">https://ldtk.io/</a><br />
<br />
Not sure if the Tilengine community has heard of it before. It's a relatively new Level Map Editor and I think it's pretty cool and easy to use. It can export to TMX files so you can still use it with Tilengine, but it would be nice if Tilengine could add support for it natively. I much prefer working with LDtk rather than Tiled.<br />
<br />
Check it out if you haven't already, you might like it too.]]></description>
			<content:encoded><![CDATA[<a href="https://ldtk.io/" target="_blank" rel="noopener" class="mycode_url">https://ldtk.io/</a><br />
<br />
Not sure if the Tilengine community has heard of it before. It's a relatively new Level Map Editor and I think it's pretty cool and easy to use. It can export to TMX files so you can still use it with Tilengine, but it would be nice if Tilengine could add support for it natively. I much prefer working with LDtk rather than Tiled.<br />
<br />
Check it out if you haven't already, you might like it too.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Tilengine is included in Ring programming language]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=1042</link>
			<pubDate>Sat, 20 Feb 2021 05:25:10 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=18111">Mahmoud Fayed</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=1042</guid>
			<description><![CDATA[Hello<br />
<br />
Since version 1.14 of the Ring programming language, we included Tilengine in the Ring Standard Library<br />
<br />
Ring Project: <a href="https://github.com/ring-lang/ring" target="_blank" rel="noopener" class="mycode_url">https://github.com/ring-lang/ring</a><br />
RingTilengine Documentation : <a href="https://ring-lang.sourceforge.io/doc1.14/tilengine.html" target="_blank" rel="noopener" class="mycode_url">https://ring-lang.sourceforge.io/doc1.14/tilengine.html</a><br />
Samples : <a href="https://github.com/ring-lang/ring/tree/master/samples/UsingTilengine" target="_blank" rel="noopener" class="mycode_url">https://github.com/ring-lang/ring/tree/m...gTilengine</a><br />
Ring Website: <a href="http://ring-lang.net" target="_blank" rel="noopener" class="mycode_url">http://ring-lang.net</a> <br />
<br />
<br />
The RingTilengine wrapper provides complete support for all of the Tilengine features (functions/structures/constants)<br />
<br />
<img src="https://ring-lang.sourceforge.io/doc1.14/_images/tilengine_shot3.png" loading="lazy"  alt="[Image: tilengine_shot3.png]" class="mycode_img" /><br />
<br />
Since Ring is a programming package (Compiler, VM, Libraries, IDE, Samples &amp; Applications) we distribute some apps and games with it : <a href="https://github.com/ring-lang/ring/tree/master/applications" target="_blank" rel="noopener" class="mycode_url">https://github.com/ring-lang/ring/tree/m...plications</a> <br />
In the future, If you developed something nice using Ring and Tilengine, we will be happy to include it in Ring Applications<br />
<br />
Since this could be the first time to hear about Ring, This is a quick summary about the language<br />
(Scripting language with many features like Python &amp; Ruby, but comes with small size like Lua, an IDE similar to Visual Basic, Syntax Flexibility where you can program in your favorite style and create your custom style if you want, The ability to create domain-specific languages using Declarative Programming or Natural Programming, Smart Garbage Collector that uses escape analysis and doesn't stop the world, No GIL when using Threads so you can get more speed, Powerful support for Qt framework even on Mobile and WebAssembly platforms, and finally the language comes with support for many game programming libraries). <br />
<br />
The Ring Game Engine for 2D Games is an example about using Declarative Programming on the top of Object-Oriented Programming to quickly develop games : <a href="https://ring-lang.sourceforge.io/doc1.14/gameengine.html" target="_blank" rel="noopener" class="mycode_url">https://ring-lang.sourceforge.io/doc1.14...ngine.html</a><br />
<br />
Greetings,<br />
Mahmoud]]></description>
			<content:encoded><![CDATA[Hello<br />
<br />
Since version 1.14 of the Ring programming language, we included Tilengine in the Ring Standard Library<br />
<br />
Ring Project: <a href="https://github.com/ring-lang/ring" target="_blank" rel="noopener" class="mycode_url">https://github.com/ring-lang/ring</a><br />
RingTilengine Documentation : <a href="https://ring-lang.sourceforge.io/doc1.14/tilengine.html" target="_blank" rel="noopener" class="mycode_url">https://ring-lang.sourceforge.io/doc1.14/tilengine.html</a><br />
Samples : <a href="https://github.com/ring-lang/ring/tree/master/samples/UsingTilengine" target="_blank" rel="noopener" class="mycode_url">https://github.com/ring-lang/ring/tree/m...gTilengine</a><br />
Ring Website: <a href="http://ring-lang.net" target="_blank" rel="noopener" class="mycode_url">http://ring-lang.net</a> <br />
<br />
<br />
The RingTilengine wrapper provides complete support for all of the Tilengine features (functions/structures/constants)<br />
<br />
<img src="https://ring-lang.sourceforge.io/doc1.14/_images/tilengine_shot3.png" loading="lazy"  alt="[Image: tilengine_shot3.png]" class="mycode_img" /><br />
<br />
Since Ring is a programming package (Compiler, VM, Libraries, IDE, Samples &amp; Applications) we distribute some apps and games with it : <a href="https://github.com/ring-lang/ring/tree/master/applications" target="_blank" rel="noopener" class="mycode_url">https://github.com/ring-lang/ring/tree/m...plications</a> <br />
In the future, If you developed something nice using Ring and Tilengine, we will be happy to include it in Ring Applications<br />
<br />
Since this could be the first time to hear about Ring, This is a quick summary about the language<br />
(Scripting language with many features like Python &amp; Ruby, but comes with small size like Lua, an IDE similar to Visual Basic, Syntax Flexibility where you can program in your favorite style and create your custom style if you want, The ability to create domain-specific languages using Declarative Programming or Natural Programming, Smart Garbage Collector that uses escape analysis and doesn't stop the world, No GIL when using Threads so you can get more speed, Powerful support for Qt framework even on Mobile and WebAssembly platforms, and finally the language comes with support for many game programming libraries). <br />
<br />
The Ring Game Engine for 2D Games is an example about using Declarative Programming on the top of Object-Oriented Programming to quickly develop games : <a href="https://ring-lang.sourceforge.io/doc1.14/gameengine.html" target="_blank" rel="noopener" class="mycode_url">https://ring-lang.sourceforge.io/doc1.14...ngine.html</a><br />
<br />
Greetings,<br />
Mahmoud]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Made a Function to scroll multiple sections of a background.]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=825</link>
			<pubDate>Fri, 18 Sep 2020 19:11:14 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=471">RootBeerKing</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=825</guid>
			<description><![CDATA[Because of Tilengine and my undying dream to make video games, I've been learning C/C++ for the past few years, and I've finally got to the point where things are clicking into place in my brain, and I'm comfortable enough to actually start coding something. <br />
<br />
So the first thing I did was I wrote a function that makes scrolling a background in multiple sections, like in the platformer demo, a little more automated/reusable. It would be great if Marc could add this to Tilengine natively, as I think it's a nice little function to have included with Tilengine and could be used for many different projects.<br />
<br />
This is my first ever time writing an original function in C. If you see anything wrong with it, or anyways it could be done better, let me know! Otherwise I've tested it with the Platformer demo included with Tilengine and it worked fine, so it should work in any other project you paste it into.<br />
<br />
Thanks for checking it out, have a great day. <br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>/* &#92;brief Scrolls an assigned Background, in user-defined sections at varying speeds, based on the size of the <br />
 assigned Background Section &amp; Background Scroll Speed Arrays.<br />
<br />
&#92;param bg[] - an array that contains one or more Background scroll sections(sections must be first setup in raster_callback()).<br />
&#92;param bgspeed[] - an array of user-defined Background scroll speeds.<br />
&#92;param factor - a float value that assigns which direction to scroll the background sections.<br />
(+ value for right or - value for left)<br />
*/<br />
void TLN_SetBackgroudScrolls(float bg[], float  bgspeed[], float factor)<br />
{<br />
int scroll_section; // Holds the current section number of the horizontal scroll area.<br />
int num_sections = *(&amp;bg + 1) - bg; // Total number of sections, based off the size of the assigned bg[].<br />
<br />
for (scroll_section = 0; scroll_section &lt; num_sections; scroll_section++)<br />
bg[scroll_section] += (bgspeed[scroll_section] * factor);<br />
}</code></div></div>]]></description>
			<content:encoded><![CDATA[Because of Tilengine and my undying dream to make video games, I've been learning C/C++ for the past few years, and I've finally got to the point where things are clicking into place in my brain, and I'm comfortable enough to actually start coding something. <br />
<br />
So the first thing I did was I wrote a function that makes scrolling a background in multiple sections, like in the platformer demo, a little more automated/reusable. It would be great if Marc could add this to Tilengine natively, as I think it's a nice little function to have included with Tilengine and could be used for many different projects.<br />
<br />
This is my first ever time writing an original function in C. If you see anything wrong with it, or anyways it could be done better, let me know! Otherwise I've tested it with the Platformer demo included with Tilengine and it worked fine, so it should work in any other project you paste it into.<br />
<br />
Thanks for checking it out, have a great day. <br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>/* &#92;brief Scrolls an assigned Background, in user-defined sections at varying speeds, based on the size of the <br />
 assigned Background Section &amp; Background Scroll Speed Arrays.<br />
<br />
&#92;param bg[] - an array that contains one or more Background scroll sections(sections must be first setup in raster_callback()).<br />
&#92;param bgspeed[] - an array of user-defined Background scroll speeds.<br />
&#92;param factor - a float value that assigns which direction to scroll the background sections.<br />
(+ value for right or - value for left)<br />
*/<br />
void TLN_SetBackgroudScrolls(float bg[], float  bgspeed[], float factor)<br />
{<br />
int scroll_section; // Holds the current section number of the horizontal scroll area.<br />
int num_sections = *(&amp;bg + 1) - bg; // Total number of sections, based off the size of the assigned bg[].<br />
<br />
for (scroll_section = 0; scroll_section &lt; num_sections; scroll_section++)<br />
bg[scroll_section] += (bgspeed[scroll_section] * factor);<br />
}</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Sprite/Tile YSort effect and Camera Movement]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=575</link>
			<pubDate>Wed, 06 May 2020 02:24:36 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=686">Uneven_Prankster</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=575</guid>
			<description><![CDATA[Currently, I have successfully managed to implement collision detection by making using of a <a href="https://github.com/baylej/tmx" target="_blank" rel="noopener" class="mycode_url">TMX library</a> (I advise loading collision objects be a future feature of Tilengine) however I have been unable to pull off a convincing enough in-front-of/behind effect for the protagonist and walls, as it makes use of layer priority, which only works so well while the protagonist is behind the upper part of  the wall found in the prioritized layer. I suppose I may scrap having such situations at all for the better of continuing work without much hassle, but I am curious about doing this even then.<br />
<br />
Another thing is that I wish to implement a camera similar to that of games such as Earthbound. However, I am not skilled at this and therefore having it center around the character results in the position of the player being stored becoming inaccurate, which prevents collision detection from working correctly. I'm also curious about this. <br />
<br />
<img src="https://media.discordapp.net/attachments/292475482627112960/707415489604878416/unknown.png" loading="lazy"  alt="[Image: unknown.png]" class="mycode_img" /><br />
<br />
<img src="https://media.discordapp.net/attachments/292475482627112960/707414016917766174/unknown.png" loading="lazy"  alt="[Image: unknown.png]" class="mycode_img" /><br />
<br />
<span style="font-style: italic;" class="mycode_i">Example screenshot from Earthbound for the SNES.</span><br />
<img src="https://cdn.discordapp.com/attachments/663606741660860421/707417028025253978/earthbound-twoson-jogoveio.png" loading="lazy"  alt="[Image: earthbound-twoson-jogoveio.png]" class="mycode_img" />]]></description>
			<content:encoded><![CDATA[Currently, I have successfully managed to implement collision detection by making using of a <a href="https://github.com/baylej/tmx" target="_blank" rel="noopener" class="mycode_url">TMX library</a> (I advise loading collision objects be a future feature of Tilengine) however I have been unable to pull off a convincing enough in-front-of/behind effect for the protagonist and walls, as it makes use of layer priority, which only works so well while the protagonist is behind the upper part of  the wall found in the prioritized layer. I suppose I may scrap having such situations at all for the better of continuing work without much hassle, but I am curious about doing this even then.<br />
<br />
Another thing is that I wish to implement a camera similar to that of games such as Earthbound. However, I am not skilled at this and therefore having it center around the character results in the position of the player being stored becoming inaccurate, which prevents collision detection from working correctly. I'm also curious about this. <br />
<br />
<img src="https://media.discordapp.net/attachments/292475482627112960/707415489604878416/unknown.png" loading="lazy"  alt="[Image: unknown.png]" class="mycode_img" /><br />
<br />
<img src="https://media.discordapp.net/attachments/292475482627112960/707414016917766174/unknown.png" loading="lazy"  alt="[Image: unknown.png]" class="mycode_img" /><br />
<br />
<span style="font-style: italic;" class="mycode_i">Example screenshot from Earthbound for the SNES.</span><br />
<img src="https://cdn.discordapp.com/attachments/663606741660860421/707417028025253978/earthbound-twoson-jogoveio.png" loading="lazy"  alt="[Image: earthbound-twoson-jogoveio.png]" class="mycode_img" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[I made a wrapper for Beef Lang]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=572</link>
			<pubDate>Sat, 02 May 2020 18:40:45 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=471">RootBeerKing</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=572</guid>
			<description><![CDATA[It’s not quite finished as there are a few things I am having issues converting. But hopefully I can figure out the issues if I keep hacking away at it, or maybe someone else will come along and help me out. If you’re interested you can check it out at <a href="https://github.com/rootbeerking/Tilengine-Beef" target="_blank" rel="noopener" class="mycode_url">https://github.com/rootbeerking/Tilengine-Beef</a> <br />
<br />
If you don’t know about Beef Lang, it’s kind of a cross between C# and C++. It’s syntax is really easy to read and write; and making wrappers for C libraries is so easy even a baby programmer, like me, was able to throw together this wrapper in a day or two. Beef Lang can be downloaded at <a href="https://www.beeflang.org/" target="_blank" rel="noopener" class="mycode_url">https://www.beeflang.org/</a> It’s worth checking out if you haven’t heard of it yet.]]></description>
			<content:encoded><![CDATA[It’s not quite finished as there are a few things I am having issues converting. But hopefully I can figure out the issues if I keep hacking away at it, or maybe someone else will come along and help me out. If you’re interested you can check it out at <a href="https://github.com/rootbeerking/Tilengine-Beef" target="_blank" rel="noopener" class="mycode_url">https://github.com/rootbeerking/Tilengine-Beef</a> <br />
<br />
If you don’t know about Beef Lang, it’s kind of a cross between C# and C++. It’s syntax is really easy to read and write; and making wrappers for C libraries is so easy even a baby programmer, like me, was able to throw together this wrapper in a day or two. Beef Lang can be downloaded at <a href="https://www.beeflang.org/" target="_blank" rel="noopener" class="mycode_url">https://www.beeflang.org/</a> It’s worth checking out if you haven’t heard of it yet.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Running Tilengine on PSP]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=549</link>
			<pubDate>Sat, 18 Apr 2020 19:06:57 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=738">darkflea</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=549</guid>
			<description><![CDATA[<a href="https://www.dropbox.com/s/lt0g7l1hhk1ns0w/psptest.png?dl=0" target="_blank" rel="noopener" class="mycode_url">https://www.dropbox.com/s/lt0g7l1hhk1ns0...t.png?dl=0</a><br />
<br />
as you can see tilengine is working perfectly on psp straight out of the box <img src="http://tilengine.org/forum/images/smilies/tongue.png" alt="Tongue" title="Tongue" class="smilie smilie_51" />, well maybe a few tweaks here and there, anyone here interested in this let me know]]></description>
			<content:encoded><![CDATA[<a href="https://www.dropbox.com/s/lt0g7l1hhk1ns0w/psptest.png?dl=0" target="_blank" rel="noopener" class="mycode_url">https://www.dropbox.com/s/lt0g7l1hhk1ns0...t.png?dl=0</a><br />
<br />
as you can see tilengine is working perfectly on psp straight out of the box <img src="http://tilengine.org/forum/images/smilies/tongue.png" alt="Tongue" title="Tongue" class="smilie smilie_51" />, well maybe a few tweaks here and there, anyone here interested in this let me know]]></content:encoded>
		</item>
	</channel>
</rss>