<?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>Ebook | Learn C Games Programming Blog</title>
	<atom:link href="https://learncgames.com/category/ebook/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>Thu, 22 May 2025 09:54:34 +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>Ebook | 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>Chapter list for my recent eBook</title>
		<link>https://learncgames.com/chapter-list-for-my-recent-ebook/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=chapter-list-for-my-recent-ebook</link>
		
		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Thu, 22 May 2025 08:41:50 +0000</pubDate>
				<category><![CDATA[Ebook]]></category>
		<category><![CDATA[chapter list]]></category>
		<guid isPermaLink="false">https://learncgames.com/?p=3397</guid>

					<description><![CDATA[<p>The files on GitHub have been revised and now include all image and sound files and tasks.json updated for clang-14. Note because GitHub doesn&#8217;t allow hidden files/folders like .vscode to be uploaded, I&#8217;ve included the .vscode folders as vscode and you need to rename them. Chapter 1. Introduction to C programming Chapter 2. Setting up [&#8230;]</p>
The post <a href="https://learncgames.com/chapter-list-for-my-recent-ebook/">Chapter list for my recent eBook</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;:14,&quot;href&quot;:&quot;https:\/\/github.com\/David-H-Bolton\/LearnCOnLinux&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20250213114627\/https:\/\/github.com\/David-H-Bolton\/LearnCOnLinux&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 10:35:12&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-09 16:40:14&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-12 18:24:15&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-15 22:16:31&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-18 22:19:30&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-21 22:22:05&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-25 04:17:24&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-28 04:17:49&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-03 04:22:25&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-06 04:38:10&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-09 08:48:04&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-12 09:17:10&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-15 10:18:26&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-18 12:43:49&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-21 15:14:39&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-24 15:19:12&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-27 16:38:15&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-30 19:05:39&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-02 19:29:41&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-05 21:51:33&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-08 22:18:13&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-11 22:18:38&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-14 22:20:58&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-18 07:27:41&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-21 10:16:46&quot;,&quot;http_code&quot;:206}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-21 10:16:46&quot;,&quot;http_code&quot;:206},&quot;process&quot;:&quot;done&quot;}]'></div>
<figure id="attachment_3400" aria-describedby="caption-attachment-3400" style="width: 292px" class="wp-caption alignleft"><img fetchpriority="high" decoding="async" class="size-full wp-image-3400" src="https://learncgames.com/wp-content/uploads/2025/05/ebook2cover.png" alt="" width="292" height="441" srcset="https://learncgames.com/wp-content/uploads/2025/05/ebook2cover.png 292w, https://learncgames.com/wp-content/uploads/2025/05/ebook2cover-199x300.png 199w" sizes="(max-width: 292px) 100vw, 292px" /><figcaption id="caption-attachment-3400" class="wp-caption-text">Book cover for learn C games programming</figcaption></figure>
<p>The <a title="Link to eBook files on GitHub" href="https://github.com/David-H-Bolton/LearnCOnLinux" target="_blank" rel="noopener">files on GitHub</a> have been revised and now include all image and sound files and tasks.json updated for clang-14. Note because GitHub doesn&#8217;t allow hidden files/folders like .vscode to be uploaded, I&#8217;ve included the .vscode folders as vscode and you need to rename them.</p>
<p>Chapter 1. Introduction to C programming<br />
Chapter 2. Setting up a development environment<br />
Chapter 3. Writing your first C program<br />
Chapter 4. Working with Variables and Data Types<br />
Chapter 5. So what is a pointer?<br />
Chapter 6. A little Bit of C code<br />
Chapter 7. A Quick Overview of Visual Studio<br />
Chapter 8. Array variables<br />
Chapter 9. Loop the loops<br />
Chapter 10. More loops</p>
<p>Chapter 11. About operators<br />
Chapter 12. Structs<br />
Chapter 13. Functions<br />
Chapter 14. More about functions<br />
Chapter 15. Pointers<br />
Chapter 16. Text Strings<br />
Chapter 17. The Asteroids Game<br />
Chapter 18. Architecture of C Programs<br />
Chapter 19. Graphics<br />
Chapter 20. An SDL Demo program</p>
<p>Chapter 21. The Game Loop<br />
Chapter 22. Drawing Text<br />
Chapter 23. More Game Elements<br />
Chapter 24. Adding in asteroids<br />
Chapter 25. Adding in bullets<br />
Chapter 26. Editing with Visual Studio Code<br />
Chapter 27. Restructuring<br />
Chapter 28. Show the Score<br />
Chapter 29. Explosions<br />
Chapter 30. Sounds</p>
<p>Chapter 31. Detecting Collisions Part 1<br />
Chapter 32. Detecting Collisions Part 2<br />
Chapter 33. Detecting Collisions Part 3<br />
Chapter 34. Passing Parameters into functions<br />
Chapter 35. Detecting Collisions Part 4<br />
Chapter 36. Ever Wondered about if (!value)<br />
Chapter 37. Adding Level Structure<br />
Chapter 38. Alien Ships!<br />
Chapter 39. The High Score<br />
Chapter 40. Finishing off</p>The post <a href="https://learncgames.com/chapter-list-for-my-recent-ebook/">Chapter list for my recent eBook</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">3397</post-id>	</item>
		<item>
		<title>eBook 2 now published on Amazon</title>
		<link>https://learncgames.com/ebook-2-now-publisjed-on-amazon/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ebook-2-now-publisjed-on-amazon</link>
					<comments>https://learncgames.com/ebook-2-now-publisjed-on-amazon/#comments</comments>
		
		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Mon, 19 May 2025 09:08:06 +0000</pubDate>
				<category><![CDATA[Ebook]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[raspberry-pi]]></category>
		<category><![CDATA[ebook]]></category>
		<guid isPermaLink="false">https://learncgames.com/?p=3388</guid>

					<description><![CDATA[<p>This is the Linux and Raspberry Pi version of the first book which uses VS Code.  All code updated plus screenshots mostly from Raspberry Pis and a new book cover!</p>
The post <a href="https://learncgames.com/ebook-2-now-publisjed-on-amazon/">eBook 2 now published on Amazon</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;:16,&quot;href&quot;:&quot;https:\/\/amzn.eu\/d\/87tHW3A&quot;,&quot;archived_href&quot;:&quot;&quot;,&quot;redirect_href&quot;:&quot;https:\/\/www.amazon.co.uk\/dp\/B0F92TGVD1?ref=cm_sw_r_ffobk_cp_ud_dp_SGCWV17P59HBXDKZEMDQ&amp;ref_=cm_sw_r_ffobk_cp_ud_dp_SGCWV17P59HBXDKZEMDQ&amp;social_share=cm_sw_r_ffobk_cp_ud_dp_SGCWV17P59HBXDKZEMDQ&amp;bestFormat=true&amp;previewDoh=1&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;}]'></div>
<p><img decoding="async" class="alignleft size-full wp-image-3389" src="https://learncgames.com/wp-content/uploads/2025/05/learnc-games-programming-Linux.png" alt="Learn C Games programming " width="1140" height="464" srcset="https://learncgames.com/wp-content/uploads/2025/05/learnc-games-programming-Linux.png 1140w, https://learncgames.com/wp-content/uploads/2025/05/learnc-games-programming-Linux-300x122.png 300w, https://learncgames.com/wp-content/uploads/2025/05/learnc-games-programming-Linux-1024x417.png 1024w, https://learncgames.com/wp-content/uploads/2025/05/learnc-games-programming-Linux-768x313.png 768w" sizes="(max-width: 1140px) 100vw, 1140px" />This is the <a title="Link to ebook on Amazon" href="https://amzn.eu/d/87tHW3A" target="_blank" rel="noopener">Linux and Raspberry Pi version</a> of the first book which uses VS Code.  All code updated plus screenshots mostly from Raspberry Pis and a new book cover!</p>The post <a href="https://learncgames.com/ebook-2-now-publisjed-on-amazon/">eBook 2 now published on Amazon</a> first appeared on <a href="https://learncgames.com">Learn C Games Programming Blog</a>.]]></content:encoded>
					
					<wfw:commentRss>https://learncgames.com/ebook-2-now-publisjed-on-amazon/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3388</post-id>	</item>
		<item>
		<title>Raspberry Pi Sound issues- trying to fix it</title>
		<link>https://learncgames.com/raspberry-pi-sound-issues-trying-to-fix-it/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=raspberry-pi-sound-issues-trying-to-fix-it</link>
		
		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Mon, 19 Dec 2022 00:00:02 +0000</pubDate>
				<category><![CDATA[bugs]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Ebook]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[raspberry-pi]]></category>
		<category><![CDATA[sound]]></category>
		<guid isPermaLink="false">https://learncgames.com/?p=3145</guid>

					<description><![CDATA[<p>In working through my Linux/Raspberry Pi eBook(Yes &#8211; the second eBook!), I&#8217;m up to the chapter where sounds are introduced using the SDL_mixer library. And I&#8217;ve hit two sets of problems. It sometimes refuses to initialize the sound code.  This code below hits the LogError line: int success=Mix_OpenAudio(22050, AUDIO_S16LSB, 2, 8192); if (success==-1 ) { [&#8230;]</p>
The post <a href="https://learncgames.com/raspberry-pi-sound-issues-trying-to-fix-it/">Raspberry Pi Sound issues- trying to fix it</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;:38,&quot;href&quot;:&quot;https:\/\/pixabay.com\/users\/openclipart-vectors-30363\/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=158394&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20251230124419\/https:\/\/pixabay.com\/users\/openclipart-vectors-30363\/?utm_source=link-attribution&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 11:14:50&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-02-11 00:49:37&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-02-15 09:57:58&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-02-22 03:49:13&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-02-27 11:03:50&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-04 08:58:03&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-10 04:10:04&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-14 23:28:01&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-23 04:24:55&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-26 18:05:22&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-04 12:46:30&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-09 07:36:36&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-12 11:45:04&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-20 08:36:45&quot;,&quot;http_code&quot;:403}],&quot;broken&quot;:true,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-20 08:36:45&quot;,&quot;http_code&quot;:403},&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:39,&quot;href&quot;:&quot;https:\/\/pixabay.com\/\/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=158394&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20260205102120\/https:\/\/pixabay.com\/?utm_source=link-attribution&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 11:14:54&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-02-11 00:49:37&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-02-15 09:57:57&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-02-22 03:49:12&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-02-27 11:03:50&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-04 08:58:03&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-10 04:10:04&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-14 23:28:01&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-23 04:24:56&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-26 18:05:20&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-04 12:46:30&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-09 07:36:39&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-12 11:45:04&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-19 12:07:41&quot;,&quot;http_code&quot;:403}],&quot;broken&quot;:true,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-19 12:07:41&quot;,&quot;http_code&quot;:403},&quot;process&quot;:&quot;done&quot;}]'></div>
<figure id="attachment_3146" aria-describedby="caption-attachment-3146" style="width: 295px" class="wp-caption alignleft"><img decoding="async" class="size-medium wp-image-3146" src="https://learncgames.com/wp-content/uploads/2022/12/loudspeaker-295x300.png" alt="Loudpeaker" width="295" height="300" srcset="https://learncgames.com/wp-content/uploads/2022/12/loudspeaker-295x300.png 295w, https://learncgames.com/wp-content/uploads/2022/12/loudspeaker.png 630w" sizes="(max-width: 295px) 100vw, 295px" /><figcaption id="caption-attachment-3146" class="wp-caption-text">Image by <a href="https://pixabay.com/users/openclipart-vectors-30363/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=158394">OpenClipart-Vectors</a> from <a href="https://pixabay.com//?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=158394">Pixabay</a></figcaption></figure>
<p>In working through my Linux/Raspberry Pi eBook(<em>Yes &#8211; the second eBook!)</em>, I&#8217;m up to the chapter where sounds are introduced using the SDL_mixer library. And I&#8217;ve hit two sets of problems.</p>
<p>It sometimes refuses to initialize the sound code.  This code below hits the LogError line:</p>
<pre><code class="language-c" data-line=""></code></pre>
<pre><code class="language-c" data-line="">	int success=Mix_OpenAudio(22050, AUDIO_S16LSB, 2, 8192);
	if (success==-1 ) {
		LogError(&quot;InitSetup failed to init audio&quot;);
	}</code></pre>
<pre><code class="language-c" data-line=""></code></pre>
<p>The other day it was working but not today. Now I have updated the Pi&#8217;s code (<em>sudo apt update</em> <em>etc</em>) but I wouldn&#8217;t have expected that to break it. I&#8217;ve been looking on the internet and find the whole thing a bit complicated.</p>
<p>I&#8217;ve got my Pi running 64-bit Raspberry Pi OS. I&#8217;ve changed the output device to headphones which plug into the headphone socket. If I run the VLC media player and tell it to play into the headphones, it will happily play the .wav files I&#8217;ve got for the asteroids game.</p>
<p>But if I run <strong>speaker-test</strong>, a terminal application with this command line</p>
<pre>speaker-test -c2 -twav -l7 plughw:1,0</pre>
<p>I get</p>
<pre>speaker-test 1.2.4

Playback device is default
Stream parameters are 48000Hz, S16_LE, 2 channels
WAV file(s)
Setting of hwparams failed: Invalid argument</pre>
<p>By running this command:</p>
<pre><code class="language-c" data-line="">aplay -L
</code></pre>
<p>I got 71 lines of output but of these these below are the most important</p>
<pre>output
<strong>hw</strong>:CARD=<strong>Headphones</strong>,DEV=0
    bcm2835 Headphones, bcm2835 Headphones
</pre>
<p>and the speaker-test command using the device parameter &#8211;<strong>Dhw:Headphones</strong> now worked. I&#8217;ve highlighted the bits in the aplay output needed to identify the device.</p>
<p>The new command  is</p>
<pre>speaker-test -c2 -twav -l7 -Dhw:Headphones</pre>
<p>I can now hear a female voice saying <strong>front left</strong> then <strong>front right</strong> a few times in my headphones.</p>
<p>So my Pi&#8217;s sound device is working; I just have to figure why SDL_mixer isn&#8217;t always. I&#8217;ll keep looking.</p>
<p><strong>And the second problem</strong> which only occurs when the mixer is working, is when you play a lot of sounds. The <strong>PlayASound()</strong> function checks the result. On Windows it never had a problem but on Raspberry Pi, when you blow up a lot of asteroids say at one time, it plays a number of explosions then returns an error for each explosion after that. I think there&#8217;s only so many channels; that&#8217;s an easy fix; just ignore the error and return as if it succeeded.</p>The post <a href="https://learncgames.com/raspberry-pi-sound-issues-trying-to-fix-it/">Raspberry Pi Sound issues- trying to fix it</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">3145</post-id>	</item>
		<item>
		<title>Update to the Windows eBook</title>
		<link>https://learncgames.com/update-to-the-windows-ebook/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=update-to-the-windows-ebook</link>
		
		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Sun, 27 Nov 2022 11:28:17 +0000</pubDate>
				<category><![CDATA[C]]></category>
		<category><![CDATA[Ebook]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[SDL]]></category>
		<category><![CDATA[asteroids]]></category>
		<category><![CDATA[Sounds]]></category>
		<guid isPermaLink="false">https://learncgames.com/?p=3101</guid>

					<description><![CDATA[<p>A reader asked me how to setup SDL2 for Windows given recent changes in SDL2. Specifically the files and libsdl projects have been moved from the libsdl.org website to GitHub. You can easily find SDL2 Image, Mixer, TTF etc. However it can still be quite daunting setting up Visual Studio for SDL2. You have to [&#8230;]</p>
The post <a href="https://learncgames.com/update-to-the-windows-ebook/">Update to the Windows eBook</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;:45,&quot;href&quot;:&quot;https:\/\/github.com\/David-H-Bolton\/LearnC\/blob\/master\/New%20Instructions%20for%20setting%20up%20SDL2%20files%20on%20Windows.pdf&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20221223025630\/https:\/\/github.com\/David-H-Bolton\/LearnC\/blob\/master\/New%20Instructions%20for%20setting%20up%20SDL2%20files%20on%20Windows.pdf&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 11:15:41&quot;,&quot;http_code&quot;:206}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-02-06 11:15:41&quot;,&quot;http_code&quot;:206},&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:46,&quot;href&quot;:&quot;https:\/\/github.com\/libsdl-org\/SDL_mixer&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20251216065846\/https:\/\/github.com\/libsdl-org\/SDL_mixer&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 11:15:44&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-09 20:59:03&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-12 22:35:49&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-16 07:53:08&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-19 23:41:55&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-23 15:31:56&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-27 07:19:29&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-02 23:11:24&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-06 15:02:44&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-10 06:52:11&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-13 14:42:04&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-16 22:33:28&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-20 06:21:57&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-23 14:10:16&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-26 22:00:36&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-30 13:45:57&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-02 21:39:10&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-06 05:31:32&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-09 13:24:27&quot;,&quot;http_code&quot;:404},{&quot;date&quot;:&quot;2026-04-12 21:15:53&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-16 05:07:08&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-19 20:57:01&quot;,&quot;http_code&quot;:206}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-19 20:57:01&quot;,&quot;http_code&quot;:206},&quot;process&quot;:&quot;done&quot;}]'></div>
<p><img loading="lazy" decoding="async" class="alignleft size-medium wp-image-3102" src="https://learncgames.com/wp-content/uploads/2022/11/configure-sdl-for-vc-300x116.png" alt="Visual Studio configuration" width="300" height="116" srcset="https://learncgames.com/wp-content/uploads/2022/11/configure-sdl-for-vc-300x116.png 300w, https://learncgames.com/wp-content/uploads/2022/11/configure-sdl-for-vc-768x296.png 768w, https://learncgames.com/wp-content/uploads/2022/11/configure-sdl-for-vc.png 904w" sizes="auto, (max-width: 300px) 100vw, 300px" />A reader asked me how to setup SDL2 for Windows given recent changes in SDL2. Specifically the files and libsdl projects have been moved from the libsdl.org website to GitHub. You can easily find SDL2 Image, Mixer, TTF etc.</p>
<p>However it can still be quite daunting setting up Visual Studio for SDL2. You have to download the specific files, then configure the project properties to specify the include paths for header files and then the lib files, both the path to them and identify the ones you want to use.</p>
<p>As I&#8217;m on my new PC, I bit the bullet and went through the process of setting it up. It took just over an hour to configure it.  I&#8217;ve put it into <a title="Link to Setting up Visual Studio for SDL" href="https://github.com/David-H-Bolton/LearnC/blob/master/New%20Instructions%20for%20setting%20up%20SDL2%20files%20on%20Windows.pdf" target="_blank" rel="nofollow noopener">a PDF</a> that&#8217;s a couple of pages long.</p>
<p>So the game works but only after I disabled the sound code; it was failing in the call to <strong>Mix_OpenAudio()</strong>. I think recent work on the SDL Mixer needs some work on my part. I need to sit down and look at the <a title="Link to SDL Mixer page on GitHub" href="https://github.com/libsdl-org/SDL_mixer" target="_blank" rel="nofollow noopener">SDL Mixer page</a> and figure out what&#8217;s failing. Once that&#8217;s done, I&#8217;ll update the files.</p>
<p>&nbsp;</p>The post <a href="https://learncgames.com/update-to-the-windows-ebook/">Update to the Windows eBook</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">3101</post-id>	</item>
		<item>
		<title>Designing a Rogue-like game for book two</title>
		<link>https://learncgames.com/designing-a-rogue-like-game-for-book-two/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=designing-a-rogue-like-game-for-book-two</link>
		
		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Sun, 06 Nov 2022 00:00:25 +0000</pubDate>
				<category><![CDATA[design]]></category>
		<category><![CDATA[Ebook]]></category>
		<category><![CDATA[roguelike]]></category>
		<guid isPermaLink="false">https://learncgames.com/?p=3093</guid>

					<description><![CDATA[<p>My 2nd eBook is going to be a bit like the first one- first it teaches C but it is oriented towards Raspberry Pis.  Then it shows how to program Asteroids (like the first book) followed by a Match three game and finally a Rogue type dungeon explorer game. Now some rogue-likes stay true to [&#8230;]</p>
The post <a href="https://learncgames.com/designing-a-rogue-like-game-for-book-two/">Designing a Rogue-like game for book two</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;:47,&quot;href&quot;:&quot;https:\/\/pixel-poem.itch.io\/dungeon-assetpuck&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20260204000249\/https:\/\/pixel-poem.itch.io\/dungeon-assetpuck&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 11:15:46&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-11 03:29:37&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-17 16:06:06&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-20 23:06:36&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-01 04:10:49&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-06 01:16:50&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-12 23:24:15&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-17 08:29:17&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-26 11:30:49&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-30 07:45:52&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-03 01:28:27&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-09 07:36:44&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-13 10:07:55&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-18 19:01:47&quot;,&quot;http_code&quot;:200}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-18 19:01:47&quot;,&quot;http_code&quot;:200},&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:48,&quot;href&quot;:&quot;https:\/\/en.wikipedia.org\/wiki\/Rogue_(video_game)&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20260205082624\/https:\/\/en.wikipedia.org\/wiki\/Rogue_(video_game)&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 11:15:47&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-11 03:29:37&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-15 13:12:17&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-20 23:06:35&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-27 19:22:53&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-06 01:16:51&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-12 23:24:15&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-17 08:29:16&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-23 04:25:00&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-30 07:45:52&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-03 01:28:27&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-09 07:36:46&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-13 10:07:49&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-17 11:08:17&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-21 16:11:34&quot;,&quot;http_code&quot;:200}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-21 16:11:34&quot;,&quot;http_code&quot;:200},&quot;process&quot;:&quot;done&quot;}]'></div>
<p>My 2nd eBook is going to be a bit like the first one- first it teaches C but it is oriented towards Raspberry Pis.  Then it shows how to program Asteroids (like the first book) followed by a Match three game and finally a Rogue type dungeon explorer game.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-3094 size-medium" src="https://learncgames.com/wp-content/uploads/2022/11/rogue-300x207.png" alt="Rogue like game" width="300" height="207" srcset="https://learncgames.com/wp-content/uploads/2022/11/rogue-300x207.png 300w, https://learncgames.com/wp-content/uploads/2022/11/rogue.png 527w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>
<figure id="attachment_3097" aria-describedby="caption-attachment-3097" style="width: 300px" class="wp-caption alignleft"><img loading="lazy" decoding="async" class="size-medium wp-image-3097" src="https://learncgames.com/wp-content/uploads/2022/11/dungeon-assets-300x300.png" alt="Dungeon assets from itch.io" width="300" height="300" srcset="https://learncgames.com/wp-content/uploads/2022/11/dungeon-assets-300x300.png 300w, https://learncgames.com/wp-content/uploads/2022/11/dungeon-assets-150x150.png 150w, https://learncgames.com/wp-content/uploads/2022/11/dungeon-assets-250x250.png 250w, https://learncgames.com/wp-content/uploads/2022/11/dungeon-assets.png 346w" sizes="auto, (max-width: 300px) 100vw, 300px" /><figcaption id="caption-attachment-3097" class="wp-caption-text"><a href="https://pixel-poem.itch.io/dungeon-assetpuck">Dungeon assets</a></figcaption></figure>
<p>Now some rogue-likes stay true to the originals which were text based. Like this above from an article <a title="Link to Wikipedia article about Rogue" href="https://en.wikipedia.org/wiki/Rogue_(video_game)" target="_blank" rel="nofollow noopener">on Wikipedia</a>. Now that&#8217;s ok, but I fancy something a bit more colourful so I&#8217;m going to use 16 x 16 pixel graphics.</p>
<p>I did a bit of searching and found these dungeon graphics on <a title="Link to dungeon assets by puck on itch.io" href="https://pixel-poem.itch.io/dungeon-assetpuck" target="_blank" rel="noopener">itch.io</a>. I&#8217;ll use those to start with but may change. The view is not quite top down but top down with a bit of isometric in it. It looks better than pure top down.</p>
<p>So I figure the game has to have these elements.</p>
<p>(1) Generate a dungeon with multiple rooms and levels and stairs between,</p>
<p>(2) Fill the dungeon with monsters and treasures.</p>
<p>(3) Move the player&#8217;s character through the dungeon fighting monsters, picking up things including keys and maintaining a small inventory.</p>
<p>(4) Add some side quests like needing to find keys to open a chest with a magical item.</p>
<p>(5) I&#8217;ll also need to devise a simple combat system with magic.</p>
<p>Do monsters move- you&#8217;d hope so. How are rooms connected, in fact how are dungeons generated? I created a dungeon generator for the postal game Quest 30 years ago and can remember how I did it so there&#8217;ll will be that to implement in C.</p>
<p>I&#8217;m also going to leave out things like needing food and water.</p>
<p>So there it is now. Now to start writing the software. I&#8217;ll update this with progress reports.</p>The post <a href="https://learncgames.com/designing-a-rogue-like-game-for-book-two/">Designing a Rogue-like game for book two</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">3093</post-id>	</item>
		<item>
		<title>Beej&#8217;s Guide to C programming</title>
		<link>https://learncgames.com/beejs-guide-to-c-programming/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=beejs-guide-to-c-programming</link>
		
		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Tue, 16 Feb 2021 00:00:54 +0000</pubDate>
				<category><![CDATA[C]]></category>
		<category><![CDATA[Ebook]]></category>
		<category><![CDATA[c guide]]></category>
		<guid isPermaLink="false">https://learncgames.com/?p=2685</guid>

					<description><![CDATA[<p>Brian Hall (aka Beej) has written or collected guides to several programming languages including one on C. Out of curiosity I pasted the one document HTML version into both Word and a text editor to get a feel for how big it is and it filled 416 pages on Word, almost 13,700 lines in a [&#8230;]</p>
The post <a href="https://learncgames.com/beejs-guide-to-c-programming/">Beej’s Guide to C programming</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;:171,&quot;href&quot;:&quot;https:\/\/beej.us\/guide\/bgc&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20260101234738\/https:\/\/beej.us\/guide\/bgc\/&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 12:30:55&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-13 00:49:24&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-16 18:19:59&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-22 03:49:30&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-25 06:06:43&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-02 19:01:42&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-06 15:45:18&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-15 21:49:42&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-21 05:53:53&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-26 11:30:50&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-01 06:32:44&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-09 06:41:13&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-13 18:19:40&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-17 11:08:14&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-21 14:26:46&quot;,&quot;http_code&quot;:206}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-21 14:26:46&quot;,&quot;http_code&quot;:206},&quot;process&quot;:&quot;done&quot;}]'></div>
<p><img loading="lazy" decoding="async" class="alignleft size-medium wp-image-2686" src="https://learncgames.com/wp-content/uploads/2021/02/book-312393_640-290x300.png" alt="Book" width="290" height="300" srcset="https://learncgames.com/wp-content/uploads/2021/02/book-312393_640-290x300.png 290w, https://learncgames.com/wp-content/uploads/2021/02/book-312393_640.png 618w" sizes="auto, (max-width: 290px) 100vw, 290px" />Brian Hall (<em>aka Beej)</em> has written or collected guides to several programming languages including <a title="Link to Beej's Guide to C" href="https://beej.us/guide/bgc/" target="_blank" rel="nofollow noopener">one on C</a>. Out of curiosity I pasted the one document HTML version into both Word and a text editor to get a feel for how big it is and it filled 416 pages on Word, almost 13,700 lines in a text editor.</p>
<p>It is quite comprehensive covering most aspects of C. He has a disclaimer that its a work in practice and there may be bits that need correcting but still, if you are looking for an excellent guide to C, I&#8217;d definitely recommend it and if you like it, send him a tip on Paypal.</p>
<p>&nbsp;</p>The post <a href="https://learncgames.com/beejs-guide-to-c-programming/">Beej’s Guide to C programming</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">2685</post-id>	</item>
		<item>
		<title>More thoughts on the design of Rogue like</title>
		<link>https://learncgames.com/more-thoughts-on-the-design-of-rogue-like/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=more-thoughts-on-the-design-of-rogue-like</link>
		
		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Fri, 20 Nov 2020 00:00:48 +0000</pubDate>
				<category><![CDATA[design]]></category>
		<category><![CDATA[Ebook]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[VOR]]></category>
		<guid isPermaLink="false">https://learncgames.com/?p=1846</guid>

					<description><![CDATA[<p>Sometimes I walk up around 3:00 AM and my mind is abuzz with things like this. Last night was one such night. The first thought was I should stop calling it a Roguelike. There&#8217;s a certain set of conventions with those and I don&#8217;t want to be limited by that. For instance here&#8217;s an article [&#8230;]</p>
The post <a href="https://learncgames.com/more-thoughts-on-the-design-of-rogue-like/">More thoughts on the design of Rogue like</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;:368,&quot;href&quot;:&quot;https:\/\/www.gamasutra.com\/view\/news\/123031\/Analysis_The_Eight_Rules_Of_Roguelike_Design.php&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20210825042208\/https:\/\/gamasutra.com\/view\/news\/123031\/Analysis_The_Eight_Rules_Of_Roguelike_Design.php&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 14:32:31&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-13 00:49:28&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-02-21 04:53:45&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-24 06:02:37&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-23 04:24:59&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-27 19:31:14&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-02 14:13:22&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-11 19:01:39&quot;,&quot;http_code&quot;:404},{&quot;date&quot;:&quot;2026-04-17 11:08:26&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-21 16:11:40&quot;,&quot;http_code&quot;:200}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-21 16:11:40&quot;,&quot;http_code&quot;:200},&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:369,&quot;href&quot;:&quot;https:\/\/github.com\/AndriySvyryd\/UnicornHack&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20260106160501\/https:\/\/github.com\/AndriySvyryd\/UnicornHack&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 14:32:34&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-13 00:49:25&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-21 04:53:45&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-24 06:02:37&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-23 04:25:05&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-27 19:31:14&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-02 14:13:20&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-09 09:50:35&quot;,&quot;http_code&quot;:404},{&quot;date&quot;:&quot;2026-04-13 10:07:48&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-17 11:08:27&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-21 16:11:46&quot;,&quot;http_code&quot;:206}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-21 16:11:46&quot;,&quot;http_code&quot;:206},&quot;process&quot;:&quot;done&quot;}]'></div>
<p><img loading="lazy" decoding="async" class="alignleft size-medium wp-image-1847" src="https://learncgames.com/wp-content/uploads/2020/11/unicornhack-300x215.png" alt="Unicorn hack" width="300" height="215" srcset="https://learncgames.com/wp-content/uploads/2020/11/unicornhack-300x215.png 300w, https://learncgames.com/wp-content/uploads/2020/11/unicornhack-768x551.png 768w, https://learncgames.com/wp-content/uploads/2020/11/unicornhack.png 834w" sizes="auto, (max-width: 300px) 100vw, 300px" />Sometimes I walk up around 3:00 AM and my mind is abuzz with things like this. Last night was one such night. The first thought was I should stop calling it a Roguelike. There&#8217;s a certain set of conventions with those and I don&#8217;t want to be limited by that.</p>
<p>For instance <a title="Link to Gamasutra article on rules of design" href="https://www.gamasutra.com/view/news/123031/Analysis_The_Eight_Rules_Of_Roguelike_Design.php" target="_blank" rel="nofollow noopener noreferrer">here&#8217;s an article</a> about things you should or shouldn&#8217;t do in designing Roguelikes.</p>
<p>The game (<em>for the next Ebook)</em> is not going to be an all singing all dancing version but will be an MVP in the parlance. That&#8217;s Minimum Viable Product,</p>
<p>So if I&#8217;m going to divert away from the &#8216;standard&#8217; then it needs a name. Something evocative like Dungeon Trawler but shorter more catchy.  So I&#8217;m going with V.O.R. (<em>Vaults of Ruin</em>) or maybe just <strong>Vor</strong>,</p>
<p>So onto design aspects. Here&#8217;s a list of the features:</p>
<ul>
<li>10-15 different Monster types with differing melee, range weapons and magic. Can have packs of them, not just one. There is only one player. Should be fun!</li>
<li>Simple set of castable spells using a Mana value. It is used up casting spells but regenerates slowly as you move. It can be replenished quicker by consuming potions.</li>
<li>No food or water but the character has an energy rating. This is depleted by movement and fighting. Rest or sleep oe rating food replenishes it but I don&#8217;t want it to be a major thing. I&#8217;m not having deep dungeons with 25 or more levels, but 12 levels maximum.</li>
<li>Weapons are sword, dagger or bow. Can switch between them.</li>
<li>A few powerful magical treasures.</li>
<li>Turn based not real-time. Asteroids is real-time but movement will be restricted to so many squares for you and monsters. You probably won&#8217;t be able to outrun the faster moving monsters.</li>
<li>Limited visibility can make things interesting. It means the game has to calculate what squares are visible each move.</li>
</ul>
<p>I was tempted to do away with grid movement; for instance in the Asteroids game, they can move at any angle and velocity and are not tied to a grid. But that might be a bit too complicated so movement will be grid limited and Up/Down, Left/Right and maybe diagonal.</p>
<p>The screenshot is from an open source (<em>.NET Core/C#</em>) web rogue game called <a title="Link to UnicornHack on GitHub" href="https://github.com/AndriySvyryd/UnicornHack" target="_blank" rel="nofollow noopener noreferrer">Unicornhack</a>.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>The post <a href="https://learncgames.com/more-thoughts-on-the-design-of-rogue-like/">More thoughts on the design of Rogue like</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">1846</post-id>	</item>
		<item>
		<title>Restarting the Raspberry PI C Games tutorials</title>
		<link>https://learncgames.com/restarting-the-raspberry-pi-c-games-tutorials/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=restarting-the-raspberry-pi-c-games-tutorials</link>
		
		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Tue, 27 Oct 2020 00:00:59 +0000</pubDate>
				<category><![CDATA[C]]></category>
		<category><![CDATA[Ebook]]></category>
		<category><![CDATA[raspberry-pi]]></category>
		<guid isPermaLink="false">https://learncgames.com/?p=1671</guid>

					<description><![CDATA[<p>I believe that the Raspberry PI, especially the 4B is a great and very low cost machine for not only running games but for developing them as well. Of course, if you have a PC, Linux or Mac then you can use that as a development machine but if you haven&#8217;t, it costs less than [&#8230;]</p>
The post <a href="https://learncgames.com/restarting-the-raspberry-pi-c-games-tutorials/">Restarting the Raspberry PI C Games tutorials</a> first appeared on <a href="https://learncgames.com">Learn C Games Programming Blog</a>.]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignleft size-medium wp-image-1672" src="https://learncgames.com/wp-content/uploads/2020/10/raspberry-Pi4-264x300.png" alt="Raspberry Pi 4" width="264" height="300" srcset="https://learncgames.com/wp-content/uploads/2020/10/raspberry-Pi4-264x300.png 264w, https://learncgames.com/wp-content/uploads/2020/10/raspberry-Pi4.png 365w" sizes="auto, (max-width: 264px) 100vw, 264px" />I believe that the Raspberry PI, especially the 4B is a great and very low cost machine for not only running games but for developing them as well. Of course, if you have a PC, Linux or Mac then you can use that as a development machine but if you haven&#8217;t, it costs less than £100 (when you count the system, case, cables, SD-Card) to get up and running.</p>
<p>So I&#8217;m reworking my original eBook for the Raspberry Pi, using software running on the Pi and developing a 2nd ebook. Along the way I&#8217;ll publish longer excerpts from it here. Probably one a week.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>The post <a href="https://learncgames.com/restarting-the-raspberry-pi-c-games-tutorials/">Restarting the Raspberry PI C Games tutorials</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">1671</post-id>	</item>
		<item>
		<title>Essential C &#8211; Free 45 page PDF</title>
		<link>https://learncgames.com/essential-c-free-45-page-pdf/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=essential-c-free-45-page-pdf</link>
		
		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Sun, 06 Sep 2020 23:00:27 +0000</pubDate>
				<category><![CDATA[C]]></category>
		<category><![CDATA[Ebook]]></category>
		<category><![CDATA[ebook]]></category>
		<category><![CDATA[pdf]]></category>
		<guid isPermaLink="false">https://learncgames.com/?p=1354</guid>

					<description><![CDATA[<p>This was compiled between 1996 and 2003 by Nick Parlante at Stanford college. It&#8217;s a 45 page PDF that summaries all the basic features of C. It saves having to search online or through a reference book (I have the excellent O&#8217;Reilly C book as well). It has a few pitfalls to show you things [&#8230;]</p>
The post <a href="https://learncgames.com/essential-c-free-45-page-pdf/">Essential C – Free 45 page PDF</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;:531,&quot;href&quot;:&quot;http:\/\/cslibrary.stanford.edu\/101\/EssentialC.pdf&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20251209004215\/http:\/\/cslibrary.stanford.edu\/101\/EssentialC.pdf&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 15:57:02&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-10 10:00:38&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-17 19:34:43&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-25 12:22:56&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-04 07:42:52&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-11 08:07:29&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-15 03:14:51&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-20 01:48:41&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-24 18:55:01&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-02 22:09:34&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-06 11:54:40&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-11 19:01:35&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-17 05:57:02&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-21 16:11:36&quot;,&quot;http_code&quot;:206}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-21 16:11:36&quot;,&quot;http_code&quot;:206},&quot;process&quot;:&quot;done&quot;}]'></div>
<p><img loading="lazy" decoding="async" class="alignleft size-medium wp-image-1355" src="https://learncgames.com/wp-content/uploads/2020/09/essential-c-pdf-268x300.png" alt="Essentail C Front page" width="268" height="300" srcset="https://learncgames.com/wp-content/uploads/2020/09/essential-c-pdf-268x300.png 268w, https://learncgames.com/wp-content/uploads/2020/09/essential-c-pdf.png 629w" sizes="auto, (max-width: 268px) 100vw, 268px" /><a title="Link to Essential C PDF" href="http://cslibrary.stanford.edu/101/EssentialC.pdf" target="_blank" rel="nofollow noopener noreferrer">This was compiled</a> between 1996 and 2003 by Nick Parlante at Stanford college. It&#8217;s a 45 page PDF that summaries all the basic features of C.</p>
<p>It saves having to search online or through a reference book (I have the excellent O&#8217;Reilly C book as well). It has a few pitfalls to show you things to avoid and lots of short source examples.</p>The post <a href="https://learncgames.com/essential-c-free-45-page-pdf/">Essential C – Free 45 page PDF</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">1354</post-id>	</item>
		<item>
		<title>A free C Book &#8211; &#8220;C Programming Notes for Professionals&#8221;</title>
		<link>https://learncgames.com/a-free-c-book-c-programming-notes-for-professionals/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=a-free-c-book-c-programming-notes-for-professionals</link>
		
		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Sat, 08 Aug 2020 23:00:15 +0000</pubDate>
				<category><![CDATA[Ebook]]></category>
		<category><![CDATA[free ebooks]]></category>
		<category><![CDATA[library]]></category>
		<guid isPermaLink="false">https://learncgames.com/?p=1136</guid>

					<description><![CDATA[<p>This has nothing to do with my ebook and was produced entirely by the Goalkicker.com project which produces free and very professional looking ebooks, I came across it just a few days ago. The C Programming Note for Professionals is currently 327 pages long, a 2.4 MB download. It&#8217;s nicely laid out and professionally done. [&#8230;]</p>
The post <a href="https://learncgames.com/a-free-c-book-c-programming-notes-for-professionals/">A free C Book – “C Programming Notes for Professionals”</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;:582,&quot;href&quot;:&quot;https:\/\/books.goalkicker.com\/CBook&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20251208040438\/https:\/\/books.goalkicker.com\/CBook\/&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 16:29:25&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-10 10:50:10&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-14 17:39:52&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-20 18:21:30&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-24 02:11:53&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-28 19:08:31&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-04 12:25:22&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-07 16:38:32&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-13 08:15:04&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-18 03:47:33&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-24 04:42:36&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-27 13:34:36&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-05 21:51:35&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-09 09:50:37&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-13 08:22:15&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-19 12:07:34&quot;,&quot;http_code&quot;:206}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-19 12:07:34&quot;,&quot;http_code&quot;:206},&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:583,&quot;href&quot;:&quot;https:\/\/books.goalkicker.com&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20260131115921\/https:\/\/books.goalkicker.com\/&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 16:29:27&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-10 10:50:11&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-14 17:39:51&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-20 18:21:28&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-24 02:11:55&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-28 19:08:30&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-04 12:25:21&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-07 16:38:32&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-13 08:15:03&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-18 03:47:33&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-24 04:42:38&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-27 13:34:36&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-05 21:51:35&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-11 19:01:37&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-19 12:07:37&quot;,&quot;http_code&quot;:206}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-19 12:07:37&quot;,&quot;http_code&quot;:206},&quot;process&quot;:&quot;done&quot;}]'></div>
<p><img loading="lazy" decoding="async" class="alignleft size-full wp-image-1137" src="https://learncgames.com/wp-content/uploads/2020/08/cNotes-cover.png" alt="C Notes for Professionals Book cover" width="350" height="495" srcset="https://learncgames.com/wp-content/uploads/2020/08/cNotes-cover.png 350w, https://learncgames.com/wp-content/uploads/2020/08/cNotes-cover-212x300.png 212w" sizes="auto, (max-width: 350px) 100vw, 350px" />This has nothing to do with my ebook and was produced entirely by the Goalkicker.com project which produces free and very professional looking ebooks, I came across it just a few days ago.</p>
<p>The <a title="Link to Free C Programmin Notes EBook" href="https://books.goalkicker.com/CBook/" target="_blank" rel="noopener noreferrer">C Programming Note for Professionals</a> is currently 327 pages long, a 2.4 MB download. It&#8217;s nicely laid out and professionally done. I&#8217;ve only flicked through it but it looks an excellent piece of work with 63 chapters currently. You can leave your email address and they&#8217;ll notify you of any changes.</p>
<p>There are almost <a title="Link to free Ebooks collection" href="https://books.goalkicker.com/" target="_blank" rel="noopener noreferrer">50 ebooks</a> in total covering topics like Android, .NET, Xamarion Forms, Perl, PHP, MySQL, PostgreSQL and may other topics. This is an excellent library.  I don&#8217;t know who is behind this project but they deserve to be bought a lot of coffees&#8230;</p>The post <a href="https://learncgames.com/a-free-c-book-c-programming-notes-for-professionals/">A free C Book – “C Programming Notes for Professionals”</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">1136</post-id>	</item>
	</channel>
</rss>
