<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>engines | Learn C Games Programming Blog</title>
	<atom:link href="https://learncgames.com/category/engines/feed/" rel="self" type="application/rss+xml" />
	<link>https://learncgames.com</link>
	<description>A blog about C, programming games and my ebook(s).</description>
	<lastBuildDate>Wed, 20 Jan 2021 20:50:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://learncgames.com/wp-content/uploads/2020/03/cropped-favicon-32x32.png</url>
	<title>engines | Learn C Games Programming Blog</title>
	<link>https://learncgames.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">181446779</site>	<item>
		<title>So someone wanted to know how to go about creating a dating sim</title>
		<link>https://learncgames.com/so-someone-wanted-to-know-how-to-go-about-creating-a-dating-sim/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=so-someone-wanted-to-know-how-to-go-about-creating-a-dating-sim</link>
		
		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Fri, 22 Jan 2021 00:00:33 +0000</pubDate>
				<category><![CDATA[design]]></category>
		<category><![CDATA[engines]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[question]]></category>
		<category><![CDATA[ren'py]]></category>
		<guid isPermaLink="false">https://learncgames.com/?p=2474</guid>

					<description><![CDATA[<p>This was a question in the reddit gamedev subreddit. Here&#8217;s my answer. &#8220;Think about how you might make it work as a roleplaying game. You&#8217;d have a set of characteristics- age, cuteness, physical attraction, charisma, boldness etc. Have your characters roll 3 6 sided dice to get these. Then you can work out an easy [&#8230;]</p>
The post <a href="https://learncgames.com/so-someone-wanted-to-know-how-to-go-about-creating-a-dating-sim/">So someone wanted to know how to go about creating a dating sim</a> first appeared on <a href="https://learncgames.com">Learn C Games Programming Blog</a>.]]></description>
										<content:encoded><![CDATA[<div class='__iawmlf-post-loop-links' style='display:none;' data-iawmlf-post-links='[{&quot;id&quot;:237,&quot;href&quot;:&quot;https:\/\/www.reddit.com\/r\/gamedev\/comments\/l0ze6o\/im_wondering_how_to_make_a_dating_sim&quot;,&quot;archived_href&quot;:&quot;&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:238,&quot;href&quot;:&quot;https:\/\/www.renpy.org&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20260206025729\/https:\/\/www.renpy.org\/&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 13:02:12&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-11 03:29:39&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-14 20:11:05&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-20 15:23:21&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-23 23:08:54&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-27 10:54:03&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-02 22:22:16&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-05 23:20:20&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-10 21:20:11&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-14 16:16:30&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-17 20:31:23&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-22 23:44:55&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-27 19:29:40&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-01 02:50:52&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-05 15:22:40&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-09 08:16:54&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-13 08:22:03&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-04-17 02:08:19&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-20 08:26:51&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-23 10:07:43&quot;,&quot;http_code&quot;:200}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-23 10:07:43&quot;,&quot;http_code&quot;:200},&quot;process&quot;:&quot;done&quot;}]'></div>
<p><img fetchpriority="high" decoding="async" class="alignleft size-medium wp-image-2475" src="https://learncgames.com/wp-content/uploads/2021/01/Wikipe-tan_visual_novel_RenPy-300x225.png" alt="Wikipedia Ren'Py image" width="300" height="225" srcset="https://learncgames.com/wp-content/uploads/2021/01/Wikipe-tan_visual_novel_RenPy-300x225.png 300w, https://learncgames.com/wp-content/uploads/2021/01/Wikipe-tan_visual_novel_RenPy.png 640w" sizes="(max-width: 300px) 100vw, 300px" />This was a question in the reddit <a title="Link to question in reddit gamedev subreddit" href="https://www.reddit.com/r/gamedev/comments/l0ze6o/im_wondering_how_to_make_a_dating_sim/" target="_blank" rel="nofollow noopener">gamedev subreddit</a>.</p>
<p class="_1qeIAgB0cPwnLhDF9XSiJM">Here&#8217;s my answer. <em>&#8220;Think about how you might make it work as a roleplaying game. You&#8217;d have a set of characteristics- age, cuteness, physical attraction, charisma, boldness etc. Have your characters roll 3 6 sided dice to get these. Then you can work out an easy scoring system by comparing similar characteristics.</em></p>
<p class="_1qeIAgB0cPwnLhDF9XSiJM"><em>So once you have a basic matching algorithm, your game has to let the player find potential dates. In the gym, supermarket, dating site, college etc. Perhaps you get an initial idea about someone you meet and then you get multiple dialogs where you try and figure out how to ask them out. Choose the wrong phrase (e.g. &#8220;Do you spit or swallow?&#8221; ) and you won&#8217;t see them for dust. Maybe if the person you are asking out has a large personality they&#8217;ll laugh at your humour and say yes.</em></p>
<p class="_1qeIAgB0cPwnLhDF9XSiJM"><em>Then you have to decide what wins the game. Getting to first base, 2nd, breakfast? Or you get a low score when they tell you they&#8217;ve decided to become a nun because of you&#8230;</em></p>
<p class="_1qeIAgB0cPwnLhDF9XSiJM"><em>How you implement it is entirely up to you? Things like renpy, or maybe you&#8217;ll do the whole thing. For the possible target market I think you might have to make it graphical. Perhaps a comic-book type approach? That way you don&#8217;t need too many drawn backgrounds.&#8221;</em></p>
<p class="_1qeIAgB0cPwnLhDF9XSiJM">This is the kind of thing you might use Renpy for. What is Ren&#8217;py? <a title="Link to Ren'py" href="https://www.renpy.org/" target="_blank" rel="nofollow noopener">Ren&#8217;Py</a> is a visual novel engine used by thousands of creators around the world that helps you use words, images, and sounds to tell interactive stories on computers and mobile devices. These can be both visual novels and life simulation games.</p>
<p>I got the screenshot from Wikipedia. Talk about breaking the fourth wall! And yes Ren&#8217;py has an irritating apostrophe in the middle!</p>The post <a href="https://learncgames.com/so-someone-wanted-to-know-how-to-go-about-creating-a-dating-sim/">So someone wanted to know how to go about creating a dating sim</a> first appeared on <a href="https://learncgames.com">Learn C Games Programming Blog</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2474</post-id>	</item>
		<item>
		<title>Tilengine &#8211; for creating Retro games</title>
		<link>https://learncgames.com/tilengine-for-creating-retro-games/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tilengine-for-creating-retro-games</link>
		
		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Wed, 16 Dec 2020 00:00:12 +0000</pubDate>
				<category><![CDATA[engines]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Retro]]></category>
		<category><![CDATA[tiles]]></category>
		<category><![CDATA[toolkit]]></category>
		<guid isPermaLink="false">https://learncgames.com/?p=2077</guid>

					<description><![CDATA[<p>Tilengine is an open source, cross-platform 2D graphics engine in C for creating classic/retro games with tile maps, sprites and palettes. It&#8217;s intended use is for developing 2D games of old. Written in C99, it can be used on Windows (32/64), Linux PC(32/64), Mac OS X and Raspberry Pi. Internally it uses some SDL2 libraries. [&#8230;]</p>
The post <a href="https://learncgames.com/tilengine-for-creating-retro-games/">Tilengine – for creating Retro games</a> first appeared on <a href="https://learncgames.com">Learn C Games Programming Blog</a>.]]></description>
										<content:encoded><![CDATA[<div class='__iawmlf-post-loop-links' style='display:none;' data-iawmlf-post-links='[{&quot;id&quot;:320,&quot;href&quot;:&quot;https:\/\/github.com\/megamarc\/Tilengine&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20250929182132\/https:\/\/github.com\/megamarc\/Tilengine&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 14:00:03&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-12 05:10:22&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-16 15:23:56&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-20 23:37:58&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-24 05:28:46&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-27 11:05:32&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-03 04:40:03&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-12 15:42:07&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-17 11:18:50&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-21 16:13:24&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-26 20:35:29&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-30 14:17:30&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-03 01:49:30&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-06 11:54:33&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-09 19:43:16&quot;,&quot;http_code&quot;:404},{&quot;date&quot;:&quot;2026-04-13 03:32:47&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-16 07:43:03&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-20 03:16:32&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-23 11:09:41&quot;,&quot;http_code&quot;:206}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-23 11:09:41&quot;,&quot;http_code&quot;:206},&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:321,&quot;href&quot;:&quot;http:\/\/www.tilengine.org\/doc\/md_sprites.html&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20250806025807\/https:\/\/www.tilengine.org\/doc\/md_sprites.html&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 14:00:07&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-12 05:10:25&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-17 06:26:16&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-20 23:37:59&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-24 05:28:47&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-27 11:05:35&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-03 04:40:04&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-12 01:10:24&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-17 11:18:50&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-24 04:29:27&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-27 08:38:54&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-30 14:17:32&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-03 01:49:31&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-06 11:54:32&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-09 19:43:18&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-13 03:32:49&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-16 07:43:06&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-04-19 19:17:23&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-23 03:09:49&quot;,&quot;http_code&quot;:206}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-23 03:09:49&quot;,&quot;http_code&quot;:206},&quot;process&quot;:&quot;done&quot;}]'></div>
<p><a title="Link to Tileengine on GitHub" href="https://github.com/megamarc/Tilengine" target="_blank" rel="nofollow noopener"><img decoding="async" class="alignleft size-medium wp-image-2078" src="https://learncgames.com/wp-content/uploads/2020/12/tileengine-300x180.png" alt="Tileengine" width="300" height="180" srcset="https://learncgames.com/wp-content/uploads/2020/12/tileengine-300x180.png 300w, https://learncgames.com/wp-content/uploads/2020/12/tileengine.png 400w" sizes="(max-width: 300px) 100vw, 300px" />Tilengine</a> is an open source, cross-platform 2D graphics engine in C for creating classic/retro games with tile maps, sprites and palettes. It&#8217;s intended use is for developing 2D games of old.</p>
<p>Written in C99, it can be used on Windows (32/64), Linux PC(32/64), Mac OS X and Raspberry Pi. Internally it uses some SDL2 libraries. There are bindings for other programming languages as well as native support for C/C++.</p>
<p>You&#8217;d use this for parallax effects using sprites over background layers. It makes it easier than coding yourself. In particular <a title="Link to tilengine sprites documentation on GitHub" href="http://www.tilengine.org/doc/md_sprites.html" target="_blank" rel="nofollow noopener">sprite animation</a> is excellent with pixel perfect collision detection and 17 different functions for manipulating them. Rather than roll my own in my Asteroids game I could have used this.</p>
<p>The other documentation is a little spare with placeholders, but I imagine you can work it out from the header files and samples.</p>The post <a href="https://learncgames.com/tilengine-for-creating-retro-games/">Tilengine – for creating Retro games</a> first appeared on <a href="https://learncgames.com">Learn C Games Programming Blog</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2077</post-id>	</item>
		<item>
		<title>A list of open source physics engines</title>
		<link>https://learncgames.com/a-list-of-open-source-physics-engines/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=a-list-of-open-source-physics-engines</link>
		
		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Tue, 13 Oct 2020 23:00:44 +0000</pubDate>
				<category><![CDATA[C]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[engines]]></category>
		<category><![CDATA[physics engines]]></category>
		<guid isPermaLink="false">https://learncgames.com/?p=1597</guid>

					<description><![CDATA[<p>It&#8217;s not uncommon to have 2D games (and 3D) incorporate a physics engine. So when objects move and hit each other they behave realistically. The code that deals with &#8220;physical&#8221; interaction, objects bouncing or rolling off other objects is usually all parcelled up in a game physics engine. Doing that means the programmer doesn&#8217;t have [&#8230;]</p>
The post <a href="https://learncgames.com/a-list-of-open-source-physics-engines/">A list of open source physics engines</a> first appeared on <a href="https://learncgames.com">Learn C Games Programming Blog</a>.]]></description>
										<content:encoded><![CDATA[<div class='__iawmlf-post-loop-links' style='display:none;' data-iawmlf-post-links='[{&quot;id&quot;:453,&quot;href&quot;:&quot;https:\/\/www.tapirgames.com\/blog\/open-source-physics-engines&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20250803164846\/https:\/\/www.tapirgames.com\/blog\/open-source-physics-engines&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 15:03:49&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-12 08:20:33&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-15 12:21:09&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-18 15:54:39&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-22 07:12:21&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-25 22:44:51&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-01 21:45:09&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-05 02:23:26&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-08 10:31:59&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-12 01:10:23&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-15 20:42:54&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-19 01:14:58&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-26 11:23:21&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-30 14:17:30&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-03 16:41:43&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-07 01:23:04&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-10 09:18:52&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-13 12:08:10&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-17 15:03:37&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-21 21:15:59&quot;,&quot;http_code&quot;:200}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-21 21:15:59&quot;,&quot;http_code&quot;:200},&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:454,&quot;href&quot;:&quot;https:\/\/chipmunk-physics.net&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20260124142401\/https:\/\/chipmunk-physics.net\/&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 15:03:57&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-12 08:20:33&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-15 12:21:11&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-18 15:54:40&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-22 07:12:21&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-25 22:44:51&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-01 21:45:08&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-05 02:23:27&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-08 10:32:00&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-12 01:10:24&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-15 20:42:52&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-19 01:14:57&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-26 11:23:21&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-30 14:17:31&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-03 16:41:42&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-07 01:23:04&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-10 09:18:52&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-13 12:08:09&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-17 15:03:38&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-21 21:15:58&quot;,&quot;http_code&quot;:206}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-21 21:15:58&quot;,&quot;http_code&quot;:206},&quot;process&quot;:&quot;done&quot;}]'></div>
<p><img decoding="async" class="alignleft size-medium wp-image-1598" src="https://learncgames.com/wp-content/uploads/2020/10/chipmunkColorMatch-300x249.png" alt="Chipmunk Color match" width="300" height="249" srcset="https://learncgames.com/wp-content/uploads/2020/10/chipmunkColorMatch-300x249.png 300w, https://learncgames.com/wp-content/uploads/2020/10/chipmunkColorMatch.png 626w" sizes="(max-width: 300px) 100vw, 300px" />It&#8217;s not uncommon to have 2D games (and 3D) incorporate a physics engine. So when objects move and hit each other they behave realistically. The code that deals with &#8220;physical&#8221; interaction, objects bouncing or rolling off other objects is usually all parcelled up in a game physics engine.</p>
<p>Doing that means the programmer doesn&#8217;t have to worry about objects interacting. Your character moves into a room and knocks a vase; the vase falls over and breaks. Imagine how complex it would be if you had to program all the interactions. Instead, all objects in the room are predefined. As objects move and hit other objects they behave according to the predetermined rules. Balls drop to the floor and bounce. Breakable objects break.</p>
<p>An indie game studio called Tapir Games has put together a <a title="Link to List of open source physics game engines" href="https://www.tapirgames.com/blog/open-source-physics-engines" target="_blank" rel="noopener noreferrer">pretty comprehensive list</a> of open source game physics engines. There&#8217;s even a couple in C though many are programmed in C++, C# and so on.</p>
<p>The picture comes from Chipmunk color match, one of the games using the (C library) <a title="Link to chipmunk physics library" href="https://chipmunk-physics.net/" target="_blank" rel="noopener noreferrer">Chipmunk physics library</a>.</p>The post <a href="https://learncgames.com/a-list-of-open-source-physics-engines/">A list of open source physics engines</a> first appeared on <a href="https://learncgames.com">Learn C Games Programming Blog</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1597</post-id>	</item>
	</channel>
</rss>
