<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Danik&#39;s Blog</title>
  <link>https://danikgames.com/blog/</link>
  <atom:link href="https://danikgames.com/blog/feed/" rel="self" type="application/rss+xml"/>
  <description>Game dev etc</description>
  <language>en</language>
  <item>
    <title>In-game parameter tweaking GUI for Unity</title>
    <link>https://danikgames.com/blog/in-game-parameter-tweak-gui-for-unity/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/in-game-parameter-tweak-gui-for-unity/</guid>
    <pubDate>Sun, 28 Dec 2014 17:24:01 GMT</pubDate>
    <description><![CDATA[<p>This is a simple parameter tweaking script for Unity. It finds all fields and properties marked with [TweakableMember] in MonoBehaviours in a scene, and enables tweaking from inside the game, which can be useful on tablets etc, where there is no access to the inspector.</p>
<p><a href="/blog/?attachment_id=906" rel="attachment wp-att-906"><img class="aligncenter size-large wp-image-906" src="/blog/wp-content/uploads/2014/12/TweakGUI3-580x308.png" alt="TweakGUI3" width="580" height="308" /></a></p>
<p>Simply put the script somewhere in your scene, and mark any fields or properties in your code that should be tweakable with [TweakableMember] and the script will find them. Or you can restrict the searching to specific game objects by setting references to them in the inspector. It works for bool, int and float members at the moment, but is easy to extend.</p>
<p>The script is available on Github <a href="https://gist.github.com/Danik/85d4a7b6d344e69c7579">here</a>.</p>
]]></description>
  </item>
  <item>
    <title>Flashdevelop Solarized Dark UI color scheme</title>
    <link>https://danikgames.com/blog/flashdevelop-solarized-dark-ui-color-scheme/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/flashdevelop-solarized-dark-ui-color-scheme/</guid>
    <pubDate>Sat, 26 Jul 2014 17:49:32 GMT</pubDate>
    <description><![CDATA[<p>I noticed that FlashDevelop now supports custom UI themes (it used to only support syntax color schemes I think...). I began looking for a nice dark theme but didn't find one, so I decided to make one.</p>
<p>It doesn't seem possible to customize all the colors, for example the gray borders and the scrollbars, but most colors can be changed.</p>
<p><a href="/blog/?attachment_id=865" rel="attachment wp-att-865"><img src="/blog/wp-content/uploads/2014/07/theme-580x385.png" alt="theme" width="580" height="385" class="aligncenter size-large wp-image-865" /></a></p>
<p>The colors are based on this file by David Pierce <a href="https://github.com/dapierce/flashdevelop-colors" title="https://github.com/dapierce/flashdevelop-colors">https://github.com/dapierce/flashdevelop-colors</a>. I altered the scheme a little bit to suit me better: darker background and other selection and highlight colors. I also changed the font to Consolas (since I didn't have Source Code Pro).</p>
<p>Syntax color scheme: <a href="/stuff/flashdevelop_theme/DK_Solarized_Dark_Syntax.fdz" title="DK_Solarized_Dark_Syntax.fdz">DK_Solarized_Dark_Syntax.fdz</a><br/>
UI theme: <a href="/stuff/flashdevelop_theme/DK_Solarized_Dark_UI.fdi" title="DK_Solarized_Dark_UI.fdi">DK_Solarized_Dark_UI.fdi</a></p>
<p>Run them with FlashDevelop, or import them with Tools > Select UI Theme...<br/>
You may need to restart FlashDevelop for all colors to take effect.</p>
<p>Enjoy!</p>
]]></description>
  </item>
  <item>
    <title>New Pyxel Edit released</title>
    <link>https://danikgames.com/blog/new-pyxel-edit-released/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/new-pyxel-edit-released/</guid>
    <pubDate>Mon, 30 Sep 2013 20:29:35 GMT</pubDate>
    <description><![CDATA[<p style="text-align: left;">There is now a beta available of the new Pyxel Edit I have been working on this summer. It is very much updated from the last version, has a completely new GUI, animation support, animated GIF export etc.
The original was free, but to support development (I worked on it nearly full time this summer) the new version costs $8, a discounted beta price that will increase as it gets more full fledged.
If you make pixel art, tilesets or animations check it out at <a href="http://pyxeledit.com" target="_blank">pyxeledit.com</a>.</p>
<p style="text-align: center;"><a href="/blog/wp-content/uploads/2013/09/interface.png" rel="attachment wp-att-842"><img class="aligncenter  wp-image-842" alt="interface" src="/blog/wp-content/uploads/2013/09/interface.png" width="525" height="442" /></a></p>
]]></description>
  </item>
  <item>
    <title>Locking a bitmap in Flash can give worse performance</title>
    <link>https://danikgames.com/blog/locking-a-bitmap-in-flash-can-give-worse-performance/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/locking-a-bitmap-in-flash-can-give-worse-performance/</guid>
    <pubDate>Wed, 31 Jul 2013 17:25:00 GMT</pubDate>
    <description><![CDATA[<p>Short story: In flash, bitmapData.lock() makes drawing faster by only updating the bitmap on screen when calling bitmapData.unlock() after done drawing, but once the bitmap is unlocked the whole bitmap is redrawn, instead of just the changed parts. If you only change small parts of a bitmap displayed on screen, and you do it often, this can result in a big performance hit.</p>
<p>I had been trying to optimize rendering of the canvas in Pyxel Edit without much luck, but then I tried Adobe Scout (awesome application btw!) that let me know that most of the time in the application was spent by the flash runtime rendering the display list. Apparently the whole canvas was re-drawn each time it changed just a bit. The odd thing was that the brush preview bitmap which is displayed on top was only rendered where it changed.</p>
<p>After some experimenting I found out that locking the bitmapdata of a bitmap object, which supposedly makes drawing faster, invalidates the whole bitmap and makes it get redrawn. Commenting out canvasBitmap.lock() immediately cut the displaylist rendering time by about 1/3 when drawing in the application.</p>
<p>To see what parts of the displaylist are redrawn one handy function is <a href="http://help.adobe.com/en_US/as3/mobile/WS948100b6829bd5a6-421a65ed127736eaa26-8000.html">flash.profiler.showRedrawRegions</a>(). It will draw rectangles around each redrawn region.</p>
]]></description>
  </item>
  <item>
    <title>How to get advanced telemetry profiling with Adobe Scout and FlashDevelop</title>
    <link>https://danikgames.com/blog/how-to-get-advanced-telemetry-profiling-with-adobe-scout-and-flashdevelop/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/how-to-get-advanced-telemetry-profiling-with-adobe-scout-and-flashdevelop/</guid>
    <pubDate>Mon, 29 Jul 2013 18:26:38 GMT</pubDate>
    <description><![CDATA[<p>This took me a while to figure out, in the end it was quite simple so I'm posting this to remind myself and possibly help someone else.</p>
<p>The "advanced telemetry" option in FlashDevelop doesn't seem to do anything (as of FD 4.4.2). So you need to run a Python script on the compiled SWF. This can be done automatically after each build with a command in "Post-Build Command Line" in the FD project options.</p>
<p><strong>1. Install Python (if you don't already have it).</strong><br/>
<a href="http://python.org">http://python.org</a></p>
<p><strong>2. Download the script.</strong><br/>
<a href="https://github.com/adamcath/telemetry-utils">https://github.com/adamcath/telemetry-utils</a></p>
<p><strong>3. Specify the post-build command.</strong><br/>
Go to Project &gt; Properties &gt; Build and enter:</p>
<pre><code>[path to python.exe] [path to script] [path to output swf]</code></pre>
<p>In my case I have</p>
<pre><code>"D:\Program Files (x86)\Python33\python.exe" $(ProjectDir)\add-opt-in.py $(OutputDir)\$(OutputName)</code></pre>
<p><strong>4. Done!</strong><br/>
The script is now run on the file after each build.</p>
<p>More info: http://www.adobe.com/devnet/scout/articles/adobe-scout-getting-started.html</p>
]]></description>
  </item>
  <item>
    <title>Moving target intercept in 3D</title>
    <link>https://danikgames.com/blog/moving-target-intercept-in-3d/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/moving-target-intercept-in-3d/</guid>
    <pubDate>Fri, 21 Jun 2013 10:04:10 GMT</pubDate>
    <description><![CDATA[<p>In <a href="/blog/how-to-intersect-a-moving-target-in-2d/">an old post</a> I explained how to shoot an object to hit a moving target in 2D. The method in 3D is basically the same, but the code below is much cleaner and might be simpler to understand even for the 2D case.<br/>
<h5>Unity3D example and source code</h5><br/>
<a href="/stuff/TargetInterceptUnityExample/index.html">Unity webplayer example</a></p>
<p><a href="/stuff/TargetInterceptUnityExample/TargetInterceptDemoUnityProj.zip">Unity project</a></p>
<p>The interesting bit of C#:</p>
<pre><code>
private Vector3 FindInterceptVector(Vector3 shotOrigin, float shotSpeed,
    Vector3 targetOrigin, Vector3 targetVel) {
    
    Vector3 dirToTarget = Vector3.Normalize(targetOrigin - shotOrigin);
    
    // Decompose the target's velocity into the part parallel to the
    // direction to the cannon and the part tangential to it.
    // The part towards the cannon is found by projecting the target's
    // velocity on dirToTarget using a dot product.
    Vector3 targetVelOrth =
    Vector3.Dot(targetVel, dirToTarget) * dirToTarget;
    
    // The tangential part is then found by subtracting the
    // result from the target velocity.
    Vector3 targetVelTang = targetVel - targetVelOrth;
    
    /*
    * targetVelOrth
    * |
    * |
    *
    * ^...7  &lt;-targetVel
    * |  /.
    * | / .
    * |/ .
    * t---&gt;  &lt;-targetVelTang
    *
    *
    * s---&gt;  &lt;-shotVelTang
    *
    */
    
    // The tangential component of the velocities should be the same
    // (or there is no chance to hit)
    // THIS IS THE MAIN INSIGHT!
    Vector3 shotVelTang = targetVelTang;
    
    // Now all we have to find is the orthogonal velocity of the shot
    
    float shotVelSpeed = shotVelTang.magnitude;
    if (shotVelSpeed &gt; shotSpeed) {
        // Shot is too slow to intercept target, it will never catch up.
        // Do our best by aiming in the direction of the targets velocity.
        return targetVel.normalized * shotSpeed;
    } else {
        // We know the shot speed, and the tangential velocity.
        // Using pythagoras we can find the orthogonal velocity.
        float shotSpeedOrth =
        Mathf.Sqrt(shotSpeed * shotSpeed - shotVelSpeed * shotVelSpeed);
        Vector3 shotVelOrth = dirToTarget * shotSpeedOrth;
        
        // Finally, add the tangential and orthogonal velocities.
        return shotVelOrth + shotVelTang;
    }
}</code></pre>
<p><strong>Update:</strong></p>
<p>If you want to find the point where they meet, you can calculate the time it will take, and then multiply the shot velocity by that. In practice they will collide sooner since they have a certain radius, but we can take that into account when we calculate the time.</p>
<pre><code>
// Find the time of collision (distance / relative velocity)
float timeToCollision = ((shotOrigin - targetOrigin).magnitude - shotRadius - targetRadius)
        / (shotVelOrth.magnitude-targetVelOrth.magnitude);

// Calculate where the shot will be at the time of collision
Vector3 shotVel = shotVelOrth + shotVelTang;
Vector3 shotCollisionPoint = shotOrigin + shotVel * timeToCollision;</code></pre>
]]></description>
  </item>
  <item>
    <title>Copy Cars</title>
    <link>https://danikgames.com/blog/copy-cars/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/copy-cars/</guid>
    <pubDate>Tue, 11 Jun 2013 11:32:16 GMT</pubDate>
    <description><![CDATA[<p>Copy Cars is a school project me and a classmate made as a final project in tangible interaction. Here's a video:</p>
<div class="video-embed"><iframe src="https://www.youtube-nocookie.com/embed/qLM7h3DK3Xk" title="YouTube video" loading="lazy" allowfullscreen></iframe></div>
<p style="text-align: center;"></p>
]]></description>
  </item>
  <item>
    <title>Making the Caps Lock key (very) useful on Windows</title>
    <link>https://danikgames.com/blog/making-the-caps-lock-key-very-useful-on-windows/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/making-the-caps-lock-key-very-useful-on-windows/</guid>
    <pubDate>Wed, 09 Jan 2013 00:35:55 GMT</pubDate>
    <description><![CDATA[<p>The Caps Lock key is mostly just an annoyance. But there are ways to make it more useful. I recently found a very nice script by Gustavo Duarte called <a href="http://duartes.org/gustavo/blog/post/home-row-computing/">Home Row Computing</a> which maps Caps Lock as a modifier key that lets you navigate in text Vim-style using H, J, K and L. This is very handy as you don't have to move your hand back and forth to the cursor keys while typing. It also maps Home, End, Page Up, Page Down and Del to easy accessible keys from the home row.</p>
<p>The script required remapping the Caps Lock key to another key in the Windows registry though, so I started improving it a bit. I added some new functionality and customized it to my preferences. I also added another very handy function that lets you drag anywhere on a window to move it while holding Caps Lock, the way you can do while holding the Alt key on Linux. I got that feature from an article at <a href="http://www.howtogeek.com/howto/windows-vista/get-the-linux-altwindow-drag-functionality-in-windows/">How-to-geek</a>, changed the key from Alt to CapsLock and added it to the script. Very handy indeed!</p>
<p>Below you can see the default mappings for the script, although it's easy to change it if you like:</p>
<p><a href="/blog/?attachment_id=761" rel="attachment wp-att-761"><img class="aligncenter size-full wp-image-761" alt="CapsLock binding keyboard layout small_space" src="/blog/wp-content/uploads/2013/01/CapsLock-binding-keyboard-layout-small_space.png" width="680" height="213" /></a>You have access to all the common keys on the right side of the keyboard (Cursors, Home, End, PgUp, PgDn, Ins, Del) from your home row, which is very handy when typing! Common commands like cut-copy-paste, undo-redo, backspace-delete are also very easy to access giving less hand movement. You can still toggle caps lock if you need to by pressing the Windows Key + Caps Lock.</p>
<p>To use the script:<br/>
<ol><br/>
	<li>Download and install <a href="http://www.autohotkey.com/">Autohotkey</a>.</li><br/>
	<li>Download <a href="/stuff/capslock_remap_vim.ahk">the script</a>.</li><br/>
	<li>Put the script (or a shortcut to it) in the Startup folder so that it runs each time you start you computer.</li><br/>
</ol><br/>
I chose keys that are consistently placed for QWERTY layouts, some keys might have to be changed for QWERTZ or AZERTY. Let me know in the comments if you have any suggestions or comments.</p>
<p><strong>Update</strong>: If you like the regular cursor layout I made <a href="/stuff/capslock_remap_alt.ahk">another version of the script</a>:</p>
<p><a href="/blog/?attachment_id=762" rel="attachment wp-att-762"><img alt="CapsLock binding keyboard layout_ALTsmall_space" src="/blog/wp-content/uploads/2013/01/CapsLock-binding-keyboard-layout_ALTsmall_space.png" width="650" height="203" /></a><br/>
The cursor key layout should be more familiar than the Vim-style layout to most people, and much easier to learn.</p>
<p><strong>Gist for the version I currently use:</strong> <a href="https://gist.github.com/Danik/5808330">https://gist.github.com/Danik/5808330</a><br/>
<pre>Original keyboard layout graphic by <a href="http://en.wikipedia.org/wiki/File:ISO_keyboard_(105)_QWERTY_UK.svg">Simon Kaupinmäki</a></pre><br/>
&nbsp;</p>
]]></description>
  </item>
  <item>
    <title>Sublime Text 2 context menu in Windows</title>
    <link>https://danikgames.com/blog/sublime-text-2-context-menu-in-windows/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/sublime-text-2-context-menu-in-windows/</guid>
    <pubDate>Tue, 18 Dec 2012 16:56:40 GMT</pubDate>
    <description><![CDATA[<p>I recently started using the excellent <a href="http://www.sublimetext.com/">Sublime Text 2</a>, and it's awesome. It annoyed me though that you couldn't open files with it directly from the right click context menu in Windows like you can with Notepad++, so I made a registry file that accomplishes that.</p>
<p><strong>IMPORTANT 1: </strong>The file makes changes in the registry, use it at your own risk!<br/>
<strong>IMPORTANT 2: </strong>You need to open the file in a text editor and change the path to sublime_text.exe if it's not located at C:\Program Files\Sublime Text 2\sublime_text.exe.</p>
<p>Download, (edit if needed) and run <a href="/etc/sublimecontextmenu/Sublime%20context%20menu.reg">this</a> file. Now you should be able to open files and folders by right clicking!</p>
<p><a href="/blog/wp-content/uploads/2012/12/sublimeContextmenu.png"><img class="size-full wp-image-696 alignleft" title="Sublime context menu" alt="Sublime context menu" src="/blog/wp-content/uploads/2012/12/sublimeContextmenu.png" width="288" height="235" /></a> <a href="/blog/wp-content/uploads/2012/12/sublimeContextmenu2.png"><img class="alignleft size-full wp-image-710" title="sublimeContextmenu2" alt="sublimeContextmenu2" src="/blog/wp-content/uploads/2012/12/sublimeContextmenu2.png" width="338" height="235" /></a><br/>
<div style="clear: both;"></div><br/>
<strong>Update</strong>: You can add a "open with" context menu for Sublime by clicking a checkbox in the installer (I must have missed it). It doesn't add an option to open folders as projects though, so you can use this reg file if you need that.</p>
]]></description>
  </item>
  <item>
    <title>New Pyxel Edit website</title>
    <link>https://danikgames.com/blog/new-pyxel-edit-website/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/new-pyxel-edit-website/</guid>
    <pubDate>Mon, 09 Jul 2012 23:13:52 GMT</pubDate>
    <description><![CDATA[<p>Yesterday I made a new logotype and a proper site for Pyxel Edit to replace the temporary one. I'm happy with how it turned out, especially since I haven't done any web design in over a year. :)</p>
<p><a title="Pyxel Edit website" href="http://pyxeledit.com">pyxeledit.com</a><br/>
<p style="text-align: center;"><a href="http://pyxeledit.com"><img class="aligncenter  wp-image-686" title="Website screenshot" alt="Website screenshot" src="/blog/wp-content/uploads/2012/07/site.png" width="482" height="413" /></a></p></p>
]]></description>
  </item>
  <item>
    <title>Pyxel Edit public beta</title>
    <link>https://danikgames.com/blog/pyxel-edit-public-beta/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/pyxel-edit-public-beta/</guid>
    <pubDate>Sun, 17 Jun 2012 22:47:48 GMT</pubDate>
    <description><![CDATA[<p><img class="alignright" title="Pyxel Edit logo" src="http://pyxeledit.com/images/pyxel_logo.png" alt="Pyxel Edit logo" width="258" height="198" /></p>
<p>Pyxel Edit is now in public beta and you can get it at <a href="http://pyxeledit.com/">http://pyxeledit.com/</a></p>
<p>Pyxel Edit is a drawing application aimed at making pixel art. It has features to make it faster and easier to make low resolution art like tile sets for games. It's made using Adobe Air, runs on Windows and Mac, and is currently in beta.</p>
<p><strong>What's special about it?<br/>
</strong>You can draw freeform like in any other program, you can also draw and place tiles. If you have multiple instances of a tile and edit one, they all update. This still works if some of the instances are flipped or rotated. This is really nice when making tile sets, as you can instantly see how all the tiles work together as you draw them. This feature is inspired by the awesome Pixothello and Cosmigo Pro Motion, but taken one step further.</p>
<p><strong>Tileset importing</strong><br/>
Pyxel Edit can import images of tilesets or mockups and identify all the unique tiles automatically, which is great for editing and rearranging old tile sets or doing edits of mockups.</p>
<p><strong>Tilemap exporting</strong><br/>
The tilemap can be exported to XML or plain text, making Pyxel Edit also useable as a level editor. Just export the tileset image and the tilemap, and you are ready to load it into your game!</p>
<p><strong>How much does it cost?</strong><br/>
The beta is free. In the future there might be a free and a paid "pro" version.</p>
<p><strong>Future features</strong><br/>
In addition to adding lots of small features, new tools, better menus and polishing the UI, animation support is planned.</p>
<p>Follow <a title="Pyxel Edit on Twitter" href="https://twitter.com/#!/PyxelEdit">@PyxelEdit</a> for updates.</p>
<p>&nbsp;</p>
<p><strong>Video</strong></p>
<div class="video-embed"><iframe src="https://www.youtube-nocookie.com/embed/wYowgVn5_8w" title="YouTube video" loading="lazy" allowfullscreen></iframe></div>
]]></description>
  </item>
  <item>
    <title>Aether</title>
    <link>https://danikgames.com/blog/aether/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/aether/</guid>
    <pubDate>Mon, 23 Apr 2012 17:58:48 GMT</pubDate>
    <description><![CDATA[<p>Another Ludum Dare is over, number 23 to be precise, and my game is submitted. It's called "Aether" and is a mix of an explorer platformer and missile command, where you have to run through a landscape to reach a mountain with a secret weapon, while at the same time fighting off alien spacecraft.</p>
<p>You can play it here: <strong><a href="/games/ludumdare/aether/index.html">Play Aether</a></strong>. Have fun!</p>
<p><a href="/blog/wp-content/uploads/2012/04/screen6.png"><img class="aligncenter size-full wp-image-659" title="screen6" src="/blog/wp-content/uploads/2012/04/screen6.png" alt="screen6" width="599" height="449" /></a></p>
<p><strong>Edit:</strong> Results:</p>
<p>#31 Fun 3.79<br/>
#37 Overall 3.90<br/>
#47 Mood 3.66<br/>
#51 Innovation 3.90<br/>
#82 Audio 3.47<br/>
#108 Graphics 3.80<br/>
#312 Humor 2.47<br/>
#354 Theme 3.18<br/>
Total number of compo entries: 1072</p>
<p>&nbsp;</p>
]]></description>
  </item>
  <item>
    <title>PyxelEdit LD version</title>
    <link>https://danikgames.com/blog/pyxeledit/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/pyxeledit/</guid>
    <pubDate>Mon, 16 Apr 2012 11:23:40 GMT</pubDate>
    <description><![CDATA[<p>Next weekend Ludum Dare happens for the 23rd time, and it will be the ten year anniversary of the competition!</p>
<p>As you might know, I released an early version of the pixel editor, now called PyxelEdit, for the Ludum Dare community. Even though it is far from complete, I wanted to share what I had because I think it's cool and could be useful for making quick graphics for LD.</p>
<p>I have not yet decided exactly what to do with the editor. Right now I'm refactoring the code because there is a lot of prototype code in there, the data and representation is not fully separated etc. This will make the code much easier and faster to work with in the long run, but it also means there won't be any updates for a while (more than small fixes to the LD version if needed).</p>
<p>In the mean time, you can get the LD version of the editor here: <a href="/stuff/pyxeledit/">/stuff/pyxeledit/</a></p>
<p>Here is a demo video (sligtly outdated):</p>
<div class="video-embed"><iframe src="https://www.youtube-nocookie.com/embed/-I2JYTBYBxs" title="YouTube video" loading="lazy" allowfullscreen></iframe></div>
]]></description>
  </item>
  <item>
    <title>Unnamed pixel editor</title>
    <link>https://danikgames.com/blog/unnamed-pixel-editor/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/unnamed-pixel-editor/</guid>
    <pubDate>Sun, 08 Apr 2012 02:20:46 GMT</pubDate>
    <description><![CDATA[<p>This week I have had a lot of free time, so I started working on a new project. It's a pixel editor inspired by Pro Motion and Pixothello with some special features to make the process of making pixel art more streamlined and fun. Some of the features can be seen in the screenshot below. The basic editor is working pretty solidly. I plan to work hard on it the coming days adding animation support and probably a lot of other stuff. In the mean time, enjoy this screenshot.</p>
<p>If you have any name suggestions I'd appreciate it. Pretty much anything with "pixel" seems to be taken. :)<br/>
<p style="text-align: center;"><a href="/blog/wp-content/uploads/2012/04/scrn7.png"><img class="aligncenter  wp-image-643" title="scrn7" alt="scrn7" src="/blog/wp-content/uploads/2012/04/scrn7.png" width="614" height="461" /></a></p></p>
]]></description>
  </item>
  <item>
    <title>Spot The Odd One running on Blackberry Playbook</title>
    <link>https://danikgames.com/blog/spot-the-odd-one-running-on-blackberry-playbook/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/spot-the-odd-one-running-on-blackberry-playbook/</guid>
    <pubDate>Fri, 09 Mar 2012 15:39:29 GMT</pubDate>
    <description><![CDATA[<p>I made a game called Spot The Odd One, to take part in Blackberrys free Playbook offer. I just want to share this image of the game running on the actual device. It's really exciting, as I made it using the simulator. It runs pretty much the same, just much smoother. I have realised some of the colors are almost impossible to tell apart though, like the purple and blue in the image, so I will fix that in the next update.</p>
<p>If you have a Playbook, you can get it for free in App World. Let me know if you have any feedback.</p>
<p><a href="/blog/wp-content/uploads/2012/03/stooBB.jpg"><img class="aligncenter size-full wp-image-635" title="stooBB" src="/blog/wp-content/uploads/2012/03/stooBB.jpg" alt="stooBB" width="600" height="400" /></a></p>
]]></description>
  </item>
  <item>
    <title>Simple profanity filter in AS3</title>
    <link>https://danikgames.com/blog/simple-profanity-filter-as3/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/simple-profanity-filter-as3/</guid>
    <pubDate>Wed, 22 Feb 2012 15:23:24 GMT</pubDate>
    <description><![CDATA[<p>I needed a profanity filter for the highscores in an app I made, but I couldn't find anything free that worked the way I wanted, so I made a simple one myself. It's pretty basic but someone might have use for it.</p>
<p>You need a list of lowercase words to filter for. The one I used is far too big to paste here, but you can find one by searching for "bad word list".</p>
<pre><code>
private static const badWords:Array = ["lots","of","bad","words"];</code></pre>
<pre><code>

// Returns a profane word if found, else ""
static public function checkName(text:String):String {
	text = text.toLowerCase();
	
	for (var i:int = 0; i &lt; charReplacements.length; i++ ) {
		var ra:Array = charReplacements[i] as Array;
		text = strReplace(text, ra[0], ra[1]);
	}
	
	for each (var w:Object in badWords) {
		if (text.indexOf(String(w)) != -1) {
			return String(w);
		}
	}
	return "";
}</code></pre>
<p>The function will detect character sequences that look like some other character, to make it harder to bypass the filter. For example, 1 becomes i, û becomes u, |\| becomes n etc.<br/>
In this way "Fuc|&lt;" would be detected for instance. The sequence replacements can even be used to identify inappropriate symbols like "(.)", by converting them to (in)appropriate words if you like. :)</p>
<pre><code>
private static const charReplacements:Array = [["@", "a"], ["0", "o"], ["1", "i"], 
	["2", "r"], ["3", "e"], ["4", "a"], ["5", "s"], ["7", "t"], ["8", "b"], 
	["9", "g"], ["|&lt;", "k"], ["|\/|", "m"], ["|\|", "n"], ["ä", "a"], ["ã", "a"], 
	["â", "a"], ["ä", "a"], ["á", "a"], ["à", "a"], ["å", "a"], ["é", "e"], 
	["è", "e"], ["ë", "e"], ["ê", "e"], ["§", "s"], ["$", "s"], ["£", "l"], 
	["€", "e"], ["ü", "u"], ["û", "u"], ["ú", "u"], ["ù", "u"], ["î", "i"], 
	["ï", "i"], ["í", "i"], ["ì", "i"], ["ÿ", "y"], ["ý", "y"], ["ö", "o"], 
	["ô", "o"], ["õ", "o"], ["ó", "o"], ["ò", "o"], ["(.)","boob"]];
</code></pre>
<p>You will also need this helper function for string replacement:</p>
<pre><code>
// Helper that replaces all "find" with "replace" in the given input string
public static function strReplace(input:String, find:String, replace:String):String {
	while (input.indexOf("find") != -1)
		input = input.split(find).join(replace);
	return input.split(find).join(replace);
}</code></pre>
<p>It works quite well, let me know if you found it useful or have any suggesstions.</p>
]]></description>
  </item>
  <item>
    <title>LD nano - 48 minute RTS</title>
    <link>https://danikgames.com/blog/ld-nano-48-minute-rts/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/ld-nano-48-minute-rts/</guid>
    <pubDate>Sun, 12 Feb 2012 12:31:47 GMT</pubDate>
    <description><![CDATA[<p><a href="http://www.sos.gd/">Sos</a> at Ludum Dare arranged <a href="http://www.ludumdare.com/compo/2012/02/11/nanold-make-a-game-in-48-minutes/">nanoLD </a>- make a game in 48 minutes. I got the theme RTS and made this. (the theme was random each time you loaded the page but I didn't realise that until afterwards)<br/>
I spent an extra couple of minutes fixing a few bugs afterwards, so maybe 55 minutes in total.</p>
<p><a href="http://dl.dropbox.com/u/4785344/ludumdare/LDnano48min/index.html">48 min RTS</a></p>
]]></description>
  </item>
  <item>
    <title>GGJ12 - Planet of Yrwys</title>
    <link>https://danikgames.com/blog/ggj12-planet-of-yrwys/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/ggj12-planet-of-yrwys/</guid>
    <pubDate>Mon, 30 Jan 2012 10:55:55 GMT</pubDate>
    <description><![CDATA[<p>This weekend me and about 10000 others around the world participated in the annual Global Game Jam, the largest game jam in the world. The theme was this: <a href="http://en.wikipedia.org/wiki/Ouroboros">http://en.wikipedia.org/wiki/Ouroboros</a>. Me and my team made a game called Planet of Yrwys (You Reap What You Sow) featuring a hungry harvesting robot:</p>
<p><a href="/blog/wp-content/uploads/2012/01/screenshot3.png"><img class="aligncenter size-medium wp-image-522" title="screenshot3" src="/blog/wp-content/uploads/2012/01/screenshot3-300x168.png" alt="screenshot3" width="300" height="168" /></a></p>
<p>The game is about a robot, endlessly walking on the surface of a small planet. To survive you have to plant seeds, which turn into plants that you can harvest for more seeds, and so on. To make the task more complicated, you keep going faster and faster, and there is a hungry <a href="http://en.wikipedia.org/wiki/Capybara">Capybara</a> eating any of the plants he comes across. Colliding with the Capybara or a plant that has been left too long and turned into a thorny dead bush will make you drop all your seeds!</p>
<p>Each time you complete a circle, you need to eat one seed for energy, and if you pass the flag without any seeds you loose.</p>
<p>I made the graphics and music and a little bit of the programming. Andreas Bjerkeholt (Harteex), Disa Faith (Disaia) and Robert Edström (Legogris) did the programming, and we all made the game design together.</p>
<p>You can find out more, and try the game here: <a href="http://globalgamejam.org/2012/planet-yrwys">http://globalgamejam.org/2012/planet-yrwys</a>. To run it you need Windows and the XNA runtime, but that should download automatically in the installer I believe. You can also use an Xbox controller if you have one.</p>
<p>&nbsp;</p>
]]></description>
  </item>
  <item>
    <title>LD48 Ravenwood</title>
    <link>https://danikgames.com/blog/my-ludum-dare-22-game-ravenwood/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/my-ludum-dare-22-game-ravenwood/</guid>
    <pubDate>Mon, 19 Dec 2011 13:34:28 GMT</pubDate>
    <description><![CDATA[<p>I entered the Ludum Dare game making competition this weekend as usual. The theme was "Alone". I didn't have any immediate ideas, so I began by making the basis for a platformer with the theme in mind. Then it sort of evolved as I came up with things I thought would be cool to add.</p>
<p><a href="/stuff/LD22/index.html">PLAY</a></p>
<p>The tools I used:<br/>
<ul><br/>
	<li>Flashdevelop (IDE)</li><br/>
	<li>Flashpunk (Game library)</li><br/>
	<li>Photoshop</li><br/>
	<li>Audition (sound editing)</li><br/>
	<li>Cubase (music)</li><br/>
	<li>Chronolapse (timelapse recording)</li><br/>
</ul><br/>
<div class="mceTemp mceIEcenter"><dl id="attachment_495" class="wp-caption aligncenter" style="width: 649px;"><dt class="wp-caption-dt"><a href="/stuff/LD22/index.html"><img class="size-full wp-image-495" title="screen1" src="/blog/wp-content/uploads/2011/12/screen1.png" alt="screen1" width="639" height="479" /></a></dt></dl></div><br/>
I decided early on to make it atmospherical, and I put a lot of focus on the effects, sounds, music and animation.</p>
<p>Continue reading for more info and a post-mortem.<!--more--><br/>
<h3>What went wrong:</h3><br/>
My computer kept crashing throughout the weekend, I think it crashed 8 times in total, which was really annoying. Fortunately I didn't loose much work.</p>
<p>I waited far too long to implement basic things like getting hurt, dieing and winning, which meant I had to rush that in in the last couple of hours. The basic gameplay challenge when fighting the ravens is not that hard or fun, I should have worked more on that, as well as added more kinds of enemies, and perhaps a boss. It would also make the game more fun if I added some sort of progression, like new abilities.</p>
<p>The story is intentionally vauge, but only because I didn't have time to flesh it out. It might add to the mystery and mood, I'm not sure. I would really have liked to have time to add a proper ending.</p>
<p>If you miss one of the spheres, you have to go back and find it. I wanted to have some sort of checkpoint, where to pass you would need to complete the part of the game behind you, but I didn't get around to it. This also means you can win the game in different places, which is maybe cool, but...<br/>
<h3>What went right:</h3><br/>
I think the strongest part of the game is the atmosphere. The rain and lightning effects really add to the mood. I'm also happy with the graphics, and especially the animation, considering I haven't done that much before. The music is simple but effective, I didn't go crazy despite listening to it for 10 hours straight.</p>
<p>The player physics feel pretty good, although the attacking part can use some more work. I'm proud of the healing mechanic although it isn't used to such a big extent.</p>
<p>The camera doesn't follow the player all the time, instead it snaps to 32x24 tile screens. This was an experiment, and I think it turned out ok. Because the screens are predetermined, you have more control over the scenes the player will see, and can tailor each scene to look as best it can. Of course, it's also a limitation, and can be irritating for the player when navigating small passages for example.</p>
<p>I made the level as one big png-image in photoshop, where each pixel corresponds to one 10x10 pix tile. This made it really easy to edit, and because it was one single big image, I could quickly see how the whole world looked together. In order to see where each screen in the game was positioned, I just filled the image with helper rectangles. It worked suprisingly well.<br/>
Here is the final world image scaled up a bit (Warning: SPOILERS!): <a href="/blog/wp-content/uploads/2011/12/world1.png" target="_blank">world.png</a></p>
<p>The auto-tiling was a thing I threw together in a hackish manner, but it worked really well too, and supports additional tilesets easily given an offset to the base tile (solid tile).<br/>
<h3>Summary:</h3><br/>
I'm happy with the result. The graphics are simple but effective, the atmosphere is good, sound and music works, the gameplay could be better but is ok, and it's a completed game! I focused on stuff I usually don't, and think I learned a whole lot. If you haven't played the game yet, you can try it out here: <a href="/stuff/LD22/index.html">/stuff/LD22/index.html</a>!</p>
<p>Here is the entry page on the Ludum Dare site.</p>
<p><a href="http://www.ludumdare.com/compo/ludum-dare-22/?action=rate&amp;uid=2311">http://www.ludumdare.com/compo/ludum-dare-22/?action=rate&amp;uid=2311</a></p>
]]></description>
  </item>
  <item>
    <title>Coin Runner post-LD screenshot</title>
    <link>https://danikgames.com/blog/coin-runner-post-ld-screenshot/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/coin-runner-post-ld-screenshot/</guid>
    <pubDate>Wed, 07 Sep 2011 03:32:17 GMT</pubDate>
    <description><![CDATA[<p>I'm have been working on Coin Runner since Ludum Dare 21. Here is a screenshot of how it looks at the moment, although a lot of it is still placeholder art. As you can see, there are now achievements.</p>
<p>It plays a lot better than the compo version!</p>
<p>There's also lot's of new items and skills you can buy. More info coming soon!</p>
<p><a href="/blog/wp-content/uploads/2011/09/screen8_achievements.png"><img class="aligncenter size-full wp-image-485" title="screen8_achievements" src="/blog/wp-content/uploads/2011/09/screen8_achievements.png" alt="screen8_achievements" width="640" height="480" /></a><a href="/blog/wp-content/uploads/2011/09/screen8_achievements.png"><br/>
</a></p>
]]></description>
  </item>
  <item>
    <title>Ludum Dare 21: Coin Runner</title>
    <link>https://danikgames.com/blog/ludum-dare-21/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/ludum-dare-21/</guid>
    <pubDate>Tue, 23 Aug 2011 20:51:19 GMT</pubDate>
    <description><![CDATA[<p>I participated in last weekends Ludum Dare 48 hour game making competition again. This time the theme was "Escape", and I made a game where you run from enemies and collect coins, called Coin Runner. This time I focused most of my efforts on the gameplay, hence the squares for graphics. You can try the compo version here: <a href="/stuff/LD21/index.html">Coin Runner compo-version</a>. I'm continuing to work on the game, so stay tuned.</p>
<p>&nbsp;<br/>
<div class="mceTemp mceIEcenter" style="text-align: left;"><dl id="attachment_466" class="wp-caption aligncenter" style="width: 310px;"><dt class="wp-caption-dt"><a href="/stuff/LD21/index.html"><img class="size-medium wp-image-466  " title="Coin runner" src="/blog/wp-content/uploads/2011/08/screen7-300x224.png" alt="Coin runner" width="300" height="224" /></a></dt><dd class="wp-caption-dd">Coin Runner</dd></dl></div><br/>
&nbsp;</p>
<p><em>Cross posted at the LD site:</em></p>
<p>Waking up at 1:30 PM in the day today with aching fingers, I felt happy.</p>
<p>The game is actually pretty fun to play, and not too badly balanced. There are three zones of different colors, and each zone get's a bit harder. The enemies get a little too fast and jumpy after a while though.</p>
<p>I don't regret using Flashpunk this time, it really makes everything so much easier than using just as3 like last time. I spent many hours on a stupid bug though, and realised Flashpunk tilemaps do not actually clear tiles when you call clearTile() on them if the clear tile (index 0) is transparent. That was annoying and made me loose a lot of time.</p>
<p>I think the leaderboard can add a lot to the game. Sadly Playtomic has disabled it's leaderboards due to some problems, but it should be working soon again.</p>
<p>I didn't really make any graphics at all, but focused on gameplay instead. I think that was a good idea, but the game could really use some better graphics. The music and sound effects could be better too, but they do the job.</p>
<p>A breakdown of the time spent in different applications (tracked with ProcrastiTracker):<br/>
<ul><br/>
	<li>Flashdevelop 13h</li><br/>
	<li>Chrome 6h</li><br/>
	<li>Flashplayer 4h</li><br/>
	<li>XChat 2h</li><br/>
	<li>Photoshop 2h</li><br/>
	<li>Cubase 1h</li><br/>
</ul><br/>
<div>In total 28 hours!</div><br/>
Entry page: <a href="http://www.ludumdare.com/compo/ludum-dare-21/?action=preview&amp;uid=2311">http://www.ludumdare.com/compo/ludum-dare-21/?action=rate&amp;uid=2311</a></p>
<p>Timelapse:</p>
<p>https://www.youtube.com/watch?v=</p>
<div class="video-embed"><iframe src="https://www.youtube-nocookie.com/embed/XI3k4yqRSVM" title="YouTube video" loading="lazy" allowfullscreen></iframe></div>
<p>&nbsp;</p>
]]></description>
  </item>
  <item>
    <title>The World Above post compo progress</title>
    <link>https://danikgames.com/blog/the-world-above-post-compo-progress/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/the-world-above-post-compo-progress/</guid>
    <pubDate>Mon, 25 Jul 2011 20:10:49 GMT</pubDate>
    <description><![CDATA[<p>Ludum Dare 20 was almost three months ago, and I have been working on a new version of my game The World Above every now and then.</p>
<p>The original game had a lot of flaws. There was only one level, you couldn't move for a few seconds when you collided which was very frustrating, the resolution was way too high making it unplayable on smaller screens, if you ran out of fuel it was a chore to continue playing as you fell and crashed over and over, and it just suffered from a general lack of playtesting.</p>
<p>Even though there was many problems, I feel like there is a good game in there. I'm especially happy with the controls and movement of the submarine, and I want to get it closer to it's potential. Due to work over the summer, progress is slow, but I have fixed most of the problems in the LD version, added some new features such as time powerups and mines and replaced many of the rushed sprites with shiny new ones. There are now multiple levels instead of the huge single level, and the tiles in the level are now about half of the original size. (can't remember why I made 'em so huge!)</p>
<figure class="post-figure"><a href="/blog/wp-content/uploads/2011/07/splash_screen_2.png"><img class="size-full wp-image-440" title="splash_screen_2" src="/blog/wp-content/uploads/2011/07/splash_screen_2.png" alt="splash_screen_2" width="473" height="359" /></a><figcaption>New animating title screen</figcaption></figure>
<p style="text-align: center;"><em>Continue reading for more info and screenshots.</em></p>
<p style="text-align: center;"><!--more--></p>
<p style="text-align: left;">The walls were very boxy before, I made it better by implementing auto tiling so that the tiles fit together better. At the moment I'm using the original rock graphic. It has been extended into 16 versions which are selected by examining which neighbouring tiles are rock. It could look better and still needs some work, I might redo the wall graphics completely to make it less square.</p>
<figure class="post-figure"><a href="/blog/wp-content/uploads/2011/07/screen8.png"><img class="size-full wp-image-439" title="screen8" src="/blog/wp-content/uploads/2011/07/screen8.png" alt="screen8" width="475" height="359" /></a><figcaption>Note the seamlessly tiling rock</figcaption></figure>
<p>&nbsp;</p>
<figure class="post-figure"><a href="/blog/wp-content/uploads/2011/07/screen7.png"><img class="size-full wp-image-438" title="screen7" src="/blog/wp-content/uploads/2011/07/screen7.png" alt="screen7" width="475" height="360" /></a><figcaption>Mines</figcaption></figure>
<p>There are now more than one level in the game. The level format is really simple, using bitmaps. This works pretty well, but there are some limitations. For example there cannot be a rock background where there is an item, which means there will be holes in the background wall where mines or other items are placed. This could be sort of fixed by putting a rock background tile behind the item if more than half of the surrounding tiles are rock, fixing the hole issue.</p>
<figure class="post-figure"><a href="/blog/wp-content/uploads/2011/07/lev2_zoom1.png"><img class="size-full wp-image-448" title="lev2_zoom" src="/blog/wp-content/uploads/2011/07/lev2_zoom1.png" alt="lev2_zoom" width="200" height="300" /></a><figcaption>Level format</figcaption></figure>
]]></description>
  </item>
  <item>
    <title>Color picking in as3</title>
    <link>https://danikgames.com/blog/color-picking-in-as3/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/color-picking-in-as3/</guid>
    <pubDate>Sat, 02 Jul 2011 13:14:06 GMT</pubDate>
    <description><![CDATA[<p>Someone recently wondered how to pick a color of a pixel from the screen in as3. If you have a bitmap image you can simply grab the color value using <a href="http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html#getPixel()">BitmapData.getPixel()</a>. But if you want to capture a pixel color value in the stage as the user sees it, including vector graphics, you need another technique.</p>
<p>The way I found was to make a 1x1 bitmap, and then drawing the stage to the bitmap using a translation matrix for the offset. The result is then in the single pixel of the bitmap.</p>
<pre><code>
public function pickColorFromStage(x:int, y:int):uint {
   var bmd:BitmapData = new BitmapData(1, 1, false, 0x000000);
   var matrix:Matrix = new Matrix();
   matrix.translate(-x, -y);
   bmd.draw(stage, matrix);
   return bmd.getPixel(0, 0);
}</code></pre>
]]></description>
  </item>
  <item>
    <title>Preset brush sharing with base64 encoding</title>
    <link>https://danikgames.com/blog/preset-brush-sharing-with-base64-encoding/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/preset-brush-sharing-with-base64-encoding/</guid>
    <pubDate>Sun, 26 Jun 2011 19:03:11 GMT</pubDate>
    <description><![CDATA[<p>I have made it possible to load/save presets as base64 strings, so that people can share brush presets easily. I used this lib for as3: <a href="http://jpauclair.net/2010/01/09/base64-optimized-as3-lib/">base64-optimized-as3-lib</a>. The nice thing about this is that the presets are text strings, and can be posted in comments, shared by mail or IM, or any other kind of text communication. The base64 string represents a serialized flash Object-object, storing key-value pairs for each setting, so it should be possible to make presets specifying just some of the settings, while leaving the rest, although in this version all the settings are stored.</p>
<p>You can save the base64 string in a text document at the moment as it's not possible to save them in the application, but I have added some hard coded presets you can try using the numbered buttons. (they can be accessed with keys 0-9 aswell)</p>
<figure class="post-figure"><a href="/stuff/floralpart0.45/index.html" target="_blank"><img class="size-full wp-image-349  " title="Presets window" src="/blog/wp-content/uploads/2011/06/0.5presetswin.png" alt="Presets window" width="602" height="303" /></a><figcaption>Presets window</figcaption></figure>
<p>To open the preset window, click Presets in the panel or press P. To make a base64 string for your brush, click "Generate base64", and copy the text. To use a base64 brush that someone sent you, just paste it in the text area and click "Load from base64".</p>
<p><strong><a title="FP0.45" href="/stuff/floralpart0.45/index.html" target="_blank">Open FloralParticles 0.45</a> </strong></p>
<p>You can share presets in the comments below if you want. I might even add good ones as standard presets in the application. :)</p>
]]></description>
  </item>
  <item>
    <title>Floral Particles 0.4</title>
    <link>https://danikgames.com/blog/floral-particles-0-4/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/floral-particles-0-4/</guid>
    <pubDate>Wed, 22 Jun 2011 00:18:04 GMT</pubDate>
    <description><![CDATA[<p>Some of the new features:<br/>
<ul><br/>
	<li>Improved line rendering</li><br/>
	<li>Color mixing</li><br/>
	<li>Multi-step undo/redo</li><br/>
	<li>Fade-To-Color setting</li><br/>
	<li>Save to PNG (lossless and faster)</li><br/>
	<li>Background vignette (toggleable)</li><br/>
	<li>Fullscreen mode</li><br/>
	<li>Mouse smoothing</li><br/>
	<li>New spawner behaviours</li><br/>
	<li>Opacity setting, global and fading per particle</li><br/>
</ul><br/>
<a href="/stuff/floralpart0.4/index.html" target="_blank"><strong><strong></a><a title="FP0.4" href="/stuff/floralpart0.4/index.html" target="_blank">Open FloralParticles 0.4</a></strong></strong></p>
<p>Any suggestions or feedback are welcome, just post a comment below.</p>
<figure class="post-figure"><a href="/blog/wp-content/uploads/2011/06/0.4-Screen3.png"><img class="size-large wp-image-329 " title="0.4 Screen3" src="/blog/wp-content/uploads/2011/06/0.4-Screen3-1024x681.png" alt="0.4 Screen3" width="626" height="416" /></a><figcaption>Floral Particles 0.4</figcaption></figure>
]]></description>
  </item>
  <item>
    <title>Floral Particles artwork</title>
    <link>https://danikgames.com/blog/floral-particles-artwork/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/floral-particles-artwork/</guid>
    <pubDate>Tue, 21 Jun 2011 01:12:12 GMT</pubDate>
    <description><![CDATA[<p>I've been adding a lot of new features, including a new line rendering method using polygons which looks much better than just using line drawing in flash. That enabled the neat "tire track" effect you can see in the first image, by using a negative bias for first edge the polygons.</p>
<p>Also added is an opacity slider, speed multiplier, a bunch of new controls for the brush behaviour, a color mixing slider which makes the particles pick up the colors from the canvas and a bunch of other stuff. It's a lot of fun!</p>
<p>A runnable is coming soon.<br/>
<p style="text-align: center;"><a href="/blog/wp-content/uploads/2011/06/floralparticlesPNG4.png"><img class="aligncenter size-large wp-image-305" title="floralparticlesPNG4" alt="floralparticlesPNG4" src="/blog/wp-content/uploads/2011/06/floralparticlesPNG4-1024x682.png" width="556" height="370" /></a></p><br/>
<p style="text-align: center;"><!--more--></p></p>
<figure class="post-figure"><a href="/blog/wp-content/uploads/2011/06/0.4-Screen2.png"><img class="size-large wp-image-322" title="0.4 Screen2" alt="0.4 Screen2" src="/blog/wp-content/uploads/2011/06/0.4-Screen2-1024x775.png" width="556" height="421" /></a> Interface</figure>
<p style="text-align: center;"><a href="/blog/wp-content/uploads/2011/06/floralparticlesPNG3.png"><img class="aligncenter size-large wp-image-306" title="floralparticlesPNG3" alt="floralparticlesPNG3" src="/blog/wp-content/uploads/2011/06/floralparticlesPNG3-1024x682.png" width="556" height="370" /></a></p>
<p style="text-align: center;"><a href="/blog/wp-content/uploads/2011/06/floralparticlesPNG.png"><img class="aligncenter size-large wp-image-303" title="floralparticlesPNG" alt="floralparticlesPNG" src="/blog/wp-content/uploads/2011/06/floralparticlesPNG-1024x716.png" width="556" height="388" /></a></p>
<p style="text-align: center;"><a href="/blog/wp-content/uploads/2011/06/floralparticlesPNG5.png"><img class="aligncenter size-large wp-image-307" title="floralparticlesPNG5" alt="floralparticlesPNG5" src="/blog/wp-content/uploads/2011/06/floralparticlesPNG5-1024x682.png" width="556" height="370" /></a></p>
<p style="text-align: center;"><a href="/blog/wp-content/uploads/2011/06/floralparticlesPNG6.png"><img class="aligncenter size-large wp-image-308" title="floralparticlesPNG6" alt="floralparticlesPNG6" src="/blog/wp-content/uploads/2011/06/floralparticlesPNG6-1024x682.png" width="556" height="370" /></a></p>
]]></description>
  </item>
  <item>
    <title>Floral Particles 0.3</title>
    <link>https://danikgames.com/blog/floral-particles-0-3/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/floral-particles-0-3/</guid>
    <pubDate>Fri, 17 Jun 2011 19:26:45 GMT</pubDate>
    <description><![CDATA[<p style="text-align: left;">I have made lots of progress on Floral Particles. There is now a gui which makes it much easier to change all of the parameters. It also scales to fit the browser nicely. Let me know what you think, and if you want, share images in the comments below! (you can attach images to comments)</p>
<p style="text-align: left;"><strong><a title="FP0.3" href="/stuff/floralpart0.3/index.html" target="_blank">Open FloralParticles 0.3</a></strong></p>
<figure class="post-figure"><a href="/stuff/floralpart0.3/index.html"><img class="size-full wp-image-285   " title="Floral Particles 0.3" src="/blog/wp-content/uploads/2011/06/screenshot0.31.png" alt="Floral Particles 0.3" width="500" height="379" /></a><figcaption>Click the image to try it</figcaption></figure>
<p style="text-align: center;">&nbsp;</p>
]]></description>
  </item>
  <item>
    <title>Floral particles 0.2</title>
    <link>https://danikgames.com/blog/floral-particles-0-2/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/floral-particles-0-2/</guid>
    <pubDate>Mon, 23 May 2011 23:18:41 GMT</pubDate>
    <description><![CDATA[<p><a title="Floral particles 0.2" href="/blog/wp-content/uploads/2011/05/floralparticles0.2/index.html" target="_blank">New version</a> of floral particles. New features:</p>
<p>-Change color<br/>
-Change size<br/>
-Shifting color<br/>
-Blur<br/>
-Freeze Blur (makes a depth-of-field kind of effect)<br/>
-Lots of tweaks</p>
<p>All of it is controlled by keyboard presses at the moment, I should make some kind of GUI to make it more accessible perhaps.</p>
<figure class="post-figure"><a href="/blog/wp-content/uploads/2011/05/floralparticles0.2/index.html" target="_blank"><img class="size-full wp-image-251   " title="Floralart6" src="/blog/wp-content/uploads/2011/05/art6.jpg" alt="Floralart6" width="438" height="398" /></a><figcaption>Colors! Depth of field!</figcaption></figure>
<p>&nbsp;</p>
]]></description>
  </item>
  <item>
    <title>Particle experiment - floral particles</title>
    <link>https://danikgames.com/blog/particle-experiment/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/particle-experiment/</guid>
    <pubDate>Sat, 21 May 2011 14:10:40 GMT</pubDate>
    <description><![CDATA[<p>Playing around with flash again, and came up with <a href="/blog/wp-content/uploads/2011/05/floralparticles/index.html" target="_blank">this</a>.</p>
<p>You can make some pretty interesting vine graphics with it. It also has an undo function and you can save the image as a JPEG.</p>
<figure class="post-figure"><a href="/blog/wp-content/uploads/2011/05/floralparticles/index.html" target="_blank"><img class="size-full wp-image-245  " title="screenshot3_crop" src="/blog/wp-content/uploads/2011/05/screenshot3_crop.png" alt="screenshot3_crop" width="383" height="286" /></a><figcaption>Click to try it</figcaption></figure>
]]></description>
  </item>
  <item>
    <title>The World Above - Ludum Dare 20</title>
    <link>https://danikgames.com/blog/the-world-above-ld20/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/the-world-above-ld20/</guid>
    <pubDate>Tue, 03 May 2011 00:42:50 GMT</pubDate>
    <description><![CDATA[<p>I took part in the Ludum Dare 48h game making compo again this weekend. The theme was "It's dangerous to go alone! Take this!". I thought it was a bit limiting, becuase it's so specific, so I had a hard time coming up with an idea I liked.</p>
<p>However, I settled with the idea of a game where you control a little sub going for the surface, even if it didn't fit the theme. Better a game that doesn't than no game at all, and I kind of made it fit...</p>
<p>Click here to play the compo version (it's in flash): <strong><a href="/blog/wp-content/uploads/2011/05/LD20SUBMISSION/index.html" target="_blank">The World Above</a>.</strong></p>
<p>I also made a timelapse of my screen during the making, you can watch it on youtube here: <a href="https://www.youtube.com/watch?v=8lAx-3Fc4O0" target="_blank">Timelapse</a>.<br/>
<div class="mceTemp mceIEcenter"><dl id="attachment_227" class="wp-caption aligncenter" style="width: 531px;"><dt class="wp-caption-dt"><a href="/blog/wp-content/uploads/2011/05/LD20SUBMISSION/index.html" target="_blank"><img class="size-full wp-image-227 " title="screen5_crop" src="/blog/wp-content/uploads/2011/05/screen5_crop.png" alt="screen5_crop" width="521" height="362" /></a></dt></dl></div><br/>
<p style="text-align: center;"></p></p>
]]></description>
  </item>
  <item>
    <title>My MiniLD 25 entry - Your worst enemy</title>
    <link>https://danikgames.com/blog/your-worst-enemy/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/your-worst-enemy/</guid>
    <pubDate>Sun, 13 Mar 2011 23:21:27 GMT</pubDate>
    <description><![CDATA[<p>This is my entry for MiniLD 25 with the theme "The worst game you have ever made". The goal was to make the worst game you have ever made. It was suprisingly hard not to make little improvements here and there, it's something I usually do without thinking.</p>
<p><!--more--></p>
<p>Near the end the game was pretty good, so I tried to make it worse by adding random control glitches where the player shoots automatically and the controls are reversed. :)</p>
<p>I made the player image in photoshop in literally about a minute, then inverted the image in order to make the enemy. :P Then I just added as many effects as possible, random scaling, rotations depending on position, a psychadelic background that shifts color etc.</p>
<p>The only thing that can hurt you is your own bullets, they bounce back at you from the edge of the screen. The enemies come from the other side, so you have to go back around them or bounce your bullets on the edge. To make the game extra annoying your bullets predict where you are going (basically they get your y-speed) so that they hit you unless you change your speed.</p>
<p>Shooting an enemy earns you 1 point and getting hit loses you 1 point. You win if you get 1000 points.</p>
<p>Programming, graphics and music by me, sound effects made using as3sfxr. Programmed in Monkey. Enjoy! (or don't :P )<br/>
Entry page on the Ludum Dare site: <a href="http://www.ludumdare.com/compo/minild-25/?action=preview&amp;uid=2311">http://www.ludumdare.com/compo/minild-25/?action=preview&amp;uid=2311</a></p>
<p><a href="/blog/wp-content/uploads/2011/03/WorstEver/worst.html">PLAY</a> (HTML5)</p>
<p><a href="/blog/wp-content/uploads/2011/03/worseEverScreen4.png"><img class="size-full wp-image-197 alignleft" title="worseEverScreen4" src="/blog/wp-content/uploads/2011/03/worseEverScreen4.png" alt="worseEverScreen4" width="230" height="288" /></a></p>
]]></description>
  </item>
  <item>
    <title>HTML5 shooter in Monkey</title>
    <link>https://danikgames.com/blog/html5-shooter-in-monkey/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/html5-shooter-in-monkey/</guid>
    <pubDate>Thu, 10 Mar 2011 01:04:37 GMT</pubDate>
    <description><![CDATA[<p>I'm working on a shooter written in the <a href="http://www.monkeycoder.co.nz/">Monkey</a> language. It's a new cross-platform programming language that can generate code for a whole bunch of platforms including Win, Mac, HTML5, Flash, iOS, Android and more. It's a really simple language that resembles BASIC. It is kind of limited since is has to work on all those platforms, but I'm having lots of fun playing with it.</p>
<p>Here's what I've got so far. Enemies just keep on spawning at the moment, so it's kind of repetitive. :P<br/>
Chrome recommended for performance. IE doesn't even work yet (until IE9 which is coming out in a couple of days.)</p>
<p>There are currently two control schemes:</p>
<p>Mouse - aim and shoot<br/>
Arrows - move</p>
<p>or</p>
<p>Z - strafe<br/>
X - shoot<br/>
Arrows - move.</p>
<p>Space drops a bomb in both cases. And you shoot backwards. :)</p>
<p>I haven't decided on which to use yet, if you have any feedback make a comment!<br/>
<p style="text-align: center;"><a href="/blog/wp-content/uploads/2011/03/ShooterWIP1/index.html">PLAY GAME!</a> <span style="color: #ff0000;">(Note: Lots of flashing going on. If you have epilepsy be aware!)</span><a href="/blog/wp-content/uploads/2011/03/ShooterWIP1/index.html"><img class="aligncenter size-full wp-image-181" title="shooterScrn" src="/blog/wp-content/uploads/2011/03/shooterScrn.png" alt="shooterScrn" width="503" height="374" /></a></p></p>
]]></description>
  </item>
  <item>
    <title>Raytraced particle with gravity</title>
    <link>https://danikgames.com/blog/raytrace-with-gravity/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/raytrace-with-gravity/</guid>
    <pubDate>Mon, 07 Feb 2011 00:22:18 GMT</pubDate>
    <description><![CDATA[<p>A flash experiment traces a path which is affected by gravity from planets. You can move the planets around to make interesting shapes. You can also add more planets and scale them.</p>
<p><strong>Updated!</strong> Cleaned it up and added more controls. You can now change the number of steps the ray traces and a bunch of other things.<br/>
<div class="mceTemp mceIEcenter"><dl id="attachment_173" class="wp-caption aligncenter" style="width: 375px;"><dt class="wp-caption-dt"><a href="/stuff/raygrav/index.html" target="_blank"><img class="size-full wp-image-173  " title="raycastgravshot" src="/blog/wp-content/uploads/2011/02/raycastgravshot.png" alt="raycastgravshot" width="365" height="270" /></a></dt></dl></p></div>
]]></description>
  </item>
  <item>
    <title>New Ludum Dare logo designs</title>
    <link>https://danikgames.com/blog/new-ludum-dare-logo-designs/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/new-ludum-dare-logo-designs/</guid>
    <pubDate>Thu, 03 Feb 2011 01:55:06 GMT</pubDate>
    <description><![CDATA[<p>Some new variations on my Ludum Dare logo.<br/>
<div style="clear: both;"><img class="size-large wp-image-155 alignleft" title="LD48_1_4" src="/blog/wp-content/uploads/2011/02/LD48_1_4-1024x538.png" alt="LD48_1_4" width="355" height="186" /> I got some helpful feedback from the people on the ludum dare site. I made the clock design simpler and more stylized. Now it fits in better with the text, and it's more graphical which is better for a logo. I also made the text bolder and reduced the number of colors to two.<!--more--></div><br/>
<div style="clear: both;"><img class="alignleft size-large wp-image-156" title="LD48_1_5" src="/blog/wp-content/uploads/2011/02/LD48_1_5-1024x538.png" alt="LD48_1_5" width="355" height="186" /> Then I tried the logo without the clock.<!--more--></div><br/>
<div style="clear: both;"><img class="alignleft size-large wp-image-159" title="LD48_1_7" src="/blog/wp-content/uploads/2011/02/LD48_1_7-1024x538.png" alt="LD48_1_7" width="355" height="186" /> I also tried incorporating the clock into the text.</div><br/>
<div style="clear: both;"><strong>Edit</strong>: My logo was one of the chosen ones, now you can get a Ludum Dare t-shirt in the store at Zazzle  <a href="http://www.zazzle.com/ludumdare">http://www.zazzle.com/ludumdare</a> :D.</p></div>
]]></description>
  </item>
  <item>
    <title>Global Game Jam 2011 - Parallel Stampede</title>
    <link>https://danikgames.com/blog/global-game-jam-2011-parallel-stampede/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/global-game-jam-2011-parallel-stampede/</guid>
    <pubDate>Mon, 31 Jan 2011 18:59:13 GMT</pubDate>
    <description><![CDATA[<p><a href="/blog/wp-content/uploads/2011/01/CelebrateCrop.png"><img class="alignleft size-full wp-image-151" title="CelebrateCrop" src="/blog/wp-content/uploads/2011/01/CelebrateCrop.png" alt="CelebrateCrop" width="64" height="64" /></a><a href="/blog/wp-content/uploads/2011/01/FCelebrateCrop.png"><img class="size-full wp-image-152 alignleft" title="FCelebrateCrop" src="/blog/wp-content/uploads/2011/01/FCelebrateCrop.png" alt="FCelebrateCrop" width="64" height="64" /></a>I attended the <a href="http://www.globalgamejam.org/games/2011?tid[]=3869">Global game jam in Gothenburg</a> this weekend. My team made a platform game where you try to save at least one female and one male of the species, in order to save them from extinction (which was the theme). In order to succed you must play each level multiple times, where each previous run is recorded and played back from the beginning.</p>
<p>My team consisted of myself, <a href="http://www.harteex.com/">Andreas Bjerkeholt</a> and <a href="http://lj9.mexinetica.com/bloginetica/">Alejandro Valenzuela</a> (check out his detailed report of the event on his blog <a href="http://lj9.mexinetica.com/bloginetica/comentarios.shtml?2011.01.31.03.38.35.+01.">here</a>!)</p>
<p>The first day we spent prototyping a number of other ideas, (including dinosaur metroite bowling and a planet-light bending simulator where the goal was to make a ray of light reach earth :)) before choosing this platformer.</p>
<p><!--more--></p>
<p><a href="/blog/wp-content/uploads/2011/01/screenShot.png"><img class="aligncenter size-full wp-image-110" title="Parallel Stampede screen shot" src="/blog/wp-content/uploads/2011/01/screenShot.png" alt="Parallel Stampede screen shot" width="796" height="478" /></a></p>
<p>The major feature in the game is the recording and playback, and we spent a big portion of the time getting that to work good. At first earlier replays were interferring with later ones causing them to go out of sync.</p>
<p>We were planning to have a deadly wall of lava or crocodiles moving towards you from the left, hence the name Parallel Stampede (there's a stampede, and you play many instances of yourself in parallel), but we didn't have time to make that.</p>
<p>We got in a real hurry at the and, and made the levels in about 10 minutes each, and unfortunately the last level is <del>not possible</del> <a href="wp-content/uploads/2011/01/win-screen-lv4.png">very hard</a> to finish. :D So here is the end screen so that someone sees it and my work is not in vain. :P<br/>
(ignore the spelling error)</p>
<p><a href="/blog/wp-content/uploads/2011/01/winScreen.png"><img class="aligncenter size-full wp-image-113" title="winScreen" src="/blog/wp-content/uploads/2011/01/winScreen.png" alt="winScreen" width="800" height="480" /></a></p>
<p>Some sprites, I'm happy with these considering they were made in a rush:<br/>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-123" title="Idle" src="/blog/wp-content/uploads/2011/01/Idle.png" alt="Idle" width="64" height="64" /><br/>
<img class="aligncenter size-full wp-image-124" title="Run" src="/blog/wp-content/uploads/2011/01/Run.png" alt="Run" width="384" height="64" /><br/>
<img class="aligncenter size-full wp-image-129" title="Celebrate" src="/blog/wp-content/uploads/2011/01/Celebrate.png" alt="Celebrate" width="192" height="64" /></p><br/>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-125" title="FIdle" src="/blog/wp-content/uploads/2011/01/FIdle.png" alt="FIdle" width="64" height="64" /><br/>
<img class="aligncenter size-full wp-image-126" title="FRun" src="/blog/wp-content/uploads/2011/01/FRun.png" alt="FRun" width="384" height="64" /><br/>
<img class="aligncenter size-full wp-image-130" title="FCelebrate" src="/blog/wp-content/uploads/2011/01/FCelebrate.png" alt="FCelebrate" width="128" height="64" /></p><br/>
We used XNA with some base code for platformer games. This made it really easy to get the game up and running, but it got harder and harder to make changes without breaking anything. So a lesson for next time is to use a codebase you are familiar with.</p>
<p>It was a good experience!</p>
<p>Play it and the other jam games at the Global Game Jam site:<br/>
<a href="http://www.globalgamejam.org/2011/parallel-stampede">http://www.globalgamejam.org/2011/parallel-stampede</a></p>
]]></description>
  </item>
  <item>
    <title>Projectile intercept example with source</title>
    <link>https://danikgames.com/blog/projectile-intercept-example-with-source/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/projectile-intercept-example-with-source/</guid>
    <pubDate>Mon, 31 Jan 2011 17:32:10 GMT</pubDate>
    <description><![CDATA[<p>In <a href="/blog/how-to-intersect-a-moving-target-in-2d/">my last post</a> I talked about a technique to calculate the velocity vector needed for a projectile to intercept a linearly moving target.</p>
<p>Here is a flash example and sourcecode:<br/>
<h4><a href="/blog/wp-content/uploads/2011/01/ProjectileIntersect2.swf" target="_blank">Flash example</a></h4><br/>
<h4><a href="/blog/wp-content/uploads/2011/01/ProjectileInterceptEx.zip" target="_blank">Download sourcecode</a></p></h4>
]]></description>
  </item>
  <item>
    <title>Calculating intercept vector for a moving target</title>
    <link>https://danikgames.com/blog/how-to-intersect-a-moving-target-in-2d/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/how-to-intersect-a-moving-target-in-2d/</guid>
    <pubDate>Fri, 28 Jan 2011 15:39:21 GMT</pubDate>
    <description><![CDATA[<p>I have been playing with target intersection prediction after I played a game called <a href="http://www.ludumdare.com/compo/ludum-dare-19/?uid=214">Beacon</a>, where the enemies predict where you are going. After a bit of struggle, I got it to work accurately. <a href="http://stackoverflow.com/questions/2248876/2d-game-fire-at-a-moving-target-by-predicting-intersection-of-projectile-and-un">This</a> post at stackoverflow helped. I'm going to explain how it works more in depth.</p>
<p><strong>Assumptions<br/>
</strong>Here we have a cannon on the ground, trying to hit a flying target. Let us assume the target is travelling with constant velocity, unaffected by gravity, and so is the projectile shot by the cannon.</p>
<p>The target will have a known velocity <code>u</code>. We will also know the speed of the projectile <code>|v|</code> in advance, and we want to find the vector <code>v</code> that will make it hit the target.</p>
<p><strong>Method<br/>
</strong>The idea is to transform the shooter and target to a new coordinate system where the line between them is one of the axes, match up the parallell speed, and then calculate the appropriate tangential speed for the projectile.</p>
<p><a href="/blog/wp-content/uploads/2011/01/targetPredictionDiag3.png"><img class="alignleft  wp-image-71" title="targetPredictionDiag" alt="targetPredictionDiag" src="/blog/wp-content/uploads/2011/01/intercept.png" /></a></p>
<p>In order for the projectile to hit the target, the I composants of the velocities, <code>vi</code> and <code>ui</code> must be equal. If they are not, the projectile will be too fast or slow in that direction and cannot hit the target.</p>
<p>To calculate <code>vi</code>, first find the vector between A and B, and normalize it. Then project <code>u</code> onto <code>AB</code> using a dot product, giving <code>uj</code>. Subtracting <code>uj</code> from <code>u</code>, we get <code>ui</code> which is equal to <code>vi</code>.</p>
<p>Once <code>vi</code> has been determined, <code>|vj|</code> can be found by using Pythagoras theorem, since we know the magnitude <code>|v|</code>.</p>
<p>Then we can multiply the unit vector <code>AB</code> by <code>|vj|</code> to get <code>vj</code>, and lastly, add together <code>vj</code> and <code>vi</code> to get <code>v</code></p>
<p><strong>Pseudocode</strong></p>
<pre><code>
// Given: ux, uy, vmag (projectile speed), Ax, Ay, Bx, By

// Find the vector AB
ABx = Bx - Ax
ABy = By - Ay

// Normalize it
ABmag = sqrt(ABx * ABx + ABy * ABy)
ABx /= ABmag
ABy /= ABmag

// Project u onto AB
uDotAB = ABx * ux + ABy * uy
ujx = uDotAB * ABx
ujy = uDotAB * ABy

// Subtract uj from u to get ui
uix = ux - ujx
uiy = uy - ujy

// Set vi to ui (for clarity)
vix = uix
viy = uiy

// Calculate the magnitude of vj
viMag = sqrt(vix * vix + viy * viy)
vjMag = sqrt(vMag * vMag - viMag * viMag)

// Get vj by multiplying it's magnitude with the unit vector AB
vjx = ABx * vjMag
vjy = ABy * vjMag

// Add vj and vi to get v
vx = vjx + vix
vy = vjy + viy
</code></pre>
<p>It can be interesting to note that any vector v with vi=ui, and vj in the direction of the target, will make the projectile hit the target. For example the two purple lines in the diagram. But the only one with the correct magnitude is the v we have found.</p>
<p>This example is in 2D, but the same method can be used in 3D by considering the plane in which the target, cannon and target velocity lies.</p>
<p><strong>Corner Cases</strong><br/>
It is not always certain that the cannon can hit the target. This can be the case if the target is faster than the projectile, and moving away from it. For the hit to be possible <code>u</code> must be greater than <code>vi</code> at the time of fire. If <code>u&lt;vi</code> the expression in the square root will be negative, and thus the root will be undefined, so you should have a check for that.</p>
<p><strong>Example</strong><br/>
<a href="/blog/wp-content/uploads/2011/01/ProjectileIntersect2.swf" target="_blank">Flash example</a></p>
<p><strong>Source code</strong><br/>
<a href="/blog/wp-content/uploads/2011/01/ProjectileInterceptEx.zip" target="_blank">Flashdevelop project</a></p>
<h2><p>Update:</h2><br/>
I have updated this article with some pseudo code, and to be much easier to understand.</p>
<h2><p>Update 2, the same thing in 3D:</h2><br/>
<a href="/blog/moving-target-intercept-in-3d/">Unity3D example and source code</a></p>
<p>&nbsp;</p>
]]></description>
  </item>
  <item>
    <title>Ludum Dare logo competition entry</title>
    <link>https://danikgames.com/blog/ludum-dare-logo-competition-entry/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/ludum-dare-logo-competition-entry/</guid>
    <pubDate>Wed, 26 Jan 2011 23:07:43 GMT</pubDate>
    <description><![CDATA[<p>I made this logo for Ludum Dare's <a href="http://www.ludumdare.com/compo/logo-contest-2011/" target="_blank">logo making competition</a>.</p>
<p>Much improved from <a href="/blog/wp-content/uploads/2011/01/ludum_logo_danik_contrasty_transp_small.png">my first submission</a> I think.<br/>
<p style="text-align: center;"><a href="/blog/wp-content/uploads/2011/01/ludum_logo_danik_2_medium.png"><img class="aligncenter  wp-image-42" title="ludum_logo_danik_2_medium" alt="ludum_logo_danik_2_medium" src="/blog/wp-content/uploads/2011/01/ludum_logo_danik_2_medium-1024x579.png" width="464" height="262" /></a></p></p>
]]></description>
  </item>
  <item>
    <title>The Making of The Secret Documents</title>
    <link>https://danikgames.com/blog/the-making-of-the-secret-documents/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/the-making-of-the-secret-documents/</guid>
    <pubDate>Tue, 25 Jan 2011 23:36:07 GMT</pubDate>
    <description><![CDATA[<p>I recently made a new video for the timelapse material I recorded during Ludum Dare #19.<br/>
There's some gameplay footage at the end showing what the game looked like when I submitted it, before I polishing it to the state it is in now.</p>
<div class="video-embed"><iframe src="https://www.youtube-nocookie.com/embed/lCPUnYfzxeQ" title="YouTube video" loading="lazy" allowfullscreen></iframe></div>
<p>You can play The Secret Documents <a title="The Secret Documents" href="/games/thesecretdocs/tsd.html">here.</a></p>
]]></description>
  </item>
  <item>
    <title>Development blog</title>
    <link>https://danikgames.com/blog/development-blog/</link>
    <guid isPermaLink="true">https://danikgames.com/blog/development-blog/</guid>
    <pubDate>Tue, 25 Jan 2011 23:07:20 GMT</pubDate>
    <description><![CDATA[<p>I have set up this blog as a place to share thoughts, ideas and things I make that aren't complete enough to put on the main site.</p>
<p>I will post about experiments and various other things like artwork or music that I make.</p>
]]></description>
  </item>
</channel>
</rss>
