<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Kiki’s Corner - Medium]]></title>
        <description><![CDATA[Whether you’re a student or a teacher, a beginner or expert, drop by weekly to find new tips, suggestions, and challenges! - Medium]]></description>
        <link>https://medium.com/kikis-corner?source=rss----7e0fe516c13a---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>Kiki’s Corner - Medium</title>
            <link>https://medium.com/kikis-corner?source=rss----7e0fe516c13a---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Tue, 10 Nov 2026 17:55:17 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/kikis-corner" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Approaching AI in the Classroom]]></title>
            <link>https://medium.com/kikis-corner/ai-in-class-125e7b3e45a1?source=rss----7e0fe516c13a---4</link>
            <guid isPermaLink="false">https://medium.com/p/125e7b3e45a1</guid>
            <category><![CDATA[makecode]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[teaching]]></category>
            <category><![CDATA[computer-science]]></category>
            <category><![CDATA[edtech]]></category>
            <dc:creator><![CDATA[Kiki Prottsman]]></dc:creator>
            <pubDate>Wed, 07 May 2025 19:14:11 GMT</pubDate>
            <atom:updated>2025-05-07T19:14:11.562Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*m-JmgEXrfG46Ho2bbqiteQ.png" /></figure><p>With all of the buzz around AI in the classroom, it’s tempting to fall into one of two extreme camps: embrace the use of AI in program creation, or caution students against using it altogether. At this stage of the game, I’d like to propose that we increase these options for a more inclusive learning experience.</p><p>First, I’d like to introduce a set of “levels” of learning with regards to AI. I developed this progression using similar ideologies to what I recommend in the classroom around the development of technology in general. These levels are not purely sequential, nor are they necessarily complete, but they *are* more inclusive than an all-or-nothing protocol.</p><h3>Levels of AI in Education</h3><p>Let’s take a look at the levels that I feature, then I’ll dive into explanations and examples.</p><ol><li>Pretending</li><li>Predicting</li><li>Using</li><li>Understanding</li><li>Creating</li></ol><h4>Overview</h4><p>At the time of this writing, the vast majority of the population is acutely unaware of the broader AI landscape (whether they realize it or not.) Many feel that AI is a technology that burst on to the scene around two years ago and is moving at a lightning pace to take over every industry. Some may even harbor fears of the singularity and world domination. These lenses color the technology in ways that will ultimately shape how those individuals decide to use — or not use — its capabilities.</p><p>One thing to note is that the current wave of AI isn’t the “world domination” type. The tools that we’ve been using with Copilot, ChatGPT, Midjourney, and Dall-e (etc.) are what we call “generative AI.” These technologies take in billions to trillions of datapoints and use them to create new pieces that follow similar rules. These systems learn from large datasets and produce statistically likely outputs based on prompts. They don’t think, plan, or make decisions independently. They don’t have goals or desires. They don’t “understand” in the human sense — they predict what is likely to come next.</p><p>While the progress of AI appears to have happened astonishingly fast, in reality, it grew more like bamboo. The roots were laid quietly underground for years before the shoots sprung out into public view. The first practical use of artificial intelligence happened in the 1950s with a robot mouse named Theseus that was able to solve mazes through trial and error. By the early 2010s, AI was already everywhere, but it was referred to as “advanced analytics.” Companies like Netflix used this to recommend better movies based on your tastes and Amazon used it to recommend better products based on previous purchases. Generative AI appeared in the form of a chatbot in 1966 and began showing up as predictive text in the 1980s.</p><p>The wave that we’re currently seeing is really more like viral marketing. These products are so fundamentally useful that they would be embedded within products whether or not we understood what was happening in the backend, and the only reason we see them as a swarm of AI clones rather than a series of individual innovations is that their parent companies have chosen to hop on the trendy term bandwagon.</p><h4>Level 1. Pretending</h4><p>While this method is stellar for young students (those beneath the standard 13-year-old COPPA floor) it’s also extremely useful for those who are just beginning their artificial intelligence journey. A lot can be learned about the process of generative AI by doing it yourself. It’s artificial artificial intelligence!</p><p>Imagine a classroom assignment where students are given two or more inputs and asked to create an output that follows the same rules? In English class, this could look like a set of poems that students need to digest and emulate. In art, it could be photographs that students need to choose elements from to put into a painting. In history, this could be using the study of the previous two world wars to figure out what a third might look like. Whatever the task, if you call it “Understanding AI” and complete it as a lightly cloaked game, it should be a big hit!</p><h4>2. Predicting</h4><p>Prediction is a fantastic thought exercise for any subject, but when it comes to AI, it can really help you start to see patterns. When you make predictions, you are forced to go through and digest data before making hypotheses around outcomes. Before students begin using AI to solve problems on the regular, it can be great for them to have experience trying to predict the ways in which AI might respond to certain types of prompts. The useful thing here is that students don’t need to use the AI themselves. This can be done as a classroom activity where the teacher does the prompting and the students make their predictions in groups, trivia style.</p><p>In physical education, this could look like predicting the answers that Copilot will give when asked what the most popular olympic sport is. It might also involve predicting what resources the AI used to craft that response. In Spanish class, it could be predicting the exact words or phrases that Copilot will suggest for translations of common sayings or predicting the best places to visit for those who speak Spanish as a second language.</p><p>Don’t forget to talk about <em>how</em> AI may have come to the conclusions that it did. Does it give you the same answer if you ask the question again in the exact same way? What will happen if you ask the same question again in a different way? Will you get a different answer? Is there a way to phrase your question so that you get exactly the answer that you want to get? What does that tell you about generative AI in general?</p><h4>3. Using</h4><p>This level is probably the most straightforward. Try providing students of an appropriate age and experience level with a set of tasks to be carried out using Copilot, ChatGPT, Midjourney, etcetera. Make sure they think through the prompting process, as well as the post-answer process. Before you undertake assignments like this (or incorporate it into other assignments) be sure to discuss your specific list of allowable parameters for AI use in your classroom.</p><p><strong>Allowable Parameters</strong><br>This list is up to you, but I like to divide my preferred methods of AI assistance into two categories: <em>idea generating</em> and <em>unblocking</em>.</p><p><em>Idea generating</em> includes things designed to help get past the blank page.</p><ul><li>“Copilot, I have an assignment where I need to write about a famous poet. Can you suggest 10 or more poets that are female, write short-form, and use humor in their work?”</li><li>“Copilot, I need to add two more paragraphs to my essay. Can you help me think of a way to do that that will enhance what I already have, but will not explode into several more pages?”</li></ul><p><em>Unblocking</em> includes defining the unknown, or ensuring the correctness of content that the student has already created.</p><ul><li>“Copilot, I remember hearing that Amelia Earhart crashed in the Bermuda Triangle and her plane was never found. Is this true? Where can I find sources that provide me with facts around that historical event?”</li><li>“Copilot, I made this game that is supposed to set a timer once, but instead it’s resetting whenever my character overlaps the pizza. Here’s my program…can you ask me questions meant to help lead me to the changes that I need to make?”</li></ul><p><strong>Disallowed Parameters</strong><br>I also make sure to be very specific about what I do not want to see. I do not want students to use AI to create anything that sacrifices “the point” of the assignment. If the assignment is to write a short story, then it may be okay to have AI generate pictures to enhance the presentation (properly sourced and cited) but it is not okay to have AI do any of the writing.</p><p>When in doubt, ask AI to provide you answers in Olde English or pirate speak so that you know that you’re not plagiarizing anyone else’s work and you still have to mentally process the material that you’ve been provided. Also, make sure to do your fact checking! Anything that can be disproven should be crossed out. Circle anything that you have at least two reputable, validated sources for.</p><p>I also tell students, in order to avoid future claims of cheating, they should cite everything and show their work. It’s helpful to include a printout of the AI’s assistance on the project.</p><p>Finally, I like to encourage the use of voice AI so that students practice active listening and note-taking.</p><p>Remember, the goal is to make students more curious, not less!</p><h4>4. Understanding</h4><p>You could think of this as a follow-up to predicting, but it also goes much deeper. Strong AI users need to understand how AI works, as well as its strengths and faults. In what ways does this help society? In what ways can it hurt? What privacy and security concerns should we have? The answers to these questions are best digested when students research them, rather than receiving the information directly.</p><h4>5. Creating</h4><p>For the most part, this level is for extreme cases…and probably CS students, but it can also be helpful for the larger population as a thought exercise. This could include anything from writing a spec for “The Perfect AI” all the way up to having students code their own bot or even their own GPT.</p><h3>Wrapping Up</h3><p>With all of this said, it’s not like there are zero downsides to the use of AI. With every pro, there is a con. I’m choosing to end this article with a list of positives and negatives that you can take into consideration before you decide how you want to use AI in the classroom.</p><h4>Pros</h4><ul><li>On-demand access to targeted information</li><li>Assists individuals with disabilities</li><li>Systematic improvements through pattern recognition</li><li>Increased debugging capacity and error prediction</li><li>Great for individualized instruction and adaptive learning</li><li>Allows for more constructive educator time (when students are able to help themselves with the small things, teachers can pay attention to more constructive tasks)</li><li>Voice-based and conversational options can lead to more engaging educational interactions</li><li>Allows students to be able to complete tasks that they would not have been capable of in the past</li><li>If needed, it can offer emotional and/or psychological support during difficult tasks</li></ul><h4>Cons</h4><ul><li>AI sometimes lies or is generally incorrect</li><li>Bias in source data can lead to bias in outputs</li><li>Lack of current regulations could lead to privacy leaks</li><li>Increased dependence on technology can lead to a decrease in human interaction</li><li>Technology that’s capable of doing all pieces of an assignment make it tempting to opt out of doing the work yourself</li><li>Generating pieces based on existing works can lead to copyright infringement or appropriation of another’s unique style</li><li>The water and electricity requirement for generative AI is astonishing compared to other tech resources. For every 800K text responses, you could build a full-size car. That number drops to 300K for image responses and 20K video responses.</li></ul><p>What are your thoughts on using AI in the classroom? Is there anything you would like to add to the conversation?</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=125e7b3e45a1" width="1" height="1" alt=""><hr><p><a href="https://medium.com/kikis-corner/ai-in-class-125e7b3e45a1">Approaching AI in the Classroom</a> was originally published in <a href="https://medium.com/kikis-corner">Kiki’s Corner</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Switching Color Palettes in Microsoft MakeCode Arcade]]></title>
            <link>https://medium.com/kikis-corner/colors-7a9bf6874a8c?source=rss----7e0fe516c13a---4</link>
            <guid isPermaLink="false">https://medium.com/p/7a9bf6874a8c</guid>
            <category><![CDATA[pixel-art]]></category>
            <category><![CDATA[edtech]]></category>
            <category><![CDATA[game-maker-guides]]></category>
            <category><![CDATA[arcade]]></category>
            <category><![CDATA[makecode]]></category>
            <dc:creator><![CDATA[Kiki Prottsman]]></dc:creator>
            <pubDate>Tue, 29 Apr 2025 04:45:59 GMT</pubDate>
            <atom:updated>2025-04-29T04:45:59.305Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/596/1*042sKX-_NhmW9z6GndecJA.jpeg" /></figure><p>Did you know that you can create your own color palette in <a href="https://arcade.makecode.com/">Microsoft MakeCode Arcade</a>? Read on to learn how.</p><p>While Arcade is hardwired to a 16 color limit (well, 15 colors + transparent), it is possible to change which colors are being used. All you need to do is switch to your “Assets” tab and click the “Colors” button on the left.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*K-YYqWhwLSj5ofXvfd2RgQ.gif" /></figure><p>From there, you can choose from a handful of pre-designed palettes, or you can design your own using Hex codes.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*GIfUSx31voqwiu5oDtcjBQ.gif" /></figure><p>Apply your palette, and it’s ready to use! That’s all there is to it!</p><p>What colors will you select?</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7a9bf6874a8c" width="1" height="1" alt=""><hr><p><a href="https://medium.com/kikis-corner/colors-7a9bf6874a8c">Switching Color Palettes in Microsoft MakeCode Arcade</a> was originally published in <a href="https://medium.com/kikis-corner">Kiki’s Corner</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Making and Using Extensions in Microsoft MakeCode Arcade]]></title>
            <link>https://medium.com/kikis-corner/making-and-using-extensions-in-microsoft-makecode-arcade-7bfebd9d1e53?source=rss----7e0fe516c13a---4</link>
            <guid isPermaLink="false">https://medium.com/p/7bfebd9d1e53</guid>
            <category><![CDATA[arcade]]></category>
            <category><![CDATA[makecode]]></category>
            <category><![CDATA[edtech]]></category>
            <category><![CDATA[github]]></category>
            <category><![CDATA[game-maker-guides]]></category>
            <dc:creator><![CDATA[Kiki Prottsman]]></dc:creator>
            <pubDate>Fri, 14 Mar 2025 00:29:09 GMT</pubDate>
            <atom:updated>2025-03-14T00:29:09.640Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*5DBRC1aG-cVN1wI76DCdIg.gif" /></figure><p>With so many features hiding under the hood, you might find that you aren’t able to take advantage of the most advanced block-based capabilities of <a href="https://arcade.makecode.com/">Microsoft MakeCode Arcade</a> unless you install some extensions.</p><p>Here is a brief tutorial that will help you get the most out of your MakeCode Arcade sessions.</p><h3>Loading Extensions</h3><p>Adding new extensions to MakeCode Arcade is simple, as long as you know where to find them. The option to add extensions is located near the end of the toolbox. Click it to go to the extensions library.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*IBrBeRS-_DOtKahxHc5Smw.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*KAFiFqymBoXcUxoDr8GTWw.png" /></figure><p>Arcade comes with several pre-loaded, pre-approved options to help with common things like scaling, adding darts, working with text, and more. What you might not know is that there are several amazing, pre-approved extensions hidden from view, as well.</p><p>To use these, you’ll need to know either their search terms or their location in Github.</p><p>Try searching for “carnival,” for example, and you’ll find this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-_mQg0Cmfc3PtrbPLHxzOw.png" /></figure><p>Sometimes, you’ll come across a “secret” extension in our <a href="https://forum.makecode.com/c/share-your-arcade-projects-here/5">forum</a> or in a <a href="https://arcade.makecode.com/courses">lesson plan</a> and you’ll have a github address for it.</p><p>Enter the Github address into the extension search bar and the extension should appear. Keep in mind, if the extension has not been pre-approved, it will come with a warning. You are using these at your own risk.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*FF1oR-VbeN3iGtQooxRYlA.png" /></figure><p>It’s very likely that any extensions you create yourself will also have this warning.</p><h4>Making it Simple</h4><p>Not quite ready for GitHub? Extensions can also be loaded using <a href="https://medium.com/kikis-corner/share-8152cbf92736">project share links</a>! Simply copy the share link from the project that holds your extension and paste it in to the extension search bar. The project’s tile should show up below.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*utCvRhZoVY4mJdiqro2u6Q.png" /><figcaption>Stopwatch extension copied directly from project share link — <a href="https://arcade.makecode.com/S89670-77688-24875-70261">https://arcade.makecode.com/S89670-77688-24875-70261</a></figcaption></figure><p>A couple of words of note on this method:</p><ol><li>It doesn’t matter whether you use the ‘_’ link (snapshot) or the ‘S’ link (persistent). Both will be converted to MakeCode’s own snapshot link…meaning that these extensions cannot be updated simply by republishing the same project. You’ll need to delete and re-add the extension to update (or edit the ‘pub:’ address in the pxt file.)</li><li>Unless you’ve <a href="https://medium.com/kikis-corner/image-packs-29db6ef3ce7c">marked your project with </a><a href="https://medium.com/kikis-corner/image-packs-29db6ef3ce7c">&quot;asset pack&quot;:true </a>, everything from that extension will be brought into your project, that includes images, functions, and even all of the blocks that you had in the workspace (although, those won’t show in the new workspace, they’ll just be running behind the scenes via one of the imported files.)</li><li>As with other extensions, bringing share links into your project will also bring in all of the extensions utilized in the file being shared. That means you could end up with several extra categories in your toolbox, when your desired extension only uses one.</li></ol><h3>Using Extensions</h3><p>Once you’ve loaded your extension, you can find the blocks in your toolbox.</p><p>Nearly all extensions will have their own categories, like this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*LY93t-M6zdqnC7_qZawBvg.png" /></figure><p>Some might add blocks to existing categories, but that’s an outdated practice that shouldn’t be seen much anymore.</p><h3>Removing Extensions</h3><p>Sometimes an extension interferes with something you’ve already done, or you decide that you want to go a different way. In those cases, you may need to remove an extension.</p><p>At the moment, this can only be done by switching over to text mode and deleting the extension from the file explorer.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*DcAMjvF7nEhPmee9b6McQw.gif" /><figcaption>Switch to text, then find the file explorer beneath the simulator. Scroll until you see the extension you want to delete.</figcaption></figure><h3>Making Extensions</h3><p>Making extensions can be as simple, or as complex as you need it to be for your programming level.</p><h4>Level 1</h4><p>If you create a function that you would like to use over and over again in different projects, you can move it into a <strong>custom.ts</strong> file using the text-based editor.</p><p>Simply flip to text, create a new file in the explorer window, and it will pre-populate with the name <strong>custom.ts</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/300/1*LWg_uuseKjL5m6kUVNATAQ.png" /></figure><p>Once that file is created, it will contain template code that acts as a guide for how to publish your function.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*UI9xsGoiFxkYKQrRVeD93Q.png" /></figure><p>Replace <strong>foo</strong> with the name of your function, and add the code inside. Make sure to change all of the parameters to the parameters that match your function, as well.</p><p>For example, if your function looks like this in your blocks code:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/580/1*h68jETjtMOS81_Otb_u8pA.png" /></figure><p>It will look like this in text:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*MPfXZPSv0arEcsRxqsnOmA.png" /></figure><p>And should look like this in your custom.ts file:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*urBElfivlbO31FxlRxtMGQ.png" /></figure><p>Make sure that the word “export” appears before your function name if you want that function to appear in the toolbox.</p><p>Zooming out, you’ll see that this whole thing is nested inside of a <strong>namespace</strong>.</p><p>This namespace here is “<strong>custom</strong>” (but we highly recommend that you change it to avoid colliding with other extensions called “custom”.)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*l5PNJXoZ9D4GiH4La1KzQA.png" /></figure><p>You’ll need to know the namespace if you’re going to call the function in text. If you’re using blocks, the namespace is called automatically.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/766/1*-pW0M8H5pzlxy0RyComiJA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/318/1*sQYZRixV8fCTaT2_l2AXGA.png" /></figure><p>If you want to modify category names, colors, and icons, you can edit those in the comments above the namespace.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1018/1*22-v3-aTuYRsPp12NANiPw.png" /></figure><p>Choose your colors from <a href="https://www.rapidtables.com/web/color/RGB_Color.html">RGB hex</a>, and your icons from free (not Pro) <a href="https://fontawesome.com/v4/icons/">Font Awesome libraries version 5.0 and earlier</a>.</p><p>You can play with your settings using our <a href="https://makecode.com/playground">Playground Tool</a>, then transfer them to your custom.ts file when you’re happy.</p><h3>Exporting Your Extensions</h3><p>The easiest way to save and export your extension (if you don’t have a Github account) is to grab the share link for your project and import that directly using the extension search bar, as described above.</p><h4>Level 2</h4><p>The next-most simple way is to save your project as a PNG (using the save icon) then import that PNG to the new project using the “Import” option under “Extensions.”</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/534/1*9d06hx1HOO1Fa4KyoDvJCg.png" /><figcaption>Save your project to your computer the same way your normally would</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*gn9vX32pKOrVC3vckZe5YA.png" /><figcaption>Import your extension from the saved PNG file using this button under the “Extensions” category</figcaption></figure><p>Neither of these options will allow you to automatically update the extension from your project as the extension evolves.</p><h4>Level 3</h4><p>The most common way to create an extension is to save the project to a Github repo (using the Github button)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1014/1*wtJ8mVx04CKANFxBc2gxOA.png" /><figcaption>Save your project to Github with this button</figcaption></figure><p>and import it by typing the project’s Github address into the URL bar of the extension window.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*UNQ-L9DpJ06r9Jcc2sj3Sg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Ywci3s44cWIDxJ3iD9FXtA.png" /></figure><p>This *will* allow you to automatically update the extension when new versions are published.</p><h4>Level 4</h4><p>If you find yourself creating extensions that you believe will be important and useful to many other Arcade users, you can follow the <a href="https://makecode.com/extensions/getting-started">directions located here</a> to get your repository approved for use by others, without the red warning.</p><h3>Conclusion</h3><p>While extensions are definitely more advanced features, using pre-approved extensions can be quite simple and can lend a whole lot of magic to beginner-level projects!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7bfebd9d1e53" width="1" height="1" alt=""><hr><p><a href="https://medium.com/kikis-corner/making-and-using-extensions-in-microsoft-makecode-arcade-7bfebd9d1e53">Making and Using Extensions in Microsoft MakeCode Arcade</a> was originally published in <a href="https://medium.com/kikis-corner">Kiki’s Corner</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Going Above and Beyond with Projectiles in Microsoft MakeCode Arcade]]></title>
            <link>https://medium.com/kikis-corner/advanced-projectiles-c0726ad040c4?source=rss----7e0fe516c13a---4</link>
            <guid isPermaLink="false">https://medium.com/p/c0726ad040c4</guid>
            <category><![CDATA[makecode]]></category>
            <category><![CDATA[game-maker-guides]]></category>
            <category><![CDATA[edtech]]></category>
            <category><![CDATA[video-games-industry]]></category>
            <dc:creator><![CDATA[Kiki Prottsman]]></dc:creator>
            <pubDate>Tue, 18 Feb 2025 02:32:22 GMT</pubDate>
            <atom:updated>2025-02-18T19:07:51.381Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/300/1*kZ0GiINrxTzIrhoJzVpnXQ.gif" /></figure><p>You probably already know how to <a href="https://medium.com/kikis-corner/projectiles-2a5340fa73a9">create simple “flying” items</a> in <a href="https://arcade.makecode.com/">Microsoft MakeCode Arcade</a>, but this post is here to help you take projectiles to the next level!</p><h3>What is a Projectile?</h3><p>In MakeCode Arcade, a projectile is a type of sprite that moves in a specific direction from the moment it’s created. Projectiles are often used for things like bullets, arrows, fireballs, or even thrown objects in a game.</p><p>Key Features of a Projectile in MakeCode Arcade:</p><ul><li>It moves automatically in a set direction</li><li>It is automatically destroyed once it goes offscreen</li><li>It can interact with other sprites, like enemies or walls</li></ul><h3>How Do I Create Projectiles?</h3><p>There are a handful of different ways to create projectiles in your project. For example, you <em>could</em> <a href="https://medium.com/kikis-corner/setting-up-sprites-in-makecode-arcade-4230734050bb">create any old sprite</a>, then send it flying by giving it velocity.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/563/1*LzD0Nxa_bRGxAIIvF40ClA.png" /><figcaption>Creating your own makeshift projectile</figcaption></figure><p>Of course, then you’d need to manage the starting location manually and make sure to destroy each one when the player can no longer see it.</p><p>If you <em>truly</em> want your objects to have projectile properties, you’ll need to create them using one of the set projectile blocks.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/795/1*fkmXEOOuzvs6bnnoZFV3NQ.png" /><figcaption>Showcasing the two different “projectile” blocks</figcaption></figure><p>The first block above automatically spawns each projectile from the center of “mySprite” with a velocity of x=50, y=200. The second spawns the projectiles inward from the side of the screen with a velocity of x=50, y=200.</p><h3>What If I Want to do More?</h3><p>Sometimes, you want to do more than fire a projectile and hope for the best.</p><p>Often, you want a collision event to make something happen when the projectile overlaps with something (like an Enemy sprite.) For that, you can use this container:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/733/1*gMrwpiauow7n3krni2XDkw.png" /></figure><p>(Make sure to use “sprite” as the variable name for whatever Projectile you’re affecting, and “otherSprite” as the Enemy’s name, otherwise, your code might have unexpected consequences. See example below.)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/731/1*Rzc2L6VB-o6845q7Bhl6lw.png" /></figure><p>Next, we’ll talk about some other projectile situations that you might want to know how to handle.</p><h4>Changing Projectile Speed Per Weapon</h4><p>You can change projectile speed or direction by affecting the x &amp; y velocity. The larger the absolute value of the number, the faster the projectile will travel along that axis. The positive/negative value determines the direction the projectile moves along that axis.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/400/1*F4z8rvrgXU3MLfYQICvVDg.png" /></figure><p>— — —</p><p>In MakeCode Arcade, <strong>**vx**</strong> stands for the “velocity in the direction of x” — which is a complicated way of saying “the speed from side to side.</p><ul><li>The larger your <strong>**vx**</strong> value is, the faster something will travel to the right</li><li>The lower your <strong>**vx**</strong>, the faster it will travel to the left</li><li>If your <strong>**vx**</strong> is 0, the item won’t move from side to side at all</li></ul><p>Similarly, <strong>**vy**</strong> stands for the “velocity in the direction of y” — which is a complicated way of saying “the speed from top to bottom.”</p><ul><li>The larger your <strong>**vy**</strong> value is, the faster something will travel downward</li><li>The lower your <strong>**vy**</strong>, the faster it will travel upward</li><li>If your <strong>**vy**</strong> is 0, the item won’t move either up or down.</li></ul><p>— — —</p><p>If you want to change the speed of your projectile for any given weapon, you need to change the size of your vx &amp; vy values. Personally, I’d do this with <a href="https://medium.com/kikis-corner/flags-13848a5c49c">flags</a> and multipliers.</p><p>First, set flags to keep track of which weapon your hero sprite is equipped with. In my example, I’ll have a squirt gun, a slingshot, and a firehose. The squirt gun is the least powerful. The slingshot is a little more powerful. The firehose is unbelievably powerful.</p><p><strong>Method #1: One “flag” that indicates the weapon by value</strong></p><p>Here, I’ll have my flags set as follows:</p><ul><li>0 = no weapon</li><li>1 = squirt gun</li><li>2 = slingshot</li><li>3 = firehose</li></ul><p>Then, I’ll use that number as a multiplier for the appropriate velocities.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*rc_NKWDPCyviDYnIbf8-Xw.png" /><figcaption><a href="https://makecode.com/_DMcJ34J9WgTz">https://makecode.com/_DMcJ34J9WgTz</a></figcaption></figure><p><a href="https://makecode.com/_DMcJ34J9WgTz">https://makecode.com/_DMcJ34J9WgTz</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/320/1*HqPMGyR5vO0Cy9fwTFilXA.gif" /></figure><p><strong>Method #2: A flag per weapon</strong></p><p>Maybe you want to be able to have two weapons at once. In this case, you’d want to set a boolean flag and keep track of whether each weapon is equipped separately. Then, you can check for that flag before creating the associated projectiles.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/706/1*4O_2Y4C6BtUc3lRYdD6Knw.png" /><figcaption><a href="https://makecode.com/_95kawWJ164tp">https://makecode.com/_95kawWJ164tp</a></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/320/1*XzlL9tL4VMc_LoRVFU3v-A.gif" /></figure><p>Can you think of another way to make this work?</p><h4>Make Projectile Fires in the Direction You’re Moving/Facing</h4><p>In some games, your hero sprite can move all around the screen. In these cases, you generally want your hero to fire projectiles in the direction that they’re moving. As with anything in Arcade, there are multiple ways to handle this, but the easiest is to get the current velocity of the hero and amplify it.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*kYkledLru88P75-ycVDX8g.png" /><figcaption><a href="https://makecode.com/_ecXL5hD7X9CT">https://makecode.com/_ecXL5hD7X9CT</a></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/320/1*w99vnHJsRaCbPy_Zt7yV4Q.gif" /></figure><p>The downside of this is that projectiles don’t move when the hero is standing still. In that case, you may want to consider firing in the direction that the hero is facing…and that might mean one of two things.</p><p><strong>#1: The same direction in which the sprite most recently moved</strong></p><p>This is arguably the easiest, since you can just keep track of the non-zero velocity that was used last and translate that to a direction.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/860/1*DKsl2RfdShuaDQhvZoDKmA.png" /><figcaption><a href="https://makecode.com/_UxvP17XgT9sJ">https://makecode.com/_UxvP17XgT9sJ</a></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/320/1*DNfJhoSJV09Qa02_pecXgQ.gif" /></figure><p><strong>#2: The direction that it appears your sprite is looking</strong></p><p>This requires you to assign a different direction value for each image your sprite switches to.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/589/1*Vhq4ex9jilOVHs_PQSYicg.png" /><figcaption><a href="https://makecode.com/_1fPgCp10hJjA">https://makecode.com/_1fPgCp10hJjA</a></figcaption></figure><p>At first glance this makes a lot of sense, but it doesn’t hold up if you choose to use animations. To make it work in that case, you’ll want the extension for microsoft/arcade-character-animations. That automatically changes the direction you’re “facing” based on the key you’re pressing when the animation is changed.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/498/1*6lAbeVQ0NU74qxMHJrQfZg.png" /><figcaption><a href="https://makecode.com/_Dje2eL1JYTpR">https://makecode.com/_Dje2eL1JYTpR</a></figcaption></figure><p>You can also override that assignment, using the set state block.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/359/1*L7YxxO1Z6ucMQh9VHTpjWw.png" /></figure><p>Then, utilize the extension’s mySprite is boolean block to check direction</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/822/1*kv4d4nvp3jyFcyVYfwQdVQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/320/1*J-ZvItemTmbfVb8hLBogjA.gif" /></figure><h4>Make Projectile Fire In Directon of Nearest Enemy</h4><p>Finally, what if you want to make it so that your projectiles always move in the direction of your nearest enemy? For that, you’ll need the Arcade Sprite Util extension that Joey made (<a href="https://github.com/jwunderl/arcade-sprite-util">jwunderl/arcade-sprite-util</a>.)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/813/1*_7l_tDPXP-ReOxuL436Ncw.png" /><figcaption><a href="https://makecode.com/_evo2gv5jxYtz">https://makecode.com/_evo2gv5jxYtz</a></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/320/1*7UyssfWdkt64qjPiKinE9g.gif" /></figure><p>Are there any other specialty projectiles you’re wondering about? Which style do you use most often?</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c0726ad040c4" width="1" height="1" alt=""><hr><p><a href="https://medium.com/kikis-corner/advanced-projectiles-c0726ad040c4">Going Above and Beyond with Projectiles in Microsoft MakeCode Arcade</a> was originally published in <a href="https://medium.com/kikis-corner">Kiki’s Corner</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Working Together on Projects in MakeCode Arcade (Advanced)]]></title>
            <link>https://medium.com/kikis-corner/collaborate-23ebb07b5251?source=rss----7e0fe516c13a---4</link>
            <guid isPermaLink="false">https://medium.com/p/23ebb07b5251</guid>
            <category><![CDATA[makecode]]></category>
            <category><![CDATA[edtech]]></category>
            <category><![CDATA[game-maker-guides]]></category>
            <category><![CDATA[arcade]]></category>
            <category><![CDATA[collaboration]]></category>
            <dc:creator><![CDATA[Kiki Prottsman]]></dc:creator>
            <pubDate>Mon, 20 Jan 2025 14:02:05 GMT</pubDate>
            <atom:updated>2025-01-20T14:02:04.160Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/311/1*ZllBRtvijhGNMF2Ig6n3ZQ.gif" /></figure><p>Sometimes, students want to work together to create something epic in <a href="https://arcade.makecode.com/">Microsoft MakeCode Arcade</a>. While we don’t have the ability to co-edit in real time from multiple computers, we do have quite a few features that make it possible to collaborate on something special.</p><p>If you want to see some amazing methods in action, look no further than our <a href="https://www.twitch.tv/msmakecode">Stream Team, building games live together on Twitch</a> (almost) every Monday, Wednesday, and Friday at 1pm PST. Past videos can be found on the <a href="https://www.youtube.com/@MicrosoftMakeCode">MakeCode YouTube channel </a>(<a href="https://www.youtube.com/@MicrosoftMakeCode">https://www.youtube.com/@MicrosoftMakeCode</a>).</p><p>Here are some of the top techniques used when building Arcade games with multiple people:</p><h4>1) Work Together Live</h4><p>If everyone is in the same room, you can utilize the steps from my first <a href="https://medium.com/kikis-corner/building-projects-together-in-makecode-arcade-9cf70e57aecc">collaboration blog story</a>, and try Pair Programming. Pair Programming is when multiple people sit at the same computer to work on the same project and one “drives” while the other one “navigates.”</p><p>The driver will control the mouse, do the typing, and decide which element of the program is being worked on at any given time. The navigator will think through problems, make suggestions, and help problem-solve along the way.</p><h4>2) Work from a shared document</h4><p>If multiple people *all* want to be drivers (and are familiar with JavaScript or Python) then it’s possible to divide and conquer. For the most simple experience, the team can decide which elements need to be coded and agree upon <a href="https://medium.com/kikis-corner/learn-functions-3829edc215ac">functions</a> that each person will work on. This method works best if everyone keeps <a href="https://medium.com/@kikiscorner/modular-6d62c6e8a45d">their functions nice an modular</a> and is very clear on the input and output for each procedure.</p><p>When each function is ready to go, it can be placed into a shared document to be copied into the main program when the coder is ready.</p><h4>3) Use Extensions</h4><p>If your group is not comfortable with text-coding or you’re not working at the same time OR in the same place, you might <a href="https://medium.com/kikis-corner/extensions-ac2c8a554a91">consider using extensions</a>. Extensions allow you to share your code by importing someone else’s project directly into your codebase. Extensions are very easy to both add and delete (if you’re comfortable switching into text coding for a few seconds) which means changes are fairly simple to make.</p><p>You can also use this method to share images across projects. If your group has an artist, they can make all of their sprites in one project and share that link as an extension for the programmer to import. It really is that easy!</p><h4>4) Use GitHub</h4><p>If you have access to GitHub and you want to make it even easier for multiple people to update the same project, try creating extensions and <a href="https://medium.com/kikis-corner/github-4ce4411d047c">uploading them to a GitHub repo</a>. This will allow the main programmer to connect all of the extensions initially, then when other programmers change their code, the main programmer can simply update the affected extension and they’ll have any changes instantly!</p><p>Using these key features, people can easily collaborate on games from their own computers without interrupting anyone’s flow or stepping on their code.</p><p>Give it a try and see what your team can come up with when working together!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=23ebb07b5251" width="1" height="1" alt=""><hr><p><a href="https://medium.com/kikis-corner/collaborate-23ebb07b5251">Working Together on Projects in MakeCode Arcade (Advanced)</a> was originally published in <a href="https://medium.com/kikis-corner">Kiki’s Corner</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Understanding Modular Functions]]></title>
            <link>https://medium.com/kikis-corner/modular-6d62c6e8a45d?source=rss----7e0fe516c13a---4</link>
            <guid isPermaLink="false">https://medium.com/p/6d62c6e8a45d</guid>
            <category><![CDATA[makecode-arcade]]></category>
            <category><![CDATA[edtech]]></category>
            <category><![CDATA[makecode]]></category>
            <category><![CDATA[function]]></category>
            <category><![CDATA[game-maker-guides]]></category>
            <dc:creator><![CDATA[Kiki Prottsman]]></dc:creator>
            <pubDate>Mon, 06 Jan 2025 14:01:48 GMT</pubDate>
            <atom:updated>2025-01-06T14:01:45.859Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/318/1*g9NDzUX4ChgCH7cft5dfgQ.gif" /></figure><p>Have you ever started working on a game in <a href="https://arcade.makecode.com/">Microsoft MakeCode Arcade</a> and watched it get larger and larger…and also messier and messier? I have a simple way to prevent that, and it all has to do with modular functions!</p><h3>What Are Modular Functions?</h3><p>Modular functions are chunks of code that are completely self-contained. They have a specific input and a specific output and because of that, nothing else in your program needs to get tied up in *how* that output is accomplished.</p><p>It’s like sending a text to a reliable friend saying, “Hey, can you grab cookies?” You’re providing them with an input (the text) and they’re providing you with an output (the cookies) and you don’t need to know what store they went to, how they got there, or what method they used to pay.</p><p>In MakeCode Arcade, Modular functions do the same thing for your code. They’re reusable blocks of instructions that you can call whenever you need them. Whether it’s making your character jump, spawning enemies, or counting your high score, modular functions help keep your game code neat and manageable.</p><h3>Why Bother with Modular Functions?</h3><p>Good question! Why not just pile all your code into one place and hope for the best? Well, here are some reasons:</p><ol><li><strong>Stay Organized</strong>: Without functions, your game code can turn into a spaghetti mess of blocks. Modular functions act like labeled bins — tidy, organized, and easy to find when you need them.</li><li><strong>Save Time</strong>: If you need your game character to do a backflip 10 times at different points throughout your game, you don’t want to scatter those instructions 10 times throughout your code. With modular functions, you create the backflip <em>once</em> and call it anytime using a single block.</li><li><strong>Debug Like a Boss</strong>: When something’s not working (because…bugs happen) modular functions make it easier to track down and fix the problem. Instead of combing through a jungle of blocks, you can just check the function.</li><li><strong>Future-Proof Your Game</strong>: What if you decide later that backflips need to include a glitter explosion? Update the function, and BOOM — glitter is added to all of the backflips.</li></ol><h3>How to Create and Use Modular Functions in MakeCode Arcade</h3><p>Let’s get hands-on! Open MakeCode Arcade, and we’ll walk through building a modular function.</p><p>We are going to make a monkey that teleports and spits when you press the space bar; flips &amp; sparkles when you press the enter key; and teleports, spits, flips and sparkles when you press the up arrow.</p><p>Prep the game</p><p>Start by adding your monkey, and adding three event containers for on button A press , on button B press , and on button up arrow press . Rename your sprite something meaningful, like “monkey”.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/590/1*SbunTqbQu28I6l9atDJAXw.png" /></figure><h4>1) Plan Your Functions</h4><p>First, you need to be very clear about what you want to provide to your function, and what you want to receive from your function. In this program, these are our expectations:</p><p><strong>Function 1 - Teleport &amp; Spit<br>Provide</strong>: Sprite to act upon<br><strong>Receive</strong>: Make provided sprite teleport to a random location and spit for 500ms.</p><p><strong>Function 2— Flip &amp; Sparkle<br>Provide</strong>: Sprite to act upon<br><strong>Receive</strong>: Make provided sprite flip to face the opposite direction and sparkle for 500ms.</p><h4>2) Create Your Functions</h4><p>Now that you know you need two functions to make these actions happen, you can create the function definition containers (which will also create the blocks to call each function.)</p><ul><li>Open the “Advanced” category in the toolbox.</li><li>Select “Functions” and click on <strong>+ Make a Function</strong>.</li><li>Name your function something descriptive, like spittingTeleport or random_move_and_spit.</li><li>Click the “sprite” tab at the top to add a <strong>sprite</strong> parameter. Then click “Done”.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*SbKzZSiMIdRhR-lulcNmhg.png" /></figure><ul><li>Do the same to create a second function that makes the monkey flip and sparkle.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/779/1*9Cww6FoDkLOya50DZ_9bXA.png" /></figure><h4>3) Add Blocks to Your Functions</h4><p>Your new function will look like an empty container. Drag in the blocks you need to make the sprite do what you’re asking.</p><p>Drag the red “mySprite” parameter into any block that affects your sprite. DON’T BE FOOLED by the “mySprite” variable that’s already in the block. It’s a <em>different</em> mySprite and it will give you an error if you leave it.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_RLa6IaafVHPoUMQoxeWAg.gif" /></figure><h4>3. Call the Function</h4><p>Now that you’ve built your function, it’s time to put it to work! Wherever you want the function to run, drag in a call [function name] block. Don’t forget to change the name of the sprite in each function call from “mySprite” to whatever you named your monkey. From here, it’s just like using regular blocks, but you made them yourself!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*bY4b1FWbvQar9FPOcBuV9Q.gif" /></figure><p>In this case, we want to run teleportSpit when A is pressed, flipSparkle when B is pressed, and both teleportSpit AND flipSparkle when the up arrow is pressed.</p><h4>4. Test and Refine</h4><p>Hit the play button and test your game. If something doesn’t work as planned, tweak your function until it behaves just right.</p><p>Can you see how utilizing this method could help keep your code nice and tidy, even as your program gets really big?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/918/1*3Tkn3W3G-ltF4lhCSSdI0g.png" /><figcaption>The finished game code with functions collapsed to keep the workspace tidy</figcaption></figure><p>Can you also see how it might help multiple people program together? If one person writes the main program and assigns others their own modular functions, all you have to do is combine them in the end and everything should just work!</p><p>Drop a comment below with your favorite ways to use functions in MakeCode Arcade — or let me know what you’re building! I’d love to hear about it.</p><p>Until next time, happy coding</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6d62c6e8a45d" width="1" height="1" alt=""><hr><p><a href="https://medium.com/kikis-corner/modular-6d62c6e8a45d">Understanding Modular Functions</a> was originally published in <a href="https://medium.com/kikis-corner">Kiki’s Corner</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[MakeCode Arcade: How Do I ______??]]></title>
            <link>https://medium.com/kikis-corner/how-to-203ca79604f9?source=rss----7e0fe516c13a---4</link>
            <guid isPermaLink="false">https://medium.com/p/203ca79604f9</guid>
            <category><![CDATA[csedweek]]></category>
            <category><![CDATA[arcade]]></category>
            <category><![CDATA[makecode]]></category>
            <category><![CDATA[edtech]]></category>
            <category><![CDATA[game-maker-guides]]></category>
            <dc:creator><![CDATA[Kiki Prottsman]]></dc:creator>
            <pubDate>Mon, 16 Dec 2024 14:21:25 GMT</pubDate>
            <atom:updated>2024-12-16T14:21:25.250Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/628/1*TMfCVFbT1b5IoO3AZxVbcQ.png" /></figure><p>If you’re new to <a href="https://arcade.makecode.com/">Microsoft MakeCode Arcade</a>, you may not know all of the ins and outs yet, especially if you came over from <a href="https://medium.com/kikis-corner/moving-from-scratch-5323442a5ac3">Scratch</a> or <a href="https://medium.com/kikis-corner/moving-from-code-4a138a8a852c&#39;">Code.org</a>.</p><p>No worries, this post will help you figure out how to do some of the most common things…but be sure to click on the underlined links, since they’ll take you to previous blog posts that provide a lot more detail.</p><h4>How Do I Get Started?</h4><p>When you arrive at the <a href="https://arcade.makecode.com/">https://arcade.makecode.com</a> page, you may not be quite sure what you’re looking at. Here’s an overview…</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*clY1JG_2XDORFUzsGhCdtQ.png" /></figure><p>The top shows a banner that highlights the most important things happening with the product. This could be special tutorials, videos, or even webinars.</p><p>The next row is where your projects will live. The big orange button starts a new project, and the white tiles to the right are projects that you’ve already started (you might not have any of those yet.)</p><p>All of the rows beneath that will point you to other content. We have “skillmaps,” which are groupings of tutorials that make larger games, and we have individual “tutorials” which are single activities that make games that are more simple.</p><p>If you keep scrolling, you’ll find a bunch of content that you won’t need until you’ve spent a little more time playing with MakeCode Arcade.</p><h4>How Do I Start a New Project?</h4><p>The details here all depend on what you’re trying to do! As mentioned above, clicking the orange button will start a new project.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/235/1*KOGbPvSY5gdbtmGZR8R55w.png" /></figure><p>Give it a name, then you can start coding.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/442/1*w2spqshbhkXYKsnmT-zeVg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*kQIZD_MpVVkvB-SnEjkSaw.png" /></figure><p>To the left, you’ll see the “game window.” This is where the results of your code will show. The section of categories in the middle is your “toolbox.” That’s where all of the coding blocks live. You can pull them out or put them back. To the right is the “workspace.” That’s where you’ll snap your blocks into place when you want to add them into your program.</p><p>You can learn more about starting a project in MakeCode Arcade by watching this video:</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FDE_-0flM324%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DDE_-0flM324&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FDE_-0flM324%2Fhqdefault.jpg&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/2346fe16da0dceb380793dbb9dd23629/href">https://medium.com/media/2346fe16da0dceb380793dbb9dd23629/href</a></iframe><h4>How Do I Create My Character?</h4><p>The characters in your games are called “sprites”. Visit the Sprites category for all of the blocks you’ll need to get your character on the screen and moving! <a href="https://medium.com/kikis-corner/setting-up-sprites-in-makecode-arcade-4230734050bb">This post will tell you all about creating sprites in your game.</a></p><p>Once you have your sprites, you’ll want to <a href="https://medium.com/@kikiscorner/moving-fca0a8bfc712">get them moving</a>, and maybe even <a href="https://medium.com/kikis-corner/bringing-sprites-to-life-with-animation-2b910de1936a">animate them</a>!</p><h4>How Do I Build the Rest of My Game?</h4><p>This is tough to answer, since I don’t know what kind of game you’re building! That said, I’ve written posts that address some of the most common tasks:</p><ul><li><a href="https://medium.com/kikis-corner/setting-the-scene-in-makecode-arcade-c4e8037f0658">Setting the scene</a></li><li><a href="https://medium.com/kikis-corner/collisions-and-triggers-using-overlaps-in-makecode-arcade-56d6e85deca5">Making things happen on collision</a></li><li><a href="https://medium.com/kikis-corner/scoring-2256dbe1d166">Keeping score</a></li><li><a href="https://medium.com/kikis-corner/enemies-e3770c15ac1a">Adding enemies</a></li><li><a href="https://medium.com/kikis-corner/arcade-levels-b9260c8f4d19">Creating Levels</a></li></ul><h4>How Do I Save My Game?</h4><p>There are a BUNCH of ways to save your game in MakeCode Arcade!</p><p><a href="https://medium.com/kikis-corner/saving-and-importing-51f38cfe3d0c">This article covers them all</a>, but basically, you can use:</p><ul><li>The save button</li><li>The snapshot button</li><li>The download button</li><li>or <a href="https://medium.com/kikis-corner/saving-and-importing-51f38cfe3d0c">GitHub</a></li></ul><h4>How Do I Share My Game?</h4><p>One of the biggest mistakes we see when people try to share their games on the forum is that they copy the URL (<em>which will always be arcade.makecode.com/#editor when you’re editing your project</em>) instead of hitting the “share” button.</p><p><a href="https://medium.com/kikis-corner/share-8152cbf92736">This article describes the proper way to share your games.</a></p><h4>How Do I Play My Game with Friends?</h4><p>Interested in multiplayer? You can create games that allow you to play against one other person on the same keyboard…</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/1*AeH57oqpNMto98LZY6UEFA.png" /></figure><p>…or you can make games that allow up to FOUR PEOPLE to play together online. <a href="https://medium.com/kikis-corner/design-multi-b9c6a2981d5a">This article will tell you more about that.</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/640/0*8Dj9YiZg1GqoqsTt.png" /></figure><p>And <a href="https://arcade.makecode.com/multiplayer">this page will explain</a> all about online multiplayer.</p><h4>How Do I Play My Game on Xbox?</h4><p>This is a fun one! All you need to do is download the free app!</p><p><a href="https://medium.com/p/00d8868e4778">Read more here…</a></p><h4>How Do I Mod a Game Someone Shared with Me?</h4><p>Once you paste the link they sent you in the address bar of your browser, the game will open in the window. Just click the “Edit Code” button above the game window to begin modding the game!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vUkFMTYuUeX0nu9oLvSaxg.png" /></figure><h4>How Do I Load a Game that I Saved Earlier?</h4><p>If you’re loading from a saved file, you can either navigate to the place where you saved that file and drag it into a window that already has arcade.makecode.com preloaded, or you can visit arcade.makecode.com and click the “Import” button to find the file on your computer.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*VeP5N2ENNsAIrY-4lFOaDA.png" /></figure><p>And that’s it! That’s everything you should need to know to get started using Microsoft MakeCode Arcade!</p><p>Did I leave anything out? Let me know by leaving a comment below.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=203ca79604f9" width="1" height="1" alt=""><hr><p><a href="https://medium.com/kikis-corner/how-to-203ca79604f9">MakeCode Arcade: How Do I ______??</a> was originally published in <a href="https://medium.com/kikis-corner">Kiki’s Corner</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Getting Characters Moving in Microsoft MakeCode Arcade]]></title>
            <link>https://medium.com/kikis-corner/moving-fca0a8bfc712?source=rss----7e0fe516c13a---4</link>
            <guid isPermaLink="false">https://medium.com/p/fca0a8bfc712</guid>
            <category><![CDATA[hour-of-code]]></category>
            <category><![CDATA[game-maker-guides]]></category>
            <category><![CDATA[makecode]]></category>
            <category><![CDATA[edtech]]></category>
            <category><![CDATA[arcade]]></category>
            <dc:creator><![CDATA[Kiki Prottsman]]></dc:creator>
            <pubDate>Mon, 02 Dec 2024 15:27:13 GMT</pubDate>
            <atom:updated>2024-12-02T15:27:12.758Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/290/1*KWxxoZRedVvtw91bzNtm4w.gif" /></figure><p>If you’re new to Microsoft MakeCode Arcade, you may not have had a chance to investigate all of the different ways you can get sprites moving. This post will help you learn about some of the most common.</p><h3>Move with Arrow Keys</h3><p>Definitely one of our most popular methods, moving a character (<a href="https://medium.com/p/4230734050bb">aka sprite</a>) around with the arrow keys is useful in many situations.</p><p>To make this happen, simply connect the move [mySprite] with buttons block BENEATH the block where you define your sprite.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/413/1*djSwWlq3FYKPTZ0Lj-kZhA.png" /></figure><p>Note: If you accidentally place the move block above the set block, the computer won’t know what you’re talking about yet, and you’ll get an error.</p><p>Nuther Note: Make sure that the name selected in the move block is the same as the name you gave your sprite in the set block or the computer won’t know what to move.</p><p>The d-pad on the game window, arrow keys on your keyboard, and the w,a,s,d keys on your keyboard should all now successfully move your sprite in the proper directions.</p><p>If you want to limit the directions that your sprite can move, click the + sign to the right of the block to extend the options.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/376/1*48DbaxSj7YDdwprAsI8opw.png" /><figcaption>Extended `move` block</figcaption></figure><p>Now you can choose how fast the sprite moves horizontally and/or vertically. Setting either of these to <strong>0</strong> will keep the sprite from moving in that direction altogether.</p><h4>Moving in Multiplayer</h4><p>Do you have multiple players that need to be moved around by different players’ arrow keys? You can either use this block from the Controller category…</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/345/1*oKWADgJDWCsmf8pcwbvj-Q.png" /></figure><p>…or one of these from the Multiplayer extension.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/259/1*MAwyRBCSBQSmPocQmnROkQ.png" /></figure><h3>Follow Another Sprite</h3><p>Sometimes, like with <a href="https://medium.com/kikis-corner/enemies-e3770c15ac1a">enemies</a> or dummy players, you may want your sprite to follow another character that’s already on the screen. This block makes that very simple.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/306/1*dg8rxl6enT4XHK856HjeuA.png" /></figure><p>However, you’ll notice that the following sprite stays pretty close on top of the main player very quickly. I like to slow the following sprite down a little to give the characters some space.</p><p>To do that, click the + at the right of the block, and change the speed to a lower number.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/423/1*zY69cqapPk0BXWR2Y13XKQ.png" /></figure><h3>Move Continuously</h3><p>Maybe you want your sprite to be always moving forward. This can be accomplished one of two ways.</p><ol><li>Scroll your background to make it look like the sprite is moving</li><li>Add horizontal acceleration to keep the sprite constantly moving</li></ol><h4>Scrolling Background</h4><p>We use this trick in tutorials like <a href="https://arcade.makecode.com/00050-04644-99185-20758">Save the Baby Dino</a>. By adding the <strong>arcade-background-scroll </strong>extension, you get access to this block</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/310/1*vvXlbL-xXekMHbt88_HGxw.png" /></figure><p>Which sets the background moving, making it look like your character is on a leisurely stroll.</p><p>Note: In order to use this block, you’ll need to add a background first or you won’t notice any change.</p><h4>Horizontal Acceleration</h4><p>When you want your character to <em>actually</em> move through the world you’ve created (particularly if you’ve set up a <a href="https://medium.com/p/857f47b539be">tilemap</a>) then you may want to use acceleration. To set your character moving to the right, you’ll want to drag out one of these blocks</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/231/1*eF8sDAMKphXbOtryY9f7aQ.png" /></figure><p>Then change the dropdown so that it’s showing ax (acceleration x) along with a positive number. A negative number will send the character off to the left.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/356/1*sLWjrKJuN-jN8IXHzStsVg.png" /></figure><p>Note: Don’t forget to instruct the camera to follow your sprite, or else your characters will dash off screen and you’ll never see them again!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/258/1*RkQz0rvmujCeHg2hIQbYvA.png" /></figure><h3>Move with Gravity</h3><p>Similarly, you may want your character to float or fall. This uses the same method as before, except you’re setting the ay (acceleration y).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/363/1*Dil8HXxFY60vAtCyerqZ2A.png" /></figure><p>Setting a positive number will pull down on your sprite, while a negative number will push it up.</p><p>Note: If you have the camera set to follow your sprite and you don’t have a tilemap showing, you might not notice that your sprite is falling. If you get in this situation, try removing the camera follow sprite block and see if the character drops off screen.</p><h3>Move Against Gravity</h3><p>Sometimes, you need to temporarily defy gravity — like when you’re jumping. To do this, use the same block as before, but change the dropdown to vy (velocity y).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/343/1*7x3UbRBS8Q8wLnxAne7joQ.png" /></figure><p>Then set the number to something less than what your acceleration is set to. This will give your character a temporary boost and make it look like they’re jumping.</p><h3>Teleport</h3><p>Would you like your sprite to move very long distances in the blink of an eye? Then teleportation may be for you!</p><p>This trick is generally done by detecting an overlap between the character and a certain tile on the tilemap, but it could be done when the character overlaps with some other sprite, as well. We’ll move forward with the tile example.</p><p>In this case, we want the character to teleport when they get to the bubble, so we’ll start with this container:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/446/1*kBAJgsC6iBMaWvXu_1AE9w.png" /></figure><p>Once that happens, we want the character to be placed on top of the treasure box tile, like so.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/449/1*gIvlyO-Ng5a81fHA9xGd0w.png" /></figure><p>Ta da! Teleportation.</p><p>Note: Since there is no place [mySprite] on top of specific [] block, you’ll need to note that one of two things might be true:</p><ol><li>There should be only ONE tile of the type you want your character to land on</li><li>Your character could show up on one of a few spots after teleportation</li></ol><p>Both options have their place, you just need to decide which is right for you.</p><h3>Destroy</h3><p>Finally, vanishing is a type of movement, isn’t it?</p><p>If you get to the place where you want your character to cease to exist, use the destroy mySprite block. This will take the character out of the game entirely.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/187/1*efvF7DK9UxHr3r4wu-R8QQ.png" /></figure><p>And that is my magnum opus about moving sprites. Hopefully you learned something.</p><p>Do you have something you want to teach *me* about moving sprites? Leave me a comment!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=fca0a8bfc712" width="1" height="1" alt=""><hr><p><a href="https://medium.com/kikis-corner/moving-fca0a8bfc712">Getting Characters Moving in Microsoft MakeCode Arcade</a> was originally published in <a href="https://medium.com/kikis-corner">Kiki’s Corner</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Customizing The Game Over Experience in MakeCode Arcade]]></title>
            <link>https://medium.com/kikis-corner/game-over-6c7aada9a07a?source=rss----7e0fe516c13a---4</link>
            <guid isPermaLink="false">https://medium.com/p/6c7aada9a07a</guid>
            <category><![CDATA[edtech]]></category>
            <category><![CDATA[arcade]]></category>
            <category><![CDATA[makecode]]></category>
            <category><![CDATA[game-maker-guides]]></category>
            <category><![CDATA[game-over]]></category>
            <dc:creator><![CDATA[Kiki Prottsman]]></dc:creator>
            <pubDate>Mon, 25 Nov 2024 14:02:09 GMT</pubDate>
            <atom:updated>2024-11-25T14:02:07.972Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*XlxAuhVUG9HXbAkmEJ_gUA.png" /></figure><p>Maybe you’ve added additional categories for scoring your <a href="https://arcade.makecode.com/">Microsoft MakeCode Arcade game</a>, or maybe you don’t want your losing music to be so sad. Whatever the reason, it’s possible to make your game even more special with a few tweaks to the Game Over experience!</p><p>MakeCode Arcade’s game category offers a variety of blocks that allow you to change how your game ends. In this post, we’ll explore how to use those blocks to create a custom, memorable game-over experience without straying from the essentials.</p><h3>1. Setting the Mood with Game Over Effects</h3><p>The default Game Over screen is a bit dramatic, but what if you want to add some flair? You can use the <strong>Game</strong> menu to set different effects for when the game ends. This can add a burst of excitement, silliness, or calmness depending on the effect you choose.</p><p>For example, to create a happy vibe, you might use:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/335/1*K2AWjqnIfuXg9jE6PZ5aEA.png" /></figure><p>This block sets the effect to rain smiles instead of confetti when the game ends as a win.</p><p>The available effects like “smiles,” “confetti,” “bubbles,” and more can completely change how the player perceives the game’s ending. Experiment with different effects to see which one matches the mood of your game!</p><h3>2. Customizing Game Over Music: Change the Tune</h3><p>You don’t have to stick with the default sad tune. If your game has an upbeat theme, you can change the music that plays on the Game Over screen using</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/493/1*Joq7BHxu_zAZCcscQVzTtg.png" /></figure><p>This block lets you set a tune and choose whether it should loop or play once at the end of the game.</p><p>LOSE sets the music for a loss. Use WIN to set the music for a victory.</p><p>Now, your game can end on a note that feels right, whether it’s celebratory or encouraging.</p><h3>3. Personalized Game Over Messages</h3><p>Want to provide a custom message based on the player’s performance?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/441/1*lmqhkfX_AABTcn4NS_w6Yg.png" /></figure><p>This block lets you display a specific message when the game ends. This is perfect for encouraging players to try again or congratulating them on their success.</p><p>You can set different messages for victories and defeats to match the tone of your game. For instance, if the player loses, you might want to use:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/578/1*3roMw65s9Q_UkHCKwsjAoA.png" /></figure><p>You can even include other variables in your game over message to let users know how well they did with items <a href="https://medium.com/kikis-corner/scoring-2256dbe1d166">beyond the score</a>:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/761/1*muADYpUK0zKC0yxPnAN6Cw.png" /></figure><h3>4. Combining It All: The Ultimate Game Over Customization</h3><p>Now that you know how to customize effects, music, and messages, let’s combine these into a complete game-over experience. Here’s an example of how you can set up a custom Game Over sequence for a winning scenario:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/521/1*ltQDzNRWQYnt5M1YLV1q5A.png" /></figure><p>And for a losing scenario:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/577/1*IMK7-3TI8ZGoso9vXO0igg.png" /></figure><p>It’s important to notice that you still need to call game over &lt;WIN&gt; or game over &lt;LOSE&gt;, since none of these customizations actually initiate the “Game Over” sequence.</p><h3>Why Customize?</h3><p>Customizing your “Game Over” screen gives players a memorable send-off that matches the feel of your game. Whether you want to make your ending cheerful, motivating, or even humorous, the blocks in the game category make it easy. Experiment with different combinations to create the perfect ending for your game!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6c7aada9a07a" width="1" height="1" alt=""><hr><p><a href="https://medium.com/kikis-corner/game-over-6c7aada9a07a">Customizing The Game Over Experience in MakeCode Arcade</a> was originally published in <a href="https://medium.com/kikis-corner">Kiki’s Corner</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[My Arcade Game is Broken, What Do I Do???]]></title>
            <link>https://medium.com/kikis-corner/my-arcade-game-is-broken-what-do-i-do-329a6ea81c6f?source=rss----7e0fe516c13a---4</link>
            <guid isPermaLink="false">https://medium.com/p/329a6ea81c6f</guid>
            <category><![CDATA[arcade]]></category>
            <category><![CDATA[game-maker-guides]]></category>
            <category><![CDATA[makecode]]></category>
            <category><![CDATA[debugging]]></category>
            <category><![CDATA[edtech]]></category>
            <dc:creator><![CDATA[Kiki Prottsman]]></dc:creator>
            <pubDate>Mon, 11 Nov 2024 14:02:10 GMT</pubDate>
            <atom:updated>2024-11-11T14:02:08.801Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/270/1*i9zNvR9zMGA_s_KNY4fcQQ.png" /></figure><p>From time to time, we might get a little carried away when coding and forget to test as we go. But, what is a game developer to do when they’ve spent hours (or days) on a game and it no longer works? Keep reading to find out.</p><h3>An Ounce of Prevention</h3><p>When coding, it’s always best to assume that something will eventually go wrong.</p><h4>1. Don’t tempt fate by trying Beta when you’re signed in</h4><p>Some curious go-getters love to experiment with the newest (and least stable) version of MakeCode Arcade. This is wonderful, since we always need testers, but it can be a mistake to switch to beta while you’re logged in. To avoid breaking a bunch of projects all at once, be sure to switch to an incognito/private tab before testing beta.</p><h4>2. Save Frequently</h4><p>Make it a habit to save your work at regular intervals. You can download your game project as a .png file by clicking the save icon at the bottom of the screen. This file contains all your code and assets and can be reloaded into MakeCode Arcade at any time. Regular downloads ensure you always have a backup, even if the online editor crashes.</p><p>If, for some reason, you don’t see the save icon, click the <strong>Download</strong> button and choose one of the displayed tiles. The file won’t be saved as a .png anymore, but it will still contain all of the images and code that you’d need to revive a lost project.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*lO0v9tNsrSf_L_p1zGSy8A.png" /></figure><p>Alternatively, you can click the screenshot button below the game window to save a .png to your computer. You may think it’s only saving an image of the game screen, but in reality, you can drop that image onto the editor window to open that version of your project at any time.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*OMHaL4KmwiVBOKVs0dq_-Q.gif" /></figure><h4>3. Use Version Control</h4><p>After significant changes or milestones, save new versions of your game with updated file names like game_v1, game_v2, etc. This will allow you to revert to previous versions if something goes wrong and avoid losing hours of progress.</p><h4>4. Utilize GitHub Integration</h4><p>MakeCode Arcade supports GitHub integration. By <a href="https://medium.com/@kikiscorner/github-4ce4411d047c">connecting your GitHub account, you can push changes to a repository as you code. </a>This ensures that every change is saved online and allows you to easily track changes and revert to earlier commits if needed.</p><p>Keep in mind that once you connect your project to GitHub, the traditional “save” icon goes away and you’ll need to use the <strong>Download</strong> button to keep up with emergency backups.</p><h4>5. Test Often</h4><p>Test your game as you make changes. This helps ensure that bugs or issues are caught early, preventing the need for extensive troubleshooting that could disrupt progress.</p><h4>6. Keep the Code Organized</h4><p>Keep your code modular by breaking it into small, manageable pieces (functions, events, etc.). This makes it easier to track changes and fix bugs without affecting the entire game, reducing the risk of losing progress due to one large coding error.</p><h4>7. Use the Undo Feature Wisely</h4><p>MakeCode Arcade has a built-in undo feature. However, be cautious when relying on it, as it can be limited. Always save before making major changes because undoing multiple actions can sometimes behave in unexpected ways.</p><p>It’s also worth noting that the undo history is cleared each time you swap between blocks/text/assets, so be sure to save a copy before making a jump like that.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/521/1*-4aQYquz95EIE9PnIjW9fw.png" /></figure><h4>8. Share to Friends, Forum, or Yourself</h4><p>Share links (whether persistent or snapshot) reference the entire codebase of your game. This is great if you somehow delete the game from your account, but only snapshots (the links that have the _ in them) will keep previous versions safe.</p><p>Make it a habit to share snapshot links via email, discord, or text so you have a record of previous versions of your game.</p><h3>Attempting to Debug Severe Issues</h3><p>If you were not able to save a previous version, or the code from the previous version was significantly changed, it’s probably worth trying to debug your issue.</p><p>The first step is to try to figure out where everything is going wrong. How far does the code get before it bugs out?</p><h4>Can’t Even Load Your Code?</h4><p>It’s possible that your codebase is too big! This generally happens because there are too many images, tiles, or animations in your game.</p><h4>Code Loads, but the Game Doesn’t Work Properly</h4><p>This is a case for traditional <a href="https://medium.com/kikis-corner/hunting-bugs-in-arcade-e556da46b6cc">debugging methods</a>, which I describe in detail in the article <a href="https://medium.com/kikis-corner/hunting-bugs-in-arcade-e556da46b6cc">“Hunting Bugs — Debugging and Troubleshooting in MakeCode Arcade.”</a></p><h4>Everything Works, but Something is Missing</h4><p>Is your game missing blocks of code? Have important images disappeared? Are tilemaps corrupted? If this is the case, and you don’t have any backups to pull from, you may want to reach out to us on the <a href="https://forum.makecode.com/">Forum</a>. Post on <a href="https://forum.makecode.com/">forum.makecode.com</a> to speak with our team and see if there’s anything they can do to help you get back the version that you’re missing. Sometimes, especially if you were logged in, our engineers can find what you need.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=329a6ea81c6f" width="1" height="1" alt=""><hr><p><a href="https://medium.com/kikis-corner/my-arcade-game-is-broken-what-do-i-do-329a6ea81c6f">My Arcade Game is Broken, What Do I Do???</a> was originally published in <a href="https://medium.com/kikis-corner">Kiki’s Corner</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>