Tuesday, January 31, 2012

Gateway's Broken Arches

Have you noticed that Gateway's arches are randomly broken in the original OutRun? At times arches don't join, sometimes they float in the air and occasionally complete pillars are missing. 

It's not very noticeable at high speed, and the precise nature of the breakage isn't consistent. Overall though, it spoils the illusion of what would otherwise be a cool level. 


For my rewrite, there's a simple solution to this problem; but not for the original game sadly. OutRun's software engine can display 76 scenery sprites at any one time, which are initialized dynamically as the level progresses. Further sprites are reserved for traffic and other essential objects. 

Each Gateway arch comprises 4 sprites (two pillars and two joining sections). So we can display 19 complete arches at any one time. Therefore, on complex stretches of road where no free slots can be allocated, some of the pillar components are simply skipped.

Thankfully, we don't have memory or speed restrictions on a modern PC and can allocate additional slots to dynamically spawn sprites. In fact, it's as easy as changing a single number. And here's a screenshot to (somewhat) prove it. 


The illusion when moving through the level is greatly improved, and when I eventually increase the frame rate beyond the original 30fps, this level will be awesome! 

8 comments:

Anonymous said...

I often wondered why pillars were missing and concluded that perhaps it was intentional to break continuity to create variation; maybe the appearance of ruin 'obviously with a bit of imagination' ;-)

yt said...

That's what I thought originally too :) Only when I was studying the code, I realised otherwise.

tron said...

Dear YT

I am looking to hire you to develop outlook with a particular concept. please contact me when possible.

yt said...

You can contact me here:
http://javagear.co.uk/images/email.png

matt said...

Can't wait to play it at 60fps!

Jason Doucette said...

The variation is important. I notice most clones look bad without variation of objects and position. Here's an example image of my own clone made back in 1999:
http://jasondoucette.com/cgi-bin/fulltiltshowpic.cgi?pic=fulltilt/images/RockArches2.gif&w=640&h=400

Bfef said...

I realise this is an old post but I actually quite like the breaks in the arches. Sometimes the movement of the arches syncs up badly with the CRT refresh and they can appear to be moving away from you briefly (like car wheels turning the wrong way on old movies). The breaks in the arches help to eliminate this effect somewhat I feel. Anyway, it's great to be able to overcome technical limitations with the old hardware!

Jason Doucette said...

To be clear, the statement "the precise nature of the breakage isn't consistent" is not accurate. It is consistent at least within a given playthrough (though not from play to play). Note the video of play on arcade cabinet: https://youtube.com/watch?v=EZW8yglpvRY&t=5m37s (Press SPACE to pause, and use , COMMA and . PERIOD to frame step.)

The breaks in the arches is consistent variation that helps message the motion. This is almost certainly a feature (even if arrived at by a bug / limitation, it was almost certainly intentionally left in). The sprite index for the object must remain for its lifetime, ensuring no flickering of objects - which is great programming design. All forms of pattern inconsistencies in the game help message motion, including -- variations of trees, houses, surfers, rocks in grass, signs, mountain heights, to name a few.