Posted December 30, 2020 by Konrad Gadzina
#release #microStudio #microStudio Companion
Great news for everybody making games in microStudio! If you ever wished to have ability to put your microScript code in version control with ease, the tool I made will make you happy.
microStudio Companion is a tool that allow you to export all files from your microStudio project and download it to a local directory on your computer. The only thing left after that is creating a git repository for it, commiting and pushing the changes.
Go to https://microstudio.dev, make some games, and test my tool, available here - https://fenix.itch.io/microstudio-companion :D
In the middle of October 2020 I started an experiment - I wanted to check if I will be able to make 1 game each day for a month. And here I am, the end of December and I made 75 small games in 75 days. At the beginning of this experiment I checked out a fresh small browser-based 2D game engine called microStudio. I created 56 games using microStudio since that day.
You can access microStudio from your browser here - https://microstudio.dev
I liked the experience of making games with it, as it was smooth and portable. I didn't have to wait minutes before Unity starts or imports some assets and didn't have to stick to a computer. microStudio is accessed via browser, so I can use it even from my phone. And, to be honest, that was the basic reason why I started using it. I was in the middle of formatting my laptop's hard drives and reinstalling Windows and the midnight was coming, so I wanted to make a game on my phone. I connected bluetooth mouse and keyboard to the phone and started learning microStudio.
Creating games each day made me focus on reusing my previous work - both sprites and code. In some moment I decided to start writing a kind of "engine" for my games in microStudio to not repeat the common parts anymore. As my nickname is FeniX, and as it's my engine, I decided to call it Fengine. :D After that I realized you can "decode" that name a bit differently and I even made the icon showing it (still work in progress ^^).
As the codebase of Fengine started to grow, I started to worry about losing my work because of some mistakes. microStudio allows you to clone your projects, so I made a copy each time I achieved something bigger. For some time it was enough, but not for long. I needed better version control. Gilles, creator of microStudio mentioned that he might implement some backup options in the future, as more users started to ask for it. But I didn't want to wait and started to dig deeper to find a solution.
"If you don't have the right equipment for the job, you just have to make it yourself." - MacGyver
I didn't find existing solution, so I decided to make something on my own. This tool, microStudio Companion, is the second step on that road. Previously I wrote some JavaScript code to generate download links for all files from currently opened project and stored that code as bookmarklet. After getting all the links I downloaded it with "Simple mass downloader" browser extension and manually copied downloaded files to my project local folder.
It worked for few days, but it was a bit annoying in the long run. To much manual work for a process that is intended to make me feel safer.
In the end I came back to my original idea of creating a desktop app in C# that will handle the whole process. It connects with the server using web socket, send the same request, as microStudio's frontend does and handles responses in the way that make it possible to list and download files from specified project. You have to provide your username and password for yout microStudio account, but the password is not stored anywhere - it is used only for a moment, when the app has to connect to the server for the first time, or when the token provided by the server is no longer valid.
It's .NET Core Console App that can be build for Windows, OSX and Linux. I know that both Windows and OSX versions works, but I didn't have chance to check Linux.
I did my best to handle all the edge cases that came to my mind. The tool is not perfect (yet!), but it serves it's purpose well, at least for me. And for one other microStudio user, TinkerSmith, who even created a reward for me. :D
Apetite comes with eating, as they say. When basic features started working, some new possibilities came to my mind. From what I've learnt so far, I should be able to not only get current state of the project from microStudio, but update it as well. So the next step will be to implement sending updated file content back to the server. After that I will handle removing files. When both will be ready, I will work on integrating it with VisualStudio Code. First I will try combining existing extensions to try it out, but it's temting to start working on a dedicated extension for that purpose.
For now, go to https://microstudio.dev, make some games, and test my tool, available here - https://fenix.itch.io/microstudio-companion :D
Thanks for reading all of this. :) Have a great day and Make Games Today!