Reviewing what I did on MMM in 2019

2019 is in its final hours and I’m looking back at the year and what I did for MMM. At first I feel like I got nothing accomplished, so many things I hoped to implement this year, I totally overcommitted. I am working on this on the side, and I need to remember this. Anyway, it isn’t true that I didn’t accomplish anything. When I look back and compare v1.0 with what I have now in testing, there are some nice advancements. So, let’s look at some of the things I did. I’m actively trying to make this as non-techy as possible.

SessionMaker merged into main Unity project

So many requests for the SessionMaker were impossible to implement with the old one. It was it’s own project with only thew most basic code shared (manually) to make sure that the file format handling was consistent. But requested features like a preview or a spiral editor (and a few more) couldn’t be done in that project, there was nothing that could reliably playback the session or effects in SessionMaker and if I tried that it would have meant to rebuild code that was already in the main project and always in danger of still having differences in how it looked. So, I completely recreated the SessionMaker in the main MMM project, with a slighly improved UI and functionality. In itself it doesn’t feel like too much of an imrovement over the old SessionMaker, but this allows me to implement so much greater features in the future. I also made sure to decouple a lot of the UI code from the actual session creation so that I can create a VR version as well, meaning that someday you will be able to create your sessions from within MMM, no longer bound to use the standalone editor. The new SessionMaker will be released together with v1.2 of MMM.

Build automation

Back when I released MMM v1.0 I had to manually build each target manually. This took a full day of my time and it was error-prone. If I set one checkmark wrong or had a typo in an option it could mean a few hours of switching platform, reconfiguring, building and uploading. But nowadays, if I want to create a new version, I check a few settings and start Unity cloud build. Each platform has its own little script that sets up everything itself, platform options, included scenes, build settings, app signing, VR options, quality settings, etc. and it works for MMM and the SessionMaker as well. Sure, cloud build still takes several hours to finish all 9 targets, but there’s no manual work involved after updating a build number and pushing that change to the correct git branch. After that I trigger those builds and can then focus on something else.

New main menu scene

I built a new island scene, looks better (according to testers) and even performs a bit better. The GUI itself also improved a bit and looks somewhat cleaner. For now I think it’s quite nice.

Updated the project to the latest version of Unity and rebuilt WiFi transfer

All store releases were done in Unity 2017.1 and I was reluctant updating since everything I looked into it there were tons of errors, outdated plugins, and a few things that were no longer working due to deprecated code. But earlier this year I decided I could no longer put it off, I had to update things while implementing a few things in SessionMaker. I threw out a few plugins, replacing them with different, newer ones. I rewrote code that formerly used deprecated functions. The biggest problem was the wireless transfer. It heavily depended on an old and outdated plugin that was using networking code that was no longer possible with the latest Unity. Now I am doing the look-around with my own code and the main connection & file transfer is me using  a C# library, completely independent from what Unity provides. While I definitely made the error of trying to get around that by using (multiple) Unity plugins, I fortunately realized that doing int myself was the smarter choice. This is one of my biggest wins for 2019 in regards of this project.

Reworked local file import

I always felt the inbuilt file browser was always clumsy and unwieldy. While it did get the job done (at least most of the time), it was always a hassle using it. I got rid of it. There’s now a defined import folder, put your files there by your favorite means, and MMM offers a cleaner interface where you can easily import any number of sessions in it. Much faster, cleaner, and no more clumsy folder navigation. Look forward to v1.2 for this.

Well, now I know what I did with my time and energy I had for MMM and now you do, too. For 2020 I make no promises, there are a lot of features I want to implement, but you’ll get them when they are done, It’s no use getting you hyped for anything that I haven’t even started to work on. That said, I will definitely work on v1.2 and I am really close to releasing it. With that I wish you a great New Year’s Eve! May 2020 be a wonderful year for you all!