Thanks for the responses. I agree the raytracing would be ideal, but we really would need more than a few programmers in spare time to write that. It's going to be a lot of difficult code. There is a simple pygame
and a doom clone
both written in python to prove that it can be done. Not sure whether c libraries would have to be compiled in ren'py though. I expect it to be more doable in c++/opengl. Personally I favor playing the 90 degrees angles in rpg games and not not the 360 degrees, which are more apt for first person shooters. But the rotations would be nice anyway to animate rotation and walking.
It is still a minimal environment, I think it would be nice, to render more objects, than the barrel formations, I have some ideas. but there is an issue. Currently objects always show the same face to the player. In effect objects rotate if the char does. To change this, objects with polarity could be rendered in all four orientations. This would multiply the nr of object images (i.e. in both lightings) by 4, and require some code changes. For most objects, this would be very nice visually. Maybe we can provide the current, only one face version as a minimum, and later provide the other orientations as a 'Mega' extension set.
The floor and ceiling are currently a rendered background. To be able to walk from one environment to another (instead one background per 'level'), the ground and ceiling could also be rendered as parts, like the walls. This gives some flexibility per level, but the image size would increase, also the render screen a bit more work.
Some more options to reduce size/images beside compressing images: Initially I had only the left images, I cheated on the right ones by mirroring. The difference was notable for near walls. We could reinstate the mirrored images for distant walls - in dark or misty environments. Or create the mirrored right ones during load if only left ones are on disk. Also, probably some walls could be created instead by image scaling and composition in ren'py. This will make the code more complex and the lighting of objects may not be as nice. Some objects we could only display when near in absence of light.