Since the previous post:
- Skybox rendering is working.
- I decided that a specific light probe component was not exactly what I needed. Because the camera component can render to a texture, it made more sense for the camera to detect when the render target was a cube map and render all six faces itself.
- The Build tool was getting log output out of order (for example, when the asset compiler called the shader compiler via a system call) - fflush(stdout) in the asset compiler before calling system() seems to fix that.
- Reworked the way cameras gather / sort game object. Each game object can has a 32-bit mask of layers it belongs to, and each camera can specify which layers it renders to. These were somewhat hard-coded previously, but because I'm using my Very Awesome Attribute File Format to store everything, it was pretty easy to make this data-driven.
- Added a simple Render Sphere component. Then realized I needed a good way to bind arbitrary shader constants so I can use any effect on the sphere, so built a system to specify any number of textures or shader constants in the attribute file and set them when the sphere is rendered.
Before I do that, I may switch back to working on some of the AI components, considering that I need to make an actual game at some point. I had a really nifty swarming enemy type working, but I need it to actually shoot something a the player.
Seen on Twitter:
Creative process: 1) This is going to be awesome 2) This is hard 3) This is terrible 4) I'm terrible 5) Hey, not bad 6) That was awesome