<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: MousePaw Media</title>
    <description>The latest articles on Forem by MousePaw Media (@mousepawmedia).</description>
    <link>https://forem.com/mousepawmedia</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F37%2F0205683c-5892-444e-bf14-3e4e02fa127f.png</url>
      <title>Forem: MousePaw Media</title>
      <link>https://forem.com/mousepawmedia</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/mousepawmedia"/>
    <language>en</language>
    <item>
      <title>How to rename 'master' in an organization</title>
      <dc:creator>Jason C. McDonald</dc:creator>
      <pubDate>Tue, 07 Jul 2020 03:48:47 +0000</pubDate>
      <link>https://forem.com/mousepawmedia/how-to-rename-master-in-an-organization-4e20</link>
      <guid>https://forem.com/mousepawmedia/how-to-rename-master-in-an-organization-4e20</guid>
      <description>&lt;p&gt;We were deciding what to rename our primary development branch...&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/mousepawmedia" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__org__pic"&gt;
      &lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F37%2F0205683c-5892-444e-bf14-3e4e02fa127f.png" alt="MousePaw Media" width="547" height="560"&gt;
      &lt;div class="ltag__link__user__pic"&gt;
        &lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2538%2Fd346ffa9-9c8f-4fb3-b367-0fbcc0bb2889.png" alt="" width="400" height="400"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/mousepawmedia/goodbye-master-hello-what-34b9" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Goodbye Master, Hello...What?&lt;/h2&gt;
      &lt;h3&gt;Jason C. McDonald for MousePaw Media ・ Jun 29 '20&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#devops&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#culture&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#inclusion&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#git&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;The result: &lt;code&gt;devel&lt;/code&gt; won!&lt;/strong&gt; It will join &lt;code&gt;fresh&lt;/code&gt; and &lt;code&gt;stable&lt;/code&gt; as our triad of protected branches.&lt;/p&gt;

&lt;p&gt;Today, we started the transition from &lt;code&gt;master&lt;/code&gt; to &lt;code&gt;devel&lt;/code&gt;. While many guides exist to explain how to rename &lt;code&gt;master&lt;/code&gt; on your own repositories, this gets a little more complicated in a team.&lt;/p&gt;

&lt;p&gt;Here's a few things you can do to make that transition easier.&lt;/p&gt;

&lt;h2&gt;
  
  
  Phase 0: Prepare
&lt;/h2&gt;

&lt;p&gt;Make sure your team knows what's happening. Give them a few weeks notice. Explain your motivation for renaming &lt;code&gt;master&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;Seriously consider giving them a say in what the new primary branch should be. Cultural and historic issues aside, &lt;code&gt;master&lt;/code&gt; was never a particularly insightful name, so take the occasion to find one the majority of your team actually &lt;em&gt;likes&lt;/em&gt;! You can see some of our thoughts on four candidate names for the primary branch on the article mentioned above.&lt;/p&gt;

&lt;p&gt;Set a date for the start of the transition. It's best if you pick a period somewhere towards the start of a development cycle, whatever that means to you, to limit disruption to workflow. Don't let the word "disruption" scare you off; chances are, this will go smoothly, but you still don't want to risk a hiccup a few days before something is supposed to ship to prod. ;)&lt;/p&gt;

&lt;h2&gt;
  
  
  Phase 1: Renaming
&lt;/h2&gt;

&lt;p&gt;This is where you actually rename the branches! For this guide, I'll use &lt;code&gt;devel&lt;/code&gt; for the new name, since that's what we picked, but you can substitute whatever name you prefer in there.&lt;/p&gt;

&lt;p&gt;Here's the command for this, taken from &lt;a href="https://dev.to/afrodevgirl/replacing-master-with-main-in-github-2fjf"&gt;this article by Alexis Moody&lt;/a&gt;, and adapted to our use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git branch -m master devel
git push -u origin devel
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next, on your repository management tool ­— GitHub, GitLab, Bitbucket, Phabricator (in our case), or whatever) — set the new &lt;code&gt;devel&lt;/code&gt; branch as the primary.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Do not yet delete &lt;code&gt;master&lt;/code&gt;!!!&lt;/em&gt;&lt;/strong&gt; This helps protect against initial bumps in the road:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers can still pull &lt;em&gt;from&lt;/em&gt; master.&lt;/li&gt;
&lt;li&gt;The CI/CD pipeline won't all break right away.&lt;/li&gt;
&lt;li&gt;It's extra insurance against data loss.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead, create a Git hook to block any changes pushed to &lt;code&gt;master&lt;/code&gt;. This is a gentle way to transition your developers until they get into the new habit.&lt;/p&gt;

&lt;p&gt;Now, go change your build pipeline. This part may or may not take a while.&lt;/p&gt;

&lt;h2&gt;
  
  
  Phase 2: Retraining
&lt;/h2&gt;

&lt;p&gt;Instruct your developers to update their local copies, and give them time ­— say, a month? — to do it! Be sure to provide the commands to do so (see below).&lt;/p&gt;

&lt;p&gt;That commit hook will prevent them from pushing to &lt;code&gt;master&lt;/code&gt; out of habit, but the fact that &lt;code&gt;master&lt;/code&gt; still exists (but not as the primary branch) will help smooth the transition.&lt;/p&gt;

&lt;p&gt;To update a local copy to the new branch name, we're using the following code, based on &lt;a href="https://www.hanselman.com/blog/EasilyRenameYourGitDefaultBranchFromMasterToMain.aspx"&gt;this article by Scott Hanselman&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git checkout master
git branch -m master devel
git fetch
git branch --unset-upstream
git branch -u origin/devel
git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/devel
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At this point, you should also update your workflow documentation. If one or more of your team members has some extra bandwidth, consider asking them to undertake this. It will help them get into the habit of thinking of "devel" instead of "master".&lt;/p&gt;

&lt;p&gt;During this time, builds should still be running, but on the new branch name (barring errors). Most issues with the changes to the CI/CD will resolve during this time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Phase 3: Deleting &lt;code&gt;master&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;After about a month, your team will likely have updated their workflows and habits, at least for the most part. You can now delete &lt;code&gt;master&lt;/code&gt; on each of your repositories:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push origin --delete master
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each of your developers can see the change by running the following on their local copies:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git fetch -p
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expect a few fresh issues with your CI/CD (there's always &lt;em&gt;one&lt;/em&gt; typo, isn't there?), but most of those should be easy to iron out.&lt;/p&gt;

&lt;p&gt;And, you're done! You have a shiny new primary branch with a &lt;em&gt;useful&lt;/em&gt; name. What's further, you'll never have to do this again.&lt;/p&gt;

&lt;h1&gt;
  
  
  ...or so we hope!
&lt;/h1&gt;

&lt;p&gt;Okay, at least that's how it's supposed to go. We're through Phase 1 without any hiccups, but we'll be sure to update this post if there's anything else that comes up in the next month.&lt;/p&gt;

&lt;p&gt;For us, &lt;code&gt;master&lt;/code&gt; is set to be deleted on all our repositories on Monday, 03 August 2020! If there's any dramatic explosions of the build pipeline, we'll share the details on Twitter. :)&lt;/p&gt;

&lt;p&gt;Is there anything you or your team has done to make this transition go smoother? Let us know in the comments!&lt;/p&gt;




&lt;p&gt;&lt;sup&gt;WARNING: This is not the place to debate about whether master should be renamed. Any comments to that effect will be hidden and reported.&lt;/sup&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>inclusion</category>
      <category>git</category>
    </item>
    <item>
      <title>Goodbye Master, Hello...What?</title>
      <dc:creator>Jason C. McDonald</dc:creator>
      <pubDate>Mon, 29 Jun 2020 23:46:20 +0000</pubDate>
      <link>https://forem.com/mousepawmedia/goodbye-master-hello-what-34b9</link>
      <guid>https://forem.com/mousepawmedia/goodbye-master-hello-what-34b9</guid>
      <description>&lt;p&gt;Next week, we'll begin the process of renaming the &lt;code&gt;master&lt;/code&gt; branch on all our repositories to something else.&lt;/p&gt;

&lt;p&gt;In case this movement in tech is a bit unfamiliar to you, or you want to know how to do this yourself, &lt;a class="mentioned-user" href="https://dev.to/afrodevgirl"&gt;@afrodevgirl&lt;/a&gt; has an awesome and succinct summary:&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/afrodevgirl" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F9919%2Fh1GoEGde.jpg" alt="afrodevgirl"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/afrodevgirl/replacing-master-with-main-in-github-2fjf" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Replacing master with main in Github&lt;/h2&gt;
      &lt;h3&gt;Alexis Moody ・ Jun 16 '20&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#git&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#github&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#inclusion&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;h1&gt;
  
  
  Why the Delay?
&lt;/h1&gt;

&lt;p&gt;We've had this on our plan since mid-June, but we were in the middle of GAME MODE 2020, and given the pace and task prioritization involved, attempting this change then would have been more than a little disruptive to workflow, and quite prone to error.&lt;/p&gt;

&lt;p&gt;Now that we're moving into July and back into our usual tasks, the time is right to make the transition.&lt;/p&gt;

&lt;p&gt;Renaming the &lt;code&gt;master&lt;/code&gt; branch is easy enough itself, but that really belies what's involved:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;We have to rename the primary branch on over two dozen repositories.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We have to change the entire CI/CD pipeline to react to changes on the new primary branch name.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We have to update all our standards, policy documents, and workflow documentations to reflect the new primary branch name.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We have to test all of the above.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That really isn't too much to do, but it can easily turn into several days of poking the build system and pipeline with a stick. We don't mind, but hopefully you can see why we had to wait until now!&lt;/p&gt;

&lt;h2&gt;
  
  
  Picking a Name
&lt;/h2&gt;

&lt;p&gt;We've had a couple of discussions recently as a team about what to call this new branch. After all, if we're changing it anyway, we should take the occasion to find a &lt;em&gt;good&lt;/em&gt; name!&lt;/p&gt;

&lt;p&gt;Right now, our protected branches look like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;master&lt;/code&gt;: the current development version.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;fresh&lt;/code&gt;: the current beta or pre-release version.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;stable&lt;/code&gt;: the current release version.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Honestly, &lt;code&gt;master&lt;/code&gt; never made much sense. We only used it because that was the norm for Git.&lt;/p&gt;

&lt;p&gt;We've narrowed the possibilities down to four candidates:&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;devel&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Since the primary branch contains the latest &lt;em&gt;development&lt;/em&gt; version, which changes constantly, the name &lt;code&gt;devel&lt;/code&gt; might make sense. It sends a clear message to users browsing the repository that this version isn't intended for production use.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;devel&lt;/code&gt;, &lt;code&gt;fresh&lt;/code&gt;, &lt;code&gt;stable&lt;/code&gt;. That seems to spell out our workflow pretty well.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;edge&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Ben Halpern mentioned this name in a comment thread, and I (Jason) rather liked it. It refers to "bleeding edge", which implies that you &lt;em&gt;could&lt;/em&gt; use this version of the code, but that you'd need to beware sharp edges and bugs.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;edge&lt;/code&gt;, &lt;code&gt;fresh&lt;/code&gt;, and &lt;code&gt;stable&lt;/code&gt; sounds pretty cool, doesn't it?&lt;/p&gt;

&lt;p&gt;One downside: this may now also be reminiscent of a certain web browser, which could muddy the issue.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;main&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;This is an option only because GitHub uses it by default. Developers are likely to get used to it, if they aren't already.&lt;/p&gt;

&lt;p&gt;The problem is, &lt;code&gt;main&lt;/code&gt; seems to have the same vagueness of purpose &lt;code&gt;master&lt;/code&gt; did, if not moreso. What would you find in &lt;code&gt;main&lt;/code&gt;? The main version? Sounds good to Mr. End User...but they'd be wrong.&lt;/p&gt;

&lt;p&gt;Personally, with &lt;code&gt;main&lt;/code&gt;, &lt;code&gt;fresh&lt;/code&gt;, &lt;code&gt;stable&lt;/code&gt;, it makes &lt;code&gt;stable&lt;/code&gt; read as &lt;code&gt;stale&lt;/code&gt; to me. But maybe that's just my dyslexia talking.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;trunk&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;An oldie but a goodie. This term comes from Subversion, the industry standard version control software before Git really took off. We also get "branch" from this.&lt;/p&gt;

&lt;p&gt;Every branch is based on &lt;code&gt;trunk&lt;/code&gt;. It just makes sense! But does it fit our workflow? &lt;code&gt;trunk&lt;/code&gt;, &lt;code&gt;fresh&lt;/code&gt;, &lt;code&gt;stable&lt;/code&gt;. Not sure.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Do You Think?
&lt;/h2&gt;

&lt;p&gt;We're &lt;a href="https://phabricator.mousepawmedia.net/V26"&gt;running a poll&lt;/a&gt; on our Phabricator instance for all of our contributors to weigh in. You're encouraged to register for an account there via your GitHub (we usually approve new accounts within a couple of hours) and put your two-cents in.&lt;/p&gt;

&lt;p&gt;Alternatively, leave a comment here.&lt;/p&gt;

&lt;p&gt;Ultimately, the team will make the final call at week's end, so we can start the transition on Monday, 06 July, but we'd love your feedback!&lt;/p&gt;

&lt;p&gt;&lt;sup&gt;This is not the place to debate about whether &lt;code&gt;master&lt;/code&gt; should be renamed. Any comments to that effect will be hidden and reported.&lt;/sup&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>culture</category>
      <category>inclusion</category>
      <category>git</category>
    </item>
    <item>
      <title>Development Log: One Month In</title>
      <dc:creator>Jason C. McDonald</dc:creator>
      <pubDate>Mon, 29 Jun 2020 23:16:47 +0000</pubDate>
      <link>https://forem.com/mousepawmedia/development-log-one-month-in-4kh3</link>
      <guid>https://forem.com/mousepawmedia/development-log-one-month-in-4kh3</guid>
      <description>&lt;p&gt;Happy almost-July!&lt;/p&gt;

&lt;p&gt;We've reached the end of GAME MODE 2020, and while we've made significant progress, DiamondQuest is far from finished. What now?&lt;/p&gt;

&lt;h2&gt;
  
  
  Revisiting Expectations
&lt;/h2&gt;

&lt;p&gt;DiamondQuest's development was slowed out of the gate by some unexpected changes to our team, difficulties nailing down the main structure of the game, among other delays.&lt;/p&gt;

&lt;p&gt;Yet, even before June, we knew it was a very real possibility that DiamondQuest wouldn't be ready by July 1st! That's just the nature of software development.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fq7u673e9n1tzmoxapwkb.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fq7u673e9n1tzmoxapwkb.gif" alt="Good, Fast, Cheap...pick two." width="470" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But that's okay. Even though the official GAME MODE 2020 is over, we're continuing development on DiamondQuest, and will continue to update this development log accordingly. Our regular game engine development work is calling to us, but we'll keep devoting some of our time to DiamondQuest until it's done.&lt;/p&gt;

&lt;p&gt;Besides, we're rather proud of what we accomplished in June, regardless!&lt;/p&gt;

&lt;h2&gt;
  
  
  Map Generation
&lt;/h2&gt;

&lt;p&gt;With the help of open source contributor Harley Davis, Jason C. McDonald was able to finish the map generator:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fr5uxnkvuh02zhtda1zfi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fr5uxnkvuh02zhtda1zfi.png" alt="DiamondQuest: Randomly Generated Map" width="800" height="651"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;sup&gt;DiamondQuest block textures by WightKing for MousePaw Media. Licensed under Creative Commons Attribution-NonCommercial-ShareAlike-NoDerivatives 4.0&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;The deeper you go, the lower the probability of encountering caves and dirt, but the higher the probability of encountering treasure. This is generated by the &lt;em&gt;final&lt;/em&gt; code (more or less), so improving the map generator is as simple as tweaking a couple of constants later.&lt;/p&gt;

&lt;h2&gt;
  
  
  Player Movement
&lt;/h2&gt;

&lt;p&gt;Elizabeth Larson, Jason, and Harley built the model that the player avatar, The Miner, will use to be "aware of her surroundings", and to specify whether any particular player action is possible or not.&lt;/p&gt;

&lt;p&gt;That player movement is largely functional in the model, although it doesn't yet render on the screen. Elizabeth is expanding the sprite sheet for The Miner so we have all the artwork we need for that avatar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Menu
&lt;/h2&gt;

&lt;p&gt;Wilfrantz Dede has been working on the model for rendering the game menu. Because of our disability support goals, we have to design the menu interface to be easily navigable with only one key press at a time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Math Puzzles
&lt;/h2&gt;

&lt;p&gt;Adeel Hussain and Graham Mix have been building the model for generating the math puzzles the player has to solve, and getting the pieces in place to render that puzzle on the screen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Treasures!
&lt;/h2&gt;

&lt;p&gt;Open source contributor Anna Dunster has been creating some &lt;em&gt;amazing&lt;/em&gt; artwork for the treasures you can find in DiamondQuest!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fofv137xfxnbbjvgjmqm9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fofv137xfxnbbjvgjmqm9.png" alt="Ammonite" width="320" height="320"&gt;&lt;/a&gt;&lt;br&gt;
&lt;sup&gt;Ammonite fossil&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F4tmq6q3vvfub4ag308hd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F4tmq6q3vvfub4ag308hd.png" alt="Vescular Basalt" width="320" height="320"&gt;&lt;/a&gt;&lt;br&gt;
&lt;sup&gt;Vescular Basalt&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fhrepdzu9oqw27o0aoz2t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fhrepdzu9oqw27o0aoz2t.png" alt="Ruined Book treasure" width="320" height="320"&gt;&lt;/a&gt;&lt;br&gt;
&lt;sup&gt;I hope it's not overdue...&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fp1x8x6ildkqaifbuasco.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fp1x8x6ildkqaifbuasco.png" alt="Lost Sock treasure" width="320" height="320"&gt;&lt;/a&gt;&lt;br&gt;
&lt;sup&gt;Oh, &lt;em&gt;there's&lt;/em&gt; my other sock!&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;&lt;sup&gt;DiamondQuest treasure art by Anna Dunster for MousePaw Media. Licensed under Creative Commons Attribution-NonCommercial-ShareAlike-NoDerivatives 4.0&lt;/sup&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Want To Help?
&lt;/h2&gt;

&lt;p&gt;We'd love to have your help! Whether you're a coder, an artist, a sound designer, or a musician, your contributions would be greatly appreciated.&lt;/p&gt;

&lt;p&gt;Visit our website to learn more and join in the fun: &lt;a href="https://mousepawmedia.com/developers/contributing"&gt;https://mousepawmedia.com/developers/contributing&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>contributorswanted</category>
      <category>hackathon</category>
      <category>gamedev</category>
    </item>
    <item>
      <title>Development Log: All About Structure</title>
      <dc:creator>Jason C. McDonald</dc:creator>
      <pubDate>Fri, 12 Jun 2020 20:16:14 +0000</pubDate>
      <link>https://forem.com/mousepawmedia/development-log-all-about-structure-i8b</link>
      <guid>https://forem.com/mousepawmedia/development-log-all-about-structure-i8b</guid>
      <description>&lt;p&gt;We're halfway through GAME MODE 2020 — I know, time flies, right? — and the project is starting to take shape. But if you were to try and run the game right now, you might wonder what we've spent the last two weeks doing.&lt;/p&gt;

&lt;p&gt;After naming things, structure is probably the hardest part of application development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Goal: Just Render &lt;em&gt;Something&lt;/em&gt;!
&lt;/h2&gt;

&lt;p&gt;It's hard to build a game when you have no way to see the results. That's why one of the first goals in game design is just to get something rendering in the appropriate context, which in our case would be a window.&lt;/p&gt;

&lt;p&gt;Rendering an image in a window using Pygame? How hard could that be? While it's true there are dozens of tutorials describing exactly that, it won't do the development team much good if the code used for rendering something to the screen is throwaway code with no reuse value.&lt;/p&gt;

&lt;p&gt;This is where program structure comes into play. Who manages the window and its surfaces? How are those surfaces accessed for updating? How does the game even known when to redraw anything?&lt;/p&gt;

&lt;p&gt;Harley, one of our open source contributors, suggested using a Model-View-Controller structure pretty early on. It definitely fits the problem we're trying to solve, but picking a technique is the easy part. Now we had to answer a hundred questions that only became apparent as we started building:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Redrawing the window is expensive! How does the MapView know when the MapModel has been updated?&lt;/li&gt;
&lt;li&gt;How will we keep track of the player position?&lt;/li&gt;
&lt;li&gt;Rendering a math puzzle to the screen is harder than rendering the grid-like game map; how do we know when to redraw parts of that?&lt;/li&gt;
&lt;li&gt;Does everything depend on Window, or does Window actually manage things?&lt;/li&gt;
&lt;li&gt;What part of the code decides when to update Views?&lt;/li&gt;
&lt;li&gt;What part of the code decides (roughly) where on the screen one thing is in relation to another?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The list goes on, and none of those questions had easy answers. We couldn't even work out most of the solutions until we started &lt;em&gt;just building something&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Joys of Live Coding
&lt;/h2&gt;

&lt;p&gt;The MousePaw Media team makes extensive use of Visual Studio Code Live Share. Prior to GAME MODE 2020, we were doing plenty of pair programming, but once we started work on this game, we found more ways to use it.&lt;/p&gt;

&lt;p&gt;One approach we found helpful initially was &lt;strong&gt;mob programming&lt;/strong&gt;, where a whole bunch of us joined a Live Share session at once and started chatting about how to structure the project. Since we each have our own sector to work on, we started mocking out some beginning class structures and determining module dependency order.&lt;/p&gt;

&lt;p&gt;We didn't produce working code in those first two sessions, but we produced &lt;em&gt;something&lt;/em&gt;, and we had a vague idea about what went where.&lt;/p&gt;

&lt;p&gt;We've also been employing &lt;strong&gt;live coding&lt;/strong&gt;. I especially will post a read-only Live Share link to the project chatroom when I'm working, so that anyone can pop in and watch. That provides opportunities for learning on both sides; they pick up some of my Python technique, and I sometimes get valuable feedback as I work. However, as it doesn't require the same level of attention as pair programming, observers can work on their own thing even while watching me.&lt;/p&gt;

&lt;h2&gt;
  
  
  What About Issue Tracking, Anyway?
&lt;/h2&gt;

&lt;p&gt;Our goal to get an early version of the game built by the end of the month, paired with the delays from hashing out the structure, has meant that issue tracking has rather fallen by the wayside.&lt;/p&gt;

&lt;p&gt;We are not without direction, mind you! Our initial planning work on the wiki provides a pretty solid roadmap. However, when you can't really pin down how the program is even structured, issue tracking becomes difficult.&lt;/p&gt;

&lt;p&gt;Despite being a strong proponent of issue tracking, I've been okay letting this slide for a while. Ultimately, &lt;strong&gt;the primary goal is to ship working software&lt;/strong&gt;, and every part of the process should facilitate that goal. Issue tracking and code review are almost always essential, but we've found it reasonable to let both go temporarily so we can focus all our attention on getting &lt;em&gt;something&lt;/em&gt; building.&lt;/p&gt;

&lt;p&gt;Yes, you read that right...we temporarily ditched code reviews! Because we've been building the very structure that everyone's work relies on, I didn't want to hold up four other people while waiting for one person's work to get approved. We're moving so fast at this point, corrections to the code occur faster than the reviews themselves! It's easier just to allow somewhat broken code onto the &lt;code&gt;master&lt;/code&gt; branch and get it in a subsequent commit. We only started employing this at all in the middle of this week, and the reviews are mostly "in the next commit, address this" sort of comments. Precious little is being held back.&lt;/p&gt;

&lt;p&gt;Code reviews and issue tracking aren't out of the picture forever. Once the main structure is stable, we can reinstate both in full if we're certain they'll complement our efforts rather than hinder them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why yes, we &lt;em&gt;are&lt;/em&gt; making progress!
&lt;/h2&gt;

&lt;p&gt;Last night, we hit a milestone. Just before 9 PM, I finally got the MapModel, MapView, and Window classes communicating in just the right way to allow Harley's main game loop to trigger a screen update.&lt;/p&gt;

&lt;p&gt;The result?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F9rc4qz76ubftkw5re5pe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F9rc4qz76ubftkw5re5pe.png" alt="A portion of a randomly generated game map" width="800" height="381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Those are individual blocks, loaded from Wightking's blockset image, cropped, scaled up, and rendered on the screen according to the map generated by the code.&lt;/p&gt;

&lt;p&gt;I had to temporarily hard-code how many columns were showing on the screen, and what the map depth was right now, but I expect to get those parts sorted before the weekend is out. But the rest is production code, which we can continue to revise until everything works the way we want.&lt;/p&gt;

&lt;p&gt;Although I had the honor of being the first person to get the map drawing on the screen, this victory really belongs to the whole team! Everyone has played a role in getting DiamondQuest this far.&lt;/p&gt;

&lt;p&gt;It may not look like much, but this is huge. Our structure is just about done.&lt;/p&gt;

&lt;p&gt;&lt;sup&gt;Block images are part of the DiamondQuest Tileset by Wightking for MousePaw Media. Licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0&lt;/sup&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Meet the Miner!
&lt;/h2&gt;

&lt;p&gt;I can't end this development log without acknowledging the amazing artistic work of Elizabeth Larson, who has been creating the sprites for The Miner:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fqns1a390tqlra8f6z5r6.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fqns1a390tqlra8f6z5r6.gif" alt="The Miner with a drill" width="160" height="160"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fqrbtbhbpv36mqxskc4sn.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fqrbtbhbpv36mqxskc4sn.gif" alt="The Miner free-climbing" width="160" height="160"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F8ux6mcfwj3btl4bw2nxm.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F8ux6mcfwj3btl4bw2nxm.gif" alt="The Miner after too much coffee" width="160" height="160"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These will be processed to look like the 16-bit character you'd expect from our game. Honestly, I think The Miner is delightful!&lt;/p&gt;

&lt;p&gt;&lt;sup&gt;DiamondQuest character art by Elizabeth Larson for MousePaw Media. Licensed under Creative Commons Attribution-NonCommercial-ShareAlike-NoDerivatives 4.0&lt;/sup&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Join In!
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;See something you like? We'd love to have your help!&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;If you're a programmer, consider where you'd like to help: Map Generation, Player Movement, Math Screen, or Miner's Log. Of course, if you can't decide, you can always poke around until you find something interesting.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you're a graphics designer, we need &lt;strong&gt;treasures&lt;/strong&gt;! These would be larger, 16-bit style graphics of all sorts of goodies: ancient pots, dinosaur bones, coat hangers (yes really), rubies, gold nuggets, and of course, diamonds. The more treasures that can be found in the game, the more fun it'll be!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you're a musician, we've love contributions to the OST. In a later post, I'll be sharing a sample of the original menu music I've composed for the game.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you have any other skills that might be useful, and want to join in, we want you too! There are always lots of tasks that need doing, even beyond the obvious coding, drawing, and recording. Come on in!&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Visit our website to learn more and join in the fun: &lt;a href="https://mousepawmedia.com/developers/contributing"&gt;mousepawmedia.com/developers/contributing&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>gamedev</category>
      <category>hackathon</category>
      <category>contributorswanted</category>
    </item>
    <item>
      <title>Development Log: Planning a Game</title>
      <dc:creator>Jason C. McDonald</dc:creator>
      <pubDate>Tue, 26 May 2020 05:10:00 +0000</pubDate>
      <link>https://forem.com/mousepawmedia/development-log-planning-a-game-dl0</link>
      <guid>https://forem.com/mousepawmedia/development-log-planning-a-game-dl0</guid>
      <description>&lt;p&gt;GAME MODE 2020 starts next week, and we're eagerly preparing for it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Task Planning
&lt;/h2&gt;

&lt;p&gt;One of the chief challenges in building a game in a month is determining how everyone can work together. There's this pesky little thing called Brook's Law that we're up against:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Adding more people to a late project makes it later.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Many of the same dynamics that make this true can also slow down a project because of the size of the &lt;em&gt;original&lt;/em&gt; team. To avoid this problem, we have to be very deliberate about how we assign tasks.&lt;/p&gt;

&lt;p&gt;We've been planning DiamondQuest over the last couple of weeks, so we can dive right into coding on June 1st. As per our usual workflow, we've been mapping out all the design goals and features on our wiki.&lt;/p&gt;

&lt;p&gt;During our planning meeting on Saturday, we decided to divide up features into four sectors, with two of our eight developers assigned to each sector. In talking through the features, we identified four areas:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Map generation&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generating the map, including distributing treasure blocks,&lt;/li&gt;
&lt;li&gt;Rendering map textures,&lt;/li&gt;
&lt;li&gt;Loot tables, and&lt;/li&gt;
&lt;li&gt;Providing map information to other parts of the code.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Player movement&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Player controls,&lt;/li&gt;
&lt;li&gt;Rendering avatar sprite,&lt;/li&gt;
&lt;li&gt;Avatar movement &amp;amp; map interaction.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Math screen&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generating math problems,&lt;/li&gt;
&lt;li&gt;Interface for solving math problems.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Miner's Log&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tracking treasures found,&lt;/li&gt;
&lt;li&gt;Player profile and score,&lt;/li&gt;
&lt;li&gt;Game menu.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;By dividing the game tasks in this way, each component can be built in relative independence to the others, speeding up development time. We don't have to worry about developers stepping on each others' toes, and Brook's Law is averted.&lt;/p&gt;

&lt;h2&gt;
  
  
  Development Workflow
&lt;/h2&gt;

&lt;p&gt;Another component we needed to address was the turnaround time for code reviews. When you're trying to build a game in a month, you don't have time to review, test, and polish large changesets. Instead, we plan to make &lt;strong&gt;&lt;em&gt;small, frequent commits&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That is, instead of building a huge thing, like the loot table, in one shot, we build a small thing that's part of it, like a "dice roll". That gets reviewed and landed in a matter of hours, and the next piece can be built on top of it. We hope that by working in this manner, the project can support the contributions of &lt;em&gt;many&lt;/em&gt; people without slowing down.&lt;/p&gt;

&lt;h2&gt;
  
  
  Game Graphics
&lt;/h2&gt;

&lt;p&gt;My good buddy Wightking created the tileset for DiamondQuest. Since we're going for a 16-bit inspired platform-style game centered around mining and archaeology, we have to have cool things for the player to find.&lt;/p&gt;

&lt;p&gt;In order to keep things simple, we have three types of treasure block that are randomly scattered amidst the stone blocks that make up most of the map. These are the Fossil Block, which yields some sort of fossil or bone, the Artifact Block, which yields some archaeological artifact or other man-made object, and a Mineral Block, which yields various gemstones and precious metals.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Flbzxevv4k1nskhg979rq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Flbzxevv4k1nskhg979rq.png" alt="Fossil Block" width="127" height="128"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fktwkyaci4ay9516460ds.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fktwkyaci4ay9516460ds.png" alt="Artifact Block" width="127" height="134"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fbvzdz2wb453o3c3mxrqu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fbvzdz2wb453o3c3mxrqu.png" alt="Mineral Block" width="128" height="124"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These are just part of the lovely tileset that Wightking built for the game. You'll see more in later updates!&lt;/p&gt;

&lt;p&gt;Elizabeth Larson has also been working on the concept art for the miner character:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F3bgugxlexq7pnsf1tsci.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F3bgugxlexq7pnsf1tsci.png" alt="Miner Concept Art" width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;sup&gt;Tileset images are part of the DiamondQuest Tileset by Wightking for MousePaw Media. Licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;&lt;sup&gt;DiamondQuest character concept art by Elizabeth Larson for MousePaw Media. Licensed under Creative Commons Attribution-NonCommercial-ShareAlike-NoDerivatives 4.0&lt;/sup&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Join In!
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;See something you like? We'd love to have your help!&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;If you're a programmer, consider where you'd like to help: Map Generation, Player Movement, Math Screen, or Miner's Log. Of course, if you can't decide, you can always poke around until you find something interesting.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you're a graphics designer, we need &lt;strong&gt;treasures&lt;/strong&gt;! These would be larger, 16-bit style graphics of all sorts of goodies: ancient pots, dinosaur bones, coat hangers (yes really), rubies, gold nuggets, and of course, diamonds. The more treasures that can be found in the game, the more fun it'll be!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you're a musician, we've love contributions to the OST. In a later post, I'll be sharing a sample of the original menu music I've composed for the game.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you have any other skills that might be useful, and want to join in, we want you too! There are always lots of tasks that need doing, even beyond the obvious coding, drawing, and recording. Come on in!&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Visit our website to learn more and join in the fun: &lt;a href="https://mousepawmedia.com/developers/contributing"&gt;mousepawmedia.com/developers/contributing&lt;/a&gt;&lt;/p&gt;

</description>
      <category>contributorswanted</category>
      <category>hackathon</category>
      <category>python</category>
      <category>gamedev</category>
    </item>
    <item>
      <title>GAME MODE 2020: Building a Game in One Month</title>
      <dc:creator>Jason C. McDonald</dc:creator>
      <pubDate>Thu, 30 Apr 2020 23:38:47 +0000</pubDate>
      <link>https://forem.com/mousepawmedia/game-mode-2020-building-a-game-in-one-month-3i7e</link>
      <guid>https://forem.com/mousepawmedia/game-mode-2020-building-a-game-in-one-month-3i7e</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/SQ1SOyfjETQ"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Announcing &lt;strong&gt;GAME MODE 2020&lt;/strong&gt;, from June 1st through the 28th, where we're going to attempt to build an open source game in &lt;em&gt;one month&lt;/em&gt;. Our entire development staff is putting their usual work on hold for the month of June to work on a brand-new game: &lt;em&gt;DiamondQuest&lt;/em&gt;!&lt;/p&gt;

&lt;h1&gt;
  
  
  The Game
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;DiamondQuest&lt;/em&gt;&lt;/strong&gt; is a mining-inspired, 16-bit-style platformer where you search for buried treasure, fossils, and gemstones, using your math skills to dig. The game will use positive reinforcement to encourage players to keep playing and to challenge themselves; the relaxing, non-threatening game environment provides a new twist on math drills, without triggering math anxiety.&lt;/p&gt;

&lt;p&gt;Perhaps most exciting is that this will be an &lt;strong&gt;accessibility-first game&lt;/strong&gt;, designed to accommodate motor-impaired players who normally cannot play computer games. The keyboard-driven gameplay is designed for players who are either limited to single keyboard presses (e.g. with a head pointer) or have slower reflexes. The concept for DiamondQuest came from Lead Developer Jason C. McDonald's long-time desire to build a game for a friend from college who lived with cerebral palsy.&lt;/p&gt;

&lt;h1&gt;
  
  
  Tech Specs
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Python 3.7&lt;/li&gt;
&lt;li&gt;Pygame (probably)&lt;/li&gt;
&lt;li&gt;Packaging: pip, PyInstaller, Snapcraft, (+whatever else!)&lt;/li&gt;
&lt;li&gt;Target: Win/Mac/Linux Desktop&lt;/li&gt;
&lt;li&gt;VCS: Git&lt;/li&gt;
&lt;li&gt;Development Platform: Phabricator (MousePaw Media DevNet)&lt;/li&gt;
&lt;li&gt;Project License

&lt;ul&gt;
&lt;li&gt;Code: BSD-3-Clause&lt;/li&gt;
&lt;li&gt;Graphics/Music: Creative Commons BY-NC-SA (some CC BY-NC-ND)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The game will be completely free (as in free coffee). We won't be making &lt;em&gt;any&lt;/em&gt; money from it whatsoever.&lt;/p&gt;

&lt;h1&gt;
  
  
  Call for Contributors
&lt;/h1&gt;

&lt;p&gt;To pull this off, we need all the help we can get! We're putting out the call for contributors: developers, graphics designers, musicians, packaging gurus, math nerds (to help with the educational component), game design enthusiasts, and the like. Whether you're a novice or an expert, you'll find something to do.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;NOTE: We &lt;em&gt;especially&lt;/em&gt; need artists; we have one on our team, but having more will be a deciding factor in whether we accomplish our goal!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We'll be collaborating using Phabricator and Git, on MousePaw Media's DevNet platform. We have a robust issue tracker, code review system, automatic CI/CD pipeline, and chatroom. Instructions for getting started can be found at &lt;a href="https://mousepawmedia.com/developers"&gt;mousepawmedia.com/developers&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As we move closer to the start of GAME MODE 2020, we'll be announcing related events, including live collaboration sessions. We'll also be publishing Development Updates here on DEV, so follow us for the latest!&lt;/p&gt;

&lt;p&gt;So, can we do it? We're going to find out, and we would &lt;em&gt;love&lt;/em&gt; for you to join us!&lt;/p&gt;

</description>
      <category>contributorswanted</category>
      <category>hackathon</category>
      <category>python</category>
      <category>gamedev</category>
    </item>
  </channel>
</rss>
