Starglider 2

Rainbird

Status: Preview, Findability: 2/5

The sequel to one of the biggest 16-bit vector games was started on the C64 way back in 1989, trying to improve on the original version.

Way back in August 1988, the 16-bit versions were reviewed. In the interview with Jez San that followed, he says:

“In the end we found some good Commodore 64 programmers and they are going to be working with us. We’re going to supply our routines and lots of help, and they’re going to be programming the 6502 everyone in our company is a 16-bit programmer, no-one wanted to go back to 8-bit.”

Additionally worthy of note, but the Spectrum version actually surfaced… so no doubt this was no impossible conversion.

An official conversion in the making, which seems to be what we have here. Similar to Mercenary, but nowhere near as good, the game was scrapped due to speed issues, a shame as it was starting to develop nicely and take shape. With the preview which has been out there for a while, you can actually leave the planet, and go into ‘Elite’ mode and hunt around. Quite an impressive preview, it’s not known how complete this preview actually is – though it actually seems to be we believe practically the complete game.

Recently in 2009, we had an email from Pete Baron who said that this was his game!…. Whilst working on Myth, Pete was offered to do the C64 conversion. In total, 6 months was spent on actual coding whilst doing Myth, and Pete spent a lot of time trying to get up on the 3D side of things on the C64. He had never done any 3D work on the C64 before, but had been promised by Jez Sans to get any resources possible from their team to help. He had some info, but had to do a lot of working out himself. He managed to get some routines and got to work. A bit through the project, Pete demonstrated things to Jez who felt the game was far too slow. Pete then tried to improve things, and did manage to… but then Space Rogue happened…

Space Rogue featured solid filled vectors on the C64 and was very very fast for a 0.98mhz machine. It blew Pete’s work out of the water and Jez had seen it too. They now had to try and match Space Rogue, so Pete now had the impossible mission of getting a solid version working. He did just that, but the frame rate was just too poor filled in. In the end, the project was canned and no more. (You can read more detail from Pete in the Creator Speaks section)

Just how the game sneaked out in its current form is unknown, but the fantastic news was that Pete did actually do a complete conversion of the game in the end that never got released, and in two flavours… the wireframe edition, and potentially a filled vector version too.

Pete in late 2010 dug out all the remains he had of Starglider 2, which was believed to be the very last build of the game. Jani Tahvanainen very kindly spent a lot of time digging through and reconstructing the game. Unfortunately though it seems that once compiled, that even though the date suggests it was a last build – the preview seems far more complete in comparison.

The version salvaged does not feature a complete game panel area, and starts with a test screen with Pete’s name mentioned and a date of 1988. You can use the F1 key to start moving around, and going into space just gives you a black screen. Unfortunately although the Solid 3D flags were present in the source code, the actual implementation doesn’t seem to be present.

It is believed that an additional block of work was done to get the panels in and starfields, and the solid 3D work was completed. It seems very much so that the preview which we already had may well be a build from the very final version of the source code. Just sadly we won’t be able to unlock the solid 3D version without the source. As a result, this could be a complete version of Starglider 2, though it may need playing through to clarify.

However, as well as getting a build of the game which has elements not in the preview, a long lost piece of work by Bob Stevenson has been salvaged, and would have been the game’s loading screen. Also Pete has very kindly allowed us to release the source code that was recovered, which you can now download to check out for yourself. There are two versions, Pete’s original supplied source code, and a tweaked/fixed up version by Jani.

So we have to now close the case for this one (Unless the supplier of the old preview to GP has the sources?), as what Pete recovered was all that Pete had and could still be read from disk. Every physical piece of media was dumped after digitally preserving what could be preserved, and before Pete left the UK to travel the world.

Have an explore around and see what you can uncover. Maybe there is more to the old “preview” than we all first thought?

Space exploration going a step further on the C64… Case closed!

Contributions: Glenn Rune Gallefois, Pete Baron, Bob Stevenson, Patrick Furlong, Jazzcat, Jani Tahvanainen

Supporting content

Creator speaks

Pete Baron talks about work on Starglider 2…

“There’s not much of a story for SGII the whole thing was a bit of a disaster and the project only lasted for 6 months (compared with 12 months for Salamander and almost 18 for Myth!). It was another contract that Jacqui Lyons (my agent) offered me towards the end of development of Myth and I overlapped the two projects for a couple of months – Jez Sans was very keen for me to get started right away and was willing to accept that I couldn’t give it 100% attention until Myth was finished.

At the start I was promised all sorts of help with the maths and getting high speed 3D graphics going on the C64 (I was obviously somewhat skeptical of doing this game on a machine with a 1MHz processor!) but they pulled the spec in to ‘wire frame’ and with the offer of loads of good algorithms I thought it should be doable. Unfortunately in the beginning the only really useful thing I got from them was an equation that permits fast approximations to a square-root… useful but on it’s own not enough to make the game particularly fast or smooth. So I was pretty much on my own with some books about 3D programming (remember back then the internet wasn’t around, nowadays I’d just go online and get a thousand articles about 3D optimization!).

About 3/4 of the way through the project, Jez called me in-house to see the latest demo and finally get me hooked up with one of their 3D whizz-kids. It was a very disappointing experience for both sides… Jez thought the demo was too primitive looking and wanted more polys on-screen, further draw distance, and smoother motion; while I discovered that this whizz-kid was straight out of Uni and didn’t have a clue about machine language optimization – I spent a very dull 2 hours explaining why using matrices would be slower than the code I had written already (if you use matrices you end up doing multiply by 1 and multiply by 0 a lot, whereas if you unroll the logic you can just skip all those pointless operations whenever the values are fixed in either matrix). After I finally convinced him (by making the change he was nagging for, summing clock ticks, then comparing with my previous code which was about 15% faster) he didn’t have any other suggestions.

From then on the project was on pretty thin ice. I couldn’t find any way of increasing the detail without making the game unbearably slow, and Jez was stuck on the idea that some of his guys could show me tricks – but they just weren’t delivering. I plodded on for the sake of getting the game out of my way. I was already starting to think about future projects – Myth was long gone and the money for SGII was ridiculously poor. Jez hired Bob to do the loading screen which came out superbly… I really will have to try to recover that for you when I get back to NZ. Finally I just went in at the end of the contract and said, ‘here it is – it’s finished’. All the game elements were complete and it was playable… it looked pretty basic, and didn’t move very smoothly because I had to compromise on the frame rate vs draw distance.

At about this time that solid fill 3D game came out for the C64 – ‘space pirates’ or ‘predator’ (Andrew: SPACE ROGUE by Origin?) or something like that… I played it and was blown away… I’m still not sure what they did to make it so smooth – I had a feeling that they used dynamic character mapped graphics instead of the bitmap mode, which would give them extremely fast fills for large flat areas – but SGII was written for bitmap mode and it was too late for such a major change. Jez of course points at that and says ‘we have to go solid or we won’t sell any’. Once again I’m in a room with some of his top guys telling me to try this and that – they showed me how to do solid 3D using horizontal fill lines so I take that algorithm and away I go to spend a week squeezing clock-ticks out of the inner loops and setting up self-modifying exit points so it can straight-line blit arbitrary length horizontal lines at the maximum possible speed. In the end we had a solid 3D version of the game which only lost 3 FPS over the wire-frame version – but it was still too much; the game went from being ‘a bit clunky’ to being nearly unplayable. Telecomsoft(?) pulled the plug and that was the end of that.

The best bit of the project for me was learning how to do 3D graphics at a time when not many games programmers had a clue. The worst bit was spending an extra week on it above and beyond the contract terms, and then they didn’t even pay the final invoice!”

Then a bit more in 2010…

“Argonaut wanted a C64 version of Starglider II after it was a pretty big hit on the Amiga. They contacted me through my agent at the time (Jacqui Lyons of Marjaq) and I was just finishing up work on Myth so I accepted. Myth went over on the schedule due to a bunch of last minute requests from System 3 boss Mark Cale, so I ended up developing two projects at the same time – both on strict deadlines! The money was good but the hours were killer.

I did a vector version of SGII fairly quickly, but that brought complaints about the speed so I went in-house for a week to get programming tips from their resident 3D gurus… unfortunately these didn’t add any speed at all and several of them actually slowed the game down. The optimisations on 68000 don’t port well to 6510, and at the time I was already T-state counting (adding up every clock tick for every instruction in critical functions) and optimising at a machine-code level to extreme performance. The only thing that might have made a difference was a vastly improved algorithmic approach, but they didn’t seem to have any of those. Oh, I must mention the one good trick I learnt there… there’s a way to approximate a square-root using divide by 3 and then some messing about with data tables. I can’t remember the details any more, but it did add one more FPS to the game!

Then they made a very strange managerial decision. The wire-frame version had barely acceptable performance, so they decided to go for solid 3D… I mentioned the fact that the contract was for wire-frame, and they basically said I had to make the change or not get paid for my last three milestones. I made the change (of course) and the frame rate dropped even further – if you look at the source I provided you can see there’s an entire file there dedicated to drawing horizontal lines extremely quickly… but no amount of optimization of that sort is ever going to make up for the fact that you’re coloring a LOT more pixels. I believe there is a flag in the code which will switch assembly between wire-frame and solid 3D.

Finally after all this effort and mucking about, the original sponsors for the project (one of the telecom companies? I can’t recall which one) backed out and decided not to publish. Before the plug got pulled, we realized we needed a title screen – it was going to be just a scene from the game but I suggested getting Bob to draw something. They got him on board and the image he produced was (as usual) superb!

So, that’s SGII.. a rushed project squeezed into evenings and weekends and ultimately rejected for publication. Not my finest hour!”

Pete Baron.

Update history

25/03/24 – Removed incorrect reference to an Amstrad CPC edition.

Posted in: GTW64 archive | Tagged: | Leave a comment

Leave a Reply

Your email address will not be published. Required fields are marked *