Preview
Loading Battleship Numberline
Portfolio Entertainment System
★ Featured

Battleship Numberline

Studio:Playpower LabsRole:Unity Developer

Sole engineer: rebuilt a legacy Flash math game in Unity and shipped it to WebGL, Android and iOS, with designer level tools, cross-platform telemetry and live A/B testing. 350K+ play sessions.

Tech Stack

  • Unity
  • C#
  • AWS Kinesis Firehose
  • UpGrade

An educational game that builds number sense: players work with whole numbers, fractions, decimals and operations on a number line. I rebuilt the original Flash game in Unity from scratch and shipped it to WebGL, Android and iOS, where it has had 350K+ play sessions.

Key Contributions

  • Sole engineer, from architecture through to production releases.
  • Made the core engineering decisions: tooling, state and data flow, and backend integrations.
  • Worked with game designers and QA to make sure the game met its learning objectives.
  • Shipped to Android, iOS and WebGL, working around each platform's constraints.

  • Built a ScriptableObject-based level authoring tool inside the Unity Editor.
  • Designers and other non-programmers create, tweak and sequence levels without code changes.
  • Modular rulesets per math topic, so content grows per topic without new code.
  • Each level uses either a hand-written JSON question set or questions generated at runtime, depending on its rules.

Level Authoring Tool Screenshot

  • Sent gameplay telemetry to AWS Kinesis Firehose from all three platforms.
  • Android and iOS builds use the AWS .NET SDK directly.
  • Unity has no AWS SDK support for WebGL, so I wrote a JavaScript bridge (JSlib + InteropServices) for the WebGL build.
  • A post-build step injects the required AWS scripts into index.html automatically.
  • Wrote a technical article on the approach for other Unity developers.

  • Integrated the UpGrade experimentation platform, so designers can run and track controlled gameplay experiments with live players.
  • If the SDK fails to initialise, a fallback randomiser still assigns variants, so experiments keep running.
  • URL query parameters force a specific variant, which made QA and stakeholder reviews much faster.

Example: www.bsnl.com/index.html?ship_size=small

Ship Size Variations

  • Custom fraction typesetting to render stacked fractions in the UI.
  • Step-by-step worked examples, generated at runtime from the player's mistake.
  • Interactive first-launch tutorials for each math topic.
  • Native in-app review prompts on iOS and Android.
  • Secure cheat codes to speed up internal testing.