Jump to content
IGNORED

3d-engine


Heaven/TQA

Recommended Posts

It's very nicely done but when it's turned into a playable game running at a decent framerate and in 64k THEN c64 users will crap their pants. NRV knows himself that atm it's just a demo, I presume doing something along the lines of column copies from mipmapped graphics onto the screen. You can precalc a lot of vertices for a maze type thing with limited movement and render to those coordinates and still keep a very good speed but then you start to get into problems where the mipmapped stuff isnt accurate enough and doesn't contain the scaled versions needed, when you start getting into rotations it gets even more complex (although storing vertices would again help).

Hi. I should say that right now there is no "vertices", because this will use a raycaster to get the rows (columns) that will be "feed" to the renderer (that is almost final). The renderer can display every row from 0x to 1x to 2x in vertical size, using the same information.. in other words I only use one picture, with 8 textures, to do all the scaling that you see in the demo. Well, I have one "mip map" that is one quarter of the vertical size and is used when the scaling is too small, because you start losing too much information just discarding lines (you can see the moment when is used if you set the "manual" mode and scale the size to something like 12 lines).

When my raycaster is ready it should be mostly a "plug n play" thing with the current renderer. My plan for this is to have smooth rotations, not use any multiplication or division, use precalc data, clever algorithms and be very fast.. wish me luck :D

 

 

How exactly does the blending work? So far, I understand it's like this:

There is one scan line, and two frames even and odd. The final color is the result of both frames. On the even frame, set a color, on the odd frame set an intensity?

I would say that there is one frame, and two lines even and odd :) .. the lines 0, 2, 4, 6.. are GTIA 11 and the lines 1, 3, 5, 7.. are GTIA 9. You see correctly the GTIA 11 line, but every pixel in the GTIA 9 line use its own brightness plus the color of the upper pixel in the GTIA 11 line

 

 

I'd love to see something zooming around a maze with 90degree rotation that looked like this demo. yum :)

And I'd love to see the next demo of WOTEF :)

 

this is my old raycaster renderer from years ago.. (use the arrow keys to move and rotate in 90 degrees)

old_raycaster.zip

it is very fast, 50 FPS in PAL, 60 in NTSC, most of the time.. it's not fully optimized, because I have better ideas now, but I think that AT LEAST you should wait for something like this (running at 25 FPS) with the final "engine"

 

 

I think it's good place for cooperation.

Well, unless someone wants to do this game himself for $$$ and then plans to be RICH-RICH-RICH! :D

but this is the good thing of this forum.. it's already a "cooperation" thing. You, Rybags, Phaeron, the people that give feedback (good or bad) are already helping with this project. Also I do this for fun and to see how far can it get, but I will ask for help when I need it (hint* music *hint). And no, I don't plan to be RICH with this, because I don't think that selling a game that is still selling copies in a lot of platforms would be a wise idea :D (but, the technology could be used to do other things..)

 

Regards

(going back to work-mode)

Edited by NRV
Link to comment
Share on other sites

If you're not having full free rotation ala Wolfenstein but doing it like your raycaster demo then precalced coordinates are faster ;) All you need is lists of possible wall end positions in x/y of the screen (that includes side walls etc), you always know the step between pixels because it isn't rotating and your x/y position in the maze will give you the scale factor for the renderer. Of course there are limitations that you don't get with a raycaster but if it's a raycaster without any rotation and the calcaulations that needs then why not cheat more. :)

 

Of course if it's going to have full rotation ala Wolfenstein then surely that's built into a raycaster anyway? so you must be doing something sneaky atm ;)

 

Pete

Edited by PeteD
Link to comment
Share on other sites

"I would say that there is one frame, and two lines even and odd icon_smile.gif .. the lines 0, 2, 4, 6.. are GTIA 11 and the lines 1, 3, 5, 7.. are GTIA 9. You see correctly the GTIA 11 line, but every pixel in the GTIA 9 line use its own brightness plus the color of the upper pixel in the GTIA 11 line"

 

Thanks for that! Every little bit new about PAL helps.

Link to comment
Share on other sites

can you tell me little bit more about the old raycaster?

 

I have an strange idea... combining my Beyond Evil "battle"-engine with the 3d maze engine...

 

how many ram is left? and how is the maze stored?

 

strange idea? that sounds more like another project :P

 

that demo takes like 2.7K for the code and some tables, and a little more than 5K for the precalc data for the raycaster (with intersections and final height info.. you have 8 steps between tiles, so there are 8 precalc tables of 650 bytes each), plus the two display buffers (for double buffering) that takes 4K each.. so you have most of the memory available.

 

I think that every tile in the map uses 2 bytes for the definition of the top, left, right and bottom walls.. with 4 bits per wall you can select the color (GTIA 10) of the wall and if you can pass through or not.. also you can have the "Alternate Reality" thing, where you can see a wall from one side but not from the other (or pass only through one side.. hidden doors).

 

If you want the code I can clean up it a little and post it, but remember that this renderer is only for plain color walls..

 

Regards

Link to comment
Share on other sites

Here.. added some last minute comments and formatting..

 

RC.zip

The original was written in MAC/65 in real hardware, but I converted it to MADS some months ago.

You need to compile the file "mrspv.m65", using the same directory structure.

 

Also, from what I see (I don't remember all the details.. too many years :D), the display list is mirrored, like in AR The City, so only the upper half of the screen is drawn.. but, the drawing method is unoptimized, so it should not be a problem if you want to do something more complex :)

 

Good luck

 

NRV

Link to comment
Share on other sites

thanks Nrv, just loaded it into eclipse but it does not compile saying it misses one .endm.

 

any ideas what it could be? but the code itself looks straight forward without any hardcore optimisations so good to understand... :D

 

 

and another thing when using it in eclipse...does anybody know that the editor show the line numbers but the numbers do not scroll? the remain static? so the error is in line 1xxx but in the editor window it says "20:"?

Link to comment
Share on other sites

aha... but do we have a mac port? ;)

 

There's a version of Free Pascal for the Mac. I've always just compiled my own copy of mads on the Mac with it. I don't have a Mac anymore, otherwise, I would have posted a compiled Mac mads for you.

Edited by dwhyte
Link to comment
Share on other sites

christ! the atari has some shocking problems when it comes to putting colours in arbitary places in 2D - but going ahead and doing a decent job like that in *3D*... That is an awesome piece of work!

 

 

- A c64 owner who is glad this wasn't posted in the atari vs c64 thread ;)

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