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.
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.
Hards 'news' (Score:3)
Perhaps for old nerds.
How about a 3d-printed carburetor for a 64 Buick Rivera?
Re:Hards 'news' (Score:5, Insightful)
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.
Re: (Score:1)
Not when it was already done... 25 years ago. [mobygames.com]
Re: (Score:3)
except the amiga 500 has half the clock rate, and 1/4 the onboard ram, of the amiga 1200. much harder.
Re: (Score:2)
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)
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.
Re: (Score:2)
Most software for older systems are developed on emulators as it's easier, faster and gives access to other software. The most common Amiga emulator is WinUAE and it is very precise in emulating the speed of an original system if configured to be - otherwise it couldn't run some old software.
You are comparing a system likely over 200 times faster with more memory and better graphics and tell us it is significantly better? How strange. Now shut up.
Re: (Score:3)
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.
Re: (Score:3)
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
Re: (Score:1)
Re: (Score:2)
"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?
Re: (Score:2)
Re: (Score:2)
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.
Wow. Modern Hardware compared to (Score:2)
Re: (Score:3)
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.
Re: (Score:2)
All in all, considering the hardware, it isn't that bad.
Re: (Score:2)
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
Re: (Score:1)
The C64/C128 is entirely built around chasing the scanline, and without a proper DMA chip, you have no bandwidth to do anything else.
Re: (Score:2)
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.
Re: (Score:2)
You're forgetting that GEOS on the 128 uses the bitmap mode.
Re: (Score:2)
You're kidding, right? Almost nothing on the C64 used the character ROM except for last-ditch I'm-out-of-memory data. PETSCII games are super obvious and they are mostly super old ones.
Character tilemode games swap out the character ROM and use a custom character set (to build the tiles). This is commonly used by games that need high speed scrolling, and have to build up the display really fast.
Color bitmap mode is used by TONS of games though. Anything that has a complex display, graphical adventures, etc.
Re: (Score:2)
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.
Re: (Score:2)
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.
Re: (Score:2)
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.
Wolfenstein on the Sega Genesis is nuts (Score:2)
If that had come out back in the day it would've been game changing
Re: (Score:2)
It's about 400k, which in Sega Genesis parlance is a 32 meg cart.
32 megabits is 4 megabytes.
Re: (Score:2)
AmigaRing (Score:4, Informative)
> 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.
Re: (Score:1)
Re: (Score:2)
+5 Insightful.
More info from the developer (Score:5, Informative)
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
Re: (Score:2)
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.
Re: (Score:2)
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
Re: (Score:2)
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.
So.. (Score:2)
Re: (Score:2)
Gloom was released for the AGA Amigas and Gloom Deluxe also requires at least a 68020 processor and 2Mb of RAM.
If talking about 68k Amigas in general, the original Doom was also ported to 68k Amigas, as well as for example ID Software's Quake.
68k Doom running on an Amiga 500 with Vampire accelerator:
https://www.youtube.com/watch?... [youtube.com]
Re: (Score:2)
Citadel worked on the A500 - although I don't know if it required A500+ / A600.
https://www.youtube.com/watch?... [youtube.com]
Played it on a CU Amiga coverdisk - technically impressive, but kinda dull gameplay.
https://www.ebay.co.uk/itm/CU-... [ebay.co.uk]
Re: (Score:2)
Further to the author's reply there's also Atmosfear and a pair of Alien Breed 3D games too. None of those though run on a standard Amiga 500.
That's pretty impressive (Score:2)
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.
Episode 3 available (Score:2)
Dread Ep 03 - "Doom" clone for Amiga 500 - Knee deep in the mapping...
https://www.youtube.com/watch?... [youtube.com]