ID:113871
 
Well, almost 2 days have passed since I ran into one more bug in my generator. I just finally fixed it, I think.

Despite how diminutive that particular manifestation of the bug was, it was actually quite serious, especially in regard to the potential for user-defined "light shapes". It turned out the vertices of the light-blocking tiles that fell "behind" the point being lit were being discarded (which seemed like a perfect solution at the time). Now the system runs edge-intersections on any vertices that fall behind the point or light source, to make sure their edges wouldn't affect the light's path. You would think it would be simple to fix, and I guess it would have been if I had chosen the right solution from the start, but now it finally works (third solution's the charm... I hope!)

Here's a screenshot of one of the other rooms. Notice that light can't sneak through diagonals any more.



Things left to do:
- Fix walls (I broke them, I guess)
- Finish perspective
- Add transparency property to encoded data
- Add light shapes (maybe)
- Add light shapes to encoded data (maybe)
- Buffer optimization (maybe)

<edit 1>

Fixed the walls. Turns out I had made an "optimization" where they used the same buffer as the floors, and they were overwiting the floor's data before it was saved. Yay early-optimization.

Anyways, I don't think I've shown off the walls before:



<edit 2>

Perspective is in. Tiles are 32x16.

Fixed walls. One down, at least 2 to go.
those are some really good lights is in byond?
Laserdog wrote:
those are some really good lights is in byond?

The generator is written in C++, but outputs a DMI file BYOND can use. However, the image has to be generated before hand, and isn't dynamic.
Finished perspective. I think I'm gonna call it quits here. It's the week before finals for me, and I can't procrastinate on my final projects any more. Hell, there's no way transparency would have worked my first try anyways, so I'll save that for Summer.

I'm packaging it up now, will make another post to release it.