||This article possibly contains original research. (August 2014) (Learn how and when to remove this template message)|
Unreal ][ - The 2nd Reality (later known as Second Reality), is an IBM PC compatible demo created by Future Crew. It debuted at the Assembly 1993 demoparty, where it was entered into the PC demo competition, and finished in first place with its demonstration of 2D and 3D computer graphics rendering. 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". Its source code was released in a GitHub repository as public domain software with a "unlicense" license on the 20th anniversary of the release on 1 August 2013.
- 1 Demo description
- 1.1 Introduction
- 1.2 Bouncing sphere
- 1.3 Tunnel
- 1.4 Oscillating circles
- 1.5 Moiré patterns
- 1.6 Creature
- 1.7 Magnifying and rotating head
- 1.8 Plasma Effect
- 1.9 Colored spinning cube
- 1.10 Vector Balls
- 1.11 Raytracing
- 1.12 Water
- 1.13 Bouncing bitmap
- 1.14 3D spacecraft fly-through
- 1.15 Future Crew bitmap
- 1.16 Hidden part
- 2 Technical characteristic
- 3 Remakes
- 4 References
- 5 External links
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.
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 disappear, 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.
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.
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.
The tunnel fades out into some oscillating circles which soon fade into the next scene.
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.
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.
Colored spinning cube
After a few surfaces have been displayed, a cube with animated surfaces attached comes up and spins around while translating towards and from the camera.
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.
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.
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.
After this, an image will fall in from above, depicting a rider on what appears to be yet another fantasy creature. The image will hit the ground and bounce up while behaving like jelly.
The image filename is named "ICEKNGDM.LBM" ("Ice Kingdom Interleaved Bitmap"), Future Crew call the image "Ice Kingdom"; and it is an artistic rendering created by a member of Future Crew, but based on an painting used in a Rumple Minze alcohol advertisement from the early 1990s.
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 by some of the previous members of Future Crew working for Remedy Entertainment as part of the benchmarking demo Final Reality. Flat shading is used for the buildings and Gouraud shading for the smooth trees and lettering at the end.
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.
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.
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.
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.
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.
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. 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.
- Second Reality C64 (pouët.net) by Smash Designs - Probably the most well-known and most impressive remix, being a faithful adaptation of the original demo for the Commodore 64 platform.
- Final Reality (pouët.net) by Remedy Entertainment - Although this is a commercial benchmarking software, one of the video scenes pays homage to the original demo's "3D spacecraft fly-through" part.
- Real Reality (pouët.net) by N.E.V.E.R. - A remix, which shows all parts of the demo being played in real life.
- Zecond Re@lity (pouët.net) by Zon@ Neutr@ - Also a "real life" remix, however, this one also features the original soundtrack being performed a cappella.
- Flash Reality (pouët.net) by The Scampers - A Macromedia Flash remix, with many scenes recreated using the Actionscript programming language.
- SHizZLE (Team Pokeme) - A demo on the Pokémon Mini, which contains some parts of Second Reality.
- Second Reality 2013 (pouët.net) by Checkpoint - remix for Atari ST
- 8K Reality (pouët.net) by Fulcrum - a remix done in 8 kilobytes of executable PC code. Released at Revision 2015 demoparty where it was ranked second. The two-dimension drawings were modelled using metaballs.
- Rocky Reality (pouët.net) by Bedrock Bros. - a port done for the Pebble Smartwatch. Released at Evoke 2016 demoparty where it was ranked second in the alternative platform category.
- "Assembly 93 results". pouet.net. 2011-01-02. Retrieved 2011-01-02.
- "Slashdot's "Top 10 Hacks of All Time"". slashdot.org. 1999-12-13. Retrieved 2010-12-25.
- Smith, Ryan (2013-08-01). "Happy 20th Birthday Second Reality". Anandtech. Retrieved 2013-08-21.
- "FCINFO12.txt" (included with Purple Motion's JOURNEY2).
- "DEMO NEWS #24". Demonews. 1993-10-05. Retrieved 2015-12-17.
- "Rumple Minze: White Magic from the Black Forest" (advertisement painting).
- 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.
- 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).
- 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.
- 2ndpatch.zip on scene.org
- tre_qu (2007-03-28). "DosBox, Compatibility: Second Reality - Future Crew (1993)". dosbox.com. Retrieved 2011-01-02.