<?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 - News & Announcements]]></title>
		<link>http://tilengine.org/forum/</link>
		<description><![CDATA[Tilengine - The 2D retro graphics engine forum - http://tilengine.org/forum]]></description>
		<pubDate>Wed, 29 Apr 2026 02:38:18 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Tilengine 2.15 supports variable refresh rate monitors]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=2292</link>
			<pubDate>Sat, 22 Apr 2023 18:24:39 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=1">megamarc</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=2292</guid>
			<description><![CDATA[I've uploaded a new release to GitHub and itch.io, that adds these features to the built-in window:<br />
<ul class="mycode_list"><li>Support for non-60 Hz refresh rates. Auto adjusted when creating the window, or can be manually set<br />
</li>
<li>V-Sync can be disabled between frames, allowing to setup a target fps different than the monitor refresh rate<br />
</li>
<li>Window scaling factor can be setup at runtime with ALT-1 to ALT-5<br />
</li>
</ul>
Full post can be read here:<br />
<a href="https://megamarc.itch.io/tilengine/devlog/520277/tilengine-215-released" target="_blank" rel="noopener" class="mycode_url">https://megamarc.itch.io/tilengine/devlo...5-released</a>]]></description>
			<content:encoded><![CDATA[I've uploaded a new release to GitHub and itch.io, that adds these features to the built-in window:<br />
<ul class="mycode_list"><li>Support for non-60 Hz refresh rates. Auto adjusted when creating the window, or can be manually set<br />
</li>
<li>V-Sync can be disabled between frames, allowing to setup a target fps different than the monitor refresh rate<br />
</li>
<li>Window scaling factor can be setup at runtime with ALT-1 to ALT-5<br />
</li>
</ul>
Full post can be read here:<br />
<a href="https://megamarc.itch.io/tilengine/devlog/520277/tilengine-215-released" target="_blank" rel="noopener" class="mycode_url">https://megamarc.itch.io/tilengine/devlo...5-released</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Tilengine 2.14 with new layer window feature]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=2287</link>
			<pubDate>Fri, 10 Feb 2023 15:07:29 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=1">megamarc</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=2287</guid>
			<description><![CDATA[Hi!<br />
<br />
I've just released a new version that adds a per-layer window feature similar to the one pesent in SNES. Here is the full post with explanation and new samples to play with:<br />
<br />
<a href="https://megamarc.itch.io/tilengine/devlog/488137/tilengine-214-new-snes-style-layer-window" target="_blank" rel="noopener" class="mycode_url">https://megamarc.itch.io/tilengine/devlo...yer-window</a><br />
<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://tilengine.org/forum/images/attachtypes/image.gif" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=247" target="_blank" title="">Captura de pantalla 2023-02-09 181655.jpg</a> (Size: 21.83 KB / Downloads: 3)
<!-- end: postbit_attachments_attachment --><br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://tilengine.org/forum/images/attachtypes/image.gif" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=248" target="_blank" title="">Captura de pantalla 2023-02-09 181723.jpg</a> (Size: 35.59 KB / Downloads: 3)
<!-- end: postbit_attachments_attachment --><br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://tilengine.org/forum/images/attachtypes/image.gif" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=249" target="_blank" title="">Captura de pantalla 2023-02-09 182737.jpg</a> (Size: 55.19 KB / Downloads: 3)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[Hi!<br />
<br />
I've just released a new version that adds a per-layer window feature similar to the one pesent in SNES. Here is the full post with explanation and new samples to play with:<br />
<br />
<a href="https://megamarc.itch.io/tilengine/devlog/488137/tilengine-214-new-snes-style-layer-window" target="_blank" rel="noopener" class="mycode_url">https://megamarc.itch.io/tilengine/devlo...yer-window</a><br />
<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://tilengine.org/forum/images/attachtypes/image.gif" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=247" target="_blank" title="">Captura de pantalla 2023-02-09 181655.jpg</a> (Size: 21.83 KB / Downloads: 3)
<!-- end: postbit_attachments_attachment --><br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://tilengine.org/forum/images/attachtypes/image.gif" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=248" target="_blank" title="">Captura de pantalla 2023-02-09 181723.jpg</a> (Size: 35.59 KB / Downloads: 3)
<!-- end: postbit_attachments_attachment --><br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://tilengine.org/forum/images/attachtypes/image.gif" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=249" target="_blank" title="">Captura de pantalla 2023-02-09 182737.jpg</a> (Size: 55.19 KB / Downloads: 3)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Tilengine 2.13 with per-tile palette selector]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=2280</link>
			<pubDate>Sat, 12 Nov 2022 17:18:13 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=1">megamarc</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=2280</guid>
			<description><![CDATA[Hi,<br />
I've uploaded to itch.io and github release 2.13 of Tilengine, which adds the ability to use different palettes on each tile of a tilemap, just like actual 2D chipsets work. Here's the full blog entry:<br />
<a href="https://megamarc.itch.io/tilengine/devlog/450879/tilengine-213-with-per-tile-palette-selector" target="_blank" rel="noopener" class="mycode_url">https://megamarc.itch.io/tilengine/devlo...e-selector</a>]]></description>
			<content:encoded><![CDATA[Hi,<br />
I've uploaded to itch.io and github release 2.13 of Tilengine, which adds the ability to use different palettes on each tile of a tilemap, just like actual 2D chipsets work. Here's the full blog entry:<br />
<a href="https://megamarc.itch.io/tilengine/devlog/450879/tilengine-213-with-per-tile-palette-selector" target="_blank" rel="noopener" class="mycode_url">https://megamarc.itch.io/tilengine/devlo...e-selector</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Tilengine 2.12 released with tile & sprite 90º rotation]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=2278</link>
			<pubDate>Tue, 01 Nov 2022 07:30:31 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=1">megamarc</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=2278</guid>
			<description><![CDATA[Hi!<br />
<br />
I've released version 2.12 that adds tile &amp; sprite 90º rotation. It can be cloned from GitHub or downloaded prebuilt binaries from itch.io<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://tilengine.org/forum/images/attachtypes/image.gif" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=241" target="_blank" title="">Captura de pantalla 2022-11-01 073742.png</a> (Size: 38.13 KB / Downloads: 2)
<!-- end: postbit_attachments_attachment --><br />
<br />
Full blog entry is here:<br />
<a href="https://megamarc.itch.io/tilengine/devlog/446493/tilengine-212-released-tile-sprite-90-rotation" target="_blank" rel="noopener" class="mycode_url">https://megamarc.itch.io/tilengine/devlo...0-rotation</a>]]></description>
			<content:encoded><![CDATA[Hi!<br />
<br />
I've released version 2.12 that adds tile &amp; sprite 90º rotation. It can be cloned from GitHub or downloaded prebuilt binaries from itch.io<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://tilengine.org/forum/images/attachtypes/image.gif" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=241" target="_blank" title="">Captura de pantalla 2022-11-01 073742.png</a> (Size: 38.13 KB / Downloads: 2)
<!-- end: postbit_attachments_attachment --><br />
<br />
Full blog entry is here:<br />
<a href="https://megamarc.itch.io/tilengine/devlog/446493/tilengine-212-released-tile-sprite-90-rotation" target="_blank" rel="noopener" class="mycode_url">https://megamarc.itch.io/tilengine/devlo...0-rotation</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Tilengine 2.11 released]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=2268</link>
			<pubDate>Sat, 01 Oct 2022 16:04:16 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=1">megamarc</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=2268</guid>
			<description><![CDATA[<span style="font-family: Arial;" class="mycode_font">Just released Tilengine 2.11 on GitHub and itch.io. This release enables tiled layers to be composed of up to 8 different tilesets each one.</span><br />
<br />
<span style="font-family: Arial;" class="mycode_font">Here is the full post:</span><br />
<br />
<span style="font-family: Arial;" class="mycode_font"><a href="https://megamarc.itch.io/tilengine/devlog/435151/tilengine-2110-released" target="_blank" rel="noopener" class="mycode_url">https://megamarc.itch.io/tilengine/devlo...0-released</a></span><br />
<br />
<span style="font-family: Arial;" class="mycode_font">Some days ago I've released version 2.10 with a new CRT emulation effect, with simplified API and more modes. It looks better and it has better performance, using less CPU.</span><br />
<br />
<span style="font-family: Arial;" class="mycode_font">This release also includes some bugfixes.</span><br />
<br />
<span style="font-family: Arial;" class="mycode_font"><span style="font-family: Arial;" class="mycode_font">Here is the full post:</span></span><br />
<br />
<span style="font-family: Arial;" class="mycode_font"><a href="https://megamarc.itch.io/tilengine/devlog/433709/tilengine-2100-released" target="_blank" rel="noopener" class="mycode_url">https://megamarc.itch.io/tilengine/devlo...0-released</a></span><br />
<br />
<span style="font-family: Arial;" class="mycode_font">You can get the sources on GitHub or grab prebuilt versions at itch.io</span>]]></description>
			<content:encoded><![CDATA[<span style="font-family: Arial;" class="mycode_font">Just released Tilengine 2.11 on GitHub and itch.io. This release enables tiled layers to be composed of up to 8 different tilesets each one.</span><br />
<br />
<span style="font-family: Arial;" class="mycode_font">Here is the full post:</span><br />
<br />
<span style="font-family: Arial;" class="mycode_font"><a href="https://megamarc.itch.io/tilengine/devlog/435151/tilengine-2110-released" target="_blank" rel="noopener" class="mycode_url">https://megamarc.itch.io/tilengine/devlo...0-released</a></span><br />
<br />
<span style="font-family: Arial;" class="mycode_font">Some days ago I've released version 2.10 with a new CRT emulation effect, with simplified API and more modes. It looks better and it has better performance, using less CPU.</span><br />
<br />
<span style="font-family: Arial;" class="mycode_font">This release also includes some bugfixes.</span><br />
<br />
<span style="font-family: Arial;" class="mycode_font"><span style="font-family: Arial;" class="mycode_font">Here is the full post:</span></span><br />
<br />
<span style="font-family: Arial;" class="mycode_font"><a href="https://megamarc.itch.io/tilengine/devlog/433709/tilengine-2100-released" target="_blank" rel="noopener" class="mycode_url">https://megamarc.itch.io/tilengine/devlo...0-released</a></span><br />
<br />
<span style="font-family: Arial;" class="mycode_font">You can get the sources on GitHub or grab prebuilt versions at itch.io</span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Web-browser suport is comming!]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=1279</link>
			<pubDate>Sat, 11 Sep 2021 16:25:12 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=1">megamarc</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=1279</guid>
			<description><![CDATA[Hi folks!<br />
<br />
I've been busy compiling Tilengine with <a href="https://emscripten.org/index.html" target="_blank" rel="noopener" class="mycode_url">Emscripten</a>, a clang-like compiler suite that outputs javascript and WebAssembly instead of traditional native machine code. What does this mean? <span style="font-weight: bold;" class="mycode_b">The ability to run Tilengine programs inside the browser</span>, instead of having to download and build a specific OS version.<br />
<br />
Progress is almost complete, I'll soon release the end library. In the meantime, some insights:<br />
<br />
Here you can see two screenshots from the samples "platformer" and "forest" running inside Firefox:<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://tilengine.org/forum/images/attachtypes/image.gif" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=97" target="_blank" title="">emcc_platformer.png</a> (Size: 97.61 KB / Downloads: 14)
<!-- end: postbit_attachments_attachment --><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://tilengine.org/forum/images/attachtypes/image.gif" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=96" target="_blank" title="">emcc_forest.png</a> (Size: 95.9 KB / Downloads: 9)
<!-- end: postbit_attachments_attachment --><br />
<br />
A screenshot of "benchmark" tool for obtaining performance<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://tilengine.org/forum/images/attachtypes/image.gif" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=94" target="_blank" title="">emcc_benchmark.png</a> (Size: 40.87 KB / Downloads: 9)
<!-- end: postbit_attachments_attachment --><br />
<br />
A screenshot of the same benchmark tool running natively on the same computer, to compare performance.<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://tilengine.org/forum/images/attachtypes/image.gif" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=95" target="_blank" title="">emcc_benchmark_native.png</a> (Size: 19.58 KB / Downloads: 8)
<!-- end: postbit_attachments_attachment --><br />
<br />
As you can see, performance inside the browser is between 40% - 50% relative to native speed, that matches expected results for Emscripten ported programs.<br />
<br />
I have to solve two caveats before releasing it, both related to SDL2 (the underlying windowing framework):<br />
<ul class="mycode_list"><li>despite benchmark results, actual animations run slower while they shouldn't<br />
</li>
<li>pressed keys are not passed to the window manager<br />
</li>
</ul>
Let me know what you think about it!]]></description>
			<content:encoded><![CDATA[Hi folks!<br />
<br />
I've been busy compiling Tilengine with <a href="https://emscripten.org/index.html" target="_blank" rel="noopener" class="mycode_url">Emscripten</a>, a clang-like compiler suite that outputs javascript and WebAssembly instead of traditional native machine code. What does this mean? <span style="font-weight: bold;" class="mycode_b">The ability to run Tilengine programs inside the browser</span>, instead of having to download and build a specific OS version.<br />
<br />
Progress is almost complete, I'll soon release the end library. In the meantime, some insights:<br />
<br />
Here you can see two screenshots from the samples "platformer" and "forest" running inside Firefox:<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://tilengine.org/forum/images/attachtypes/image.gif" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=97" target="_blank" title="">emcc_platformer.png</a> (Size: 97.61 KB / Downloads: 14)
<!-- end: postbit_attachments_attachment --><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://tilengine.org/forum/images/attachtypes/image.gif" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=96" target="_blank" title="">emcc_forest.png</a> (Size: 95.9 KB / Downloads: 9)
<!-- end: postbit_attachments_attachment --><br />
<br />
A screenshot of "benchmark" tool for obtaining performance<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://tilengine.org/forum/images/attachtypes/image.gif" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=94" target="_blank" title="">emcc_benchmark.png</a> (Size: 40.87 KB / Downloads: 9)
<!-- end: postbit_attachments_attachment --><br />
<br />
A screenshot of the same benchmark tool running natively on the same computer, to compare performance.<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://tilengine.org/forum/images/attachtypes/image.gif" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=95" target="_blank" title="">emcc_benchmark_native.png</a> (Size: 19.58 KB / Downloads: 8)
<!-- end: postbit_attachments_attachment --><br />
<br />
As you can see, performance inside the browser is between 40% - 50% relative to native speed, that matches expected results for Emscripten ported programs.<br />
<br />
I have to solve two caveats before releasing it, both related to SDL2 (the underlying windowing framework):<br />
<ul class="mycode_list"><li>despite benchmark results, actual animations run slower while they shouldn't<br />
</li>
<li>pressed keys are not passed to the window manager<br />
</li>
</ul>
Let me know what you think about it!]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Major refactor of Python Platformer]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=1195</link>
			<pubDate>Fri, 25 Jun 2021 12:21:36 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=1">megamarc</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=1195</guid>
			<description><![CDATA[Hi,<br />
<br />
I've done a major refactoring of Tilengine's sister project Python Platformer (<a href="https://github.com/megamarc/TilenginePythonPlatformer" target="_blank" rel="noopener" class="mycode_url">https://github.com/megamarc/TilenginePythonPlatformer</a>). I've split it onto separate, reusable modules what was a single-file implementation. The aim of this project is to showcase a real-world usage of tilengine to build a working game prototype, so everything must be keep clean and simple. Python can be quite tricky regarding imports, circular dependencies and sharing object instances, specially for someone having a strong background in C as things work quite differently. This refactoring supposed quite a bigger challenge than I expected at the beginning, but it's now completed.<br />
<br />
It's structure can be of interest for those of you working on Python games...]]></description>
			<content:encoded><![CDATA[Hi,<br />
<br />
I've done a major refactoring of Tilengine's sister project Python Platformer (<a href="https://github.com/megamarc/TilenginePythonPlatformer" target="_blank" rel="noopener" class="mycode_url">https://github.com/megamarc/TilenginePythonPlatformer</a>). I've split it onto separate, reusable modules what was a single-file implementation. The aim of this project is to showcase a real-world usage of tilengine to build a working game prototype, so everything must be keep clean and simple. Python can be quite tricky regarding imports, circular dependencies and sharing object instances, specially for someone having a strong background in C as things work quite differently. This refactoring supposed quite a bigger challenge than I expected at the beginning, but it's now completed.<br />
<br />
It's structure can be of interest for those of you working on Python games...]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Release 2.9.1 - Sprite pivot and layer enable]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=1075</link>
			<pubDate>Wed, 24 Mar 2021 12:58:37 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=1">megamarc</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=1075</guid>
			<description><![CDATA[This small update introduces an useful feature: the ability to set the sprite's pivot position. Until now it was always fixed to top-left corner, but now it can be set freely inside its bounding rect. This pivot point sets the exact placement and scaling source. For gameplay configurations that use some kind of 3D projection -like 3/4 or racing roads-, it's much more natural to pivot sprites at the bottom middle, where the "ground" is.<br />
<br />
GitHub project is updated and documentation online:<br />
<a href="http://www.tilengine.org/doc/md_sprites.html#autotoc_md93" target="_blank" rel="noopener" class="mycode_url">http://www.tilengine.org/doc/md_sprites....totoc_md93</a><br />
<br />
In addition, a layer can be enabled again with TLN_EnableLayer after it has been disabled with TLN_DisableLayer, as long as it was previously configured:<br />
<a href="http://www.tilengine.org/doc/md_layers.html#autotoc_md39" target="_blank" rel="noopener" class="mycode_url">http://www.tilengine.org/doc/md_layers.h...totoc_md39</a>]]></description>
			<content:encoded><![CDATA[This small update introduces an useful feature: the ability to set the sprite's pivot position. Until now it was always fixed to top-left corner, but now it can be set freely inside its bounding rect. This pivot point sets the exact placement and scaling source. For gameplay configurations that use some kind of 3D projection -like 3/4 or racing roads-, it's much more natural to pivot sprites at the bottom middle, where the "ground" is.<br />
<br />
GitHub project is updated and documentation online:<br />
<a href="http://www.tilengine.org/doc/md_sprites.html#autotoc_md93" target="_blank" rel="noopener" class="mycode_url">http://www.tilengine.org/doc/md_sprites....totoc_md93</a><br />
<br />
In addition, a layer can be enabled again with TLN_EnableLayer after it has been disabled with TLN_DisableLayer, as long as it was previously configured:<br />
<a href="http://www.tilengine.org/doc/md_layers.html#autotoc_md39" target="_blank" rel="noopener" class="mycode_url">http://www.tilengine.org/doc/md_layers.h...totoc_md39</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Release 2.9.0 - World mode]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=1065</link>
			<pubDate>Mon, 15 Mar 2021 22:27:33 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=1">megamarc</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=1065</guid>
			<description><![CDATA[Hi folks,<br />
<br />
I've just pushed Release 2.9.0 to GitHub. This release adds a new feature called "<span style="font-weight: bold;" class="mycode_b">World mode</span>", where all the layers contained in a single .tmx file and any selected sprites are updated when the "world position" changes. Layers take into account the parallaxing factor recently introduced in Tiled editor, as well as offset values, visibility and transparency. And sprites take their "world position" and have them automatically converted into screen coordinates.<br />
<br />
This mode simplifies greatly the setup of a whole level (just a single call). And updating the whole playfield, that previously required one call per layer and per sprite, and keeping track of their positions, now is done with another single call.<br />
<br />
The documentation is already online, here it is the new section:<br />
<a href="http://www.tilengine.org/doc/md_world.html" target="_blank" rel="noopener" class="mycode_url">http://www.tilengine.org/doc/md_world.html</a><br />
<br />
"Classic" mode continues working, so old samples and projects won't break, but new ones can benefit from this "world" feature.]]></description>
			<content:encoded><![CDATA[Hi folks,<br />
<br />
I've just pushed Release 2.9.0 to GitHub. This release adds a new feature called "<span style="font-weight: bold;" class="mycode_b">World mode</span>", where all the layers contained in a single .tmx file and any selected sprites are updated when the "world position" changes. Layers take into account the parallaxing factor recently introduced in Tiled editor, as well as offset values, visibility and transparency. And sprites take their "world position" and have them automatically converted into screen coordinates.<br />
<br />
This mode simplifies greatly the setup of a whole level (just a single call). And updating the whole playfield, that previously required one call per layer and per sprite, and keeping track of their positions, now is done with another single call.<br />
<br />
The documentation is already online, here it is the new section:<br />
<a href="http://www.tilengine.org/doc/md_world.html" target="_blank" rel="noopener" class="mycode_url">http://www.tilengine.org/doc/md_world.html</a><br />
<br />
"Classic" mode continues working, so old samples and projects won't break, but new ones can benefit from this "world" feature.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Release 2.8.0 - revamped animation engine]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=573</link>
			<pubDate>Sun, 03 May 2020 05:46:51 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=1">megamarc</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=573</guid>
			<description><![CDATA[This release doesn't introduce new features, but enhances existing ones.<br />
<br />
<span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">Revamped animation engine</span></span><br />
<br />
Prior to this release, animation engine was a globally slotted one, in the same way as sprites or layers. Each animation of any kind required a slot that had to be managed. That was tricky with tileset animations, where slots had to be allocated beforehand without having knowledge of how many slots was going to need. This was cumbersome to say the least.<br />
<br />
No more.<br />
<br />
Sprite and tileset animations are self sustained: they don't use slots anymore, using them is straightforward:<br />
<ul class="mycode_list"><li>Tileset animations are started automatically when setting up a layer that has animated tileset<br />
</li>
<li>Sprite animation just require the index of sprite to animate.<br />
</li>
<li>Tilemap animations were a legacy feature don't used anywhere, removed<br />
</li>
<li>Slotted animations are now only used by palette animations (color cycles).<br />
</li>
</ul>
This of course has some minor breaking API changes to the animation system:<br />
<ul class="mycode_list"><li>Removed `TLN_SetTilesetAnimation()` and `TLN_SetTilemapAnimation()`.<br />
</li>
<li>Removed parameter "index" from `TLN_SetSpriteAnimation()`, requires only sprite number.<br />
</li>
<li>Replaces `TLN_DisableAnimation()` with `TLN_DisablePaletteAnimation()` and `TLN_DisableSpriteAnimation()`<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">Improved sequence support</span><br />
<br />
Now it's possible to have a tileset animation where one of the frames can be the same as the tile being animated, it's usual to do this way by map creators. You can now do this:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>47 &lt;- [47, 49, 50, 53]</code></div></div><br />
In this example, tile 47 is both the tile being animated, and one of the frames of the animation.<br />
<br />
<span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">Enhanced asset packer support</span></span><br />
<br />
Previous version of asset packager format had a flaw where improbable -but possible- hash collisions weren't handled properly. That could lead to loading a different asset than intended. ResourcePacker has been updated without this flaw, and its loader is now integrated in this release. I also allows unlimited password length. Upgraded packer can be downloaded at itch.io: <a href="https://megamarc.itch.io/resourcepacker" target="_blank" rel="noopener" class="mycode_url">https://megamarc.itch.io/resourcepacker</a><br />
<br />
<span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">Enhanced .tmx loader</span></span><br />
<br />
It now supports up to 64 layers per .tmx file, and tilesets are cached. If multiple layers use the same tileset, only one copy of the tileset is loaded and animated, shared between all the tilemaps using it.<br />
<br />
<span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">Updated examples</span></span><br />
<br />
All examples are updated to be compliant with the new API changes. In addition "forest" sample now accepts optional command-line parameters to load assets from password-encrypted asset pack. For example:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>forest assets.dat my_password</code></div></div><br />
Starts forest example with assets being stored inside "assets.dat" encrypted with password "my_password"]]></description>
			<content:encoded><![CDATA[This release doesn't introduce new features, but enhances existing ones.<br />
<br />
<span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">Revamped animation engine</span></span><br />
<br />
Prior to this release, animation engine was a globally slotted one, in the same way as sprites or layers. Each animation of any kind required a slot that had to be managed. That was tricky with tileset animations, where slots had to be allocated beforehand without having knowledge of how many slots was going to need. This was cumbersome to say the least.<br />
<br />
No more.<br />
<br />
Sprite and tileset animations are self sustained: they don't use slots anymore, using them is straightforward:<br />
<ul class="mycode_list"><li>Tileset animations are started automatically when setting up a layer that has animated tileset<br />
</li>
<li>Sprite animation just require the index of sprite to animate.<br />
</li>
<li>Tilemap animations were a legacy feature don't used anywhere, removed<br />
</li>
<li>Slotted animations are now only used by palette animations (color cycles).<br />
</li>
</ul>
This of course has some minor breaking API changes to the animation system:<br />
<ul class="mycode_list"><li>Removed `TLN_SetTilesetAnimation()` and `TLN_SetTilemapAnimation()`.<br />
</li>
<li>Removed parameter "index" from `TLN_SetSpriteAnimation()`, requires only sprite number.<br />
</li>
<li>Replaces `TLN_DisableAnimation()` with `TLN_DisablePaletteAnimation()` and `TLN_DisableSpriteAnimation()`<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">Improved sequence support</span><br />
<br />
Now it's possible to have a tileset animation where one of the frames can be the same as the tile being animated, it's usual to do this way by map creators. You can now do this:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>47 &lt;- [47, 49, 50, 53]</code></div></div><br />
In this example, tile 47 is both the tile being animated, and one of the frames of the animation.<br />
<br />
<span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">Enhanced asset packer support</span></span><br />
<br />
Previous version of asset packager format had a flaw where improbable -but possible- hash collisions weren't handled properly. That could lead to loading a different asset than intended. ResourcePacker has been updated without this flaw, and its loader is now integrated in this release. I also allows unlimited password length. Upgraded packer can be downloaded at itch.io: <a href="https://megamarc.itch.io/resourcepacker" target="_blank" rel="noopener" class="mycode_url">https://megamarc.itch.io/resourcepacker</a><br />
<br />
<span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">Enhanced .tmx loader</span></span><br />
<br />
It now supports up to 64 layers per .tmx file, and tilesets are cached. If multiple layers use the same tileset, only one copy of the tileset is loaded and animated, shared between all the tilemaps using it.<br />
<br />
<span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">Updated examples</span></span><br />
<br />
All examples are updated to be compliant with the new API changes. In addition "forest" sample now accepts optional command-line parameters to load assets from password-encrypted asset pack. For example:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>forest assets.dat my_password</code></div></div><br />
Starts forest example with assets being stored inside "assets.dat" encrypted with password "my_password"]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Release 2.7.0 - sprite list order, sprite masking]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=561</link>
			<pubDate>Sun, 26 Apr 2020 09:24:02 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=1">megamarc</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=561</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b">Release 2.7.0 </span>introduces two new features inspired on the Sega Genesis/MegaDrive and some tweaks &amp; bugfixes<br />
<br />
<span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">Sprite list order</span></span><br />
Until now, sprites were drawn based in their order ID so when overlapping, sprite 0 was always under sprite 1, and sprite 2 was always on top of sprite 1. This release introduces the ability to change sprite ordering based on internal link list. Function <span style="font-weight: bold;" class="mycode_b">TLN_SetFirstSprite()</span> sets the index of the beggining of list, and <span style="font-weight: bold;" class="mycode_b">TLN_SetNextSprite() </span>tells which sprite follows which one. If you want that sprite 1 is drawn after sprite 4 (on top of it), you call <span style="font-weight: bold;" class="mycode_b">TLN_SetNextSprite(4, 1)</span>.<br />
<br />
<span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">Sprite masking</span></span><br />
Now it's possible to define a horizontal region to mask out selected sprites with <span style="font-weight: bold;" class="mycode_b">TLN_SetSpritesMaskRegion(top, bottom)</span>, setting a top and bottom scanline. Sprites flagged with <span style="font-weight: bold;" class="mycode_b">TLN_EnableSpriteMasking() </span>won't be drawn when crossing this region. The Sega Genesis had a cumbersome way to enable this feature, using specially positioned sprites on the screen and inside the sprite list order, but Tilengine does the same in a straightforward way.<br />
<br />
Other tweaks and fixes include:<br />
<ul class="mycode_list"><li>Fixes crashes when closing window and strange input behavior due to compiler-induced bugs with optimizations enabled for 64-bit builds<br />
</li>
<li>When CRT effect is disabled, sharp nearest-neighbour scaling is always used<br />
</li>
<li>Parameter "count" has been removed from <span style="font-weight: bold;" class="mycode_b">TLN_CreateSpriteAnimation()</span>, now is obtained automatically from sprite names inside spriteset.<br />
</li>
<li>Reworked some samples that used old and messy .sqx files for sprite animations, and replaced with newer spriteset-based sequences.<br />
</li>
</ul>
Check out in GitHub]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b">Release 2.7.0 </span>introduces two new features inspired on the Sega Genesis/MegaDrive and some tweaks &amp; bugfixes<br />
<br />
<span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">Sprite list order</span></span><br />
Until now, sprites were drawn based in their order ID so when overlapping, sprite 0 was always under sprite 1, and sprite 2 was always on top of sprite 1. This release introduces the ability to change sprite ordering based on internal link list. Function <span style="font-weight: bold;" class="mycode_b">TLN_SetFirstSprite()</span> sets the index of the beggining of list, and <span style="font-weight: bold;" class="mycode_b">TLN_SetNextSprite() </span>tells which sprite follows which one. If you want that sprite 1 is drawn after sprite 4 (on top of it), you call <span style="font-weight: bold;" class="mycode_b">TLN_SetNextSprite(4, 1)</span>.<br />
<br />
<span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">Sprite masking</span></span><br />
Now it's possible to define a horizontal region to mask out selected sprites with <span style="font-weight: bold;" class="mycode_b">TLN_SetSpritesMaskRegion(top, bottom)</span>, setting a top and bottom scanline. Sprites flagged with <span style="font-weight: bold;" class="mycode_b">TLN_EnableSpriteMasking() </span>won't be drawn when crossing this region. The Sega Genesis had a cumbersome way to enable this feature, using specially positioned sprites on the screen and inside the sprite list order, but Tilengine does the same in a straightforward way.<br />
<br />
Other tweaks and fixes include:<br />
<ul class="mycode_list"><li>Fixes crashes when closing window and strange input behavior due to compiler-induced bugs with optimizations enabled for 64-bit builds<br />
</li>
<li>When CRT effect is disabled, sharp nearest-neighbour scaling is always used<br />
</li>
<li>Parameter "count" has been removed from <span style="font-weight: bold;" class="mycode_b">TLN_CreateSpriteAnimation()</span>, now is obtained automatically from sprite names inside spriteset.<br />
</li>
<li>Reworked some samples that used old and messy .sqx files for sprite animations, and replaced with newer spriteset-based sequences.<br />
</li>
</ul>
Check out in GitHub]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Release 2.6.0 - loads .json and 24/32 bpp images]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=557</link>
			<pubDate>Wed, 22 Apr 2020 08:42:13 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=1">megamarc</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=557</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">Enhanced asset loader compatibility</span></span><br />
<br />
This release features two major improvements to supported assets:<br />
<ul class="mycode_list"><li>Loads standard<span style="font-weight: bold;" class="mycode_b"> .json array</span> format for spritesheets. This format is exported by major pixel art applications: Aseprite, Texturepacker, Piskel... Legacy .txt and .csv formats are supported too.<br />
</li>
<li>Loads <span style="font-weight: bold;" class="mycode_b">24 </span>and <span style="font-weight: bold;" class="mycode_b">32 bpp </span>pixel art images directly, no need to convert to 8-bit indexed first.<br />
</li>
</ul>
Keep in mind that the internal rendering pipeline is still based on indexed color. But the loader can take a 24/32 bpp image, and if it has less than 255 unique colors (common for pixel art) then converts it to an equivalent 8-bit indexed on the fly. If the image has more than 255 colors it won't be loaded.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">These additions make much easier to work with spritesheets directly exported by standard editing tools.</span><br />
<br />
The "forest" sample has now the spriteeshet in .json format and graphic assets in 24/32 bpp to showcase these new features.<br />
<br />
GitHub project and itch.io packages are updated to this new release.]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="text-decoration: underline;" class="mycode_u">Enhanced asset loader compatibility</span></span><br />
<br />
This release features two major improvements to supported assets:<br />
<ul class="mycode_list"><li>Loads standard<span style="font-weight: bold;" class="mycode_b"> .json array</span> format for spritesheets. This format is exported by major pixel art applications: Aseprite, Texturepacker, Piskel... Legacy .txt and .csv formats are supported too.<br />
</li>
<li>Loads <span style="font-weight: bold;" class="mycode_b">24 </span>and <span style="font-weight: bold;" class="mycode_b">32 bpp </span>pixel art images directly, no need to convert to 8-bit indexed first.<br />
</li>
</ul>
Keep in mind that the internal rendering pipeline is still based on indexed color. But the loader can take a 24/32 bpp image, and if it has less than 255 unique colors (common for pixel art) then converts it to an equivalent 8-bit indexed on the fly. If the image has more than 255 colors it won't be loaded.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">These additions make much easier to work with spritesheets directly exported by standard editing tools.</span><br />
<br />
The "forest" sample has now the spriteeshet in .json format and graphic assets in 24/32 bpp to showcase these new features.<br />
<br />
GitHub project and itch.io packages are updated to this new release.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Release 2.5.0 - Image-based tilesets & object layers]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=547</link>
			<pubDate>Thu, 16 Apr 2020 16:15:34 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=1">megamarc</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=547</guid>
			<description><![CDATA[Version 2.5.0 adds the ability to use <span style="font-weight: bold;" class="mycode_b">image-based tilesets </span>and use them on <span style="font-weight: bold;" class="mycode_b">object layers</span>. It is now possible to edit an object layer containing images in Tiled, and render it in Tilengine without having to define them at runtime like in release 2.4.0. It is also possible to iterate the objects contained in the layer from the application, to integrate them into the gameplay and not have to use an alternative reader. The "forest" example has been updated to show this new feature, and some bugs have been fixed.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">GitHub </span>project and <span style="font-weight: bold;" class="mycode_b">itch.io </span>packages have been updated.<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://tilengine.org/forum/images/attachtypes/image.gif" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=58" target="_blank" title="">post.png</a> (Size: 163.58 KB / Downloads: 6)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[Version 2.5.0 adds the ability to use <span style="font-weight: bold;" class="mycode_b">image-based tilesets </span>and use them on <span style="font-weight: bold;" class="mycode_b">object layers</span>. It is now possible to edit an object layer containing images in Tiled, and render it in Tilengine without having to define them at runtime like in release 2.4.0. It is also possible to iterate the objects contained in the layer from the application, to integrate them into the gameplay and not have to use an alternative reader. The "forest" example has been updated to show this new feature, and some bugs have been fixed.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">GitHub </span>project and <span style="font-weight: bold;" class="mycode_b">itch.io </span>packages have been updated.<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://tilengine.org/forum/images/attachtypes/image.gif" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=58" target="_blank" title="">post.png</a> (Size: 163.58 KB / Downloads: 6)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Tilengine as libretro core with LUA games]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=418</link>
			<pubDate>Wed, 04 Dec 2019 14:12:43 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=1">megamarc</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=418</guid>
			<description><![CDATA[I'm working on an experimental version of tilengine. It's a libretro core with loadable games written in lua. Libretro cores are plugins that can be run inside Retroarch emulation environment, which provides unified input and windowing with post-processing shaders.<br />
<br />
To be able to load many tilengine-based games from a single core, I integrated luajit parser inside it, so the game logic is implemented in external LUA script. This script must define the following items:<br />
<ul class="mycode_list"><li>a <span style="font-weight: bold;" class="mycode_b">config {}</span> table with initialization parameters<br />
</li>
<li>a <span style="font-weight: bold;" class="mycode_b">game_load() </span>function that loads assets and performs initial game setup<br />
</li>
<li>a <span style="font-weight: bold;" class="mycode_b">game_loop(frame) </span>function that gets executed every frame<br />
</li>
<li>a <span style="font-weight: bold;" class="mycode_b">game_unload() </span>function that gets called when closing the game<br />
</li>
</ul>
The input is still not implemented, so only non-interactive demos are working right now. And as the system depends on luajit and retroarch, only Windows versions are tested.<br />
<br />
User -&gt; RetroArch &lt;-&gt; tilengine_libretro &lt;-&gt; game.lua<br />
<br />
Maybe this experiment is a dead end, but it looks promising and it's a great integration example.<br />
<br />
You can check progress in this GitHub branch:<br />
<a href="https://github.com/megamarc/Tilengine/tree/libretro" target="_blank" rel="noopener" class="mycode_url">https://github.com/megamarc/Tilengine/tree/libretro</a><br />
<br />
This is the basic "game":<br />
<a href="https://github.com/megamarc/Tilengine/blob/libretro/lua_game/game.lua" target="_blank" rel="noopener" class="mycode_url">https://github.com/megamarc/Tilengine/bl...e/game.lua</a><br />
<br />
Let me know what you think<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://tilengine.org/forum/images/attachtypes/image.gif" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=41" target="_blank" title="">libretro.jpg</a> (Size: 395.41 KB / Downloads: 11)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[I'm working on an experimental version of tilengine. It's a libretro core with loadable games written in lua. Libretro cores are plugins that can be run inside Retroarch emulation environment, which provides unified input and windowing with post-processing shaders.<br />
<br />
To be able to load many tilengine-based games from a single core, I integrated luajit parser inside it, so the game logic is implemented in external LUA script. This script must define the following items:<br />
<ul class="mycode_list"><li>a <span style="font-weight: bold;" class="mycode_b">config {}</span> table with initialization parameters<br />
</li>
<li>a <span style="font-weight: bold;" class="mycode_b">game_load() </span>function that loads assets and performs initial game setup<br />
</li>
<li>a <span style="font-weight: bold;" class="mycode_b">game_loop(frame) </span>function that gets executed every frame<br />
</li>
<li>a <span style="font-weight: bold;" class="mycode_b">game_unload() </span>function that gets called when closing the game<br />
</li>
</ul>
The input is still not implemented, so only non-interactive demos are working right now. And as the system depends on luajit and retroarch, only Windows versions are tested.<br />
<br />
User -&gt; RetroArch &lt;-&gt; tilengine_libretro &lt;-&gt; game.lua<br />
<br />
Maybe this experiment is a dead end, but it looks promising and it's a great integration example.<br />
<br />
You can check progress in this GitHub branch:<br />
<a href="https://github.com/megamarc/Tilengine/tree/libretro" target="_blank" rel="noopener" class="mycode_url">https://github.com/megamarc/Tilengine/tree/libretro</a><br />
<br />
This is the basic "game":<br />
<a href="https://github.com/megamarc/Tilengine/blob/libretro/lua_game/game.lua" target="_blank" rel="noopener" class="mycode_url">https://github.com/megamarc/Tilengine/bl...e/game.lua</a><br />
<br />
Let me know what you think<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="http://tilengine.org/forum/images/attachtypes/image.gif" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=41" target="_blank" title="">libretro.jpg</a> (Size: 395.41 KB / Downloads: 11)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Tilengine 2.4.0 adds object layers]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=315</link>
			<pubDate>Fri, 10 May 2019 07:16:29 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=1">megamarc</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=315</guid>
			<description><![CDATA[Release 2.4.0 introduces the new <span style="font-weight: bold;" class="mycode_b">object layers</span>, which consist of a list of sprite graphics that are displayed in certain positions. They are a hybrid between the layers of tiles and the sprites. Above all, they serve to apply decorations that are not composed of tiles but sprites.<br />
<br />
It also adds the ability to assign <span style="font-weight: bold;" class="mycode_b">priority to a full layer </span>to be displayed in front of the sprites,<br />
<br />
<span style="font-weight: bold;" class="mycode_b">synchronized scroll </span>between layers (several linked layers that move together to the layer designated as main). <br />
<br />
The possibility of easily creating <span style="font-weight: bold;" class="mycode_b">sprite animations </span>from numbered name sequences is added. <br />
<br />
Finally a new example called "Forest" illustrates all these new capabilities.<br />
<br />
See the full story on facebook:<br />
<a href="https://www.facebook.com/notes/tilengine/release-240-is-out/2227463597289575" target="_blank" rel="noopener" class="mycode_url">https://www.facebook.com/notes/tilengine...3597289575</a>]]></description>
			<content:encoded><![CDATA[Release 2.4.0 introduces the new <span style="font-weight: bold;" class="mycode_b">object layers</span>, which consist of a list of sprite graphics that are displayed in certain positions. They are a hybrid between the layers of tiles and the sprites. Above all, they serve to apply decorations that are not composed of tiles but sprites.<br />
<br />
It also adds the ability to assign <span style="font-weight: bold;" class="mycode_b">priority to a full layer </span>to be displayed in front of the sprites,<br />
<br />
<span style="font-weight: bold;" class="mycode_b">synchronized scroll </span>between layers (several linked layers that move together to the layer designated as main). <br />
<br />
The possibility of easily creating <span style="font-weight: bold;" class="mycode_b">sprite animations </span>from numbered name sequences is added. <br />
<br />
Finally a new example called "Forest" illustrates all these new capabilities.<br />
<br />
See the full story on facebook:<br />
<a href="https://www.facebook.com/notes/tilengine/release-240-is-out/2227463597289575" target="_blank" rel="noopener" class="mycode_url">https://www.facebook.com/notes/tilengine...3597289575</a>]]></content:encoded>
		</item>
	</channel>
</rss>