Skip to content

Instantly share code, notes, and snippets.

@shichen85
shichen85 / GameMaker CICD.md
Last active July 22, 2024 14:24
Buttery Smooth Tech: Automate Your Builds in GitHub Actions

Buttery Smooth Tech: Automate Your Builds in GitHub Actions

Hello, Game Makers! This is Shi Chen from Butterscotch Shenanigans. I work on tools and pipelines to smoothly ship our games to all the platforms we publish on. And we publish on a lot of platforms! Our most cross-platform title, Levelhead, required 7 different builds to be made at least once per day. Without a way to automate those builds, our lives would have been very difficult.

Today, I want to share how we use GitHub Actions as build automation servers to make builds for our upcoming game, Crashlands 2. Build automation servers, or more fancily named, continuous integration and continuous deployment (abbreviated as “CI/CD”) servers, can liberate you from the tedious button-clicking and waiting when you build your project

@shichen85
shichen85 / xcode-loc.ts
Created March 25, 2023 23:34
Use npm XCode to add localization metadata to an iOS project generated by GameMaker.
import { dirname, basename, join } from 'path';
import fs from 'fs-extra';
//@ts-ignore
import xcode from 'xcode';
export async function addLocalizationWithXCode(
projectPath: string,
languages: L10nLang[],
) {
const languageFileRootDir = getLanguageFileRootDir(projectPath);
@shichen85
shichen85 / demo_olympus_quick_start.gml
Last active March 11, 2021 14:47
Code snippet for the quick start demo in README.md
function demo_olympus_quick_start(){
//Name your test suite
olympus_run("my suite name", function(){
//Name your unit test and add it to the suite
olympus_add_test("my unit test name", function(){
//Define the test assertion logic
var expected = "2";
var actual = "1";
if (actual != expected){
throw({