All case studies
    Our own studioCase study · Ayelet Studio

    Shipping Son of Thanjai to PS5, Xbox Series X|S and PC

    Ayelet Studio is the team that built SpeedrunCI, so it is our own story. We are a studio of about 30 people in Chennai making Son of Thanjai, an action adventure set in 11th-century South India, in Unreal Engine 5. SpeedrunCI started as the internal tool that fixed our builds. We still build the game on it every day.

    Disclosure: SpeedrunCI is made by Ayelet Studio. The numbers below are our own measurements.

    Studio
    Ayelet Studio, Chennai, India
    Team
    About 30 people
    Game
    Son of Thanjai, action adventure
    Engine
    Unreal Engine 5
    Platforms
    PS5, Xbox Series X|S, PC
    Before
    Jenkins and one build machine
    Same project, same hardware, same repo
    Jenkins
    3h 32m
    SpeedrunCI
    27m

    A full build of Son of Thanjai, measured on the same machine. The first SpeedrunCI build is slower while the cache warms up.

    Architecture
    01Trigger
    Unreal Editor pluginBuilds from the toolbar
    Hosted Lore repositorySource of every build
    02Orchestrate
    SpeedrunCI pipelinesOne per platform, same commit
    Game-aware cacheCode, cooked assets, derived data
    Credential vaultConsole signing keys, AES-256-GCM
    03Build in parallel
    Win64Dedicated runner
    PS5Dedicated runner
    Xbox Series X|SDedicated runner
    04Deliver
    Artifact storageSigned, expiring download links
    Studio dashboardLive status for producers and QA
    Team chatSlack and Discord alerts
    One commit fans out to a pipeline per platform. Each builds on its own runner, side by side, with the game-aware cache and the credential vault feeding every run, and the finished builds land in artifact storage and on the dashboard.
    Before

    Half our energy went into keeping Jenkins alive

    We started with Jenkins, like most studios. Within weeks we were calling BuildGraph as a shell command, passing state through environment variables and shared folders, and adding flags to work around failures we did not fully understand.

    A full build took over three hours. The three platforms ran one after another on our single build machine, so shipping all three took three times as long. A single texture change could trigger a full rebuild, and when something failed, the log said only that something broke somewhere in a 200-step process.

    Only one person could debug the pipeline. Artists pushed work in the evening and found out the next morning whether it survived. Three engineers ran local builds before every commit, just to be safe: up to nine hours of compute a day on builds that did not even predict what CI would do.

    “As a producer, my whole job is knowing where the build stands and who's blocked. It used to take 3.5 hours to even find out, and a broken build cost us a full day. Now with SpeedrunCI the whole team builds daily, I can see every build the moment it runs, and milestones stopped slipping on build problems.”
    Mohan Raj, Studio Producer, Ayelet Studio
    How we use SpeedrunCI

    Feature by feature

    01

    One pipeline per platform, side by side

    Win64, PS5 and Xbox Series X|S each have their own pipeline, started from the same commit. They run at the same time across runners instead of queuing behind each other on one machine, which is where most of the old three-hour wait went.

    02

    Game-aware caching

    SpeedrunCI caches compiled code, cooked assets and shader and derived data between runs, and rebuilds only what a change touches. That is the difference between 3 hours 32 minutes and 27 minutes on the same hardware: we stopped running steps that did not need to run.

    03

    Failures that point at the problem

    When a build fails, it fails at one step, with that step's log and the commit that triggered it. SpeedrunCI reads the log and suggests a fix with the file and line to look at. Fixing a red build takes minutes instead of a morning.

    04

    Builds from inside the Unreal Editor

    Our artists and designers start builds from the SpeedrunCI plugin in the editor toolbar, free on Fab. They see the live status in the editor and never have to find the one person who knows the command.

    05

    Artifacts the whole team can reach

    A finished console build of around 20 GB is ready to download from the run that made it. No Google Drive links, and no asking which build is the latest.

    06

    Build status for everyone

    Producers and QA see every build the moment it runs, on the dashboard and in team chat. Nobody asks about the pipeline in standup anymore.

    07

    Hosted Lore repositories

    Ayelet Studio was the first studio on SpeedrunCI's hosted Lore repositories, running in production.

    What changed

    The build stopped being a conversation

    • Artists started committing twice a day instead of once. Nobody told them to; they stopped being afraid of the nightly.
    • Engineers stopped running local builds "just to be safe", because CI became the build they trust.
    • We have no dedicated build engineer. Caching, parallel runs and orchestration are SpeedrunCI's job.
    • The producer sees where every build stands without asking anyone, so milestones stopped slipping on build problems.

    More stories are on the way

    More pilots are running now, and their stories follow. Want yours to be next? A pilot runs on one of your real Unreal projects.