<?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>project | Learn C Games Programming Blog</title>
	<atom:link href="https://learncgames.com/tag/project/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>Tue, 27 Oct 2020 17:14:49 +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>project | 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>How to implement a Roguelike</title>
		<link>https://learncgames.com/how-to-implement-a-roguelike/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-implement-a-roguelike</link>
		
		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Fri, 30 Oct 2020 00:00:05 +0000</pubDate>
				<category><![CDATA[C]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[Ideas]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[roguelike]]></category>
		<guid isPermaLink="false">https://learncgames.com/?p=1688</guid>

					<description><![CDATA[<p>A roguelike is a character based fantasy game. By character I mean @^! not an individual as such! A question on the C SubReddit had asked about Project ideas for simple applications and someone had suggested a Roguelike. It&#8217;s not a bad idea but probably quite a bit more than just a simple project. So [&#8230;]</p>
The post <a href="https://learncgames.com/how-to-implement-a-roguelike/">How to implement a Roguelike</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;:420,&quot;href&quot;:&quot;https:\/\/www.reddit.com\/r\/C_Programming\/comments\/jiz4mm\/simple_project_ideas_using_c&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20250325141214\/https:\/\/www.reddit.com\/r\/C_Programming\/comments\/jiz4mm\/simple_project_ideas_using_c\/&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 14:52:59&quot;,&quot;http_code&quot;:404},{&quot;date&quot;:&quot;2026-02-10 12:19:35&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-13 14:28:19&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-17 08:55:01&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-21 21:05:49&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-27 09:18:30&quot;,&quot;http_code&quot;:404},{&quot;date&quot;:&quot;2026-03-03 02:06:08&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-07 02:14:28&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-14 13:08:51&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-18 17:18:02&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-23 23:28:25&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-27 20:43:58&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-03 01:28:27&quot;,&quot;http_code&quot;:404},{&quot;date&quot;:&quot;2026-04-06 13:40:32&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-12 07:29:24&quot;,&quot;http_code&quot;:404},{&quot;date&quot;:&quot;2026-04-17 21:59:39&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-21 17:49:12&quot;,&quot;http_code&quot;:206}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-21 17:49:12&quot;,&quot;http_code&quot;:206},&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:421,&quot;href&quot;:&quot;https:\/\/kenney.nl\/assets\/micro-roguelike&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20260107140620\/https:\/\/kenney.nl\/assets\/micro-roguelike&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 14:53:02&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-10 12:19:36&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-13 14:28:46&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-17 09:36:05&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-21 21:05:51&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-03 02:06:06&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-07 02:15:05&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-14 13:08:52&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-18 17:18:02&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-26 10:43:01&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-30 07:05:55&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-03 01:28:28&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-06 14:03:15&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-12 07:29:27&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-17 18:22:20&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-21 17:49:13&quot;,&quot;http_code&quot;:200}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-21 17:49:13&quot;,&quot;http_code&quot;:200},&quot;process&quot;:&quot;done&quot;}]'></div>
<figure id="attachment_1689" aria-describedby="caption-attachment-1689" style="width: 300px" class="wp-caption alignleft"><img fetchpriority="high" decoding="async" class="size-medium wp-image-1689" src="https://learncgames.com/wp-content/uploads/2020/10/roguelike-300x181.png" alt="Roguelike dungeon" width="300" height="181" srcset="https://learncgames.com/wp-content/uploads/2020/10/roguelike-300x181.png 300w, https://learncgames.com/wp-content/uploads/2020/10/roguelike.png 587w" sizes="(max-width: 300px) 100vw, 300px" /><figcaption id="caption-attachment-1689" class="wp-caption-text">From Wikimedia</figcaption></figure>
<p>A roguelike is a character based fantasy game. By character I mean @^! not an individual as such! <a title="Link to Question on C Subreddit" href="https://www.reddit.com/r/C_Programming/comments/jiz4mm/simple_project_ideas_using_c/" target="_blank" rel="nofollow noopener noreferrer">A question on the C SubReddit</a> had asked about Project ideas for simple applications and someone had suggested a Roguelike. It&#8217;s not a bad idea but probably quite a bit more than just a simple project.</p>
<p>So I suggested breaking it down into stages. Here&#8217;s what I said.</p>
<p class="_1qeIAgB0cPwnLhDF9XSiJM">Rather than a roguelike in one go (<em>that&#8217;s a actually quite a bit of code</em>) so do it in these stages.</p>
<ol class="_1eJr7K139jnMstd4HajqYP">
<li class="_3gqTEjt4x9UIIpWiro7YXz">
<p class="_1qeIAgB0cPwnLhDF9XSiJM">A Dungeon level generator. Create rooms and link them by corridors.</p>
</li>
<li class="_3gqTEjt4x9UIIpWiro7YXz">
<p class="_1qeIAgB0cPwnLhDF9XSiJM">Generate a bunch of levels &#8211; link them via randomly stairs, pits, transporters.</p>
</li>
<li class="_3gqTEjt4x9UIIpWiro7YXz">
<p class="_1qeIAgB0cPwnLhDF9XSiJM">Add random monsters and treasures in rooms.</p>
</li>
<li class="_3gqTEjt4x9UIIpWiro7YXz">
<p class="_1qeIAgB0cPwnLhDF9XSiJM">Implement a moving player able to navigate through the levels.</p>
</li>
<li class="_3gqTEjt4x9UIIpWiro7YXz">
<p class="_1qeIAgB0cPwnLhDF9XSiJM">Add combat. Weapons, range weapons, spell casting. Add monster hit points.</p>
</li>
<li class="_3gqTEjt4x9UIIpWiro7YXz">
<p class="_1qeIAgB0cPwnLhDF9XSiJM">Turn it into a polished game. Add everything else needed. Permadeath, collecting treasures. Moving monsters.</p>
</li>
<li class="_3gqTEjt4x9UIIpWiro7YXz">
<p class="_1qeIAgB0cPwnLhDF9XSiJM">(Optional) Make it multiplayer and allow PvP.</p>
</li>
</ol>
<p>PvP means allow Player v Player combat. Doing it multiplayer is actually quite a lot of work which is why I made it an option. Rogues are often created using simple ASCII chars for monsters and treasures. Some programmers have used graphics and there are plenty of free graphics sets for 8 x 8 or 16 x 16 pixel sized monsters etc. like the <a title="Link to Kenney.nl microrogue free graphics" href="https://kenney.nl/assets/micro-roguelike" target="_blank" rel="noopener noreferrer">Kenney.nl microrogue</a> set. Shown in action below.</p>
<p><img decoding="async" class="alignleft size-medium wp-image-1690" src="https://learncgames.com/wp-content/uploads/2020/10/kenney-micro-rogue-300x168.png" alt="Kenney.nl micro rogue set in action" width="300" height="168" srcset="https://learncgames.com/wp-content/uploads/2020/10/kenney-micro-rogue-300x168.png 300w, https://learncgames.com/wp-content/uploads/2020/10/kenney-micro-rogue-768x431.png 768w, https://learncgames.com/wp-content/uploads/2020/10/kenney-micro-rogue.png 918w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<p>I am tempted to make this the 3rd game idea for the Raspi game book. 30 years ago I created a multiplayer postal game Quest that is still running albeit on the web not by post. That included a dungeon generator. It wasn&#8217;t in C but it&#8217;s easy enough to translate Turbo Pascal to C.</p>The post <a href="https://learncgames.com/how-to-implement-a-roguelike/">How to implement a Roguelike</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">1688</post-id>	</item>
	</channel>
</rss>
