The A.I. part:
For a final’s exam this semester, I had to develop a multi-agent system that could play team-based 2-on-2 tenis (with a soccer ball) and came up with this:
It’s just the first test of the AI Framework used to create multiple agents for single or team-based interactions. Just a test of visual sensors, communication, coordination and stuff like that.
Also a test of thread safety for the SceneGraph as each entity’s local transformation matrix is modified by the AI thread and rendered in a separate thread. 3 threads, one pointer 🙂
Some shadow artifacts occur during mid-video, but that’s due to the not yet finished PSSM system I’m working on. Also. don’t mind the complete lack of animations :)) I have better things to code for now.
Performance is choppy due to the Profiler from VS2010, Fraps, the code being compiled as a debug build, shader failing on the ball. Also, the quality is low as this video is used to pass my AI exam, and I don’t have a lot of time to waste on compression.
The PhysX part:
After some long coding sessions, the API was up and running, driverless and really fast. Only simple box-collisions for now, but it proves that the API is syncing data with the SceneGraph nicely and in a thread-safe manner:
The water transparency stuff:
Water wasn’t really transparent, because 2 very important states, culling = off, blending = on, weren’t set correctly while rendering. This was due to the absence of a Render State Manager and a Render Queue. Everything was rendered via a recursive callback on the SceneGraph. Adding a Render Queue sorting method and some minor changes to the State Manager, I finally managed to properly switch states and render transparent objects in a back-to-front order. The result? Well, semi-transparent water: