artrag Posted March 13, 2020 Share Posted March 13, 2020 What about adding SW sprites now? Quote Link to comment Share on other sites More sharing options...
JohnPCAE Posted April 6, 2020 Author Share Posted April 6, 2020 I've started thinking about how to do it, but in the meantime here's the slidey-slidey update. Now if you run into a wall you'll slide along it instead of just stopping. This would have been a necessary feature regardless. raycast_20200406.zip 1 Quote Link to comment Share on other sites More sharing options...
JohnPCAE Posted April 7, 2020 Author Share Posted April 7, 2020 raycast_20200407.zip Fixed a crash that arises if you lower the maximum view distance. Added support for different ceiling and floor colors, and added support for dithering the walls. 1 Quote Link to comment Share on other sites More sharing options...
JohnPCAE Posted April 13, 2020 Author Share Posted April 13, 2020 raycast_20200413.zip I found that simply changing some constants allows me to dither the wall or ceiling, so that allows some more variation. I've also increased the unit height of walls from 8 to 36 (the height when the wall is exactly one unit away from the viewer). This makes walls appear square, which makes them look a lot better when dithered. It would also be necessary if/when I add texture mapping. Also managed to eke out a little more speed from the engine to try to make up for the overhead from dithering. Getting more speed is important since texture mapping would add even more overhead. 4 Quote Link to comment Share on other sites More sharing options...
artrag Posted April 13, 2020 Share Posted April 13, 2020 With dithering everything looks more interesting, speed and smoothness are excellent too Greetings! Quote Link to comment Share on other sites More sharing options...
JohnPCAE Posted April 18, 2020 Author Share Posted April 18, 2020 raycast_20200418.zip Reworked a lot of code and made many speed improvements to the colored-squares version. 3 Quote Link to comment Share on other sites More sharing options...
JohnPCAE Posted April 19, 2020 Author Share Posted April 19, 2020 I was thinking about artag's DDA algorithm posts and something finally clicked. I decided to take another whack at it, and the result is fantastic. No more missing areas at corners, the code is tiny, simple, and maybe twice as fast! raycast_20200419.zip 3 2 Quote Link to comment Share on other sites More sharing options...
artrag Posted April 19, 2020 Share Posted April 19, 2020 Incredible how fast it is Awesome! Quote Link to comment Share on other sites More sharing options...
artrag Posted April 24, 2020 Share Posted April 24, 2020 John, about sprites, how do you plan to implement scaling and clipping ? The most effective way (from the visual point of view) would be to use MOB for far distance and software sprites for close distance. But this would be also the most clumsy and expansive way to implement sprites. Essentially you should develop two engine to manage sprites... Probably the simplest thing to do is to start with the SW sprite engine For each sprite frame, I would store pre-computed data in rom for all scales and the four pixel alignments (in color square mode). In this way one could build four fast column renderers able to mix data from the walls and from the selected scale of the sprite frame Quote Link to comment Share on other sites More sharing options...
artrag Posted April 26, 2020 Share Posted April 26, 2020 John, just an idea, why not developing an intybasic front end for your raycaster? Intybasic can embed ASM routines and share variables between the two environments It could allow other people to implement 3D games using your library 1 Quote Link to comment Share on other sites More sharing options...
JohnPCAE Posted April 30, 2020 Author Share Posted April 30, 2020 I've started looking at the Wolfenstein 3D source to try to understand how software sprites are done. It seems to be computationally expensive so keeping it fast will be tricky. I also looked at a ton of Wolf3D gameplay videos to understand what features are desirable. First I think I need to try to squeeze as much speed out of this new implementation as I can. 1 Quote Link to comment Share on other sites More sharing options...
JohnPCAE Posted June 14, 2020 Author Share Posted June 14, 2020 raycast_20200614.zip Many, many speed improvements to the CS version. With some more changes, this could eventually support larger maps. For instance, Wolf3d maps are 64x64 in size. 4 1 Quote Link to comment Share on other sites More sharing options...
JohnPCAE Posted August 14, 2020 Author Share Posted August 14, 2020 Been sitting on this for a while. The movement logic had some bugs that would let you walk through walls under certain circumstances. This fixes those bugs. raycast_20200709.zip 6 1 Quote Link to comment Share on other sites More sharing options...
First Spear Posted June 13, 2021 Share Posted June 13, 2021 On 8/14/2020 at 2:25 PM, JohnPCAE said: Been sitting on this for a while. The movement logic had some bugs that would let you walk through walls under certain circumstances. This fixes those bugs. raycast_20200709.zip 87.8 kB · 35 downloads Hi. Have you had a chance to look at this further, maybe incorporating @artrag's ideas? 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.