Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Amiga First Person Shooters (Games)

Developer Attempts 'Doom' Clone for the Amiga 500 49

Mike Bouma is Slashdot reader #85,252. (And judging by his Slashdot profile, he was also a participant in the short-lived Amiga webring.) He writes: KK of the demo scene group Altair is making a Doom clone for the Amiga 500. The system requirements are a mere 7 Mhz Amiga 500 with 1 MB of RAM!

Have a look:

Dread Ep 01 — making "Doom" clone for Amiga 500

Dread Ep 02 — "Doom" clone for Amiga 500 — Laying out the map...

You can find KK/Altair at the English Amiga Board.
This discussion has been archived. No new comments can be posted.

Developer Attempts 'Doom' Clone for the Amiga 500

Comments Filter:
  • by nospam007 ( 722110 ) * on Sunday April 26, 2020 @11:35AM (#59992864)

    Perhaps for old nerds.

    How about a 3d-printed carburetor for a 64 Buick Rivera?

    • Re:Hards 'news' (Score:5, Insightful)

      by jellomizer ( 103300 ) on Sunday April 26, 2020 @12:22PM (#59993046)

      There are a lot of useful thing to learn about pushing older hardware to its limits.
      Modern system have a lot of extra power so it is easy to be lazy in your coding. But this older hardware there is no wiggle room for sloppy code.

      • by Anonymous Coward
        • except the amiga 500 has half the clock rate, and 1/4 the onboard ram, of the amiga 1200. much harder.

          • The 68020 in the Amiga 1200 didn't just have double the clock rate, it had a MUCH more efficient architecture - with instruction pipelining, 32-bit data bus, 32-bit ALU instead of 16-bit, etc.

        • Re:Hards 'news' (Score:4, Informative)

          by Cipheron ( 4934805 ) on Sunday April 26, 2020 @05:02PM (#59993932)

          Gloom is technically much closer to a Wolfenstein 3D clone than a Doom clone though. It only seems to support one wall-height, and walls at 90 or possibly 45 degrees by the looks of things.

          As the other poster noted, Gloom was for a 14 MHz machine with 2MB of RAM. This is actually much higher than the minimum specs needed for Wolfenstein 3D (about 10MHz 286, 640K RAM), and not much lower than the minimum specs needed for Doom (386sx16 and 4 MB RAM). People have since compiled the *actual Doom* for Amiga 1200. Gloom isn't actually that technically impressive given the specs and what it looks like, a more blocky Wolfenstein.

          This new one is much more impressive. 7 MHz processor with 1 MB RAM running something that actually looks like Doom.

          • Gloom is technically much closer to a Wolfenstein 3D clone than a Doom clone though. It only seems to support one wall-height, and walls at 90 or possibly 45 degrees by the looks of things.

            As the other poster noted, Gloom was for a 14 MHz machine with 2MB of RAM. This is actually much higher than the minimum specs needed for Wolfenstein 3D (about 10MHz 286, 640K RAM), and not much lower than the minimum specs needed for Doom (386sx16 and 4 MB RAM).

            The PC had a massive advantage of screen RAM layout in Mode X - 1 byte per pixel makes it easy to do fake texture mapping.

            https://en.wikipedia.org/wiki/... [wikipedia.org]

            The Amigas use a bitplane layout where each screen pixel is spread through multiple memory locations. That makes it a LOT more difficult.

          • by AmiMoJo ( 196126 )

            Gloom only supported one wall height but it did support arbitrary angle and even moving walls. There were areas where you had a kind of revolving door made of walls for example.

            Remember also that the 14MHz CPU in the A1200 is not really equivalent to a 286 in a number of key ways. For a start the basic A1200 memory is shared between the CPU and video/sound so bandwidth is more limited. Also a 286 benefits from having graphics hardware that one byte per pixel (VGA) where as the Amiga uses bitplanes that make

        • It really wasn't. First it's Amiga 1200, second, just look at the screenshots from your link. It's likely a bit enhanced Wolfesntein type raycaster that has very few features that make DOOM different. Not saying it's not amazing feat of programing, just that's it's not really close to DOOM. That said it's kind of customary to attach DOOM label to any 3D-ish shooter made on old HW, like for example MOOD on C64: https://www.youtube.com/watch?... [youtube.com] Anyway, for anyone interested in more in depth analysis of A500
      • "There are a lot of useful thing to learn about pushing older hardware to its limits."

        Like what?

        How fast the fire department gets there when the Halt And Catch Fire Exception is triggered?

    • by JackAxe ( 689361 )
      Get off my 3D printed lawn! :P
    • How about a 3d-printed carburetor for a 64 Buick Rivera?

      That would be pretty cool! Is it water tight? Is it pure metal? What alloy did you use where oxidation wasn't a problem? How big is the printer? Did you have to slice it apart to smaller models to fit on the printer and then attach / glue / solder them together? How did that work?

      Running a Doom clone on an Amiga is "News for Nerds". It's a cool project. We could argue "Stuff That Matters" separately.

  • The Doom Clone on the C64, which looks REALLY Bad. Which was done like 3 years ago... https://www.youtube.com/watch?... [youtube.com]
    • by Sigma 7 ( 266129 )

      The Doom Clone in the C64 was released in 1996. http://noname.c64.org/mood/ [c64.org]

      Gameplay video: https://www.youtube.com/watch?... [youtube.com]

      While low resolution, it's actually a serious attempt at a 3D first-person shooter, and I'm certain that adding more processing power would make things much easier.

      • All in all, considering the hardware, it isn't that bad.

        • With this old hardware a good portion of the CPU is going towards Keeping the screen displayed.
          Older system such as the Atari would often have black lines in the graphics because the CPU was too busy processing.

          Doom was designed for PC hardware 386 minimum. Making a port on lesser systems will not be as good. But being close is really impressive

          • The C64/C128 is entirely built around chasing the scanline, and without a proper DMA chip, you have no bandwidth to do anything else.

            • I wouldn't say that. It has a real bitmapped display, you don't have to constantly feed a line or pixel buffer. It also has hardware sprites that take care of 8 objects onscreen for you in 2 dimensions. It's not like the Atari VCS/2600 where there is no bitmap and the CPU has to drive the display.

              Beamchasing on the C64 is mostly done when you're trying to do advanced stuff like sprite multiplexing or per-line colormap swaps.

            • The C64/C128 is entirely built around chasing the scanline, and without a proper DMA chip, you have no bandwidth to do anything else.

              Complete rubbish.

              Maybe you're thinking of the Atari VCS.

          • With this old hardware a good portion of the CPU is going towards Keeping the screen displayed.

            Maybe you're thinking of the Sinclair ZX81 or Atari VCS? The C64 certainly doesn't do that.

          • by AmiMoJo ( 196126 )

            On the Amiga the CPU isn't needed to maintain screen display but the hardware that does steals memory access cycles from the CPU.

            Amiga coding is all about managing memory access cycles. The speed of processing, the amount of stuff you can put on screen, it's all down to to the limited number of access cycles available.

      • It runs on Stock Genesis hardware and looks like this [youtube.com] Running on a CRT, you wouldn't really notice the texturing tricks. It's about 400k, which in Sega Genesis parlance is a 32 meg cart. The same size as Super Street Fighter II.

        If that had come out back in the day it would've been game changing :).
      • This is clearly a Wolf3D clone using raycasting into an axis aligned cell grid, not a doom clone using raycasting into an arbitrarily aligned BSP tree.
  • AmigaRing (Score:4, Informative)

    by Mike Bouma ( 85252 ) on Sunday April 26, 2020 @11:59AM (#59992954) Homepage

    > he was also a participant in the short-lived Amiga webring

    Just a little correction here. The webring was started back in 1996 and was managed till 2007. That's well over 10 years! So it wasn't "short-lived" at all. It was quite popular too for the time.

  • by Mike Bouma ( 85252 ) on Sunday April 26, 2020 @12:38PM (#59993104) Homepage

    http://eab.abime.net/showpost.... [abime.net]

    "Thank you guys for all the kind words!! :-) (and for the other kind of "kind" too - just ignore that)

    If you have any kind of questions about this little thing, just fire away here. I will definitely check this tread, because of just how awesome your reaction was! :-)

    So, to address the more common questions...

    1. The game DOES run on a stock A500 exactly how it does in WinUAE - if you watch my presentation closely, you'll see that I restarted the demo just because it was running too fast (it does in WinUAE in non-cycle-exact modes). The point of the presentation was just to give a few tricks away and not to show the game, so there was no actual hardware used. But if you ask anyone attending Decrunch 2049 party, they would confirm that it runs indeed because I gave a stealthy show there.

    2. Don't compliment me on the art. All the graphics are converted from FreeDoom, which thankfully is covered by BSD license and I can focus on coding. Level design is done by me, because it has to adhere to the engine limitations.

    3. This will be a "doom clone", so don't expect Doom port from this project. In no close point in the future the engine will be able to handle complexity of Doom maps. So, instead it's much better to design maps that allow acceptable gameplay (10+ FPS) on a A500 1MB and make a fresh thing. On the other hand, this also allows having features NOT present in Doom - like sliding doors, which are already implemented. But multi-floor buildings would also be something I'd love to have down the road.

    4. The performance so far is roughly:
    - 10-14 FPS - A500+1MB
    - 24-25 FPS - stock A1200
    - 30 FPS - A600 with Furia
    But the A500 performance is the king here. Every possible optimization that could improve the framerate on A500 is a clear win for me, even if it would cripple the remaining configs somehow. Stronger configs have good FPS games already, and I really want to fill the A500 gap.

    5. The demo features so far:
    - 3 different ceiling heights + sky,
    - 2 light levels (this is really a trick - I change textures and floor/ceil colors),
    - angled walls,
    - flat floor and fixed camera height,
    - 4 weapons (pistol, shotgun, chaingun, rocket launcher),
    - 3 types of monsters (shotgunner, chaingunner, flying monster),
    - large map with keycards and (sliding) doors,

    6. The fixed camera height is a limitation allowing several optimization tricks. In worst case scenario, the camera will move vertically in fixed steps - after all, moving camera is the same as moving rest of the map up and down. In best case - I'll figure a clever way to get around this. Right now, having limited number of possible drawing heights allowed me to bring performance to acceptable levels and focus on making a playable demo from what I got. We don't want just an another tech demo with no gameplay, right? :-) But this is clearly a point I'll have to go back to.

    7. Last, but definitely not least - I have not released binary so far. I have already spent a better half of the year on that and pretty burned my motivation by this point. But there is still SO much work ahead, so I'm still thinking about how to get the best motivational boost from what I have so far. Right now I'm considering releasing this (and any regular updates I make from this point) via Patreon and/or itch.io, but got kind of stuck in the decision because of how it would limit the availability, on the other hand. I'm already at the point where I can barely look at this code, so something should be done about that. In any case, community modding will be a big point in the process, so everybody interested could have as much fun as possible even with unfinished product, while, at the sa

    • by AmiMoJo ( 196126 )

      I hope the code and a technical description is released eventually. There must be some clever tricks.

      We were discussing ideas for this on EAB but lack of time to actually try them is always the issue. I'm glad someone is able to work on it.

      • I've been thinking about how to approach this on an Amiga. The biggest problem is the screen memory layout - bitplanes makes it very very slow to manipulate individual pixels.

        Maybe create a fake "screen" in memory that's one byte per pixel (4 bits will be wasted) then somehow use the blitter to convert/copy that to Amiga bitplanes (nb. would need multiple passes).

        Or maybe each byte could countain two 4-bit pixels which end up being 4 pixels apart in the bitplanes. That would halve the number of blitter pass

        • by AmiMoJo ( 196126 )

          What you suggest is called Chunky to Planar conversion (C2P) and is quite common.

          Reading the thread that might be involved here. IT seems that it is rendering at quarter resolution, 160x128, so each pixel is quadrupled up to 2x2. The vertical doubling is basically free because you can do it by just repeating a scanline with the copper. Horizontally it can be worked into the C2P routine.

          But there must be more to it because on an A500 you won't get that kind of performance rendering and then copy/converting.

  • by xlsior ( 524145 )
    There's already been a Doom-like game for the Amiga: Gloom. https://en.wikipedia.org/wiki/... [wikipedia.org]
  • As somone who did some dev work on the A500 back in the days and who still does some work on similar processors (frankly, the M68000 was one awesome piece of hardware) I'm pretty impressed that someone even tries that. Looking forward to seeing that code, must be some artsy 3d routines to get this to work on the old lady.

  • Dread Ep 03 - "Doom" clone for Amiga 500 - Knee deep in the mapping...

    https://www.youtube.com/watch?... [youtube.com]

Think of it! With VLSI we can pack 100 ENIACs in 1 sq. cm.!

Working...