Al and Corey was a submission for the Pirate Game Jam 15. I worked together with my closest friend and colleague (username "FullMetalGuitar412"). The game concept is a portal-style physics based 3d puzzle game, where you use the 3d environment to create shadows for a 2d side-scrolling platforming level.
The jam took place over 2 weeks, and the themes were "Alchemy" and "Shadows" (both had to be implemented/incorporated). Our use of Shadows was obvious, but our interpretation of Alchemy (changing something into another thing) was what inspired the 3d -> 2d design. Taking a 3d object and turning it into a platform in a 2d world was our form of Alchemy.
The game itself ran into several issues, so in the end the game is nothing more than a tech-demo at best. That said, the criteria required the game to run on a web browser, but most of the implementations of shadow-casting or other forms of shadow detection in Godot required compiling for console/PC. It took about 4-5 straight days of research and implementation, but eventually we were able to get the "shadow to platform" system working on mobile.
The way it does this is by using 2 spotlights, 1 the normal yellow light that hits the 3d objects, while the other is a distinct color (in this case blue). When these lights hit the wall, a camera separate from the main camera captures the image of the wall with these two lights interacting, showing us exactly what spots on the wall are covered. From there, the image is scaled down and then iterated through pixel by pixel to check the pixel color. Any pixel coordinates that match the correct criteria are returned and scaled appropriately, and finally tiny invisible geometry is placed at these scaled coordinates, creating geometry shaped very close to the shadows created on the wall.
This is what the camera for creating the shadow geometry sees: any shadows created from the spotlight visible to the player are blue for the camera.
While I'm very proud to have gotten such a complicated game design working for web, now that the game jam is over I want to go back to the project and see how efficient the system could work when all the tools the engine can use are available. I don't know whether I'll want to create a full game release out of the concept, but I want to see the concept itself in its prime.Â