<?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>mobile | Learn C Games Programming Blog</title>
	<atom:link href="https://learncgames.com/category/mobile/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, 04 Feb 2021 20:51:13 +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>mobile | 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>Amazing multi-platform Asteroids in C#</title>
		<link>https://learncgames.com/amazing-multi-platform-asteroids-in-c/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=amazing-multi-platform-asteroids-in-c</link>
		
		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Sat, 06 Feb 2021 00:00:08 +0000</pubDate>
				<category><![CDATA[Blazor]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[asteroids]]></category>
		<category><![CDATA[cross-platform]]></category>
		<category><![CDATA[wasm]]></category>
		<guid isPermaLink="false">https://learncgames.com/?p=2608</guid>

					<description><![CDATA[<p>Asteroids was the first full arcade game I ever wrote in C. Asteroids in C# takes things to a whole new level.  The solution contains 12 projects in all: Three Blazor projects, a WinForms version, a WPF version, a UWP (Universal Windows Platform) and a Xamarin Android Forms version (shown). You can compile and run [&#8230;]</p>
The post <a href="https://learncgames.com/amazing-multi-platform-asteroids-in-c/">Amazing multi-platform Asteroids in C#</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;:199,&quot;href&quot;:&quot;https:\/\/github.com\/aesalazar\/AsteroidsWasm&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20260114025816\/https:\/\/github.com\/aesalazar\/AsteroidsWasm&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 12:44:14&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-10 10:18:55&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-15 19:42:41&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-19 19:32:53&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-24 02:11:50&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-28 13:36:24&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-06 14:36:43&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-12 03:15:14&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-15 12:44:28&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-25 21:24:22&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-31 16:01:55&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-05 03:51:24&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-09 00:40:55&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-13 00:41:44&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-16 23:23:21&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-21 01:38:43&quot;,&quot;http_code&quot;:206}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-21 01:38:43&quot;,&quot;http_code&quot;:206},&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:200,&quot;href&quot;:&quot;https:\/\/docs.microsoft.com\/en-us\/xamarin\/xamarin-forms\/user-interface\/graphics\/skiasharp\/#:~:text=SkiaSharp%20is%20a%202D%20graphics,graphics%2C%20bitmaps%2C%20and%20text.&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20220904010537\/https:\/\/docs.microsoft.com\/en-us\/xamarin\/xamarin-forms\/user-interface\/graphics\/skiasharp\/&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 12:44:16&quot;,&quot;http_code&quot;:206}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-02-06 12:44:16&quot;,&quot;http_code&quot;:206},&quot;process&quot;:&quot;done&quot;}]'></div>
<p><img fetchpriority="high" decoding="async" class="alignleft size-full wp-image-2609" src="https://learncgames.com/wp-content/uploads/2021/02/android-asteroids.png" alt="Android asteroids" width="395" height="838" srcset="https://learncgames.com/wp-content/uploads/2021/02/android-asteroids.png 395w, https://learncgames.com/wp-content/uploads/2021/02/android-asteroids-141x300.png 141w" sizes="(max-width: 395px) 100vw, 395px" />Asteroids was the first full arcade game I ever wrote in C. <a title="Link to C# Asteroids on GitHub" href="https://github.com/aesalazar/AsteroidsWasm" target="_blank" rel="nofollow noopener">Asteroids in C#</a> takes things to a whole new level.  The solution contains 12 projects in all: Three Blazor projects, a WinForms version, a WPF version, a UWP (<em>Universal Windows Platform</em>) and a Xamarin Android Forms version (shown).</p>
<p>You can compile and run any of the projects though you will need to install and setup a suitable SDK and emulated (<em>or a real device</em>) for the Android.</p>
<p>Written by Howard Uman and ported by Ernie Salazar, this is a wireframe asteroids, more true to the original than my own raster version. Out of curiosity, I created an Android 9.0 emulator (<em>I don&#8217;t have a recent Android phone)</em> and compiled then deployed it to the emulator. The screenshot is grabbed directly from the emulator which has a less than ideal screen ratio. This would work better on a tablet.</p>
<p>The structure of the C# Solution is interesting. All of the game code is in the Base project. All of the other platforms just host the main game window. The game uses the <a title="Link to SkiaSharp documentation" href="https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/graphics/skiasharp/#:~:text=SkiaSharp%20is%20a%202D%20graphics,graphics%2C%20bitmaps%2C%20and%20text." target="_blank" rel="nofollow noopener">SkiaSharp</a> graphics framework for Android Forms.</p>
<p>This is a very nice open source project and an excellent way to see how Blazor works in both Wasm and Server mode, not to mention the Android, WinForms/WPF and UWP versions.</p>
<p>I have an interest in Blazor which lets you write C# code that runs in the browser very easily.  With a bit of workj, this should be runnable on a Linux webserver as well. Something for me to try&#8230;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>The post <a href="https://learncgames.com/amazing-multi-platform-asteroids-in-c/">Amazing multi-platform Asteroids in C#</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">2608</post-id>	</item>
		<item>
		<title>The fun of game design</title>
		<link>https://learncgames.com/the-fun-of-game-design/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-fun-of-game-design</link>
		
		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Fri, 28 Aug 2020 23:00:52 +0000</pubDate>
				<category><![CDATA[Game]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[game design]]></category>
		<guid isPermaLink="false">https://learncgames.com/?p=1273</guid>

					<description><![CDATA[<p>My new side project is a free to play multi-player mobile game about living the life of a celebrity. It&#8217;s brutally competitive and will accommodate up to 10,000 players in one game. It scales horizontally so multiple games can be run at the same time. It&#8217;s an idea I&#8217;ve had for years and now I&#8217;m [&#8230;]</p>
The post <a href="https://learncgames.com/the-fun-of-game-design/">The fun of game design</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;:545,&quot;href&quot;:&quot;https:\/\/pixabay.com\/users\/Pexels-2286921\/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=1867754&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20260204125141\/https:\/\/pixabay.com\/users\/pexels-2286921\/?utm_source=link-attribution&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 16:07:07&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-02-10 09:34:08&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-02-14 00:49:14&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-02-19 03:23:47&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-15 04:08:24&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-26 14:42:00&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-31 10:43:48&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-05 03:51:28&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-09 00:41:02&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-15 23:07:20&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-21 01:38:37&quot;,&quot;http_code&quot;:403}],&quot;broken&quot;:true,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-21 01:38:37&quot;,&quot;http_code&quot;:403},&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:546,&quot;href&quot;:&quot;https:\/\/pixabay.com\/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=1867754&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 16:07:10&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-02-10 09:34:08&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-02-14 00:49:14&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-02-19 03:23:47&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-15 04:08:25&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-26 14:41:58&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-31 10:43:48&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-05 07:04:51&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-09 00:41:01&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-14 17:36:38&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-18 15:36:40&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-22 01:08:35&quot;,&quot;http_code&quot;:403}],&quot;broken&quot;:true,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-22 01:08:35&quot;,&quot;http_code&quot;:403},&quot;process&quot;:&quot;done&quot;}]'></div>
<figure id="attachment_1275" aria-describedby="caption-attachment-1275" style="width: 300px" class="wp-caption alignleft"><img decoding="async" class="size-medium wp-image-1275" src="https://learncgames.com/wp-content/uploads/2020/08/audience-1867754_640-300x200.jpg" alt="Audience" width="300" height="200" srcset="https://learncgames.com/wp-content/uploads/2020/08/audience-1867754_640-300x200.jpg 300w, https://learncgames.com/wp-content/uploads/2020/08/audience-1867754_640.jpg 640w" sizes="(max-width: 300px) 100vw, 300px" /><figcaption id="caption-attachment-1275" class="wp-caption-text">Image by <a href="https://pixabay.com/users/Pexels-2286921/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=1867754">Pexels</a> from <a href="https://pixabay.com/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=1867754">Pixabay</a></figcaption></figure>
<p>My new side project is a free to play multi-player mobile game about living the life of a celebrity. It&#8217;s brutally competitive and will accommodate up to 10,000 players in one game. It scales horizontally so multiple games can be run at the same time. It&#8217;s an idea I&#8217;ve had for years and now I&#8217;m on it.</p>
<p>The idea is that you start moving to the big city. A city where your dreams can come true by becoming famous in some field. Whether breaking into film,  or sport, on TV, a famous writer and so on.  But first as a wannabe, you have to get a job, whether its pumping gas, waiting on or one of a dozen jobs.  And try to make your way up the greasy pole to the top of the A-List.</p>
<p>I have devised mechanisms for this. But there&#8217;s way more depth to the game than what I&#8217;ve said. The game is basically about decision making. Every action has consequences. If you go to this party, you might make friends with someone who can open doors that will give you more public exposure and earn celebrity points.</p>
<p>The game server generates events that you can attend. It&#8217;s a busy life attending openings, first nights, filming of videos, commercials, going to auditions, making guest appearances, signing books, partying, going to concerts, balls, awards ceremonies, opening fayres, launching ships, or more mundane things like product launches, endorsements, appearing in TV adverts and more.</p>
<p>All this has to take place in a game city. So the game server has to create a city populated with buildings, with jobs. Celebrities actually do jobs. Those books don&#8217;t write themself, or films make themself. Musicians have to record songs, go on tours. But you are also interacting with other players, helping them and helping yourself.</p>
<p>As a game designer and programmer I have to translate all this into code. In the past I programmed postal games. These were games where orders were sent by post, processed, results printed out and then mailed back. In this case, they&#8217;re entered on mobile and uploaded to a game server. Here a program will run at regular intervals and process a day&#8217;s activities. All those parties etc. have to be processed and the consequences determined. Did you make friends, did you get any new job offers? Have you accumulated some more celebrity points and moved up in the league table? Did you escape from being a wannabe to C-lister yet?</p>
<p>Then after that&#8217;s all done, the results and new decisions can be fetched onto mobiles and players decide what their next decisions will be&#8230;  That&#8217;s what I&#8217;m designing and programming. Both the game server engine and the mobile clients.</p>The post <a href="https://learncgames.com/the-fun-of-game-design/">The fun of game design</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">1273</post-id>	</item>
		<item>
		<title>NoSQl or SQL?</title>
		<link>https://learncgames.com/nosql-or-sql/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=nosql-or-sql</link>
		
		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Thu, 27 Aug 2020 11:10:42 +0000</pubDate>
				<category><![CDATA[mobile]]></category>
		<category><![CDATA[Dart]]></category>
		<category><![CDATA[Flutter]]></category>
		<guid isPermaLink="false">https://learncgames.com/?p=1264</guid>

					<description><![CDATA[<p>I&#8217;m still continuing C# development but no longer on MonoGame. My needs have now switched to Flutter. If you haven&#8217;t come across it, it&#8217;s a cross-platform mobile development system from Google and uses their Dart language.  This is a modern language originally created back in 2011 as a potential replacement for JavaScript. That didn&#8217;t work [&#8230;]</p>
The post <a href="https://learncgames.com/nosql-or-sql/">NoSQl or SQL?</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;:547,&quot;href&quot;:&quot;https:\/\/pixabay.com\/users\/geralt-9301\/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=2723105&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20260128125116\/https:\/\/pixabay.com\/users\/geralt-9301\/?utm_source=link-attribution&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 16:07:12&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-02-22 10:29:57&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-02-26 11:03:48&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-05 09:23:23&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-10 15:30:20&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-05 12:01:46&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-09 00:40:52&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-12 21:22:22&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-16 23:23:31&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-21 01:38:39&quot;,&quot;http_code&quot;:403}],&quot;broken&quot;:true,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-21 01:38:39&quot;,&quot;http_code&quot;:403},&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:548,&quot;href&quot;:&quot;https:\/\/pixabay.com\/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=2723105&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;}]'></div>
<figure id="attachment_1266" aria-describedby="caption-attachment-1266" style="width: 300px" class="wp-caption alignleft"><img decoding="async" class="size-medium wp-image-1266" src="https://learncgames.com/wp-content/uploads/2020/08/data-2723105_640-300x200.jpg" alt="Da" width="300" height="200" srcset="https://learncgames.com/wp-content/uploads/2020/08/data-2723105_640-300x200.jpg 300w, https://learncgames.com/wp-content/uploads/2020/08/data-2723105_640.jpg 640w" sizes="(max-width: 300px) 100vw, 300px" /><figcaption id="caption-attachment-1266" class="wp-caption-text">Image by <a href="https://pixabay.com/users/geralt-9301/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=2723105">Gerd Altmann</a> from <a href="https://pixabay.com/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=2723105">Pixabay</a></figcaption></figure>
<p>I&#8217;m still continuing C# development but no longer on MonoGame. My needs have now switched to Flutter. If you haven&#8217;t come across it, it&#8217;s a cross-platform mobile development system from Google and uses their Dart language.  This is a modern language originally created back in 2011 as a potential replacement for JavaScript. That didn&#8217;t work out as other browser creators (Microsoft, Apple and Opera) didn&#8217;t go for it.</p>
<p>So Dart sort of languished until three years ago when Flutter emerged as an alternative to POA (Plain old Android development in Java/Kotlin). Flutter is the UI technology- interestingly it redraws the screen controls at 60 times per second, a bit like MonoGame. But this is no game.</p>
<p>The UI is programmed in Dart and it has one unique feature: You can make a change and see it live in one second. It&#8217;s called Hot Reload and compared to the old Compile, redeploy and run cycle is quite amazing., Also Flutter is cross-platform and has controls for iOS that look like Apple native controls.</p>
<p>Now my big decision is whether to use SQL or NoSQL to store data. The data isn&#8217;t exactly ordered like a schema, more like each database record has a variable number of name=value pairs. Which certainly suggests something NoSQLish.</p>
<p>&nbsp;</p>The post <a href="https://learncgames.com/nosql-or-sql/">NoSQl or SQL?</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">1264</post-id>	</item>
		<item>
		<title>An irritating bug with MonoGame/Android</title>
		<link>https://learncgames.com/an-irritating-bug-with-monogame-android/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=an-irritating-bug-with-monogame-android</link>
		
		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Fri, 07 Aug 2020 23:00:48 +0000</pubDate>
				<category><![CDATA[mobile]]></category>
		<category><![CDATA[MonoGame]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[bug]]></category>
		<guid isPermaLink="false">https://learncgames.com/?p=1133</guid>

					<description><![CDATA[<p>Bugs happen, it&#8217;s a way of life but when the bug affects you as a developer, it can be a tad annoying. I&#8217;ve found a bug and mentioned it in the MonoGame forums. The bug occurs intermittently. I do a build then run the program on an Android phone. It starts loading, shows the splash [&#8230;]</p>
The post <a href="https://learncgames.com/an-irritating-bug-with-monogame-android/">An irritating bug with MonoGame/Android</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;:584,&quot;href&quot;:&quot;https:\/\/pixabay.com\/users\/thommas68-2571842\/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=2435642&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;:585,&quot;href&quot;:&quot;https:\/\/pixabay.com\/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=2435642&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 16:29:32&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-02-12 18:28:39&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-02-15 19:42:41&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-02-22 21:21:30&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-02-26 06:49:26&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-06 23:28:36&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-17 08:06:49&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-24 21:52:53&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-30 00:09:32&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-03 06:05:50&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-07 18:14:35&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-13 00:41:44&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-16 23:23:24&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-21 01:38:41&quot;,&quot;http_code&quot;:403}],&quot;broken&quot;:true,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-21 01:38:41&quot;,&quot;http_code&quot;:403},&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:586,&quot;href&quot;:&quot;https:\/\/community.monogame.net&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20260117005522\/https:\/\/community.monogame.net\/&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 16:29:35&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-12 18:28:36&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-15 19:42:41&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-22 21:21:31&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-26 06:49:27&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-06 23:28:37&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-17 08:06:52&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-24 21:52:57&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-30 00:09:35&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-03 06:05:51&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-07 18:14:36&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-12 21:22:31&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-16 23:23:29&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-21 01:38:36&quot;,&quot;http_code&quot;:200}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-21 01:38:36&quot;,&quot;http_code&quot;:200},&quot;process&quot;:&quot;done&quot;}]'></div>
<figure id="attachment_1134" aria-describedby="caption-attachment-1134" style="width: 300px" class="wp-caption alignleft"><img loading="lazy" decoding="async" class="size-medium wp-image-1134" src="https://learncgames.com/wp-content/uploads/2020/08/phone-2435642_640-300x225.png" alt="Android Phone" width="300" height="225" srcset="https://learncgames.com/wp-content/uploads/2020/08/phone-2435642_640-300x225.png 300w, https://learncgames.com/wp-content/uploads/2020/08/phone-2435642_640.png 640w" sizes="auto, (max-width: 300px) 100vw, 300px" /><figcaption id="caption-attachment-1134" class="wp-caption-text">Image by <a href="https://pixabay.com/users/thommas68-2571842/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=2435642">Iván Tamás</a> from <a href="https://pixabay.com/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=2435642">Pixabay</a></figcaption></figure>
<p>Bugs happen, it&#8217;s a way of life but when the bug affects you as a developer, it can be a tad annoying. I&#8217;ve found a bug and mentioned it in the <a title="Link to official Monogame forums" href="https://community.monogame.net/" target="_blank" rel="nofollow noopener noreferrer">MonoGame forums</a>.</p>
<p>The bug occurs intermittently. I do a build then run the program on an Android phone. It starts loading, shows the splash screen then splat &#8220;The Content file was not found&#8221; message appears in Visual Studio.</p>
<p>This may be a bug in Xamarin or MonoGame. No doubt it will eventually get fixed but still a bit annoying. About the main workround I&#8217;ve found is rebuild everything. Start with the Pipeline tool- do a Build/Clean then a Build/Build. Then in the Project (in Visual Studio) do a Build/Clean then Build/Deploy which recompiles everything.</p>
<p>If the error still persists then it&#8217;s possible you have a typo; say a lowercase i instead of I in a filename. (<em>I&#8217;ve done that once</em>). Another fix though rather unsatisfactory is in the <strong>Project Properties</strong>, on the <strong>Options</strong> tab, right at the top is a checkbox <strong>Use Shared Runtime. </strong>If you untick that, deployment takes a bit longer. Instead of copying 3 MB which takes a second or so, it copies about 60 MB instead which takes a bit longer. I tried it but went back to the <strong>Clean and Deploy</strong> approach as copying was taking 10-15 seconds.</p>
<p>&nbsp;</p>The post <a href="https://learncgames.com/an-irritating-bug-with-monogame-android/">An irritating bug with MonoGame/Android</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">1133</post-id>	</item>
		<item>
		<title>Trials and tribulations of mobile development</title>
		<link>https://learncgames.com/trials-and-tribulations-of-mobile-development/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=trials-and-tribulations-of-mobile-development</link>
		
		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Mon, 27 Jul 2020 23:00:12 +0000</pubDate>
				<category><![CDATA[mobile]]></category>
		<guid isPermaLink="false">https://learncgames.com/?p=1061</guid>

					<description><![CDATA[<p>Compared to desktop, I find mobile development somewhat frustrating at times. On iOS, you have a right palaver with certificates and provisioning profiles before you can even run a program on your device. Android is nowhere near so bad, but you have the fragmentation problem I mentioned yesterday. Too many different models with different screen [&#8230;]</p>
The post <a href="https://learncgames.com/trials-and-tribulations-of-mobile-development/">Trials and tribulations of mobile development</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;:607,&quot;href&quot;:&quot;https:\/\/pixabay.com\/users\/geralt-9301\/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=769300&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20260128125116\/https:\/\/pixabay.com\/users\/geralt-9301\/?utm_source=link-attribution&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 16:40:02&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-02-15 13:43:05&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-02-20 13:53:30&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-02-26 06:49:26&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-04 17:18:55&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-10 23:30:07&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-31 16:01:52&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-03 18:30:52&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-09 00:40:49&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-12 21:22:25&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-16 10:48:46&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-20 19:19:22&quot;,&quot;http_code&quot;:403}],&quot;broken&quot;:true,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-20 19:19:22&quot;,&quot;http_code&quot;:403},&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:608,&quot;href&quot;:&quot;https:\/\/pixabay.com\/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=769300&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;}]'></div>
<figure id="attachment_1062" aria-describedby="caption-attachment-1062" style="width: 300px" class="wp-caption alignleft"><img loading="lazy" decoding="async" class="size-medium wp-image-1062" src="https://learncgames.com/wp-content/uploads/2020/07/finger-769300_640-300x212.jpg" alt="Mobile apps" width="300" height="212" srcset="https://learncgames.com/wp-content/uploads/2020/07/finger-769300_640-300x212.jpg 300w, https://learncgames.com/wp-content/uploads/2020/07/finger-769300_640.jpg 640w" sizes="auto, (max-width: 300px) 100vw, 300px" /><figcaption id="caption-attachment-1062" class="wp-caption-text">Image by <a href="https://pixabay.com/users/geralt-9301/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=769300">Gerd Altmann</a> from <a href="https://pixabay.com/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=769300">Pixabay</a></figcaption></figure>
<p>Compared to desktop, I find mobile development somewhat frustrating at times. On iOS, you have a right palaver with certificates and provisioning profiles before you can even run a program on your device. Android is nowhere near so bad, but you have the fragmentation problem I mentioned yesterday. Too many different models with different screen sizes and resolutions.</p>
<p>C# is a nice and powerful language and well suite dto mobile, though to be fair so are Swift on iOS and Java/Kotlin on Android. Android software is a bit of a mishmash. You have to get the right SDKs to match your phone&#8217;s OS. Then you have to create a simulator if you are not testing on a device. iOS has its own issues, generally involving needing a Mac before you can put code on the iPhone.</p>
<p>MonoGame is a nice framework. Compared to both Android and iOS native development (<em>no JavaScript here!</em>) it&#8217;s a lot more straightforward to work with. You override the <em>Game.Update</em> method for reading keyboards and touchscreens. Then you override <em>Game.Draw</em> to output graphics. In that respect it&#8217;s even easier than using SDL for games. It&#8217;s a little like WinForm programming.</p>The post <a href="https://learncgames.com/trials-and-tribulations-of-mobile-development/">Trials and tribulations of mobile development</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">1061</post-id>	</item>
	</channel>
</rss>
