Game Development Prototype API

This week we’re releasing the specifications to which developers can create arcade games targeting our first fictional cabinet classification – the BudgetBoy. This prototype Application Programming Interface isn’t set in stone, and we’ll be expanding and redesigning aspects of it as we include more features and listen to your feedback.

Available today is our online documentation of the JavaScript bindings of the API, a set of TypeScript definition files in case dynamically typed languages give you the heebie-jeebies, and an example game implemented in both JavaScript and TypeScript.

API Documentation

These can be found at http://facepunch.github.io/arcade, and are automatically updated whenever we expose new stuff or otherwise alter the JavaScript interface. On the left you can navigate to the documentation for each individual exposed type, grouped into types available to games on all fictional platforms (the “GameAPI” category) and those only visible to BudgetBoy games (under “GameAPI.BudgetBoy”). New categories will appear as we implement other platforms, although we’re focussing on BudgetBoy for the time being.

TypeScript Definitions

Let’s be honest, JavaScript is… quirky. While some people love it, others hate it, so it’s fortunate that so many translators exist from various languages targeting JS. I’ve been getting into TypeScript recently, so I added .d.ts definition file generation to our build process supporting the development of arcade games written in the magical statically typed language. You can find them here: https://github.com/Facepunch/arcade-TypeScript

Example Game Sources

Layla and I have translated one of our test games into both JavaScript and TypeScript respectively, both so we could ensure the bindings for those languages were operational and as a reference for you guys to make your own games.

SmashBloxJS: https://github.com/Facepunch/arcade-SmashBloxJS
SmashBloxTS: https://github.com/Facepunch/arcade-SmashBloxTS

Software Testing Kit

We’re still finishing up a tool you can use to test our existing games and ones you develop, which you should expect soon. Rob’s been trying out some UI design, styling the tool as a piece of hardware produced by an arcade cabinet manufacturer: