circle
circle copied to clipboard
Targeting video game consoles
I was wondering if you had any plans for cross-compiling for video games consoles, mostly the Big Two, Xbox and PS5. The video games industry is, after all, quite a big audience for which some of your features are very interesting. Everything graphics-related of course, but also metaprogramming as most game engines (such as Unreal) have some sort of code generator designed to support custom tags that are typically used to bridge with a visual scripting system, network serialization and other fun stuff.
(To test whether Circle can actually replace the Unreal code generator (written in C# AFAIK), would be quite the interesting endeavor and test Circle's suitability for DSLs, not to mention being a big publicity hit.)
Sony have their own proprietary fork of Clang and are very secretive about everything so I can't imagine they'd cooperate. They did push some of their stuff upstream, however, so perhaps there's enough info that can be scraped from Clang to target PS5. I believe the latter must use the Itanium ABI due to its roots in Linux.
Microsoft ensured that the Windows and Xbox OS are pretty close, chances are both use the undocumented MSVC ABI. But there's still a large number of differences between the platforms, so this is still a form of cross-compiling.
There's also the third player, Nintendo, which should be taken acount with the Switch. Althought the latter isn't targeted nearly as much by AAA studios.
Lastly, Linux has also become a gaming platform thanks to the Ubuntu-based Steam Deck which is consistently topping sales on Steam. It's a lot more open as a platform so could provide an ideal candidate for a proof of concept.
If you at least had one cross-compiling scenario fully working, I think it would silence some of the legitimate critics, and perhaps start to gather more interest in future Circle developments from the games industry.
Best of luck with your amazing project, which I'd love to use at work.