Second Reality

Logo

Unreal ][ - The 2nd Reality (later known as Second Reality), is a demo created by Future Crew for the Assembly '93 demoparty. In the PC demo competition, Second Reality placed first with its demonstration of 2D and 3D rendering.[1] The demo was released to the public in October 1993. It is considered to be one of the best demos created during the early 1990s on the PC; in 1999 Slashdot voted it one of the "Top 10 Hacks of All Time".[2] Its source code was released in GitHub repository into the public domain under a "unlicense" license[3] on the 20th anniversary of release on 1 August 2013.[4]

Demo description

Many techniques used by other demos, including Future Crew's own earlier work, were refined and reused in Second Reality. The demo had a soundtrack of Techno music composed by Skaven and Purple Motion using ScreamTracker 3. The degree of synchronization of the visuals with the music was highly impressive for its time.

Introduction

Introduction

First the introduction plays, demonstrating text rendering on a background. After that is done, several ships appear and fly away from the camera, demonstrating 3D rendering. After some distance the ships explode, sending out a shockwave (reminiscent of the Praxis explosion effect seen in the film Star Trek VI: The Undiscovered Country). The screen fades to display a rendition of Wendigo, at which point Purple Motion's main musical score for the demo begins. The image then flattens and falls horizontally to become a 3D, polygonal checkerboard.

Bouncing sphere

Bouncing sphere

The music has now finished its introductory notes at this point and the first melody starts. Next a glenz (additively blended) polyhedron appears and bounces on the checkered surface, in perfect timing with the orchestra hits in the score, demonstrating 3D rendering and realtime mesh deformation. After a while another larger polyhedron appears and the smaller polyhedron begins bouncing inside the larger.

Tunnel

Tunnel

The next scene is a winding, fluid tunnel built up by discrete points that move towards the camera. This creates a feeling of rushing through the tunnel for the viewer.

Oscillating circles

Oscillating circles

The tunnel fades out into some oscillating circles which soon fade into the next scene.

Moiré patterns

Moiré patterns

A scene that could be described as a light show. The scenes consist of multiple moiré patterns interacting. Moiré patterns were quite popular in demos of that time.

Ulik image part

Creature

Next an image of Ulik rolls in from the right, and fades away. Some leaves and water are displayed, along with text characters floating downstream. The text says "Another way to scroll" and is an example of a scroller, which was present in most demos of the time.

Magnifying and rotating head

After the text has floated by, again the scene changes to display something that resembles an evil looking human head with a pentagram engraved on his forehead. A sphere comes down from the top left corner simulating the below surface being refracted through a magnifying sphere. This is where the soundtrack utters the cult phrase "I am not an atomic playboy", quoting Vice Admiral William H.P. Blandy's remarks before the Bikini nuclear test. The sphere vanishes down in the lower right corner and the camera begins to spin while zooming in and out to reveal a repeating pattern of heads, demonstrating a technique known as rotozooming. The camera then falls down and bounces back up on the surface twice, after which the scene again fades out.

Plasma Effect

Plasma Effect

When the image fades in, the camera is placed close to a surface changing texture every time. This is a continuation of their work in Unreal where they first introduced the 'unreal' plasma effect.

Colored spinning cube

Colored spinning cube

After a few surfaces have been displayed, a cube comes up that has these animated surfaces attached and spins around while translating towards and from the camera.

Vector Balls

Vector Balls

After a while this scene fades and many small vector balls fall onto the screen and begin bouncing off the ground and morphing into various spiral patterns. Because of a bug, this part will crash if the demo is installed in a directory with the complete path length exceeding 30 characters.

Raytracing

Again there is a fadeout and a fade in, this time we are looking at a scene with two spheres, and a sword starts translating towards the camera. The spheres will display a reflection of the sword as well as a reflection of the aforementioned reflection in the other sphere. The scene was rendered using Future Crew's homemade raytracing software.

Water

Water

As the scene changes again, this time the image rendered will be of a surface changing shape, similar to that of water. This scene is rendered using a Voxel landscape rendering technique.

Bouncing bitmap

After this, an image will fall in from above, depicting a rider on what appears to be yet another fantasy creature. Contrary to what the text says, this image was not drawn by the group members, it was available at the time in several image-art CDs. The image will hit the ground and bounce up while behaving like jelly.

3D spacecraft fly-through

3D spacecraft fly-through

In the next scene, a craft reminiscent of the TIE/Advanced fighter from Star Wars: A New Hope flies around in a large 3D city, leaving it and heading up right over the text "Future Crew". This was later redone in the Final Reality demo by some of the previous members of Future Crew working for Remedy Entertainment. Flat shading is used for the buildings and Gouraud shading for the smooth trees and lettering at the end.

Future Crew Logo on nuts

Future Crew bitmap

The image fades out and the final scene fades in, an image of two nuts with the text "Future Crew" written on them.

Hidden part

The demo can be started with a single character command line argument "2" through "5" to start from any of the later four parts.

For another part that its introductory text calls "just an experiment" start the demo with a command line argument of "u". The screen will start filling with ever more stars warping towards the screen.

Technical characteristic

In 2013 a reverse engineering analysis of SR with the now available source code revealed a design which is built around two characteristical demoscene paradigms: Teamwork and Obfuscation.[5]

Internally the demo consists out of 23 separated parts which allowed independent, parallel development and free selection of programming language (assembly, C and Turbo Pascal) and development tools.[6]

The analysis of the sourcecode also revealed that the long standing and popular speculation that SR uses its own memory manager which accesses the MMU directly is not true; in fact SR uses standard DOS memory management functions.[7]

Running the demo

The demo runs best on an Intel 80486 PC with a Gravis Ultrasound or a Sound Blaster Pro (or register-compatible clone). As the demo had in the original released version a slow down bug, a patch was released later.[8]

While the demo code remains freely available on numerous Internet sites and is now hosted with sourcecode on GitHub, it is difficult or impossible to run Second Reality directly on a modern PC. The demo accesses video and sound hardware directly (using its own built-in device drivers) which is incompatible with current OSs, and many of the timings in the demo do not scale up to modern CPU speeds.

To run this demo (with minor glitches) on a modern machine running a modern OS like Windows or Linux, one can use DOSBox.[9] DOSBox is capable of emulating the exotic video modes and the Gravis Ultrasound preferred by Second Reality, and can be configured to the 33 MHz recommended on the demo's configuration screen for optimal viewing.

Remakes

The legendary state of this demo inspired a lot of people to do their own remixes of the show. The most popular ones are the following:

Trivia

References

  1. "Assembly 93 results". pouet.net. 2011-01-02. Retrieved 2011-01-02.
  2. "Slashdot's "Top 10 Hacks of All Time"". slashdot.org. 1999-12-13. Retrieved 2010-12-25.
  3. github.com/mtuomi/SecondReality/blob/master/UNLICENSE
  4. Smith, Ryan (2013-08-01). "Happy 20th Birthday Second Reality". Anandtech. Retrieved 2013-08-21.
  5. Sanglard, Fabian (2013-08-16). "Second Reality Code Review: Part 1 (Introduction)". fabiensanglard.net. Retrieved 2013-08-23. The code is something like I had never seen before that perfectly represents two essential aspects of demomaking : Team work. Obfuscation.
  6. Sanglard, Fabian (2013-08-16). "Second Reality Code Review: Part 5 (Parts)". Retrieved 2013-08-31. Each Second Reality visual effects is a full DOS executable. They are called PART and there are 23 of them in total. This design decision allowed fast prototyping, simultaneous development (since FC probably did not have source control tools) and free languages choice (ASM, C and even Pascal can be found in the source).
  7. Sanglard, Fabian (2013-08-16). "Second Reality Code Review: Part 2 (Engine)". Retrieved 2013-08-31. There were many legends about Second Reality using an elaborated memory manager via the MMU but there is no trace of this in the engine. Memory management is actually delegated to DOS : The engine starts by deallocating all the RAM and then distribute it on demand. The only fancy trick is the ability to allocated RAM from the end of the heap: This is done using the return value of DOS malloc when too much RAM is requested.
  8. 2ndpatch.zip
  9. tre_qu (2007-03-28). "DosBox, Compatibility: Second Reality - Future Crew (1993)". dosbox.com. Retrieved 2011-01-02.
  10. "Maemo5" (VIDEO). Dashboard, 0:19, top-left Second Reality. Nokia. 2009. Retrieved 2011-03-13.
  11. Sanglard, Fabien (2011-10-19). "SHMUP". Retrieved 2010-03-13. It [the Music] comes from one of the greatest hack of all time: "Second Reality" by Future Crew. Yes a deal was signed so I could use the music.

External links