An Amiga can’t do Wolfenstein 3D!

Like many people who grew up in the 80s and early 90s, gaming was a 2d affair for me. Scrolling, sprites and smooth animation were key elements of most action games. The Commodore 64 was an excellent gaming machine in the early part of the 80s, because of its hardware capabilities coupled with a low pricetag. In the latter part of the 80s, we moved to 16-bit machines, and the Amiga was the new gaming platform of choice, again offering silky smooth scrolling and animations, but because of advances in technology, we now got higher resolutions, more colours, better sound and all that.

But then, the stars aligned, and Wolfenstein 3D was released on PC. The stars of CPUs becoming ever faster, the PC getting more powerful video and audio hardware, and 3D gaming maturing. A first glimpse of what was to come, was Catacomb 3-D by id Software, released in November 1991:

This game made use of the power of the 16-bit 286 processor, which was starting to become mainstream with PC owners, and the EGA video standard. The PC was not very good at action games, because it had no hardware sprites, and scrolling was very limited. But id Software saw that EGA’s quirky bitplane layout and ALU meant that it was relatively good at certain things. We’ve already seen that it is fast at filling large areas with a single colour, for polygon rendering for example. But it is also good at rendering vertical columns of pixels.

And that is the key to having fast texture-mapped 3D walls. By taking a simple 2D-map with walls, and performing raycasting from the player’s position in the viewing direction, you can make a simple perspective projection of the walls. You use raycasting to determine the distance from the player to the nearest visible wall, and then render a texture-mapped version of that wall by rendering scaled vertical columns based on the distance, with perspective projection.

Catacomb 3-D was a good first step, but the game still felt rather primitive, with the limited EGA palette, and the gameplay not quite having the right speed and feel yet.

But only a few months later, in May 1992, id Software released the successor, where everything really came together. The developers figured out that the EGA trick of rendering scaled vertical columns works nearly the same in the newly discovered ‘mode X‘ of VGA. The big advantage was that you could now use the full 256 colours, which made for more vibrant textures and level design. The game itself was also refined, and now had just the right look-and-feel to become a true milestone in gaming. Things have never been the same since.

Here is an excellent overview of how Wolfenstein 3D evolved:

But… that change did not bode well for the Amiga. Suddenly, everything the Amiga was good at, was no longer relevant for these new 3D action games. What’s worse… these games relied on very specific properties of the EGA and VGA hardware. They did not translate well to the Amiga’s hardware at all.

And to add insult to injury, id Software followed up with DOOM the next year, which again took advantage of ever faster and more powerful PC hardware, and refined the 3D first-person shooter even further.

A few brave attempts were made on the Amiga to try and make Wolfenstein 3D-like or DOOM-like games for the platform, but sadly they could not hold a candle to the real thing:

As a result, the consensus was that the Amiga could not do 3D first-person shooters because its bitplane-oriented hardware was outdated, and unsuitable.

But all that depends on how you look at it. As you know, demosceners/retrocoders tend to look at these situations as a challenge. Sure, your hardware may not have the ideal featureset for a given rendering method… but you can still make the best of it. The key is to stop thinking in terms of EGA and VGA hardware, and instead think of ways to scale and render vertical columns as fast as possible on the Amiga hardware.

One very nice approach was shown at Revision 2019 by Dekadence. It runs on a standard Amiga 500, and achieves decent framerates while rendering with a decent amount of colours and detail:

Another interesting project is a port of the original Wolfenstein 3D-game, which is optimized for a stock Amiga 1200. It achieves good framerates by rendering at only half the horizontal resolution:

The Amiga 1200 has a 14 MHz CPU. We can compare it to the closest 286es, which are 12 MHz and 16 MHz, and those are just about adequate to run Wolfenstein 3D as well, albeit at a slightly reduced window size for better performance. So this is not a bad attempt at all, on the Amiga.

Another touch I really like is that it uses the original PC music for AdLib, and uses an OPL2 emulator to render the music to a set of samples.

Another really nice attempt is this DreadStein3D:

It makes use of the engine for the game Dread, which is currently in development. This game is actually aiming more at DOOM than at Wolfenstein 3D, but it has a very efficient renderer, and rendering Wolfenstein 3D-like levels can be done very well on an Amiga 500, as you can see.

Here is a good impression of what the Dread game actually looks like:

As you can see, it’s not *quite* like DOOM, in the sense that there are no textured floors and ceilings. And it does not support height differences in levels either. But it does offer various other features over Wolfenstein 3D, such as the skybox and the lights and shadows. So it is more of a Wolfenstein 3D++ engine (or a DOOM– engine).

And the performance is very good, even on a stock Amiga 500. So… all these years later, we can now finally prove that the Amiga indeed CAN do Wolfenstein 3D. All it took was to stop thinking in terms of the PC renderer, and making poor conversions of the x86/VGA-optimized routines on Amiga hardware, but instead to develop Amiga-optimized routines directly.

If you look closely, you’ll see that they have a ‘distinct’ look because of the way the rendering is performed. Britelite discussed the technical details of what became Cyberwolf in a thread over at the English Amiga Board. It gives you a good idea of how you have to completely re-think the whole renderer and storage of the data, to make it run efficiently on the Amiga. It has always been possible. It’s just that nobody figured out how until recently.

This entry was posted in Oldskool/retro programming and tagged , , , , , , , , , , , . Bookmark the permalink.

21 Responses to An Amiga can’t do Wolfenstein 3D!

  1. jake says:

    Great how the very last sentence torpedoes everything else you wrote before it:

    “It’s just that nobody figured out how until recently”.

    Exactly…. whether it was possible or not, NOBODY FIGURED OUT HOW TO DO IT UNTIL WAY, WAY AFTER IT WAS TOO LATE TO MEAN ANYTHING.

    The Sinclair Spectrum would probably be able to do things we never thought possible if people searched for new algorithms and techniques for an eternity. Imagine what *might* appear on a Sinclair Spectrum in 100 years if many very clever people with mathematics backgrounds worked on new methods?

    Imagine what I do when I’m programming: “If there were an omniscient programmer who could know every possible permutation of algorithm, which would have the best effect”?

    Take sort-routines. There is a very good change that none of the best ways of doing it have even been discovered.

    The thing is…. you cannot just set aside the tractability of the problem as if it is immaterial. Time is definitely NOT immaterial in software development. Develop time matters.

    What you also ignore is for any hardware platform certain kinds of software design “fall out of” the system. It’s a term programmers use regularly. If your hardware provides sprites and tiles and has no 3D transforms and a weak processor then it is inevitable that you will soon see 2D tile-based sprite games appearing on it.

    You can make a similar argument about MPEG. Despite fan-base claims, the Amiga definitely does NOT lend itself to video. You only need to know how MPEG streams work and take one look at the CPU and hardware to know this. It’s laughable to brag about video capability when any capable programmer can just look at the spec sheet and write off those claims. Video codecs of sorts did appear on the Amiga but none of them gained much traction. By the time MPEG players were available it was 2016.

    Arguing about its outright feasibility is not as relevant as the outright difficulty of achieving it, which is why you don’t see software of certain kinds on the Amiga and you certainly don’t see all varieties of software type implemented straight away not in plentiful quantity.

    You *may* be able to develop fully textured games for it, if only you had the right method, the problem is, you don’t.

    Somewhere out in space there may be some bonkers method to develop fully textured 3D games for the Sinclair Spectrum or ZX81.

    Here’s an intro to how Dragon’s Lair took small steps approaching the arcade original from 1982:

    …which led to an FMV release on the Ti-99/4a:

    The problem? It didn’t appear until 2018 and was the beneficiary, as so many advances on old tech are, of an unlimited amount of development time to spend thinking about how to do it and what to leave out.

    Also, I deny that any of the examples you have found do really form an acceptable alternative to Wolfenstein. They are not as good and most of them are still Not finished games.

    You have had demo writers trying to find speed-ups for textured graphics and make similar effects on the Amiga for the whole of the now just over 40 years which has elapsed since Doom was released for the PC. So, the answer is:

    “Year, you can do it, you just need a 4 decades development time to achieve it”.

    Now go back and imagine what Wolfenstein could be like if multiple PC developers had each also taken 40 years to think about it and optimise the code and share ideas? It would clearly have been a lot better than it was and it would also have been released at a time long after it didn’t matter.

    All these failed and mediocre attempts on the Amiga verify after so much time that the Amiga really is *crap* for this kind of thing.

    Meanwhile, oh look, yes, predictably people have “proven” that Wolfenstein 3D was also possible on a Sinclair Spectrum:

    Sinclair Spectrums are as good as Amiga then, right?

    Funny how we were not inundated with textured 3D games on the Spectrum in the 1980s though isn’t it, given that it is “proven possible”? I wonder why that is?

    The fact is, PC VGA hardware and its CPU of the time are a far better platform for plot code and 3D – and almost any other kind of software – than the Amiga is and you lengthy boring rant about it, as always, changes absolutely nothing.

    Meanwhile, here’s Dragon’s Lair for MS-DOS CD:

    But, I guess that was “possible” on an Amiga too:

    Verdict: You just wrote another great rant which proves what we already knew: The Amiga is crap.

    🙄

    • Scali says:

      Best thing about the Amiga is that it still pisses off people decades after its release.
      You get the most hilarious rants.

      • jake says:

        Keep on telling yourself what you want to believe: I don’t care about the Amiga, it’s people who can’t accept it was an overhyped and unremarkable failure of trying to yolk a GUI to games hardware. Didn’t work out any better than if there had been a GUI for the Super Nintendo: There isn’t any point when you have a CPU so weak it’s useless without ASICS around it to do the hard work.

        You can’t make a decent general purpose computer with an allegedly 1979 16bit CPU whose clock cycles per instruction make it look more like 16bit wrapping on an 7Mhz 8bit core than a true 16bit chip.

        No wonder on benchmarks it is computationally outperformed even by the very first IBM PC from 1982.

        It would be dead without the blitter and the blitter is slower than an average sprite engine. The blitter is slower in pixels per frame than the sprite hardware of a Commodore 64.

        What’s the sum total of the novel you’ve written on the matter?

        1. Amiga digital sound is better than SB 1.0 sound as long as you ignore the 9 voice FM stage*
        2. After 40 years of development you can almost squeeze a half-assed Wolfenstein rip-off into it.

        *Your painful rant explaining S/N ratio quietly omits the fact SN was better on PC digital sound cards than the Amiga.

        That’s literally it, isn’t it?

      • Scali says:

        I can tell you don’t care about Amiga, by the fact that you use multiple sockpuppet accounts to post endless rants on various social media, telling everyone how bad you think the Amiga is…

      • jake says:

        Meanwhile, while you still sit there waiting for the Amiga to play catch-up with a 30 year old PC, this real-time ray-tracing demo is now two years old:

        Nobody is waiting for the Amiga to catch-up with 1992.

        It has been more than two decades since a credible Wolfenstein or Doom clone on the Amiga could possibly have been news at all.

        People are not waiting for a new Doom or Wolfenstein, they are waiting for things like this:

        Wake me up when you have Unreal Engine 5 running on an Amiga.

    • Tipi says:

      “the now just over 40 years which has elapsed since Doom was released for the PC”

      Uhh… What year is this?

    • equipthering says:

      The Amiga game Citadel has floor texture mapping and the gameplay is closer to Doom than Wolfenstein 3D.

  2. jake says:

    “I can tell you don’t care about Amiga, by the fact that you use multiple sockpuppet accounts to post endless rants on various social media, telling everyone how bad you think the Amiga is…”

    I’m just holding the light of truth up to the fact the whole “Amiga v PC” argument is made by Amiga fans with a vendetta against the PC for Winning who set out to make deliberately false and pejorative comparisons, arguments which typically begin by comparing an ideal Amiga software / hardware setup which couldn’t possibly have existed until at least 1993 with an original basic IBM PC with CGA graphics from a decade previously.

    Ignoring the fact by the time the Amiga existed the PC was already a modular system with a very lively third-party marketplace which meant there has never once been a time since the Amiga was launched when you couldn’t get a better PC: The Amiga was ALWAYS behind.

    • Scali says:

      Yea, me making PC demos like 8088 MPH must be part of that ‘vendetta against the PC’…

      • jake says:

        Yes, you like to mention that as often as you can.

      • Scali says:

        Well apparently I keep having to remind you that I generally code PC demos, not Amiga stuff. You keep going on about Amiga stuff all the time, and sling all kinds of accusations around, that don’t make any sense.

  3. jake says:

    LOL. What relevance does that have? 100% of this debate so far is NOT about programming.

    Meanwhile, if you “usually” write PC demos, then great….. what else have you programmed….. apart from participating on One demo on the CGA PC/XT?

    • Scali says:

      Apparently you haven’t read the blog then, because the ENTIRE blog is about programming techniques for raycasting on the Amiga.

      • jake says:

        “Apparently you haven’t read the blog then, because the ENTIRE blog…”

        Like absolutely everybody else who has encountered your irrelevant boring rambling I haven’t read your ENTIRE blog and definitely never will. So, well done Mr perceptive, yes, I haven’t read your blog because it’s boring, irrelevant, out of date and crap.

      • Scali says:

        Then here’s a tip for you: Stop coming to my blog, and don’t respond to articles you didn’t even read.

  4. jake says:

    Accusations make sense when they are valid. So far the argument has been about your lack of knowledge / honesty about software / hardware availability and your inability to accept people buying PCs, especially before the 1990s, typically don’t care even slightly about demos and games.

    • Scali says:

      If you were smarter, you would have figured out that I don’t even bother to respond to any of your arguments, because they aren’t even worth taking seriously. But apparently you haven’t figured that out yet.
      You just keep getting more obnoxious and rude.

      • jake says:

        They aren’t arguments they are simple point black matter-of-fact. The reason you don’t respond is you have no response.

        A but like the explanation for why the Amiga failed against the PC: The Amiga platform had no response to what the PC platform offered developers and consumers. That’s why the Amiga died. The whole “argument” is literally as simple as that.

  5. Pingback: Retro programming, what is it? | Scali's OpenBlog™

  6. Hithead says:

    @Jake
    You got it backwards. Back in the days, people said that the Amiga hardware was not fast enough to run Doom like games.
    As is proven here, that viewpoint is wrong. The Amiga hardware is fast enough to run Doom like games in a decent way. Sure, it required new thinking about the algorithm, but the Amiga hardware was capable enough. End of story.

  7. Steviant says:

    I think the point that Jake has missed here is that neither the PC, nor the Amiga should have been capable of doing what Wolfenstein did. Wolfenstein took great advantage of hardware hacks and very particular features of the PC and VGA architectures to achieve what it did. The fact that those features were discovered decades ago doesn’t mean 3D fps games “fall out” of the PC architecture, instead it highlights the brilliance of John Carmack.

    If Carmack had created the predecessor to Wolfenstein for the Amiga, which apparently might have been possible, then the resulting algorithms would have been fundamentally incompatible with the PC and the 3D fps craze and 3d accelerator cards might have formed around that architecture.

    If that were the case, Jake would be telling us that 3D games naturally “fall out” of architectures based around custom coprocessors with performance that dwarfs the CPU – which funnily enough, is an accurate description of the Amiga and modern PC hardware.

Leave a comment