<?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">
	<channel>
		<title>Quite epic</title>
		<link>http://vadim647.at.ua/</link>
		<description>Says</description>
		<lastBuildDate>Fri, 23 Oct 2009 19:30:52 GMT</lastBuildDate>
		<generator>uCoz Web-Service</generator>
		<atom:link href="https://vadim647.at.ua/blog/rss" rel="self" type="application/rss+xml" />
		
		<item>
			<title>a: great platform collisions</title>
			<description>Lets talk a bit about improving collision systems for platform games....</description>
			<content:encoded>Lets talk a bit about improving collision systems for platform games.$CUT$&lt;br&gt;&lt;img alt=&quot;using collision masks&quot; src=&quot;http://vadim647.at.ua/src/tutGPC/collisionmasks.png&quot; align=&quot;right&quot; border=&quot;0px&quot;&gt;1. Using collision masks.&lt;br&gt;&lt;blockquote&gt;Collision masks are probably the most often newbie mistake. Its not just about platform games. This must be used for &lt;u&gt;any&lt;/u&gt; game.&lt;br&gt;By default, gm will create collision mask for object from all non-transparent sprite pixels to. This is great for static things, but a hell for a player (as you see in example - top images, the character will get stuck in grass more or less often, depending on movement code).&lt;br&gt;Using collision mask for character is a good way to get rid of random collision bugs &lt;br&gt;As you see in example, bottom images, even a rectangle mask for player and ground will kill all possible glitches, related to horizontal movement.&lt;br&gt;Additional note: if you are going to use image_xscale &amp;#92; yscale, make sure that your collision mask sprite is symetrical around center (else player will have fun by getting stuck in wall when trying to turn around near it).&lt;br&gt;&lt;br&gt;&lt;/blockquote&gt;2. Using move_contact_* functions.&lt;img alt=&quot;&quot; src=&quot;http://vadim647.at.ua/src/tutGPC/move_contact.png&quot; align=&quot;right&quot; border=&quot;0px&quot;&gt;&lt;br&gt;&lt;blockquote&gt;When coding your collision events, this does matter, because by default, after hitting a solid object, both are thrown to xprevious&amp;#92;yprevious. A object that has gravity applied to it, will perform a another fall (duration = square_root( 2*distance_to_ground/gravity )). That detects a inaccurate coding.&lt;br&gt;To avoid this, make your collision event look like:&lt;br&gt;&lt;blockquote&gt;move_contact_solid(direction,20);&lt;br&gt;vspeed = 0;&lt;br&gt;//other things that were here for any reason&lt;br&gt;&lt;/blockquote&gt;Note: replace 20 with the maximum movement speed on Y axis. A common mistake is by using arguments (270,-1). When doing that, after hitting any solid from below, character will perform a instant fly into the ground below (if one will exist). So better to set up function arguments well.&lt;br&gt;&lt;/blockquote&gt;3. Step-by-step movement.&lt;br&gt;&lt;blockquote&gt;The trick here is to allow walking to zero distance to wall, which does not happen in many games for some reason.&lt;br&gt;To use this, code must be built up like:&lt;br&gt;&lt;blockquote&gt;repeat (abs(h_speed))&lt;br&gt;{&lt;br&gt;if place_free(x+sign(h_speed),y) {x+=sign(h_speed);}&lt;br&gt;else h_speed = 0;&lt;br&gt;}&lt;br&gt;&lt;/blockquote&gt;You may use for&amp;#92;while loops too (&quot;for better perfomance&quot;).&lt;br&gt;When using this type of movement, you can use h_speed as the hspeed variable, so just change it by small ammounts, and you get non-laggy h-gliding.&lt;br&gt;&lt;/blockquote&gt;Since these are the most common aspects of platform collisions, thanks for reading this article and good luck in your game developing.&lt;br&gt;</content:encoded>
			<link>https://vadim647.at.ua/blog/a_great_platform_collisions/2009-10-23-5</link>
			<dc:creator>Vadim647</dc:creator>
			<guid>https://vadim647.at.ua/blog/a_great_platform_collisions/2009-10-23-5</guid>
			<pubDate>Fri, 23 Oct 2009 19:30:52 GMT</pubDate>
		</item>
		<item>
			<title>a: webhosting</title>
			<description>Did you ever knew about the site called http://www.free-webhosts.com ?&lt;br&gt;No? Well, pick your time to visit them someday. Even while this may appear as plain adverstiment, that website contains information about free webhosts&amp;#92;domain&amp;#92;etc. services, from all over world of internet. So, worth a look if you&apos;re thinking about making your own website.&lt;br&gt;</description>
			<content:encoded>Did you ever knew about the site called http://www.free-webhosts.com ?&lt;br&gt;No? Well, pick your time to visit them someday. Even while this may appear as plain adverstiment, that website contains information about free webhosts&amp;#92;domain&amp;#92;etc. services, from all over world of internet. So, worth a look if you&apos;re thinking about making your own website.&lt;br&gt;</content:encoded>
			<link>https://vadim647.at.ua/blog/a_webhosting/2009-10-10-3</link>
			<dc:creator>Vadim647</dc:creator>
			<guid>https://vadim647.at.ua/blog/a_webhosting/2009-10-10-3</guid>
			<pubDate>Fri, 09 Oct 2009 20:45:08 GMT</pubDate>
		</item>
		<item>
			<title>Using gmhighscores system</title>
			<description>&lt;img alt=&quot;&quot; src=&quot;../thumbs/gmh.png&quot; align=&quot;right&quot; border=&quot;0&quot;&gt;Today we&apos;ll discuss, how to use gmhighscores.com online highscore system.&lt;br&gt;&lt;br&gt;First of all, you have to &lt;a href=&quot;http://www.gmhighscores.com/newaccount.php&quot;&gt;register&lt;/a&gt; at the site.&lt;br&gt;Here you don&apos;t see anything special, or something I should describe better.&lt;br&gt;&lt;br&gt;Then we log in, and go to &lt;a href=&quot;http://www.gmhighscores.com/account.php&quot;&gt;manage account&lt;/a&gt; page.&lt;br&gt;&lt;br&gt;Now, go to &lt;a href=&quot;http://www.gmhighscores.com/newgame.php&quot;&gt;Register New Game&lt;/a&gt;.&lt;br&gt;At the current stage of site, you don&apos;t see anything hard there - you just need to input the game name.&lt;br&gt;If after clicking the button error page appears, try changing the game name.&lt;br&gt;&lt;br&gt;Now you get directed to your account page, and your game appears in the list.&lt;br&gt;&lt;br&gt;You finished with the website part of the action. Now let&apos;s see what functions you get provided with.&lt;br&gt;the example you probably &lt;a href=&quot;http://www.gmhighscores.com/gmh_example3.zip&quot;&gt;got already...</description>
			<content:encoded>&lt;img alt=&quot;&quot; src=&quot;../thumbs/gmh.png&quot; align=&quot;right&quot; border=&quot;0&quot;&gt;Today we&apos;ll discuss, how to use gmhighscores.com online highscore system.&lt;br&gt;&lt;br&gt;First of all, you have to &lt;a href=&quot;http://www.gmhighscores.com/newaccount.php&quot;&gt;register&lt;/a&gt; at the site.&lt;br&gt;Here you don&apos;t see anything special, or something I should describe better.&lt;br&gt;&lt;br&gt;Then we log in, and go to &lt;a href=&quot;http://www.gmhighscores.com/account.php&quot;&gt;manage account&lt;/a&gt; page.&lt;br&gt;&lt;br&gt;Now, go to &lt;a href=&quot;http://www.gmhighscores.com/newgame.php&quot;&gt;Register New Game&lt;/a&gt;.&lt;br&gt;At the current stage of site, you don&apos;t see anything hard there - you just need to input the game name.&lt;br&gt;If after clicking the button error page appears, try changing the game name.&lt;br&gt;&lt;br&gt;Now you get directed to your account page, and your game appears in the list.&lt;br&gt;&lt;br&gt;You finished with the website part of the action. Now let&apos;s see what functions you get provided with.&lt;br&gt;the example you probably &lt;a href=&quot;http://www.gmhighscores.com/gmh_example3.zip&quot;&gt;got already&lt;/a&gt; contains 3 scripts:&lt;br&gt;&lt;br&gt;&lt;u&gt;hs_sumbit&lt;/u&gt;(name,gameID,score,verify1,verify2,verify3)&lt;br&gt;&lt;i&gt;name&lt;/i&gt; is player&apos;s name, which will be entered to highscores.&lt;br&gt;&lt;i&gt;score&lt;/i&gt; is player&apos;s score (which also goes to highscores).&lt;br&gt;the other 4 variables determine where the score will go and if it will go somewhere at all:&lt;br&gt;&lt;img alt=&quot;&quot; src=&quot;../thumbs/gnh_help.png&quot; align=&quot;&quot; border=&quot;0&quot;&gt;&lt;br&gt;remember, the verification values must match, else the score goes nowhere.&lt;br&gt;&lt;br&gt;&lt;u&gt;hs_user&lt;/u&gt;(place,gameID)&lt;br&gt;this simple function returns the name of user that stands on position &lt;i&gt;place&lt;/i&gt; in the game with id &lt;i&gt;gameID&lt;/i&gt; (you can discover it from your account page, again).&lt;br&gt;&lt;br&gt;&lt;u&gt;hs_score&lt;/u&gt;(place,gameID)&lt;br&gt;
same as above, but returns users score.&lt;br&gt;&lt;br&gt;Example for filling-up the standart highscore table with online highscores:&lt;br&gt;&lt;br&gt;&lt;font face=&quot;Courier New&quot;&gt;var _n,_i,i,gameid;&lt;br&gt;gameid = 196;&lt;br&gt;highscore_clear();&lt;br&gt;for (i = 1; i &lt;= 10; i += 1)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _i = 0;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _n = hs_user(i,gameid);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (_n != &quot;0&quot;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _i = hs_score(i,gameid);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else _n = &quot;&quot;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; highscore_add(_n,_i);&lt;br&gt;}&lt;/font&gt;&lt;br&gt;&lt;br&gt;I hope this tutorial was usefull for you. Good luck in your game developement.&lt;br&gt;</content:encoded>
			<link>https://vadim647.at.ua/blog/2009-08-06-2</link>
			<dc:creator>Vadim647</dc:creator>
			<guid>https://vadim647.at.ua/blog/2009-08-06-2</guid>
			<pubDate>Thu, 06 Aug 2009 08:23:48 GMT</pubDate>
		</item>
		<item>
			<title>Some fractals</title>
			<description>I&apos;ve made some pictures that can serve as a base for the avatar, all related to different fractals.&lt;br&gt;&lt;img alt=&quot;&quot; src=&quot;../fractalAvatars/1.png&quot; align=&quot;&quot; border=&quot;0&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;../fractalAvatars/2.png&quot; align=&quot;&quot; border=&quot;0&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;../fractalAvatars/3.png&quot; align=&quot;&quot; border=&quot;0&quot;&gt;&lt;br&gt;&lt;img alt=&quot;&quot; src=&quot;../fractalAvatars/4.png&quot; align=&quot;&quot; border=&quot;0&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;../fractalAvatars/5.png&quot; align=&quot;&quot; border=&quot;0&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;../fractalAvatars/6.png&quot; align=&quot;&quot; border=&quot;0&quot;&gt;&lt;br&gt;&lt;img alt=&quot;&quot; src=&quot;../fractalAvatars/7.png&quot; align=&quot;&quot; border=&quot;0&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;../fractalAvatars/8.png&quot; align=&quot;&quot; border=&quot;0&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;../fractalAvatars/9.png&quot; align=&quot;&quot; border=&quot;0&quot;&gt;&lt;br&gt;&lt;img alt=&quot;&quot; src=&quot;../fractalAvatars/10.png&quot; align=&quot;&quot; border=&quot;0&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;../fractalAvatars/11.png&quot; align=&quot;&quot; border=&quot;0&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;../fractalAvatars/12.png&quot; align=&quot;&quot; border=&quot;0&quot;&gt;&lt;br&gt;Note: all these are separate images, that can be saved and edited when needed.&lt;br&gt;</description>
			<content:encoded>I&apos;ve made some pictures that can serve as a base for the avatar, all related to different fractals.&lt;br&gt;&lt;img alt=&quot;&quot; src=&quot;../fractalAvatars/1.png&quot; align=&quot;&quot; border=&quot;0&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;../fractalAvatars/2.png&quot; align=&quot;&quot; border=&quot;0&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;../fractalAvatars/3.png&quot; align=&quot;&quot; border=&quot;0&quot;&gt;&lt;br&gt;&lt;img alt=&quot;&quot; src=&quot;../fractalAvatars/4.png&quot; align=&quot;&quot; border=&quot;0&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;../fractalAvatars/5.png&quot; align=&quot;&quot; border=&quot;0&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;../fractalAvatars/6.png&quot; align=&quot;&quot; border=&quot;0&quot;&gt;&lt;br&gt;&lt;img alt=&quot;&quot; src=&quot;../fractalAvatars/7.png&quot; align=&quot;&quot; border=&quot;0&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;../fractalAvatars/8.png&quot; align=&quot;&quot; border=&quot;0&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;../fractalAvatars/9.png&quot; align=&quot;&quot; border=&quot;0&quot;&gt;&lt;br&gt;&lt;img alt=&quot;&quot; src=&quot;../fractalAvatars/10.png&quot; align=&quot;&quot; border=&quot;0&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;../fractalAvatars/11.png&quot; align=&quot;&quot; border=&quot;0&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;../fractalAvatars/12.png&quot; align=&quot;&quot; border=&quot;0&quot;&gt;&lt;br&gt;Note: all these are separate images, that can be saved and edited when needed.&lt;br&gt;</content:encoded>
			<link>https://vadim647.at.ua/blog/2009-08-06-1</link>
			<dc:creator>Vadim647</dc:creator>
			<guid>https://vadim647.at.ua/blog/2009-08-06-1</guid>
			<pubDate>Thu, 06 Aug 2009 08:21:25 GMT</pubDate>
		</item>
	</channel>
</rss>