Skip to content

Commit

Permalink
fix formatting
Browse files Browse the repository at this point in the history
  • Loading branch information
Hazel committed Mar 22, 2024
1 parent c884037 commit af56849
Showing 1 changed file with 24 additions and 41 deletions.
65 changes: 24 additions & 41 deletions content/blog/2024-03-12.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,50 +118,44 @@ The goal is to, for each branch, automate:

Doing these steps manually can easily take upwards of half an hour, and multiple people doing them over and over again is a lot of time and electricity needlessly spent.

Upgrading assembling machines
### Upgrading assembling machines

I’ve done a lot of upgrades to the automations that build the game for us.
Since we now have someone dedicated to managing server shenanigans (that’s also me!), we decided to ditch paying GitHub for server power and set up a bunch of our own for way less!
After doing that and then dedicating time to just cleaning up all the automation code and investigating issues caused by third party tools we use, we finally have builds that work all the time across MacOS, Windows, and Linux.
Speeding them up is another thing that was desperately needed, turning this:

![img](/img/2024-03-11/create-windows-long.png)
<small>A screenshot of an automation result showing: success, create-nightly-win, took 50 minutes and 33 seconds</small>
![A screenshot of an automation result showing: success, create-nightly-win, took 50 minutes and 33 seconds](/img/2024-03-11/create-windows-long.png)

With caching (avoiding doing the same work twice by saving tasks that take a long time), some code cleanup, and a lot of bug fixes, into this:

![img](/img/2024-03-11/create-windows-short.png)
<small>A screenshot of an automation result showing: success, create-nightly-win, took 4 minutes and 45 seconds</small>
![A screenshot of an automation result showing: success, create-nightly-win, took 4 minutes and 45 seconds](/img/2024-03-11/create-windows-short.png)

### Adding conveyor belts

A cool internal tool we now have is the Funkin’ Launcher (don’t worry: **the final game will not ship with a launcher** — we’re not a AAA studio).

This is how we can quickly get the built code to everyone who needs it to test. Here’s a screenshot:

![img](/img/2024-03-11/launcher.png)
<small>

<p>
a MacOS application, which is currently downloading a build of the game.<br>
The application is titled “Funkin’ Launcher” and has a 16:10 aspect ratio. The upper 85% are taken up by a drawing of Boyfriend and Girlfriend in a test chamber.<br>
At the bottom there are three interactive elements that are greyed out currently:<br>
The left one is a selection for the game platform (showing “html5”).<br>
The middle one is a selection for the game version (showing “html5-rewrite/master” followed by the current date).<br>
The right one is a button. The button text has been replaced by the download progress in percent, followed by the estimated remaining download time.<br>
Below the three interactive elements is a progress bar for the download.
</p>
</small>
![a MacOS application, which is currently downloading a build of the game.
The application is titled “Funkin’ Launcher” and has a 16:10 aspect ratio. The upper 85% are taken up by a drawing of Boyfriend and Girlfriend in a test chamber.
At the bottom there are three interactive elements that are greyed out currently:
The left one is a selection for the game platform (showing “html5”).
The middle one is a selection for the game version (showing “html5-rewrite/master” followed by the current date).
The right one is a button. The button text has been replaced by the download progress in percent, followed by the estimated remaining download time.
Below the three interactive elements is a progress bar for the download.](/img/2024-03-11/launcher.png)

<aside>
<img src="/icons/new-alert_yellow.svg" alt="/icons/new-alert_yellow.svg" width="40px" />
<strong>Nerd stuff: When to make sacrifices</strong>

The launcher was built in Electron. If you’re someone who pokes into the apps you use on a daily basis, you might’ve had a bit of an allergic reaction hearing that name, given the fact Electron isn’t very efficient with storage space nor memory usage.
I knowingly chose it despite that to make an important tradeoff: getting the launcher working and in the hands of testers in a very short time.
Funkin.2160p.BluRay.REMUX.HEVC.DTS-HD.MA.TrueHD.7.1.Atmos-FGT

</aside>

## Funkin.2160p.BluRay.REMUX.HEVC.DTS-HD.MA.TrueHD.7.1.Atmos-FGT

To make sure everyone gets access to all the files, tools, and services they need (and only the ones they need), I’ve also set up something called _single sign-on_ (SSO) service.

It avoids having a bunch of passwords and accounts to access different tools and data. Instead, you get a single account for everything Funkin’ ([except GitHub](https://sso.tax/)).
Expand All @@ -181,32 +175,21 @@ We use [authentik](https://goauthentik.io/) for our SSO. I chose it for us becau

One of the internal services we have is a download page for all of our tooling. It automatically figures out what tools you have access to from your SSO login, and then lists all of those for you.

![img](/img/2024-03-11/tools.png)
<small>
![A screenshot of Firefox on MacOS, navigated to tools.funkin.me/applications.
The website is a very dark grey with white text.
There is a list of applications, currently only showing “launcher”. The application name is followed by download links for different platforms (e.g. MacOS, Apple Silicon) and how long ago it was last updated.](/img/2024-03-11/tools.png)

<p>
A screenshot of Firefox on MacOS, navigated to tools.funkin.me/applications.<br>
The website is a very dark grey with white text.<br>
There is a list of applications, currently only showing “launcher”. The application name is followed by download links for different platforms (e.g. MacOS, Apple Silicon) and how long ago it was last updated.<br>
</p>
</small>
### All the data

All the data
Another, less pretty looking site we have is the log viewer. It allows developers to see the output of applications they put on our servers. For example, here’s the log output for when I solved an issue where one of our staff members couldn’t access game builds.

![img](/img/2024-03-11/logs.png)
<small>

<p>
A screenshot of Firefox on MacOS, navigated to logs.funkin.me.<br>
The website is black with white monospace text.<br>
The text reads:<br>
[2023-08-13 22:15] Block logged in with groups [ authentik Users ]<br>
[2023-08-13 22:15] FAIL: GET /uploads/ (Block with groups authentik Users)<br>
[2023-08-13 22:29] Block logged in with groups [ authentik Users, Staff ]<br>
[2023-08-13 22:29] GET /uploads/ (Block is staff)<br>
</p>
</small>
![A screenshot of Firefox on MacOS, navigated to logs.funkin.me.
The website is black with white monospace text.
The text reads:
2023-08-13 22:15: Block logged in with groups: authentik Users
2023-08-13 22:15: FAIL: GET /uploads/ (Block with groups: authentik Users)
2023-08-13 22:29: Block logged in with groups: authentik Users, Staff
2023-08-13 22:29: GET /uploads/ (Block is staff)](/img/2024-03-11/logs.png)

---

Expand Down

0 comments on commit af56849

Please sign in to comment.