Castle Game Engine supports compiling games to the Nintendo Switch console.
It is a modern, successful, indie-friendly console from Nintendo. Our friend company, Cat-astrophe Games, has already released games using CGE on Nintendo Switch (Escape from the Universe and The Unholy Society).
It is a full integration, really 100% of the engine works on Nintendo Switch. From the developer point of view, you just write cross-platform Pascal code using CGE units, and then you can recompile the application using the Castle Game Engine build tool with the
We have released games on Nintendo store:
The integration code with Nintendo Switch is not public and not open-source. It cannot be, as we are covered by Nintendo NDA agreements and we cannot disclose the technological details about how Nintendo Switch works. To develop on Nintendo Switch, you have to:
Become a Nintendo Developer yourself, and sign the necessary NDA agreements between your company and Nintendo. You will most likely want to buy a developer version of the console, as well.
Contact me (Michalis Kamburelis) through the non-public Nintendo developer forum. I can then share with you the necessary code that adds Nintendo Switch integration on top of the open-source CGE core, through the Nintendo forum, so Nintendo can confirm it’s legally OK with them. Of course you get this for free. The integration code cannot be open-source, but I still want to give it to everyone for free.
Note that we cannot share various technical details, due to Nintendo restrictions. The full documentation describing using CGE on Nintendo Switch is part of the closed-source CGE branch, that you get for free once you confirm that you are registered Nintendo Developer.
Some public information:
We are using unmodified FPC.
All the units available on Android/Aarch64 platform are available on Nintendo Switch as well. We use a small trick to utilize FPC for Android/Aarch64 (compiler and standard library) to develop on Nintendo Switch, since FPC lacks Embedded/Aarch64 target.
You cannot access system-specific things using standard library. You have to use CGE. For example, you cannot open files using
TFileStream, you must open files using CGE
Download function. Even a large game can be easily recompiled for Nintendo Switch, but you need to use CGE API consistently for everything (reading files, measuring time etc.)
Other than that, everything just works. The whole CGE API works, and the FPC standard library works as well as long as you avoid system calls. E.g. you can use standard FPC units to process XML, JSON etc.
If you have any questions, please ask.
To improve this documentation just edit the source of this page in AsciiDoctor (simple wiki-like syntax) and create a pull request to Castle Game Engine WWW (cge-www) repository.
Copyright Michalis Kamburelis and Castle Game Engine Contributors.
This webpage is also open-source and we welcome pull requests to improve it.