VulCode

Game prototypes and promotional games to order

We build game prototypes, browser games and promotional games for brands. We go down to the engine layer: behind us are a 2D platformer, a voxel engine with a playable browser demo and Game Boy and CHIP-8 emulators written from scratch and checked by automated tests.

A sample screen of a cafe promotional game mid-round: 860 points, 42 seconds left, a x4 streak, a golden bean for double points and coffee beans falling over the cup

A prototype, a browser game and a promotional game

For clients we do three things: a prototype that tests a mechanic before the budget goes into it, a browser game with no install, and a promotional game that works for a brand. Plugins for existing game servers are on our game plugins page.

A prototype ends in a decision: go ahead, change the idea or stop. Each one comes before the big money is spent.

A sample screen of a grey-box prototype in a browser: a character's jump on simple shapes with its path step by step, sliders for the jump parameters, headless tests and a timeline of the simulation steps of the last 500 ms
PrototypeOne mechanic to test
Browser gameA full game from a link
A sample screen of a cafe promotional game mid-round: 860 points, 42 seconds left, a x4 streak, a golden bean for double points and coffee beans falling over the cup
Promotional gameA game for a brand campaign
PrototypeBrowser gamePromotional game
Tests a mechanic before a big budget
Yes
Partly
No
Runs with no install
Partly
Yes
Yes
Works for a brand and campaign
No
Partly
Yes
Needs upkeep after launch
No
Yes
Partly
Has final art and sound
No
Yes
Yes
Measures how people play
Partly
Yes
Yes

A game loop with a fixed time step

The simulation always runs in the same step, so the game behaves the same on a fast and a weak phone, and its logic can be checked by a test with no window. Our pixel-platformer runs on a loop like this: the world updates 60 times a second, and drawing smooths the motion between steps.

After a pause, such as switching tabs, the loop takes at most 250 ms, which is 15 steps, instead of catching up on the whole pause at once.

A ready engine or custom code

We match the engine to the game: a 3D game for consoles or game stores is built in a ready engine, a light browser game on our own code that loads in a moment. Both roads have the same four layers; what sets them apart is which of them are our code.

A ready engine

We work in the engine that fits the project and write the game logic in it.

  1. InputengineThe engine handles the keyboard, mouse, touch and gamepad.
  2. Simulationour codeThe game logic and rules: we write this code, inside the engine.
  3. RenderingengineThe engine draws the 3D graphics and the art assets.
  4. PlatformplatformConsoles or game stores.
When it fits
  • A 3D game with lots of graphic assets.
  • You plan a release on consoles or game stores.

Light custom code

A small bundle with no heavy engine, with a simulation we test automatically.

  1. Inputour codeKeyboard and mouse, touch on phones, gamepad. Presses go to the simulation, not straight into movement.
  2. Simulationour codeA fixed step, physics and collisions, saved state. This layer knows nothing about the screen, so we test it headless.
  3. Renderingour code2D or 3D graphics in the browser, animations and effects. On weaker hardware they can be scaled down without changing the game.
  4. PlatformplatformBrowser, fast code for heavy computation, a desktop app. Heavy computation runs in the browser close to the speed of installed programs.
When it fits
  • A browser or promotional game that must load in a moment.
  • Simple 2D graphics and one mechanic.
Our pixel-platformer runs on light custom code: the loop, physics and collisions are our own code running in the browser.pixel-platformer case study

How we will do it: a promotional game for a brand

This is how we build a promotional game, with a cafe as the example: coffee beans to catch in a minute, prizes of the week and a leaderboard that works from the first tap on the link.

  1. A sample start screen of a cafe promotional game: the title Bean by Bean, the rules of a 60-second round, the prizes of the week for the top three and the Play button

    Campaign launch

    A light bundle that loads fast, and campaign traffic measurement.

  2. A sample screen of a cafe promotional game mid-round: 860 points, 42 seconds left, a x4 streak, a golden bean for double points and coffee beans falling over the cup

    The mechanic first, then the brand art

    First a grey-box prototype of one mechanic, tried on a few people outside the project. Characters and backgrounds in the campaign colours, made with a designer.

  3. A sample leaderboard screen of a promotional game: a podium with the prizes of the week, the next places, the player's own score with the distance to tenth place and a note that the game server checks every score

    A leaderboard without cheating

    Scores checked on the server, not only in the player's browser.

Result: A game playable straight from a link, with a leaderboard you can trust.

From an idea to a game

First we check that the fun works, and only then add art and content.

  1. Idea and rules

    We write down the mechanic, the player's goal and what the game runs on.

    You get: a one-page game outline and a prototype quote

  2. Grey-box prototype

    The mechanic on simple shapes, no art, playable in the browser.

    You get: a prototype to play

  3. Playtest

    A few people outside the project play while we watch where they get lost or bored.

    You get: a decision: go on, change or stop

  4. Production

    Art, sound, levels and saved progress, with a test build after each stage.

    You get: a game ready to release

  5. Release

    Publishing in the browser or as an app, with measurement of how people play.

    You get: the game with players

How we price a prototype and a game is on our pricing page.Pricing and quotes

The first document: a one-page game outline

One-page game outline
Document template
When
after the first call
Together with
the prototype quote
  1. Mechanic
    what the player does most of the time
    Described so it can be built before any art exists.
  2. Player goal
    when they win and why they come back
    Without a goal, a playtest has nothing to check.
  3. Controls
    touch, keyboard or gamepad
    It decides whether the game needs on-screen buttons.
  4. Runs on
    a phone, a computer or both
    It sets the devices we test on and how large the game bundle can be.
  5. The prototype tests
    one question about the fun
    A prototype answers one question, so the quote covers only that.
  6. Left for later
    art, sound and more levels
    What the prototype leaves out on purpose. It returns in production once the mechanic holds up.
One page is enough to quote the prototype.

Projects that show our craft

These are our own games and engines. Each project has a portfolio write-up of what we built and why.

A 2D pixel-art platformer: the character, an enemy, coins and platforms
  • A jump tuned value by value

    Jump force, gravity and landing friction, tuned one at a time until the jump feels right in the hand.

  • Collisions on X and Y apart

    Velocity first, then each axis on its own against the tile grid, with the position corrected on impact.

  • 60 steps a second

    The world updates in a fixed step whatever the monitor, and drawing smooths the motion between steps.

  • pixel-platformer

    A 2D pixel-art platformer that runs in the browser

    Jump physics tuned value by value, collisions computed on the X and Y axes separately, a simulation 60 times a second.

  • voxelforge

    A voxel engine with a playable browser demo

    3D graphics in the browser with no install, a simulation independent of drawing, tens of thousands of checks in tests.

  • gameboy-sharp

    A Game Boy emulator written from scratch

    The whole console rebuilt in code and checked automatically on standard test programs.

  • chip8-sharp

    A CHIP-8 emulator written from scratch

    The full instruction set checked automatically on community test programs.

  • warren

    A roguelike with persistent progression, driven from the terminal

    Generated runs, classes and mutators, and checks that the same run always ends the same way.

  • gambit

    A chess engine

    Move generation, position evaluation and search.

The same craft beyond games: our own operating system kernel, a database engine, a program that solves logic puzzles and our own programming languages.

Games, emulators and engineering projects

Common questions about custom games

Answers about art, phones, small jobs, pricing and the game code.

Got an idea for a game?

Describe the mechanic and who the game is for. We will reply within an hour with questions and a prototype proposal.