🪐v3 [In Progress!]

Rejected from the App Store yet again...

September 13, 2024 | v2.05

womp womp ScratchGO got rejected from the App Store again...

This time it was something about HTML5 games and how making an app with the sole purpose of playing these games was unsuitable for the App Store... Looks like I have to dig around some more and see if anything else works lol.

Last resort we go all out on web version and allow people to "install" it as a PWA, completely bypassing the App Store altogether. There are some interesting ideas here that may be more worth exploring actually! Maybe this is a good time to regroup and rethink what ScratchGO could really become... I'd been so caught up in the daily grind of fighting React demons and wrestling with Apple gods that I'd lost a bit of that initial excitement and vision of the limitless potential for bringing Scratch to mobile and other portable devices.

With a bit of planning and reflection, we can always come back stronger! Spider-man taught us to always get back up!

Custom .sgo file icon!

August 11, 2024 | v2.05

Look! We now have custom .sgo file icons for the files! Another step in making ScratchGO feel native!

File import flow on Swift app

August 9, 2024 | v2.04

After a few days of tinkering, I have made some exciting progress on the Swift app! The app now exposes the files in its directory directly in the files app - which also allows users to move and import the .sgo files once they download them. The goal is to create a seamless (as much as I possibly can) process of downloading Scratch games to play on phones. Next, I just have to figure out how to load the games in from the file directory end.

  1. After downloading the packaged project, the user can choose to open it directly in ScratchGO

  2. Since ScratchGO will be an app, it will show up as one of the options for users to open the file in

  3. A popup then shows up to help the user move the project they just downloaded into the app's directory

  4. Finally, the app is supposed to load in the project from the file but I haven't got that working yet lol - will update once that is working as intended...

Getting ready to submit to the app store!

August 2, 2024 | v2.03

Another morning another bug fix... we are getting closer to the App Store submission! Polished up a few loose ends this morning and tomorrow I can start working on getting .sb3 and .sgo file types to be automatically recognized for the app to have priority opening it! Hopefully it goes smoothly and we can get a submission in in the next 2 weeks!

iOS test build successful!

July 23, 2024 | v2.02

Looks like we may be making it to the app store with this one!

I spent the last week tinkering with getting the react version of the app to fit in a WebView on an ios app - since the recent release of emulators on the app store, I've been thinking about ways we could get ScratchGO onto the stores using the same logic, so I've been quickly reformatting the code to try out this new idea ASAP... Let's see what happens!

Uploading project from local files!

June 18, 2024 | v2.01

Figured out how to get local .sb3 files to upload to ScratchGO! Users will be able to upload their projects locally now too!

Joystick API connected!

May 19, 2024 | v2.01

The ScratchGO Joystick API implemented today has the following properties:

_SCRATCHGO_JOYSTICK1_X: number (-1~1)
_SCRATCHGO_JOYSTICK1_Y: number (-1~1)
_SCRATCHGO_JOYSTICK1_PRESSED: boolean
_SCRATCHGO_JOYSTICK1_DISTANCE: number (-1~1)
_SCRATCHGO_JOYSTICK1_DIRECTION: number (-180~180) // Scratch direction format

These values are read in from the ScratchGO joystick and sent into the VM directly updating the values of the variables inside the Scratch project. This method will make integrating ScratchGO with Scratch projects even more seamless and effortless. Scratch developers just need to make sure that their project has the corresponding variables created with the right names and ScratchGO will handle the rest!

I am also paying much more attention to the code now to try and do as much proper encapsulation and code refactoring as I move v3 along, taking my time to make sure I don't fall for any of the mistakes made in the previous 2 versions again. Looking forward to where this version is headed!

The start of the ScratchGO API

May 18, 2024 | v2.01

Imported a react joystick component and began working on connecting ScratchGO to the VM via some self defined APIs. This will enable us to use more involved methods of connecting the controller layer to the actual game itself, opening up the potential for more native feeling ScratchGO projects.

Setting things up!

May 16, 2024 | v2.01

Got some things set up today for a fresh new implementation of ScratchGO! This time I will make sure to develop in a more structural and sustainable manner so I wanted to take more time making sure everything is set up properly. Also got a small start working on the MVP for this version.

Road to v3!

May 15, 2024

Hello! I'm back after a break from ScratchGO development! After working daily on this project for the past 1.5 years I felt like I needed a break to readjust my perspective and vision for the project - ScratchGO has been growing beyond my expectations and it is not the same little hobby project that it was when I started 2 years ago! The following are the key points I want to focus on for the next major version of ScratchGO.

Mobile first design

After tinkering many many times with the idea of bringing Scratch to consoles and dediated hardware, I think sticking to mobile first will have to be the plan (at least for this stage). Since the entire purpose of Scratch is to make creating with code more accessible, I feel like mobile phones remain our most accessible option for bringing Scratch onto smaller, more portable form factors. I will still keep the possibility of console ports alive, as I too recognize how incredibly cool that would be but given the current resources and experience I have, I should focus on making it really good for mobile first.

Minimum interference, Maximum creative freedom

If we are adopting a mobile first design, that would mean a shift in the overall structure and logic of the user interface.

As illustrated with this mockup, I want to create a much more fluid system for customizing your own game's UI with ScratchGO. Getting rid of the top bar and grid-based controls can also help the game look and feel more native, not like some emulator playing the game on hardware it wasn't made for.

Open Source ready

I have many ideas for ScratchGO but I know the community has even more! That's why v3 will be developed with the final goal of eventually open sourcing (either part or entirely) the project so that the community can contribute their own ideas and code. I am very very excited for this prospect as this could mean an ever expanding library of custom extensions and custom components to help people build their Scratch games onto mobile compatible web apps even easier!

That's it~ These are the 3 key principles I am developing ScratchGO under. I just finished my final exams so I hope to be doing much more development in the coming few months! See you in the next devlog!

-Enoch

Last updated