BeagleBoard/GSoC/2023 Proposal/MakecodePocketBeagle

= Makecode Arcade Target for PocketBeagle Gamepup= Student: Mrigank Pawagi Mentors: Vaishnav/Andrew Henderson/any other mentor Code: https://github.com/mrigankpawagi/repository Wiki: http://elinux.org/BeagleBoard/GSoC/2023_Proposal/MakecodePocketBeagle GSoC: GSoC entry

=Status= This project is currently just a proposal.

=Proposal= The pull request to my entry task can be accessed here. This demonstrates my ability to cross-compile and test my compilation with QEMU.

About Me
IRC: mrigank Github: https://github.com/mrigankpawagi School: Indian Institute of Science (IISc), Bengaluru Country: India Primary languages: English, Hindi Typical work hours: 8AM-11PM IST (GMT+5:30) Why I want to participate in GSoC My first encounter with open source was with Google Code-In, where I got the opportunity to work with organisations like JBoss, Publiclab and Drupal. Not only did I develop the skill to write better code by understanding conventions and learning to write good comments, but also improved my skills to communicate with other developers through documentation. Most importantly, I learned to use git! These skills helped me for years to come, and made me realize that open-source development helps not only projects and organizations, but also assists the growth of individuals as developers. Recently, while learning about flaky tests, I scanned through the International Dataset of Flaky Tests (IDoFT) and using GitHub Actions, confirmed flaky tests in multiple over-source repositories with NonDex. I was also able to fix the flaky test in one of these projects (30 Seconds of Java 8). Google Summer of Code will give me the opportunity to continue my endeavors in the open-source space and continue to sharpen these skills which will benefit me for the entirety of my academic and professional career. In particular, I am highly interested in educational technology and have worked on several experimental projects to create interactive learning interfaces. I also received a grant from MIT Solv[ED] to explore the need and impact of such tools, with a focus on drag-and-drop interfaces like Makecode. The opportunity to work on one such tool myself by increasing access to PocketBeagle is truly exciting to me.

About your project
Project name: Makecode Arcade Target for PocketBeagle Gamepup

Description
Microsoft Makecode Arcade is a free game development environment that makes it possible for people who are new to coding, especially young students, to program games for the web and for handheld devices using a block-based programming interface. It also has an in-browser board simulator for running the game as one develops it. My project aims to develop and deploy a Makecode Arcade target for PocketBeagle boards with the Gamepup cape. This will make it easy for beginners to harness the power of PocketBeagle by making learning to code an enjoyable experience. Since Makecode Arcade allows sharing projects, tutorials, courses, etc. with everybody on the platform, PocketBeagle users will also be able to utilize these resources to their advantage as they get comfortable coding with the board. I will also create some demonstrations and tutorials to help people get started with Gamepup on Arcade. I will use TypeScript/JavaScript to create support for PocketBeagle Gamepup in Arcade, which is essentially based on PXT. I will be using BoneScript to send commands to the UF2 daemon running on the board to program it. I also plan to create specialized Arcade blocks for the board to perform advanced tasks related to multiplayer capabilities, game currency, etc.

Timeline
I will be open to extending the deadline if the project goals demand so.

Experience and approach
Although my University has rigorous coursework, I am usually able to take out 30-40 hours per week for extra- and co-curricular activities. Due to club activities and other projects, I have become comfortable with this schedule and am confident that I can devote around 25 hours every week to this project. Although I haven't used BeagleBoard before, I have had decent exposure to Raspberry Pi and Arduino. Besides several robotics projects, I worked with Raspberry Pi on a project aimed at creating personal servers which people can keep at their homes. These servers could store data and communication in a decentralized manner and could communicate with other servers in a one-to-one fashion. I have also been working with Professor Pradipta Biswas from the Center of Product Design and Manufacturing at IISc to create open-sourced, educational robotics projects using Arduino along with detailed guidelines. My experience with Linux goes beyond using Raspberry Pi – I have been using Ubuntu for personal use (particularly for software development) for quite a while, and have also used Linux Mint and Debian on VirtualBox for compiling programs in the absence of a cross-compiler.

In 5-15 sentences, convince us you will be able to successfully complete your project in the timeline you have described.

Contingency
What will you do if you get stuck on your project and your mentor isn’t around?

Benefit
If successfully completed, what will its impact be on the BeagleBoard.org community? Include quotes from BeagleBoard.org community members who can be found on http://beagleboard.org/discuss and http://bbb.io/gsocchat.