TooSlowGamer Posted September 2, 2010 Share Posted September 2, 2010 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? Quote Link to comment Share on other sites More sharing options...
+Gemintronic Posted September 2, 2010 Share Posted September 2, 2010 (edited) 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 September 2, 2010 by theloon Quote Link to comment Share on other sites More sharing options...
TooSlowGamer Posted September 2, 2010 Author Share Posted September 2, 2010 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. Quote Link to comment Share on other sites More sharing options...
Cliff Friedel Posted September 3, 2010 Share Posted September 3, 2010 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. Quote Link to comment Share on other sites More sharing options...
CurtisP Posted September 21, 2010 Share Posted September 21, 2010 I have often that that raycasting would work with the bBasic playfield. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.