Jump to content
IGNORED

When creating a 3D game ....


emkay

Recommended Posts

Castle Master and Driller are no candidates to show off a 3D game on 8-bits...

They are both graphical engines that are using Draw routines on bitmaps.

 

So let's take a look at the mood engine:

 

It simulates a 3D screen by the C64s Color cells. the density is enhanced to a ~ 40*50 dots Graphicsmode by using a heavy load on the CPU.

It is blocky, it is ugly it is even slow (1-3 fps)

So while the cpu load is heavy on the C64 to create such mode, on the XL simply chose another graphicsmode and gain a faster cpu at least...

so calculations will be simply as double as fast.

Another speed enhancement is the possiblity of using the characters only for 3D setup and give them "textures". This will enhance the speed up to 8x compared to mood...

In addition, you can use the priority feature of the PMg ...

Link to comment
Share on other sites

Emkay.

 

I think that your idea is exceedingly optimistic.

 

Numen(Vector) uses resolution 80x48 pixels. It is 3840 bytes.

You are thinking of resolution 40x24 (960 bytes per frame). It is only 4 time less then Numen. There is not significant different, especially when we must take care of choosing right chars and make your antialiasing.

In my opinion the fillrate is not the most important when we are thinking on framerate and differencies between Numen and your idea of Wolf 3D.

I suppose that the main problem is complexity of 3d engine.

Numen uses relatively complex 3d engine. The way is, in my opinion

low resolution (important for drawing short lines and filling the areas or texturing) and some usefull tricks for more simply engine.

 

Using chars for some kind of 3D graphics is very complicated if the 3D graphics must be believable and precisious. We have only 128 chars (OK maybe more, if we change the charset on the fly).

 

Don't think that this is some kind of critics. I'm very glad that somebody is working on 3D with A8.

Good luck with your try.

I'm waiting for your early demonstration of Wolf 3D.

 

Sorry for my english.

 

Patarik/Satantronic/Slovakia (from the first May new member of EU)

Link to comment
Share on other sites

Emkay.

 

I think that your idea is exceedingly optimistic.

 

 

 

Compared to the "powers" of the C64 it must be possible with a much higher resolution though.

 

Numen(Vector) uses resolution 80x48 pixels. It is 3840 bytes.

You are thinking of resolution 40x24 (960 bytes per frame). It is only 4 time less then Numen.

 

It has 40 x 10 (Antic 5) which is 400 Bytes per "Scene", and it has a lot of DMA cycles less.

 

There is not significant different, especially when we must take care of choosing right chars and make your antialiasing.

 

... just use always the same chars and change the charmem in them, belonging to the degree of the view.

 

In my opinion the fillrate is not the most important when we are thinking on framerate and differencies between Numen and your idea of Wolf 3D.

I suppose that the main problem is complexity of 3d engine.

Yes... you are right. But the 3D Engine "only" has to setup raw 3D... The chars have to be filled by a predefined table.

 

Numen uses relatively complex 3d engine. The way is, in my opinion

low resolution (important for drawing short lines and filling the areas or texturing) and some usefull tricks for more simply engine.

 

Numen was a great effort.....but....

 

 

Using chars for some kind of 3D graphics is very complicated if the 3D graphics must be believable and precisious. We have only 128 chars (OK maybe more, if we change the charset on the fly).

 

.... in the 3D World you have heavy problems by getting, what this was on the screen.

 

Don't think that this is some kind of critics. I'm very glad that somebody is working on 3D with A8.

Good luck with your try.

I'm waiting for your early demonstration of Wolf 3D.

 

Well... I know the HW of the A8 and I am interested in optimizing it "to the limits". So I made this "theoretical" thread, to sample thoughts about doing a 3D Engine. Well. if Coding was my profession, I would do so.... and in Addition... thinking back to the past and my experiences that I made in 8-Bit times, makes me hate coding.

So I am not working on such an Engine, and the threat is only for discussing purposes.

Link to comment
Share on other sites

I didn't understand one thing.

 

Castle Master and Driller are no candidates to show off a 3D game on 8-bits...  

They are both graphical engines that are using Draw routines on bitmaps.

If we want achieve effect of movement and other things that belongs to simple 3d world (the simplest in our case) we must calculate point of view,angles, som kind of projection,clipping and that's all means simple point mathematics (mul,div,sin,cos = min.lookup tables and nobody knows if it is enough precise (maybe for resolution 40*12 yes))

3D is about calculations and it doesn't matters if we use chars or pixels.

 

You said

 But the 3D Engine "only" has to setup raw 3D... The chars have to be filled by a predefined table.

 

I don't understand. What table?. We also must calculate "the world".

 

The Truth is that when we use text graphics in place of bitmap graphics we can get better resolution with the same count of cycles.

 

But because I'm newbie, I don't know what is the ratio between calculation of "the world" and calculation of drawing and filling routines. (on A8 )

 

So I don't know if saved cycles helps with overall performance.

Link to comment
Share on other sites

I didn't understand one thing.

 

Castle Master and Driller are no candidates to show off a 3D game on 8-bits...  

They are both graphical engines that are using Draw routines on bitmaps.

 

 

When drawing in Bitmap mode you have to set every pixel you want to change...

Because the W3D Engine had no vertical movement you can do the following:

 

For a horizontal lineup just set a char and fill it with the "3d" texture.

The wall is more than 1 char high?

Then just draw the same char, until the height of the wall is reached.

 

The Wall is 80 dots high and the border is four dots wide? So for the Lineup you would have to draw 640 dots

 

One char is 4*8.

So you have to fill it with 32 dots and to set 10 of the Chars, which is a summary of 42 dots.

Another thing is that you don't have to work with the bits(nybles) for the colordots. You simply have to use a fixed char and fill it with predefined "texures"...

 

 

If we want achieve effect of movement and other things that belongs to simple 3d world (the simplest in our case) we must calculate point of view,angles, som kind of projection,clipping and that's all means simple point mathematics  (mul,div,sin,cos = min.lookup tables and nobody knows if it is enough precise (maybe for resolution 40*12 yes))

3D is about calculations and it doesn't matters if we use chars or pixels.

 

You said

But the 3D Engine "only" has to setup raw 3D... The chars have to be filled by a predefined table.

 

I don't understand. What table?. We also must calculate "the world".

 

 

You dont need any 3D texture calculation and so you have more time for the 3D calculation. The engine has only to "copy" from a predefined table after comparing the point of view.

 

 

But because I'm newbie, I don't know what is the ratio between calculation of "the world" and calculation of drawing and filling routines. (on A8 )

 

When doing the drawing and filling, the CPU cannot calculate on the 3D world. That's an easy logic.

Link to comment
Share on other sites

There is an Apple II GS version of Wolfenstein 3D.Without accelerator cards , the Apple II GS is pretty slow (CPU-speed) , too.

 

AFAIK the Apple II GS is 65816-based.

 

Maybe it would be a good idea to look for the Apple II GS source code of Wolfenstein.

 

I found this website with the Apple II GS Wolfenstein

 

http://www.sheppyware.net/products/a2/wolf3d/

 

The ATARI will need less bytes/screen and if A LOT of data is precalculated and stored in ROM and the resolution is reduced, it could maybe run ok, but I doubt that it will be as smooth as on a PC without acceleration.

 

Thimo

Link to comment
Share on other sites

ehm.... mood is a joke... 40x resolution... it's fast enough for playing but you can not see anything except big pixels... the enemies are not visible enough etc. etc... but the speed is enough...

 

still think on numen & asskicker (just forget mode9+ maybe mode10 like numen instead?)

Link to comment
Share on other sites

There is an Apple II GS version of Wolfenstein 3D.Without accelerator cards , the Apple II GS is pretty slow (CPU-speed) , too.

 

AFAIK the Apple II GS is 65816-based.

 

Then there may be two version of W3D for ATARI - WITH installed 65816 processor (some kid of turbo mode :dunce: ) and WITHOUT.

 

Not bad idea, eh? :)

Link to comment
Share on other sites

ehm.... mood is a joke... 40x resolution...  it's fast enough for playing but you can not see anything except big pixels... the enemies are not visible enough etc. etc... but the speed is enough...

 

A good argumentation... for the resolution

 

Vector has the 2x resolution and runs even faster, but the viewer still has problems to see "what this should be on the screen".

So even here the "MCS" technique is the faster and most viewable choice.

You get the possibility of a 40x10 "Pixel" screen and you can make the objects viewable with the "Textures"...

 

still think on numen & asskicker (just forget mode9+ maybe mode10 like numen instead?)

 

The only way to do the fastest graphics is that it is not to draw :!:

 

You remember the DL Trick by always repeating the start adress to the screen memory?

Then you set one pixel and every other pixel below will be set too.

 

When using charmode you can do similar by setting the chars, where you need ranges to be changed.

 

You even know, when setting a dot into the "Space" character, you will get a dot on the whole screen, and you don't have to set the dot anymore.... Antic will do it for you, because it's always the same char ...

Link to comment
Share on other sites

I remember that the Sinclair Spectrum had some 3D FPS, too.Not sure if it was a demo or a full game.

 

The Spectrum is a little bit faster (3.5 Mhz) , but has less memory (48K, but there are 128K machines,too).

 

AFAIK some Z80 instructions take more cycles than similar 65xx instructions, so the Spectrum is not really twice as fast as the ATARI.

 

Maybe it would be a good idea to check out Sinclair Spectrm and Amstrad CPC "Doom"-engines, too.

 

Thimo

Link to comment
Share on other sites

I remember that the Sinclair Spectrum had some 3D FPS, too.Not sure if it was a demo or a full game.

 

[...]

 

Maybe it would be a good idea to check out Sinclair Spectrm and Amstrad CPC "Doom"-engines, too.

 

Thimo

 

I would say we don't need to look at other machines 3D engines...

 

We just have to find a guy that is able to code a 3D engine "left-handed" and to make him clear that the mankind needs it on the A8 for outliving purposes ;)

Link to comment
Share on other sites

  • 4 weeks later...

Can anyone just imagine, what was possible with this 1978 hardware when doing a HW-optimized 3D game?

Using a relative high resolution.... 25 fps ... some lightning effects for more "depth".... creating non-chipsound-typical ambient sounds and music... and highly playable.

 

8) :ponder:

Link to comment
Share on other sites

Well,

a 3D game - alright. with monsters or aliens - alright. with nazis or nazi background - no way. I will not buy/get nor play such a game (even if your goal is to kill nazis, free prisoners, kill hitler, etc. etc.). I don`t like dungeon shooter games with nazi background (like Wolfenstein and such)... But if you do, include an editor, where one can change nazis with vietnameses, iraquis, russians, us-americans, ... - you will get your kinda feedback then (if this is all you want)... -andreas magenheimer.

Link to comment
Share on other sites

Has everyone forgotten The Eidolon?

 

eidolon.gif

 

(It's a C64 screenshot, but still... only difference is that the dragon was green on Atari, I think.)

 

And drop this silly notion of vector graphics (ie. polygons). Wolfenstein didn't have them and the A8 doesn't have computing power to make much more than what Mercenary can produce.

 

If you want to do a full 360 3D game, you need to cheat heavily, like the Alternate Reality games did.

Link to comment
Share on other sites

Wayout was a good implementation of a 3D environment within the limitations of the Atari 8bit. That had the "live" style of action. Alternate Reality was more turn-based, you would pick a cardinal direction and move and it would jump to it. You couldn't even move diagonally.

 

I like the "mood" screenshot that emkay uploaded. It has the appeal of a large view compared to Wayout where the view was a much smaller part of the screen. However the mood screenshot is rather blocky. I guess a good compromise would be to have a larger view than Wayout though not so large as mood, but at a better resolution than mood.

 

IMO it would be fair game to use the increased storage on a modern ROM cartridge, but the goal should be to create a game that runs on a standard 8bit, or at least any 8bit with 48K or 64K.

Link to comment
Share on other sites

A game that came mostly near to a real 3D game is ENCOUNTER.

It produced a similar feeling like when playing Return to Castle Wolfenstein or Far Cry, while having a strait one to one battle with the enemy...

I think... an "Encounter 2" game would have been build like a 3D Game as we know them today, when only using the knowledge of the available game and turning more into HW-optimization.

Link to comment
Share on other sites

Using a relative high resolution.... 25 fps ... some lightning effects for more "depth".... creating non-chipsound-typical ambient sounds and music... and highly playable.

dream on, dream on.... ;) :)

 

...but let's wait 'til Dragonforce shows finished VECTOR then... :roll:

Link to comment
Share on other sites

You might do a simple simulated 3d, and get out of doing all the math.

Since the joystick can only indicate 8 directions, you just draw a 3d view for each of the 8 joystick positions. Then let the display list memory be set to the correct 3d view. This only takes one or two bytes to change, so extremly fast.

 

Now if the game allows it, you might also only change the 3d view at certain locations of the animated character rather than at every location.

This would reduce the number of 3d drawings needed.

 

By only having views for the 8 directions a joystick can select, there would not need to be so many drawings, and you might get away with reuse of the same drawing.

 

For example, say the animated figure is moving up and to the right, and has only moved two squares in this direction. Do we really need to change the view at this point? Probably not, and we could wait until the figure got to the edge of the screen and then update the view for a figure moving up and to the right, and currently at location x?,y?

Link to comment
Share on other sites

Using a relative high resolution.... 25 fps ... some lightning effects for more "depth".... creating non-chipsound-typical ambient sounds and music... and highly playable.

dream on, dream on.... ;) :)

 

...but let's wait 'til Dragonforce shows finished VECTOR then... :roll:

 

 

I doubt the Vetcor engine can produce 25 fps?

Link to comment
Share on other sites

I think... an "Encounter 2" game would have been build like a 3D Game as we know them today, when only using the knowledge of the available game and turning more into HW-optimization.

(bangs on universal translator)

 

This stupid thing is broken again!

 

 

Taking a look at encounter:

It has the playability of a real 3D action game.

It uses pillars to build the 3D area.

When the enemy is shooting, you can hide behind a pillar

When running backwards, you can have a collision with a pillar and the enemy can easily knock you out...

 

In a sequel to Encounter, the coder could use some walls instead of the pillars (by playing with the Playfield <-> Player Missile Overlays) ... so you would have a 3D Action Game as it is defined.

Link to comment
Share on other sites

( 8)  5 posts to go for emkay)

 

 

Belonging to the posting-counter? Now one less ;)

 

 

 

Weren't the pillars from Encounter PM graphics too? It always looked like that to me.

 

It's graphics 7 (antic d). The only overlay is in the "aiming square cursor".

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...