<?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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>Comments on: </title>
	<atom:link href="https://mm.soldat.pl/development-log/281/feed" rel="self" type="application/rss+xml" />
	<link>https://mm.soldat.pl/development-log/281</link>
	<description>Michał Marcinkowski&#039;s: Gamedev Log &#38; Articles</description>
	<lastBuildDate>Tue, 24 Mar 2026 04:51:11 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.39</generator>
	<item>
		<title>By: namuol</title>
		<link>https://mm.soldat.pl/development-log/281/comment-page-1#comment-91986</link>
		<dc:creator><![CDATA[namuol]]></dc:creator>
		<pubDate>Sun, 10 May 2009 01:58:05 +0000</pubDate>
		<guid isPermaLink="false">http://mm.soldat.pl/?p=281#comment-91986</guid>
		<description><![CDATA[I doubt this is the real problem you&#039;re having with performance, but this will help speed things up...

If possible, render tiles grouped by their texture, to minimize changing which texture is being rendered. This operation can be pretty costly for the GPU. In other words, sort the render order of the tiles based on their texture.]]></description>
		<content:encoded><![CDATA[<p>I doubt this is the real problem you&#8217;re having with performance, but this will help speed things up&#8230;</p>
<p>If possible, render tiles grouped by their texture, to minimize changing which texture is being rendered. This operation can be pretty costly for the GPU. In other words, sort the render order of the tiles based on their texture.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: TLD</title>
		<link>https://mm.soldat.pl/development-log/281/comment-page-1#comment-91782</link>
		<dc:creator><![CDATA[TLD]]></dc:creator>
		<pubDate>Thu, 07 May 2009 22:49:12 +0000</pubDate>
		<guid isPermaLink="false">http://mm.soldat.pl/?p=281#comment-91782</guid>
		<description><![CDATA[at my after-school study they worked with areas, when ur in a area and u can see it, you draw the tiles, the poly&#039;s and the graphics. if u cant see it. simply dont.

its easier to show in a jpeg. but im not bothering to do so, since archonts idea seems to work fine in my opinion.]]></description>
		<content:encoded><![CDATA[<p>at my after-school study they worked with areas, when ur in a area and u can see it, you draw the tiles, the poly&#8217;s and the graphics. if u cant see it. simply dont.</p>
<p>its easier to show in a jpeg. but im not bothering to do so, since archonts idea seems to work fine in my opinion.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: MM</title>
		<link>https://mm.soldat.pl/development-log/281/comment-page-1#comment-91777</link>
		<dc:creator><![CDATA[MM]]></dc:creator>
		<pubDate>Thu, 07 May 2009 21:32:40 +0000</pubDate>
		<guid isPermaLink="false">http://mm.soldat.pl/?p=281#comment-91777</guid>
		<description><![CDATA[Thanks guys. I think I&#039;m gonna go with prerendering into a memory buffers. That way I can also easily make effects and have faster pixel shader effects.]]></description>
		<content:encoded><![CDATA[<p>Thanks guys. I think I&#8217;m gonna go with prerendering into a memory buffers. That way I can also easily make effects and have faster pixel shader effects.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: archont</title>
		<link>https://mm.soldat.pl/development-log/281/comment-page-1#comment-91763</link>
		<dc:creator><![CDATA[archont]]></dc:creator>
		<pubDate>Thu, 07 May 2009 19:02:41 +0000</pubDate>
		<guid isPermaLink="false">http://mm.soldat.pl/?p=281#comment-91763</guid>
		<description><![CDATA[Also, show us some code, you noob!]]></description>
		<content:encoded><![CDATA[<p>Also, show us some code, you noob!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: illu</title>
		<link>https://mm.soldat.pl/development-log/281/comment-page-1#comment-91762</link>
		<dc:creator><![CDATA[illu]]></dc:creator>
		<pubDate>Thu, 07 May 2009 18:57:53 +0000</pubDate>
		<guid isPermaLink="false">http://mm.soldat.pl/?p=281#comment-91762</guid>
		<description><![CDATA[lol - this blog went to twitter-style! :O]]></description>
		<content:encoded><![CDATA[<p>lol &#8211; this blog went to twitter-style! :O</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chrisgbk</title>
		<link>https://mm.soldat.pl/development-log/281/comment-page-1#comment-91761</link>
		<dc:creator><![CDATA[Chrisgbk]]></dc:creator>
		<pubDate>Thu, 07 May 2009 18:57:13 +0000</pubDate>
		<guid isPermaLink="false">http://mm.soldat.pl/?p=281#comment-91761</guid>
		<description><![CDATA[archont has the right idea; first frame you fill the buffer with the tiles around the player, then most frames you either render the entire buffer to the screen, you move the buffer around a bit then render it, or you render a few rows/columns of tiles to the buffer first then render the buffer to the screen. Much faster to do one draw operation as opposed to 12,288.]]></description>
		<content:encoded><![CDATA[<p>archont has the right idea; first frame you fill the buffer with the tiles around the player, then most frames you either render the entire buffer to the screen, you move the buffer around a bit then render it, or you render a few rows/columns of tiles to the buffer first then render the buffer to the screen. Much faster to do one draw operation as opposed to 12,288.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: archont</title>
		<link>https://mm.soldat.pl/development-log/281/comment-page-1#comment-91758</link>
		<dc:creator><![CDATA[archont]]></dc:creator>
		<pubDate>Thu, 07 May 2009 17:59:53 +0000</pubDate>
		<guid isPermaLink="false">http://mm.soldat.pl/?p=281#comment-91758</guid>
		<description><![CDATA[Of course you&#039;re doing something wrong!

First of all, don&#039;t redraw unless you have to. Second, you don&#039;t need to buffer the whole map.

Instead, let&#039;s suppose your viewport is X*Y pixels. Your buffer only needs to be as big as X+width of longest tile, same for Y. Now whenever the player moves you translate, AKA move the entire viewport. The player moves left, you move the pixels in the buffer right. The pixels on the right get cropped, and on the left we have blank space. 

You render the tiles in that missing space. Just make the buffer large enough to be able to render any tile before it appears in the viewport.

Also, blitting is slow like bloody hell. It&#039;s about five times faster than trying to hand-knit an image using coloured thread.]]></description>
		<content:encoded><![CDATA[<p>Of course you&#8217;re doing something wrong!</p>
<p>First of all, don&#8217;t redraw unless you have to. Second, you don&#8217;t need to buffer the whole map.</p>
<p>Instead, let&#8217;s suppose your viewport is X*Y pixels. Your buffer only needs to be as big as X+width of longest tile, same for Y. Now whenever the player moves you translate, AKA move the entire viewport. The player moves left, you move the pixels in the buffer right. The pixels on the right get cropped, and on the left we have blank space. </p>
<p>You render the tiles in that missing space. Just make the buffer large enough to be able to render any tile before it appears in the viewport.</p>
<p>Also, blitting is slow like bloody hell. It&#8217;s about five times faster than trying to hand-knit an image using coloured thread.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: yv3</title>
		<link>https://mm.soldat.pl/development-log/281/comment-page-1#comment-91756</link>
		<dc:creator><![CDATA[yv3]]></dc:creator>
		<pubDate>Thu, 07 May 2009 17:30:03 +0000</pubDate>
		<guid isPermaLink="false">http://mm.soldat.pl/?p=281#comment-91756</guid>
		<description><![CDATA[Take care that all objects have the same color depth. Cache every object and only draw when its (partially) visible.
Maybe you could prerender all static layers into huge memory buffers, that would be the fastest way, but maybe too much amount of ram would be needed (for standard PC&#039;s). You could make an intelligent prerendering function that would first analyze each map before starting the match, for instance if 4 similar tiles fit in an rectangle you could merge this section into one big tile in memory... happy coding :)]]></description>
		<content:encoded><![CDATA[<p>Take care that all objects have the same color depth. Cache every object and only draw when its (partially) visible.<br />
Maybe you could prerender all static layers into huge memory buffers, that would be the fastest way, but maybe too much amount of ram would be needed (for standard PC&#8217;s). You could make an intelligent prerendering function that would first analyze each map before starting the match, for instance if 4 similar tiles fit in an rectangle you could merge this section into one big tile in memory&#8230; happy coding <img src="https://mm.soldat.pl/wp-includes/images/smilies/simple-smile.png" alt=":)" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: noob</title>
		<link>https://mm.soldat.pl/development-log/281/comment-page-1#comment-91751</link>
		<dc:creator><![CDATA[noob]]></dc:creator>
		<pubDate>Thu, 07 May 2009 16:32:45 +0000</pubDate>
		<guid isPermaLink="false">http://mm.soldat.pl/?p=281#comment-91751</guid>
		<description><![CDATA[Optimize and use display lists or vertex buffer objects?]]></description>
		<content:encoded><![CDATA[<p>Optimize and use display lists or vertex buffer objects?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: MM</title>
		<link>https://mm.soldat.pl/development-log/281/comment-page-1#comment-91746</link>
		<dc:creator><![CDATA[MM]]></dc:creator>
		<pubDate>Thu, 07 May 2009 16:00:32 +0000</pubDate>
		<guid isPermaLink="false">http://mm.soldat.pl/?p=281#comment-91746</guid>
		<description><![CDATA[Yes. Still the minimum tiles size is 8x8 (Sigvatr wants it really detailed and varied). Thats 128x96 visible tiles. There is a noticably performance drop. Also add to that the background and foreground layer.]]></description>
		<content:encoded><![CDATA[<p>Yes. Still the minimum tiles size is 8&#215;8 (Sigvatr wants it really detailed and varied). Thats 128&#215;96 visible tiles. There is a noticably performance drop. Also add to that the background and foreground layer.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
