Skip to content
View adam-coster's full-sized avatar
💻
staring into the light
💻
staring into the light

Highlights

  • Pro

Organizations

@bscotch

Block or report adam-coster

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
adam-coster/README.md

Code & Stuff

Hey there, internet rando!

I'm Adam Coster, CEO and co-founder of video game studio Butterscotch Shenanigans (@bscotch).

I'm a fullstack web developer and DevOps enthusiast, but also spend a lot of my time thinking about data, productivity, and business (see my personal blog). I talk about all of that a lot on my weekly podcast, Coffee with Butterscotch, co-hosted by my co-founders (and literal brothers).

What's this repo?

I'm embracing the monorepo lifestyle, and so this repo will accumulate stuff I create outside of work. Most of the stuff I create is for work, so at any given moment there might not be much of anything in here.

Other stuff I've made (not in this repo)

Proprietary (Closed Source) Stuff

Most of the stuff I've worked on is closed source. Here's a quick summary of my biggest projects:

  • Video Game Webtech: I develop and maintain all of the webtech for our games, starting in 2015 with our "BscotchID" service, which in 2018 I replaced with a shinier service, "Rumpus". Migrating users between those systems without downtime was quite the endeavor! BscotchID/Rumpus features include:
    • Cross-platform save syncing (e.g. allowing players to switch between a mobile device and a console without losing progress)
    • Cross-platform user-generated content sharing (in Levelhead, players can create and share custom levels and compete on per-level leaderboards)
    • Centralized account management, allowing players to connect their accounts to any platform account
    • A public API allowing players to build their own projects using data from Levelhead
  • Studio Website: I develop and maintain the central website for our studio, which is basically the front-end for Rumpus. I built it with Vue v2 and have been slowly migrating it to Vue3 Typescript. I admit to being a middling front-end developer; the vast majority of my development time goes into the backend and tools to support our games and team. Still, I think the site came out alright. Features include:
    • A custom newsletter system, allowing our team to build and send a variety of opt-in newsletters to our players and other groups
    • The "Feedbag" -- a system for collecting and managing player feedback at scale
    • Automated game changelogs, generated from Git messages and made available via the site (see Levelhead's Patchnotes as an example)
    • Tons of internal features for our staff to manage aspects of game development, testing, and customer support
  • Bscotch String Server. Our last two games were localized into 12 languages, and one of those (Crashlands 2) has well over 100,000 words. Dealing with all of those strings in a way that can best support our team and our external localization partners was quite the endeavor. I created our own "String Server" to mediate that, complete with:
    • Auditing/editing strings (with downloadable changes)
    • The ability to add context (text, images, video)
    • Display of current translations
    • Detection and display of various translation error cases
    • Import/export via the localization-standard file format: XLIFF
    • Automatic scraping of thumbnails and metadata from our game-asset-management system.
    • A custom glossary and spellcheck, with an API allowing use in other contexts (like our game asset editors).

Open Source Stuff

I've open-sourced a handful of our studio projects. See the studio's GitHub (@bscotch) for the full list, but here are the highlights:

  • Stitch: We use GameMaker for game development, and I've made many tools and pipelines over the years to improve the development process in GameMaker. The latest, and the one we open-sourced, is "Stitch". Stitch is a "Pipeline Development Kit" for GameMaker; we use it to automate asset management and parts of the build process. It includes a bunch of CLI tools, programmatic tools, a desktop application for managing game projects, and a VSCode extension allowing use of VSCode as an alternative to the GameMaker IDE.
  • Rumpus Community Edition SDK: In the few weeks leading up to the launch of Levelhead, I built a public API ("Rumpus Community Edition" a.k.a. "Rumpus CE") to allow players to build their own tools and sites using player and level data from Levelhead. To give those devs a head-start on building something, I made this SDK specifically for interacting with Rumpus CE.

Oh, and a Dissertation!

I got a PhD in Cell & Molecular Biology back in 2014, and then immediately joined my brothers in co-founding Butterscotch Shenanigans where I ended up mostly doing webtech and, as of July 2021, now occupy the CEO role. Yes, that's a weird path. It's a long story.

Anyway, I'd be remiss if I didn't take a moment to force my dissertation upon you, dear reader:

"Quantitative single-cell imaging reveals insulation of morphogenic signal transduction"

Pinned Loading

  1. adam-coster adam-coster Public

    TypeScript 4 1

  2. bscotch/stitch bscotch/stitch Public

    Tools and apps for GameMaker development: a CLI for pipeline development, a VSCode extension for coding, and more.

    TypeScript 114 13

  3. bscotch/jslib bscotch/jslib Public

    A library of Node, JavaScript, and related utilities.

    TypeScript 6 1

  4. bscotch/favro-sdk bscotch/favro-sdk Public

    Bravo is a Node.js SDK for Favro. Create your own integrations, pipelines, and automations with full Typescript support, Favro API data typings, and tons of convenience features.

    TypeScript 8

  5. bscotch/rumpus-ce bscotch/rumpus-ce Public

    Create Levelhead Node.js and web apps powered by Rumpus CE. Fetch level and player data, add levels to your bookmarks, and more!

    TypeScript 5 1

  6. dissertation dissertation Public

    TeX