oh yea theres probebly some slight optimization posible there is u draw that scranline yourself keeping the spi line open til all the scans are done end, i recal direct tile draw or something had the screen update in portait scanlines so thats probebly what you want, you can even make those custom “windows” so you can have a healthbar or something on the botem without overwriting that during the raycaysting phase
I am personally happy with the 256 colors (when I was young all I had was 16 colors and I remember dreaming of 256, so I’m enjoying it now very much) – the limitation shows on the floor/ceiling, but I guess it’s not that bad – I’m more interested in increasing performance now. Seeing the optimization techniques you guys apply at assembly level makes me jelly I lack that skill Until now I never really cared about performance much since I programmed for the PC, so I probably have big inefficiencies somewhere. On the other hand I surpassed the Wolfenstein demo FPS already by a lot, so that’s good.
Also I got bugs to fix. I keep finding and making new ones, so that slows me down too. And I’d like to add code for calculating movement into my library too, which won’t be trivial when you take into account floor height, ceilings, stair steps, gravity, possibly inertia etc. I can see many bugs on the horizon
EDIT:
Currently putting some nice sprite at the map:
If you’re wondering where I got the sprites and all the textures from BTW, they’re from Dungeon Crawl Stone Soup collection – huge collection of 32x32 beautiful art, all CC0.
looks amazing, never would i think this was posible with this good a framerate, realy wonder how far it can be pushed, do you think it could handle if you doubled one axis of the screen size to get like more scan detail?
(screen would be 220x88, drawing in 2 steps probebly)
You noticed correctly it’s only half resolution in X direction Y direction is full 88 rows. It shows a lot on the textures but greatly increases performace… if I undo this it’s too unplayable. But again, if you e.g. turn off texturing and ceilings, you might be able to do it. Without textures BTW this subsampling almost can’t be noticed as the walls are just a continuous color and if they’re not in a sharp agle, there is no pixelization either.
Basically my goal is to provide an engine that offers a lot of options – you can’t take all at once because of the performace, but you can choose the ones that suit your game – e.g. someone wants a big view distance but doesn’t need shading, someone else needs textures but doesn’t need ceilings, someone wants a big resolution but doesn’t need textures etc. I’d like the textured floor to be an option too eventually.
oh in that case you could you drawing scans twice right now on the mode13 buffer or did you create a custom buffer that is half the size? that could gain a few more cycles
I’m not sure what you mean, but it’s not that the whole display is half resolution in X – it’s just that for each two column pixels only one ray is cast, but e.g. sprites are drawn in full resolution, GUI will be too etc.
If you have ideas about optimization and want to try them out, you can – the code is here. I am not so good at it, but if you manage to raise the FPS, just send me the code and I’ll patch it in
oh ok wel that would gained some performance, but with the sprites then i dont have easy solution.
if your gui something like doom or wolfenstein (botter of screen) you could do the split screen mode and even use direct draw there only updating what needs to be updated and it can be in high resolution aswell
I’ve had a really tough week. These projects and the cool stuff that you guys are making helps to keep me going, even though I haven’t been able to help/take part much. Thanks!
I wanna finish it ASAP so that people can unleash their creativity!
Really I’d love to see what people create. I could try to make my own game as well. You shouldn’t have mentioned the story though, now I won’t be sleeping all night thinking about an RPG story Maybe it could be something like TES Shadowkey: