CIRCULATE INTERACTIVE

Portfolio

Interactive TV

Bubblewords

Client: Two Way TV
Technologies: C/Open TV

As a former employee of Two Way TV I had many game credits and contributed significantly to their infrastructure; cross platform messaging protocol and application frameworks. It was a pleasure to work with them again.

However Bubblewords brought some challenges.

Bubblewords created a novel problem...

1.2Mb of dictionary data

Plus 300K of game assets.

/

1Mb of STB Memory

And msec word validation inside the compressed data.

Bubblewords was a cute but unremarkable game - from a stream of letter bubbles, place them in the grid to create words. Valid words disappear (Tetris/Bubble-Bobble sytle), keep going until the grid is full.

Bubblewords created a novel problem, the STB had 1Mb of memory, games were typically 300k, the dictionary file we needed to validate words from the grid was around 1.2Mb.

The solution was to compress the dictionary data and keep it compressed on device. The key being each word in the dictionary is typically a small change from the word before it. By storing words as deltas on the previous word a huge saving could be made. In order to achieve quick look-up it was necessary to index the compressed data so you could enter the data "near" the word you wish to validate. You then run through the compressed data, needing only a one word sliding window of decompressed data.

The compression solved the memory problem. Alas on first run the game stalled for 17 secs whilst it assessed the grid. Optimising word look-up down to the order of millseconds is another story... 

 

Tomb Raider IV

Client: Minds Eye Productions
Technologies: C/Open TV, C# .NET

It was fantastic to be invited to make a Tomb Raider game. In fact, Minds Eye already had 3 episodes behind them. With some staff churn, they were in the unfortunate position of having three code-bases and no one to develop it further.

The code was really nicely done, so I had a good starting point. The brief was:

  • Produce a new set of levels for the 4th game, including new custom traps and enemies.
  • Perform a 4 way code merge, along with build scripts to allow all games to be built from the same source.

I additionally created a C# tool to adapt the output from the freeware Tile Studio tool to streamline the process of creating levels.

Good fun and a very happy client.

 

Channel Zero

Client: Electra Entertainment
Technologies: C/C++, C# .NET

At the dawn of Freeview Electra saw the opportunity to add interactive services to Freeview STBs.

Using Tao Group Intent middleware it was essential to come up with UI quickly and in a "TV friendly" way. Traditional browsers don't play well with focus based navigation. I designed and developed Iris and XML based 'browser' using flexible but focus based UI components.

The many faces of Iris 'XML browser'.

To run the service I created a suite of C# tools. Among them data ingestors allowing Iris to take live feeds from:

    • Met Office
    • Reuters News
    • Whats On TV Magazine
    • Group On

Iris Designer: Enabled visual editing of Iris XML. One of a plethora of tools I produced to support the service.

A Rabbit Hole

Electra turned into a big project - evolving from "writing a few apps" to architecting and designing all the infrastructure around content churn, updating and monitoring the service.

Games Console / Android

GameStick

Client: PlayJam
Technologies: Android, Java, C++

PlayJam had enjoyed a lot of success on Sky's Red Button (Open TV) services.

With the advent of small form factor Android devices, PlayJam wanted to create a game console you could throw in your bag and take on holiday or to your friend's house.

 I built and ran the team to create the on device software, comprising, Out of Box Experience (OOBE), account management and app store. Everything the customer sees on top of Android.

 

 

iOS

Lionheart Keeper

Client: Personal project
Techologies: iOS, Swift

As iOS has matured the wealth of data on your device has grown. The iOS security model hasn't matured with it.

Whether biometric or PIN you either have access or you're locked out. There have been updates; the Photos app provides a 'hidden' folder, it is possible to lock individual apps - but all under the same PIN.

Lionheart Keeper adds a secure folder hierarchy to your device with it's own PIN. With secure access to it's own photo/video and PDF viewer.

End-to-end designed and developed, integrating video capture and playback, IAP, iTunes file sharing and UI customisation across 20+ View Controllers.

 

Web

Color Palette Pro

Client: Personal project
Technologies: Google AI Studio, REACT, Typescript

I've been using AI assisted coding for several years. It's a productivity tool I wouldn't be without. Used with care, mundane, boilerplate code along with many test cases get brushed away - freeing you to apply your craft to real problems.

I wanted to experiment in 'vibe coding'. You're no longer prompting for individual methods and code snippets, but end user features - leaving the software design to the AI.

See how it turned out...

Like What You See?