InterSceptre, a game 20 years in the making

InterSceptre is one of Leda Entertainment‘s pet projects, and has passed through several names and guises since the early 1990s. With a PC release on IndieCity imminent, and a possible XBox 360 release before Christmas, I wanted to look back over the development of the game from the earliest 16-bit incarnations through to the Windows Phone 7 release of the game earlier this year.

This slideshow requires JavaScript.

The original concept was for a futuristic bat-and-ball tennis style game, similar to Pong  but played on the vertical rather than horizontal axis (I’d never seen Pong; I assumed that it was played up-down rather than left-right partly because that’s how tennis is televised in the UK, and partly because I thought it would be too easy to defend a narrow gap with a wide space between the bats). The aim of the game is to get a shot past your opponent’s bat and off the screen. To make this more interesting, behind each player there is a row of blocks that first have to be destroyed (by hitting the bricks with shots) and then the winning shot fired through the gap presented. In that sense, InterSceptre borrows from two other classic games – Arkanoid and Breakout.

The concept proceeded through several generations, as I returned to it from time to time as my coding abilities improved and I learned more about the capabilities of STOS Basic:

1991: The first generation of the game was called Reflekt. The graphics were crude, the sprites moved in a jerky fashion and the collision detection was highly dodgy (shots often leapt through blocks undetected). Shots travelled in straight lines and were simply blocked, not even reflected – I probably didn’t get that far into writing the game before I was distracted by the next idea!

1992: You can’t keep a good idea down. I returned to the game the following year, and Reflekt II was born. It was one of the few games I actually completed writing on the ST, although there were a few bugs and crashes (Ben eventually ironed all of these out, and released the game as Reflexor, since no-one other than the two of us had ever heard of the original Reflekt). Reflekt II had bouncing shots and bonuses but not the centre bat or the white holes.

1995: InterSceptre (ST) was a game born from the STOS Missing Link extension, specifically the new Zones concept. Previous versions of the game had few large blocks behind the players which were too easy to get a shot through. With InterSceptre, it was possible to have many more and smaller blocks thus making the gameplay harder, and also freeing up space in the programming for more features: aliens and bonuses. The game was at least partially written in 68000 Assembler (I still have the collision detection code!)

InterSceptre on the ST was highly configurable; the user could turn on or off many of the game features (inertial control, centre bats, shot bounce, directional shots, black holes…) – features that survive into the XNA version of the game. InterSceptre was almost finished, but never released, on the ST (I think work was done to release a demo version of the game as Freeware…) InterSceptre (ST) had enemies that roamed the screen, getting in the way and destorying blocks, and it had black holes that swallowed shots – but no curving them round the screen.

It’s visibly the same game as the version released 16 years later. I was using alternate transparent and opaque pixels on the logo and the in-game drop shadows to try and create the illusion of translucency that is now so easy via alpha blending. Most remarkably of all perhaps is the visual difference between this version and the original Reflekt – how far I came in such a short time… and how little I’ve changed since!

2005: After writing ‘Get In The Ring‘ in C using DirectX for a university project, and some time fiddling with a platform concept game in C, I had a go at writing InterSceptre in C++ since I saw the possibilities OO would bring to games writing. Basic gameplay (bats and balls bouncing off each other and the environment, bricks being destroyed and the game won or lost) was working well and so I started porting the graphics over from the ST version. But I didn’t really get anywhere with it, and by late 2005 the project was effectively dead. Unfortunately no screenshots of this era exist; I don’t have a .exe of this version and so it lives in limbo. However, the game graphics from this version – the player bats, the game logo – were carried over unchanged into the PC and Windows Phone version, and the core code and class structure live on.

2010: When Ben reignited the desire for games writing by introducing me to XNA, I thought where better to start than with a game where I already had the code and the graphics? The core game classes were easily translated from C++ to C# over a few hours, and the game has evolved out from there, being significantly re-factored along the way as I got to learn XNA better. It’s been a fun proving ground for 2D games development, getting away from the old STOS limitations (how many sprites, how much processing).

Alpha channel work has been a revelation. About half the programming notes I have from the early PC days are about how I would go about doing lighting and transparency effects in a 256-colour restricted palette (since moving to 16 or 24-bit graphics would at the time have been too slow). Much of that is irrelevant now since I can use alpha-blending effects to effortlessly achieve something that was previously the result of a lot of mathematical heavy lifting (converting between the RGB and HSI colour spaces in order to reset pixel intensities), some of which even made it to code (that C-based platformer I referred to earlier).

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: