<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
	<title>birslip</title>
	<link>http://www.slurm.biz/</link>
	<language>en</language>
	<description>dev &amp; co</description>
<atom:link xmlns:atom="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://www.slurm.biz/feed.php" />
	<lastBuildDate>Mon, 05 Mar 2012 11:10:00 +0100</lastBuildDate>
	<generator>PluXml</generator>
	<item>
		<title>The Unfinished Game #1</title> 
		<link>http://www.slurm.biz/index.php?article13/the-unfinished-game-1</link>
		<guid>http://www.slurm.biz/index.php?article13/the-unfinished-game-1</guid>
		<description>&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img src=&quot;http://www.slurm.biz/data/images/bababall2.png&quot; width=&quot;40%&quot; /&gt;
&lt;img src=&quot;http://www.slurm.biz/data/images/bababall1.png&quot; width=&quot;40%&quot; /&gt;
&lt;br /&gt;
&lt;img src=&quot;http://www.slurm.biz/data/images/bababall.jpg&quot; width=&quot;40%&quot; /&gt;
&lt;/div&gt;

&lt;br /&gt;
I guess this demo has everything to make a true game, yet it needs more work. This is nearly a clone a puzzle bobble... but there is something different: balls are not managed in a 2D array, but with physics.
&lt;br /&gt;
The purpose of this demo is also to test a small framework I have written for opengl es 1.1. The result is correct. I will release a more finished game soon which use this framework. So stay tuned!
&lt;br /&gt;
&lt;a href=&quot;http://www.slurm.biz/temp/bababall.zip&quot;&gt;Download the source code!&lt;/a&gt;&lt;br /&gt;</description>
		<pubDate>Mon, 05 Mar 2012 11:10:00 +0100</pubDate>
		<dc:creator>arthur</dc:creator>
	</item>
	<item>
		<title>Github Account</title> 
		<link>http://www.slurm.biz/index.php?article11/github-account</link>
		<guid>http://www.slurm.biz/index.php?article11/github-account</guid>
		<description>I opened up a &lt;a href=&quot;https://github.com/birslip&quot;&gt;github account&lt;/a&gt;. I didn&#039;t put many things, but I&#039;ll try to keep it updated with my lastest projects or experiments. Stay tuned!</description>
		<pubDate>Fri, 27 Jan 2012 13:04:00 +0100</pubDate>
		<dc:creator>arthur</dc:creator>
	</item>
	<item>
		<title>Shape Designer</title> 
		<link>http://www.slurm.biz/index.php?article9/tool-texture-atlas-maker</link>
		<guid>http://www.slurm.biz/index.php?article9/tool-texture-atlas-maker</guid>
		<description>Today I am going to show you one other tool I worked on for my physics engine. It&#039;s called ShapeDesigner, mainly because it helps to design shapes (really?!) or collision geometry for the engine. Well, I could have done it with triangulation from an image. But all geometry would have been made of triangles whereas circles save a lot of resources and increase accuracy.&lt;br /&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img src=&quot;http://www.slurm.biz/data/images/shapedesigner.png&quot; width=&quot;100%&quot; alt=&quot;shape designer&quot; /&gt;
&lt;/div&gt;
&lt;br /&gt;
So here I am with this tool. It allows to load an image, and then we can draw all basics shapes (such as circle, triangle or quad), and export it in a compliant xml format for the physics engine.&lt;br /&gt;
&lt;br /&gt;

&lt;pre class=&quot;prettyprint lang-html linenums&quot;&gt;
&amp;lt;shape name=&amp;quot;bloc_18.png&amp;quot;&amp;gt;
  &amp;lt;triangle x1=&amp;quot;0&amp;quot; y1=&amp;quot;64&amp;quot; x2=&amp;quot;0&amp;quot; y2=&amp;quot;28&amp;quot; x3=&amp;quot;55&amp;quot; y3=&amp;quot;64&amp;quot; /&amp;gt;
  &amp;lt;circle x=&amp;quot;31&amp;quot; y=&amp;quot;32&amp;quot; radius=&amp;quot;31&amp;quot; /&amp;gt;
  &amp;lt;triangle x1=&amp;quot;55&amp;quot; y1=&amp;quot;64&amp;quot; x2=&amp;quot;62&amp;quot; y2=&amp;quot;37&amp;quot; x3=&amp;quot;0&amp;quot; y3=&amp;quot;28&amp;quot; /&amp;gt;
&amp;lt;/shape&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
You can also take a look at &lt;a href=&quot;http://www.slurm.biz/temp/ShapeDesigner.zip&quot;&gt;the code&lt;/a&gt; (it was made with visual studio 2010, in C#) if you want to fork it.</description>
		<pubDate>Sun, 15 Jan 2012 11:58:00 +0100</pubDate>
		<dc:creator>arthur</dc:creator>
	</item>
	<item>
		<title>Tool - Texture atlas maker</title> 
		<link>http://www.slurm.biz/index.php?article10/tool-texture-atlas-maker</link>
		<guid>http://www.slurm.biz/index.php?article10/tool-texture-atlas-maker</guid>
		<description>I told you that I started iPhone development. After testing Unity3D and cocos2d, I decided that I will better write my own 2d engine with opengl-es. Maybe it&#039;s more extra-work, but I prefer truely understand what I am working with. Moreover I did a similar engine on Windows. But the downside was the performance, how to manage a lot of graphics on such limited hardware? (Yes, iPhone 3G, I am speaking of you.)&lt;br/&gt;
  On windows I was loading one texture for one sprite. If I had 300 images in my application I would load 300 textures. Not very efficient, but it worked on nowadays computer. Of course it couldn’t work on iPhone. Plus, on iOS we can’t load texture that have not a power-of-two size. For example a 257x300 pixel wide image would require a space of 512x512 pixels in ram. That means a lot of wasted space.&lt;br/&gt;
  One common approach is to pack all images in a big one, and then at the rendering compute the convenient UV mapping for each image. In doing that we get rid of glBindTexture and other opengl calls which can slow down the rendering.&lt;br/&gt;
&lt;br/&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img width=&quot;60%&quot; src=&quot;http://www.slurm.biz/data/images/texturespacker.png&quot; alt=&quot;texture packer&quot; /&gt;
&lt;img width=&quot;40%&quot; src=&quot;http://www.slurm.biz/data/images/atlas-example.png&quot; alt=&quot;atlas example&quot; /&gt;
&lt;/div&gt;
&lt;br/&gt;
You are going to ask me why I develop windows tool for iPhone development, the answer is simple: I like the .Net Framework and C#, and tools are made to save time!
And this tool helps for two things:
&lt;ul&gt;
&lt;li&gt;Textures packing&lt;/li&gt;

&lt;li&gt;Animations maker&lt;/li&gt;
&lt;/ul&gt;
It works for animations too because the problem is the same(a lot of different graphics, but with limited space in ram).
&lt;br/&gt;
If you are brave enough, you can try it by yourself &lt;a href=&quot;http://www.slurm.biz/temp/AnimationBuilder.zip&quot;&gt;in downloading the application here&lt;/a&gt; (it requires .Net Framework 4.0 though).</description>
		<pubDate>Wed, 21 Dec 2011 19:39:00 +0100</pubDate>
		<dc:creator>arthur</dc:creator>
	</item>
	<item>
		<title>Sqware - iPhone</title> 
		<link>http://www.slurm.biz/index.php?article8/sqware-iphone</link>
		<guid>http://www.slurm.biz/index.php?article8/sqware-iphone</guid>
		<description>Few weeks after my internship at &lt;a href=&quot;http://int13.net/&quot;&gt;int13&lt;/a&gt;, I decided that I wanted to develop on iPhone. So, the first was to get a mac with snow leopard. Not an easy task, but I did it. Then the next task was to do something for the iPhone. A game. So we team up with &lt;a href=&quot;http://www.airmind.net/&quot;&gt;Cladil&lt;/a&gt;, and we started the development of Sqware, a small arcade game with an easy to learn gameplay but a large variety of levels.&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img src=&quot;http://www.slurm.biz/temp/IMG_0756.PNG&quot; alt=&quot;sqware iphone&quot; style=&quot;width: 320; height: 480px;&quot; /&gt;
&lt;/div&gt;
&lt;br /&gt;
It helped me to learn opengl-es (1.1 and 2). And to fall in love for xcode (real time compiling!). So stay tuned for articles about opengl-es, iOS and other nice things.</description>
		<pubDate>Sun, 13 Nov 2011 21:36:00 +0100</pubDate>
		<dc:creator>arthur</dc:creator>
	</item>
	<item>
		<title>3D softbody physics</title> 
		<link>http://www.slurm.biz/index.php?article7/3d-softbody-physics</link>
		<guid>http://www.slurm.biz/index.php?article7/3d-softbody-physics</guid>
		<description>Well, I can&#039;t stop on 2D. 3D was mandatory. As you could have read in &lt;a href=&quot;http://www.slurm.biz/&quot;index.php?article3/softbody-physics&quot;&gt;this post&lt;/a&gt; I am currently very focused on physics simulation, especially softbody physics.&lt;br /&gt;

&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img src=&quot;http://www.slurm.biz/images/softbody3d1.jpg&quot; alt=&quot;blob 3d&quot; /&gt; 
&lt;img src=&quot;http://www.slurm.biz/images/softbody3d2.jpg&quot; alt=&quot;blob 3d&quot; /&gt;
&lt;/div&gt;

So the principle is the same as in 2D, but it becomes a lot more complicated in 3D (just think collision detection between 320 faces and a complete environment). I think a way to improve the speed and increase the complexity could be the use of GPU with OpenCL. But it is not the case in this demo. And it runs already smoothly at 60 fps. &lt;a href=&quot;http://www.slurm.biz/temp/softbody_demo_pc.zip&quot;&gt;Check by yourself here&lt;/a&gt;.</description>
		<pubDate>Sun, 07 Nov 2010 21:16:00 +0100</pubDate>
		<dc:creator>arthur</dc:creator>
	</item>
	<item>
		<title>Softbody Physics - Demo</title> 
		<link>http://www.slurm.biz/index.php?article3/softbody-physics</link>
		<guid>http://www.slurm.biz/index.php?article3/softbody-physics</guid>
		<description>I have always been fascinated by physics simulation - in real time. And when games are mixing physics simulation with traditional gameplay, it give often really good games! My main references are locoroco, gish, world of goo and even bridge builder, this is what I tried to make possible with my own physics engine. I made a few things with that engine, but I didn&#039;t release the source code, mainly because it&#039;s not clean enough, but you can still enjoy the demos.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Blob - Nintendo DS&lt;/b&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img src=&quot;http://slurm.biz/wip/images/blobbibox.png&quot; alt=&quot;blob&quot; /&gt;
&lt;/div&gt;
The goal of this demo was to be the closest of what we find in locoroco, but for the Nintendo DS. Unfortunately it doesn&#039;t succeed, but it&#039;s still nice to see physics simulation running on such limited hardware.
&lt;br /&gt;
&lt;a href=&quot;http://slurm.biz/wip/blobbie.zip&quot;&gt;Download the demo.&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Bridge Builder - World of Goo like - Nintendo DS&lt;/b&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img src=&quot;http://slurm.biz/wip/images/springie.png&quot; alt=&quot;blob&quot; /&gt; &lt;iframe src=&quot;http://player.vimeo.com/video/3227850?title=0&amp;amp;byline=0&amp;amp;portrait=0&quot; width=&quot;256&quot; height=&quot;192&quot; frameborder=&quot;0&quot; webkitAllowFullScreen mozallowfullscreen allowFullScreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
Well, this is an unfinished bridge-builder/world of goo like for the nintendo ds, you place points with the stylus and all the structure is moving.
&lt;br /&gt;
&lt;a href=&quot;http://slurm.biz/wip/springie.zip&quot;&gt;Download the demo.&lt;/a&gt;

&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Blob Volley - Windows&lt;/b&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img src=&quot;http://slurm.biz/wip/images/volley.jpg&quot; alt=&quot;blob&quot; /&gt;
&lt;/div&gt;
Another example of what my engine is capable of. It was a game which was targeted to be released on gp2x, but I have never finished it. But you can still enjoy the windows work in progress!
&lt;br /&gt;
&lt;a href=&quot;http://slurm.biz/temp/volllllley.zip&quot;&gt;Download the demo.&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Technical tips&lt;/b&gt;
&lt;br /&gt;
It is all about a spring/mass physics problem. I use a simple euler method for integration, it can be inacurate but the result is almost the same as a Runge-Kutta 4 method in a game. I also use a fixed timestep for the simulation, it is often more convenient if you don&#039;t think your simulation could have a drop in performance.&lt;br /&gt;
I think I can sum up a softbody physics engine by the code below. If you have any question or tips you want to share, don&#039;t hesitate to post a comment!
&lt;pre class=&quot;prettyprint lang-cpp linenums&quot;&gt;
typedef struct {
    float px, py, vx, vy, ax, ay, mass, fx, fy, last_px, last_py;
} Mass;

typedef struct {
    float d, k;
    Mass* a;
    Mass* b;
} Spring;

void mass_update(Mass *m, float dt) 
{
    float inv_mass = 1.0f / m-&gt;mass;
    m-&gt;ax = m-&gt;fx * inv_mass;
    m-&gt;ay = m-&gt;fy * inv_mass;

    m-&gt;vx += m-&gt;ax * dt;
    m-&gt;vy += m-&gt;ay * dt;

    m-&gt;last_px = m-&gt;px;
    m-&gt;last_py = m-&gt;py;

    m-&gt;px += m-&gt;vx * dt;
    m-&gt;py += m-&gt;vy * dt;

    m-&gt;fx = m-&gt;fy = 0;
}

void spring_update(Spring* s)
{
    float distance = sqrtf((s-&gt;a-&gt;px - s-&gt;b-&gt;px) * (s-&gt;a-&gt;px - s-&gt;b-&gt;px) + (s-&gt;a-&gt;py - s-&gt;b-&gt;py) * (s-&gt;a-&gt;py - s-&gt;b-&gt;py));
    float delta_distance = distance - s-&gt;d;

    if(distance &gt; EPSILON)
    {
        float inv_distance = 1.0f / distance;
        float ex = (s-&gt;a-&gt;px - s-&gt;b-&gt;px) * inv_distance;
        float ey = (s-&gt;a-&gt;py - s-&gt;b-&gt;py) * inv_distance;

        s-&gt;a-&gt;fx -= ex * s-&gt;k * delta_distance;
        s-&gt;a-&gt;fy -= ey * s-&gt;k * delta_distance;
        s-&gt;b-&gt;fx += ex * s-&gt;k * delta_distance;
        s-&gt;b-&gt;fy += ey * s-&gt;k * delta_distance;
    }
}
&lt;/pre&gt;</description>
		<pubDate>Fri, 15 Oct 2010 16:31:00 +0200</pubDate>
		<dc:creator>arthur</dc:creator>
	</item>
	<item>
		<title>dududu - a game with birds</title> 
		<link>http://www.slurm.biz/index.php?article6/dududu-a-game-with-birds</link>
		<guid>http://www.slurm.biz/index.php?article6/dududu-a-game-with-birds</guid>
		<description>&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br/&gt;
&lt;img alt=&quot;dududu&quot; src=&quot;http://www.slurm.biz/data/images/dudududududu.png&quot;/&gt; 
&lt;iframe src=&quot;http://player.vimeo.com/video/6345019?title=0&amp;amp;byline=0&amp;amp;portrait=0&quot; width=&quot;256&quot; height=&quot;384&quot; frameborder=&quot;0&quot; webkitAllowFullScreen mozallowfullscreen allowFullScreen&gt;&lt;/iframe&gt;&lt;p&gt;
&lt;/div&gt;
&lt;br /&gt;
Hmm... Another unfinished game! But in this one I made everything: code and graphics. The story and the theme is quite inconsistent but it&#039;s fun. We shoot on birds with a plane, is it a problem?!&lt;br /&gt;
When I started this game the nintendo homebrew scene was slowing down, so as my interest in this gaming platform. So I decided to make this game work in browser. At this time, WebGL wasn&#039;t really working, so &lt;a href=&quot;http://slurm.biz/temp/dududu-online/&quot;&gt;I developed it in Flash&lt;/a&gt;. You can also get more information about the game &lt;a href=&quot;http://www.dev-fr.org/index.php?topic=4393.0&quot;&gt;in this forum thread&lt;/a&gt; (in french).</description>
		<pubDate>Sun, 13 Sep 2009 20:29:00 +0200</pubDate>
		<dc:creator>arthur</dc:creator>
	</item>
</channel>
</rss>