Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
minato
Jun 7, 2004

cutty cain't hang, say 7-up.
Taco Defender
https://www.youtube.com/watch?v=2jciCr8zEhw

Batman Rises - Original Chipset Amiga demo, running on 1MB RAM and 2 floppy drives.

As someone who knows the Amiga internals pretty well, I'm pretty impressed. I can guess how most of the effects are done but what really impresses me is the memory management. When coding an effect, apparent CPU speed can be traded for memory, i.e. you can precalculate an animation to avoid lots of heinous 3D calculations in real-time, or pre-stretch images at various resolutions to achieve roto-zoomers. But that soaks up a lot of memory, and they're doing so many different things without loading delays between them, I figure they must also be furiously reading off those floppy discs the whole time.

Notes on the various set pieces:

- the city explosion: part 1 when Batman walks up to the edge is pretty simple, his head & shoulders are just a sprite and his cape is a pre-calculated animation. Since the cape is a single pure color, the only need to store the left/right edge coordinates for each line, making it pretty space-efficient.

- the city explosion: part 2 with the shockwave - no idea. The explosion intersecting with the buildings is easy for hardware with a Z-buffer, but the Amiga doesn't have that. They might have pre-calculated just that area of the animation (it's "only" 1 second long) and overlaid it on top of the longer realtime animation of the expanding explosion. This effect would have taken a lot of careful planning.

- the disc loading: The Amiga's disc loading didn't use any CPU. As I recall you could just ask the disc unit to start reading data and tell it where to DMA it in memory, and go off and do other things. Very few games/demos took advantage of this because it was so time-consuming to iterate on (assembling the program, writing to disc, rebooting to test). But developing on an emulator would make this far more feasible. They must have developed some amazing tooling to code all this.

- tunnel: very nicely done, especially since the floor/ceiling are textured. The floor/ceiling tiles are almost certainly pre-stretched, and then rendering one screen is a "simple" matter of pointing each display line at the appropriate pre-stretched line in memory. The white angled side parts are using the blitter's ability to draw lines and fill in regions very quickly. You can tell because the tunnel overlaps itself sometimes, and the white angled side parts invert. This is because the blitter is kinda dumb when it fills in lines; it starts from one side until it hits a boundary, then fills until it hits another boundary, then stops filling until it hits the next boundary, and so on. So if you don't get your line boundaries perfectly in order, you get rendering artifacts.

- the red line zipping through the 3d blocks: no idea, really welldone. I don't wanna say it's all pre-calc'd, but the camera is fixed and all the points/lines are axis aligned which means it's a look-up-table could be used to map from X/Y/Z into screen X/Y coords, avoiding a very expensive divide operation.

- The kaleidoscope at 3:24 is really nicely done. It's easy to get top/bottom mirroring "for free", but left-to-right mirroring is not cheap. Would love to know how they did this one.

- City flythrough: this animation does have rotation, but the number of points is relatively low so this could all be real-time. It's not trivial to do the object sorting though - I expect that's pre-calc'd to some extent.

The Joker image stretching in the background is inexpensive to do. Stretching images vertically is just a matter of telling the copper (display co-processor) to repeat certain lines. So all you need to do is generate a 240 element buffer every frame filled with pointers to the appropriate images lines, modulated by some sinusoidal lookup table.

- Image zooms: I've described how these work before (and why they're so difficult), so what's impressive here is that there's so many different images. The technique I developed pre-calculated the horizontal stretching (the vertical stretching can be done realtime as described above), but each level of stretching would soak up a lot of memory, and they're cycling though ~7 images, and it starts immediately after a section using a large Joker image. My back-of-the-napkin calculations think that pre-stretched monochrome images would take up about 512k.

- Crumbling batman statue: really nicely done. Almost certainly the animation is pre-calc'd, there's no way the Amiga could have done physics calculations like we take for granted today. It must have been a lot of work to develop this bit, you can see the pieces color-change as they fall into the fog under the statue. Presumably someone developed this in Blender and exported it, but that color fade would have to be programmed in, that must have taken ages to get looking just right.

- Triangle pieces assembling into Batman: This was actually more impressive on 2nd look. At the beginning there's just 1 triangle (with some particles around it), but the shading on that triangle is not flat-shaded, it looks phong-shaded. This is impressive because phong-shading is a per-pixel technique, which the Amiga is really not suited to doing. (once more triangles appear, it resumes flat-shading)

The triangles flying around look good; there's only rotation around the Y axis so that could be realtime.

I'm super-impressed by the triangle-rendered head fading into the image of Batman. It's very smooth, no idea how they did that.


Overall I think this demo must have taken a huge amount of planning with very little wiggle-room for design changes. Many demos are just different effects developed independently and stitched together, but that would have been very difficult to do here because each effect's memory usage & disc usage would have drastically affected the effects on either side of it. I'd love to see a Making Of video about this.

Adbot
ADBOT LOVES YOU

minato
Jun 7, 2004

cutty cain't hang, say 7-up.
Taco Defender

boof posted:

This C64 demo from last year really blew my mind. Mainly the sequence that commences at the 8 minute mark. If I'd seen that as a kid I'd have been convinced that it was magic.

https://www.youtube.com/watch?v=-22PcRAMKTg

God drat. The whole demo is amazing but that 100 game sequence must have been an insane amount of work. And they didn't just duplicate the graphics, they partially did the music too.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply