Gip-Gip Posted March 16, 2017 Share Posted March 16, 2017 (edited) There haven't been many attempts at a mapped 3d engine/game for the Atari, and I wish to change that with an in-development project I call VePseu, the Very Pseudo 3d engine It works by going through the map and gathering a list of walls to draw, which are then rendered onto the screen. It (should be) very predictable and fast, but also limited (the max. viewing distance is 4 walls away). DASM has been marinating in my brain for about a year now, and I think I am finally prepared to take on a fully featured Atari 2600 program. It's fairly simple, and I hope it isn't absolute crap so you guys can use it. The GitHub page can be accessed here. UP to go forward, DOWN do go backward, LEFT to turn left, RIGHT to turn right Looking for ideas to make in the engine. I'm currently thinking of a zombie shooter and a Wolfenstein 3d "port", any other suggestions would be appreciated The demo for VePseu III.I.MMXIIX Rev. 0 can be downloaded here: vepseu.bin Edited April 22, 2018 by Gip-Gip 10 Quote Link to comment Share on other sites More sharing options...
superwill64 Posted March 17, 2017 Share Posted March 17, 2017 Would love to see a video of this in action. 1 Quote Link to comment Share on other sites More sharing options...
TheHoboInYourRoom Posted March 17, 2017 Share Posted March 17, 2017 Looks cool. About what frame rate does it run at? Quote Link to comment Share on other sites More sharing options...
Mr SQL Posted March 17, 2017 Share Posted March 17, 2017 X2! Looking forward to trying the bin. Quote Link to comment Share on other sites More sharing options...
Gip-Gip Posted March 18, 2017 Author Share Posted March 18, 2017 Looks cool. About what frame rate does it run at? Approx. 60 fps at about half the screen in resolution. It doesn't take long to render, but it also takes advantage of several quirks of the reverse bits in the playfield. it's not really that impressive, but it's a start I'm thinking about doing a full-screen renderer in the future, but this is more of a proof of concept 1 Quote Link to comment Share on other sites More sharing options...
Gip-Gip Posted March 18, 2017 Author Share Posted March 18, 2017 I'm ironing out a few quirks and "optimizing" the code before announcing release. Technically it's on GitHub, but that's a day old and was used for finding a few bugs(in other words, it's ugly) 1 Quote Link to comment Share on other sites More sharing options...
Gip-Gip Posted March 18, 2017 Author Share Posted March 18, 2017 For those interested you can go to the GitHub page and mess around with the code. You can't move just yet and I don't have the renderer complete, but if you have any comments or suggestions please tell! Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted March 18, 2017 Share Posted March 18, 2017 Cool idea. But how do you move? Quote Link to comment Share on other sites More sharing options...
Gip-Gip Posted March 18, 2017 Author Share Posted March 18, 2017 Cool idea. But how do you move? When I add the controls (next), it will be the four directions to look around and trigger to move forward With the project you see on GitHub I haven't added that yet. It won't take long, just wanted to get the render code out there Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted March 18, 2017 Share Posted March 18, 2017 Ah, OK. BTW: You can save 4 cycles (TAY/TYA) when you call consecutive macros like e.g. Y_POS_ADV and X_POS_GAN. Quote Link to comment Share on other sites More sharing options...
Gip-Gip Posted March 18, 2017 Author Share Posted March 18, 2017 Ah, OK. BTW: You can save 4 cycles (TAY/TYA) when you call consecutive macros like e.g. Y_POS_ADV and X_POS_GAN. It's not really worth the addition of more code. The way the code is laid out it would have no impact on the given time to other processes Quote Link to comment Share on other sites More sharing options...
Gip-Gip Posted March 18, 2017 Author Share Posted March 18, 2017 (edited) Controls have been added! It's disorienting to say the least, but it does the job. I would like to know, should I add a compass, make the screen bigger, or both? Edited March 18, 2017 by Gip-Gip Quote Link to comment Share on other sites More sharing options...
Gip-Gip Posted March 18, 2017 Author Share Posted March 18, 2017 Either way, I will mainly be focusing on cleaning/optimizing the code now Quote Link to comment Share on other sites More sharing options...
Gip-Gip Posted March 19, 2017 Author Share Posted March 19, 2017 I've now added a minimap and cleaned up the code. Next I'm going to increase the resolution. Any other suggestions? Quote Link to comment Share on other sites More sharing options...
+splendidnut Posted March 19, 2017 Share Posted March 19, 2017 I would suggest changing the controls... Left/Right to turn left or right, and Up/Down to move forward and backward. The way the controls work now is very awkward for me at least. Also, the minimap seems to bounce around in Stella 4.6.7... which is amusing to watch. 1 Quote Link to comment Share on other sites More sharing options...
Gip-Gip Posted March 20, 2017 Author Share Posted March 20, 2017 I would suggest changing the controls... Left/Right to turn left or right, and Up/Down to move forward and backward. The way the controls work now is very awkward for me at least. Done Also, the minimap seems to bounce around in Stella 4.6.7... which is amusing to watch. I think I fixed it. If I didn't, can you tell me which direction it bounces in? Quote Link to comment Share on other sites More sharing options...
+SpiceWare Posted March 20, 2017 Share Posted March 20, 2017 I see you're making good progress! The minimap and the location indicator bounce all over, the minimap breaks in two, and there's way too many scanlines (varies from 280-284 instead of a constant 262): If I turn off the option to randomly drive unused TIA lines: then all 3 problems clear up: That's indicative of a missing # in an LDA, LDX or LDY Immediate Mode instruction - basically something like typing this: LDA 7 when you wanted to put the number 7 in the Accumulator. The correct statement would be this: LDA #7 LDA 7 goes to memory location 7, fetches the contents from there, and stores it into the Accumulator. On the Atari memory location 7 is the CXPPMM register, used for detecting collisions between player0 <--> player1 and missile0 <--> missile1. Only bits 6 and 7 are defined in that register, the other bits are undefined and can cause unexpected results. I go into that in detail in reply #91 of another topic. 3 Quote Link to comment Share on other sites More sharing options...
Gip-Gip Posted March 20, 2017 Author Share Posted March 20, 2017 I see you're making good progress! The minimap and the location indicator bounce all over, the minimap breaks in two, and there's way too many scanlines (varies from 280-284 instead of a constant 262): Screen Shot 2017-03-19 at 7.39.46 PM.png Screen Shot 2017-03-19 at 7.39.48 PM.png Screen Shot 2017-03-19 at 7.40.13 PM.png Screen Shot 2017-03-19 at 7.41.07 PM.png Screen Shot 2017-03-19 at 7.41.09 PM.png If I turn off the option to randomly drive used TIA lines: Screen Shot 2017-03-19 at 7.44.13 PM.png then all 3 problems clear up: Screen Shot 2017-03-19 at 7.44.18 PM.png That's indicative of a missing # in an LDA, LDX or LDY Immediate Mode instruction - basically something like typing this: LDA 7 when you wanted to put the number 7 in the Accumulator. The correct statement would be this: LDA #7 LDA 7 goes to memory location 7, fetches the contents from there, and stores it into the Accumulator. On the Atari memory location 7 is the CXPPMM register, used for detecting collisions between player0 <--> player1 and missile0 <--> missile1. Only bits 6 and 7 are defined in that register, the other bits are undefined and can cause unexpected results. I go into that in detail in reply #91 of another topic. Missed an LDX in a loop. Should be all good now! 1 Quote Link to comment Share on other sites More sharing options...
+SpiceWare Posted March 20, 2017 Share Posted March 20, 2017 Missed an LDX in a loop. Should be all good now! It is 1 Quote Link to comment Share on other sites More sharing options...
+splendidnut Posted March 20, 2017 Share Posted March 20, 2017 Awesome... much easier to navigate! 1 Quote Link to comment Share on other sites More sharing options...
Mr SQL Posted March 20, 2017 Share Posted March 20, 2017 Very cool, just tried the engine - Wolfenstein would be awesome with this! Quote Link to comment Share on other sites More sharing options...
Gip-Gip Posted March 20, 2017 Author Share Posted March 20, 2017 First version-ed update! For VePseu I.I.MMXVII rev. 1 I have added peripheral vision, repeating controls, and a slightly cleaner source code! If anyone has any objections to the source's organization, please tell within the next day before I clean it further In the mean time, I'll work on an upscaler and a sprite kernel Quote Link to comment Share on other sites More sharing options...
Gip-Gip Posted March 21, 2017 Author Share Posted March 21, 2017 here's a representation of the veiwport after the upscaling. Quote Link to comment Share on other sites More sharing options...
Gip-Gip Posted March 31, 2017 Author Share Posted March 31, 2017 Update: Right now I'm taking the time to re-write half the program to support a full screen and higher-depth shadows. Spring break's coming up so I'm going to have an update out by the end of next week. If anyone wants any new features, now would be the best time to tell me. Quote Link to comment Share on other sites More sharing options...
iesposta Posted April 1, 2017 Share Posted April 1, 2017 Suggestion. Take a look at Starpath Escape From The Mindmaster in Stella's debug colors. I love the way it uses sliding diagonal missiles and/or ball set to the background (invisible) to smooth the tops and bottoms of the walls out. And a floating rectangle that enlarges the closer you get makes the "doors" to the "rooms". Worth investigating for that less blocky polish, although I like the wide PF pixels also. Gip, did you make that Raycasting demo with the multi-colored Playfield I asked about here? http://atariage.com/forums/topic/229083-ray-casting-engine-demo/?p=3731023 1 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.