Jump to content
IGNORED

First Person "Truer" 3D, in Batari Basic


TooSlowGamer

Recommended Posts

After playing Skeleton+, I got an idea. You know how there's that kind of pseudo-3D skeleton+ uses where it moves one whole screen at a time? What if I attempted to do some real 3D (I mean, realer than 1 screen at once)? In Batari Basic, because that's all I know, and I don't see any big limitations it has that would really stop me from doing this.

 

Since the resolution of the playfield is so low, there will be quite a lot of "fog" which would just prevent you from seeing past a certain point along the Z axis. But if you're constantly moving, it's not as bad as it may sound.

 

If I can sit down and think about it, I think it's possible to get an engine built in Batari Basic which would accomplish this using the pfpixel command. Like, if you move right it would take off some pixels, and add other pixels.

 

This is pretty ambitious for me, and may be downright impossible. If it is possible, it will take a lot of time to work out.

 

Has something been done like this at all for the 2600? Any tips, thoughts, statements telling me it's impossible and I shouldn't try it?

Link to comment
Share on other sites

I think the closest to your idea has been Merlins Walls

http://atariage.com/store/index.php?l=product_detail&p=302

 

That was in hardcore assembler and had to be sideways due to computational power limitations.

 

If you're not doing static playfields it's gonna be a challenge. I'd consider what it would take to make a proper line draw function and then the math needed to deal with Z (depth) values. Then comes dealing with framerate issues.

 

When I was a kid I got a 3D wireframe rendering engine going in QuickBASIC using only basic arithmetic. Perspective distortion was an issue but it worked.

 

Take this in bite-sized chunks. Work on a line draw command and then puzzle over how to deal with depth.

 

 temp1 = plotline(startx, starty, endx, endy)

 

Of course, maybe the correct option is to find the best illusion of 3D and mimic it. Peruse your Atari ROMs for inspiration. Crypts of Chaos and all that.

Edited by theloon
Link to comment
Share on other sites

I think the closest to your idea has been Merlins Walls

http://atariage.com/store/index.php?l=product_detail&p=302

 

That was in hardcore assembler and had to be sideways due to computational power limitations.

 

If you're not doing static playfields it's gonna be a challenge. I'd consider what it would take to make a proper line draw function and then the math needed to deal with Z (depth) values. Then comes dealing with framerate issues.

 

When I was a kid I got a 3D wireframe rendering engine going in QuickBASIC using only basic arithmetic. Perspective distortion was an issue but it worked.

 

Take this in bite-sized chunks. Work on a line draw command and then puzzle over how to deal with depth.

 

 temp1 = plotline(startx, starty, endx, endy)

 

Of course, maybe the correct option is to find the best illusion of 3D and mimic it. Peruse your Atari ROMs for inspiration. Crypts of Chaos and all that.

 

Merlin's Walls looks amazing, I didn't even know that existed. But, I wasn't planning on using solid colors for the playfield, I was planning on using blocks to make diagonal lines. Possibly lines running vertically to show it's a wall.

Link to comment
Share on other sites

I think the closest to your idea has been Merlins Walls

http://atariage.com/store/index.php?l=product_detail&p=302

 

That was in hardcore assembler and had to be sideways due to computational power limitations.

 

If you're not doing static playfields it's gonna be a challenge. I'd consider what it would take to make a proper line draw function and then the math needed to deal with Z (depth) values. Then comes dealing with framerate issues.

 

When I was a kid I got a 3D wireframe rendering engine going in QuickBASIC using only basic arithmetic. Perspective distortion was an issue but it worked.

 

Take this in bite-sized chunks. Work on a line draw command and then puzzle over how to deal with depth.

 

 temp1 = plotline(startx, starty, endx, endy)

 

Of course, maybe the correct option is to find the best illusion of 3D and mimic it. Peruse your Atari ROMs for inspiration. Crypts of Chaos and all that.

 

Merlin's Walls looks amazing, I didn't even know that existed. But, I wasn't planning on using solid colors for the playfield, I was planning on using blocks to make diagonal lines. Possibly lines running vertically to show it's a wall.

 

If you really wanted to do it, the best way would be to convert the playfield coordinates (cartesian) to polar coordinates. Then you could use scaling and rotation transformations to get the new coordinates. It's not hard to do on a modern machine, but trying to do linear algebra on a 2600 I think would be quite a challenge. The only way I could see doing it would be to do multiple data statements for the original matrix, feed them into the transformer element by element and build the new matrix into another set of data statements. It definitely would be impressive to do it. It took me a 386, QBasic, and a determined math teacher to help me do it back in the late 80s. =) With that said, seeing what other people have done on the Ataris, I am not saying anything is impossible.

 

If you need help, let me know. You should be able to find what you need. This page is a good start:

 

http://www.siggraph.org/education/materials/HyperGraph/modeling/mod_tran/3d.htm

 

Cliff.

Link to comment
Share on other sites

  • 3 weeks later...

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