Jump to content
IGNORED

DooM XL ;-)


emkay

Recommended Posts

Inspired by the ZX Spectrum Version I created a Graph2fnt image (which is originally taken from a Spectrum sreenshot)

 

Some thoughts about it, and why it can be faster than someone would expect, and also even more colourfull.

 

The screen is build with 23 colours... not bad for a monochromous mode ;-)

 

The "3D-range uses approx. 130" scanlines, but every second scanline is kept black. Thus the 3D scene is using 65 lines for displaying.

To have this, on the ANTIC simply switching DMA off every 2nd line, would look same and would save some Memory, too.

 

65 x 32 = 2080 bytes to handle .... with the "byte resolution" . Bit calculations are not needed.

 

plus

 

Up to 384 bytes of PMG (max). plus positioning and the needed bit calculations.

 

To have the screen as colorful as possible, the direct positioning of 2 Players is recommended. So up to 3 big enemies with extra colours are possible.

 

The wall in the backgound could be build by DLI and with 1 player plus the 4 missiles for "enhancing" the 3D movement "look alike".

 

And, well, contrary to other 8 bit computers, the depth of view could be enhanced by using different brightness values.

What's bright when it is close can be darker in the far.... This gives a lot ambient and reliability.

The best solution was to have some real light depending to the moving objects. There is no need for a 3D illumination calculation.

Just imagine: When a monster is in the dark, you only see some shadow (the PM) and when walking near a light (or into a bright room) , it gets brighter...

Edited by emkay
Link to comment
Share on other sites

Personally, I'd prefer such a game done similar to Numen, with the Gr. 9 square pixel mode. But, I guess there the downside is that Players then become unusable.

 

Another possibility is interleaved hires and GTIA "colour only" mode, but of course that would effectively slow the CPU by near 50%

 

Whichever way it was done, if anyone was to do it, there would be no compromise needed with blank scanlines as per the Spectrum.

Link to comment
Share on other sites

It might be possible to do this on a character mapped screen that can be manipulated much faster than like a graphics 8,9,10,11, or 15 screen. It would consume much less memory and much easier to write faster rendering routines. A programmer fluent in assembly and the inner working of the Atari is what you need. The limitation of the Atari computer is speed and limited on screen colors. You can probably get enough characters to do 8 or 16 angles of view. If you do graphics 12 (Antic 4) with DLIs it maybe possible to get 10 to 15 onscreen colors.

 

Another option is do simple APAC thing with 2 character sets and just going between GTIA +64 and GTIA +192 mode. The characters will be 2x4 pixels but with 1 of 256 colors.

Edited by peteym5
Link to comment
Share on other sites

It might be possible to do this on a character mapped screen that can be manipulated much faster than like a graphics 8,9,10,11, or 15 screen. It would consume much less memory and much easier to write faster rendering routines. A programmer fluent in assembly and the inner working of the Atari is what you need. The limitation of the Atari computer is speed and limited on screen colors. You can probably get enough characters to do 8 or 16 angles of view. If you do graphics 12 (Antic 4) with DLIs it maybe possible to get 10 to 15 onscreen colors.

 

Another option is do simple APAC thing with 2 character sets and just going between GTIA +64 and GTIA +192 mode. The characters will be 2x4 pixels but with 1 of 256 colors.

 

The Character based option is not usefull when using every second scanline blanked. And it is not possible to write directly the PM in the first charmode line. Which is recommended for a "most colour solution".

 

The APAC mode consumes heavy cpu cycles by changing the GTIA modes.

Really, the best way of getting fastest and most colorful "3d looking" on the A8 ist to reduce the "time consuming mode presetting by software routines" and to create software routines for a minimalistic screen setting with PM overlay.

 

THAT the A8 is fast enough for software "movement" is shown many times (at least with the Jetboy and the Jet Set Willy conversion)

Link to comment
Share on other sites

So, emkay, you propose writing PM registers rather than letting DMA do the work?

 

I guess that has some savings rather than having to do 4 store ops (in 2-line mode).

 

 

Alternatively, I do believe you can selectively enable/disable GTIA's access to it's graphics registers once every 8 scanlines, then it would "remember" what it read on the first, and keep displaying it until allowed access again.

 

But, doing that would use more cycles than just 4 store ops, although if there were DLIs happening every line anyway it would represent a time saving.

Link to comment
Share on other sites

I still think such a game would look better done in GTIA paletted mode (9 colour).

 

You do lose the PMGs, but get the colours without the hard work.

 

 

Or... maybe your idea of blank lines every 2nd scanline. The PMs would work in those, and could be used for effects and fireballs.

Link to comment
Share on other sites

Shouldn't you just write that you looking for a good Atari coder? :)

 

"Looking for a coder" implements that I want someone who is exactly adapting my ideas.

The only real intention here, is to give "inspirations" to coders.

No problem to help further, if someone has a "programming idea" :-)

Edited by emkay
Link to comment
Share on other sites

Where can I get a runnable ZX Doom? And how to run it? I couldn't find it :(

 

OK, I found this: http://www.youtube.com/watch?v=W3q4SAQ9r7U

It's too slow to be any fun playing it imho.

 

Oh, and btw, it's not really Doom engine, it's more Wolfenstein with added (rotating) floors and (scrolling) ceiling. There are no stairs etc.

 

All in all, when writing a game, you should consider playability of it. For some games, like Rescue on Fractalus, the framerate is not crucial. But for any action game, it is - I can't honestly imagine playing anything Wolfenstein-like having 5 frames per second. I guess, relatively slow framerate was one of the reasons Vector (game based on an engine from Numen) was never finished.

Edited by eru
Link to comment
Share on other sites

I can probably do some effective 3D on a character mapped screen in either Antic 4 or Antic 2 with GTIA 9 color. That is along with using DMA for Player/Missile graphics. I can get you more colors with DLIs. I favor character mapped modes over bit mapped modes because they take less CPU cycles to manipulate and have an extra color available. A bitmapped mode would have 8 times as many bytes to control. I wrote a primitive 3D game going through a maze in Turbobasic like 20 years ago. Since I have more knowledge with assembly and other techniques I picked up from webpages now, I can probably do something with about 15 to 30 frames/sec. Can do a bunch of preform character images that copy onto the screen.

 

Now remember, you are still gonna be limited in number of colors and it is going to look cartoony does not matter what you do. You are dealing with the original Atari technology. The only other option is to wait and see if that Videoboard XE becomes available. From what I understand about it is that its video chip has some extra processing power. Might be able to do everything in preform sprites.

Edited by peteym5
Link to comment
Share on other sites

IMHO people who knows how to program A8 should try to make new games or port existing ones from other 8-bits to show the real power of our computers.

We all know that many important games weren't ported and other were awful (like Jet Set Willy, music apart).

I think that these new games should use normal hardware and 64KB (128KB if necessary), to be enjoyed by the maximum number of Atari users.

Link to comment
Share on other sites

IMHO people who knows how to program A8 should try to make new games or port existing ones from other 8-bits to show the real power of our computers.

We all know that many important games weren't ported and other were awful (like Jet Set Willy, music apart).

I think that these new games should use normal hardware and 64KB (128KB if necessary), to be enjoyed by the maximum number of Atari users.

 

I agree. No offense but who needs Doom or Wolfenstein on 8-bit Atari? IMHO, this computer simply doesn't have enough power to handle this type of game. Vector was coded by Fox (far the best A8 coder out there) but with no success. I can't imagine playing seriously something like Spectrum Doom. Yes, it's masterful piece of work but it can't be fun to play. Low screen resolution and slow fps rate would kill any game and especially 3D game. Let's create something useful!

 

F.

Link to comment
Share on other sites

Agreed ++

 

Energy would be far better devoted for example, for someone to port Elite, to show once and for all which is the best 8-bit system.

 

I've played via emulation or real hardware most versions of Doom.

 

Even the 68030 Mac version is crap on my Quadra, because of the slowdown.

Link to comment
Share on other sites

It would take me a few months to develop the routines to do what I was proposing. However I cannot do anything right now because I am tied up with other projects and for personal reasons. A 3D first person type game is no way going to look that great and the Atari 8-bit only has a fraction of the CPU power to do it. That is why I suggested a few shortcuts using character mapped screens, and maybe 8 or 16 viewing angle.

Link to comment
Share on other sites

Some other thoughts:

 

At least, on other platforms you have some "doom clone" and you can do some action...

 

Vector is a nice achievement, but we never may see some "true game" with it.

The resolution is still too low and the engine uses a "higher" resolution than the A8 can handle inside a 3D game.

 

Using hi res on the A8 brings a better resolution and the "byte" movement gives a balanced resolution to the speed of the cpu.

One also could deal with colour res. of 160*100 pixel.

But, this time I want to have a look at hires.

 

Some additional thoughts:

Vector uses CPU cycles to create the 3d screen and it uses a very low resolution.

Actually it is not bad at speed, but who really wants to play a game with it?

When having a "monster" it could also be a tree or a mushroom....

Looking at the gr.8 with byte handling, the byte handling removes every bit calculation for the graphics. The black lines are simply there... no need for tricky cpu usage.... AND ... you recognize some "monster" even if scary or not.

So, if dropping the PM overlay, possibly the engine could be 4 times faster than vector.... with PM overlay problably 2-3 times faster than vector.

Edited by emkay
Link to comment
Share on other sites

1. Kill the floor and ceiling textures, they eat up cpu power, and nobody cares about them.

 

2. Simplify wall textures - A graphic novel solid black for every shadow with the bare minimum visual aids for doors and control panels is an easy way to keep far away details from slowing down the action. Only draw enough details to hint at the technology underneath up close - imagination is more important than the actual graphic.

 

3. Flickering is your friend - in Doom, you can get away with that trick in heavy graphics areas by simply having the lights be unreliable. Have the lights go out occasionally, and only be available in a way that makes them look like they could go out in any second. Add the sounds of the monsters stalking you, and a weakness becomes a strength.

 

To the coders - would these changes make up the speed?

 

If not, maybe the best 1st person shooter would be one that's based on stealth and intelligence?

Edited by A Sprite
Link to comment
Share on other sites

No offense but who needs Doom or Wolfenstein on 8-bit Atari?

 

For example I need :) That's the challenge. Nothing less, nothing more. And this type of questions have no sense at all... You can also ask: who needs Atari or Commodore in XXI century?

 

IMHO, this computer simply doesn't have enough power to handle this type of game. Vector was coded by Fox (far the best A8 coder out there) but with no success.

 

If I good remember, Fox created the Doom-like engine (more complicated than Wolfenstain-like engine) successfully and shown in Numen demo to present the power of it. ZX Doom looks poor and awful when we compare it with Numen 3D engine. Only reason game wasn't completed had the non-technical nature: Fox expected that somebody will help him with no-programming work (project leading, level designing, etc).

 

And why all of you are talking about game (Vector) you have never watched in action?

Link to comment
Share on other sites

Few words from a coder :)

  • Unlike most Atari games, in wolfenstein-like engines, you need to redraw every pixel of the screen every animation frame - you can't exploit scrolling etc. This means, that anything higher than 4x4 resolution (also known as 9++) is very hard to do smoothly (by smooth I mean min. 10FPS, preferably 15-25FPS). Yoomp! managed to do that, but its rendering engine was simple enough to allow it.
  • You need to consider what your engine is supposed to handle: simple 90-degree walls (AlternateReality) or any-angle walls (Numen), 90-degree movement (AR) or full-freedom movement (Numen), flat (AR) or stairs (Numen), doors, etc...
  • For wolf-like engine, the problem is computing for a given column what should be drawn here. This computation is expensive, and the rendering is actually a secondary issue.
  • Actually, you need to consider if you want to use ray-casting (computing for each screen column what to draw there) - there are other ways, I think e.g. CaptureTheFlag does it in a different way.
  • If I'm correct, in ZX Doom, they have character-precision computation, and then they render using high-res fonts. That gives a feeling that the resolution is high. But, this feeling is only there because of the very low framerate - if it was 50 FPS, you would see how bad it looks when you want to make a small movement.

Wolfenstein engine has been presented for Atari before, e.g. in Asskicker and in an intro to one of the Syzygy magazine issues, but it didn't look very good to me...and I don't know if it was pre-rendered or not...

Link to comment
Share on other sites

If I'm correct, in ZX Doom, they have character-precision computation, and then they render using high-res fonts. That gives a feeling that the resolution is high. But, this feeling is only there because of the very low framerate - if it was 50 FPS, you would see how bad it looks when you want to make a small movement.

 

Using a bit map mode with vectoring is going to consume CPU cycles, would be lucky to reach 10 to 12 fps. Wolfenstien and Doom had to use floating point computations and that is very slow on an Atari computer. I favor using character map screen with the wall segments predrawn in memory quickly copying them to large rectangles on the screen. Like a 4x8 block of characters on the screen. Most your calculations will be single byte integers. Routines can be executed very fast. If you use the self modifying copy routines, you can probably do it all within a VBI.

 

Well it is a challenge, either way you do it. Would be interesting to see if someone comes up with a solution to do this.

Edited by peteym5
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...