We’ve had many questions about bringing The Next Penelope to Nintendo Switch so here’s what we’ve done!
Only the functions specific to the Next Penelope game have been ported, but it represents more than 70% of the original player code. A big part of it is platform independant but we had to adapt the input, sound, save system and rendering modules so that they use our own engine.
The game uses around 20 shaders for special effects (warp, radial blur, tint, glow, etc…), they had to be ported from WebGL/GLSL format to HLSL (that our engine uses).
The player conversion development was first done for PC for speed then we could easily target other platforms given that our engine is multiplatform.
After some optimization, the game was running entirely at 60 FPS on the undocked Switch console in the “High quality” graphic settings preset.
All specific console changes (localization for other languages, Switch multiplayer logic, etc..) and bug fixes were made directly in the ported player code afterwards without reexporting the Construct project once.
When the game starts, everything is loaded in memory just as in original game. Packing and compressing the files for final release reduced the loading time to 8 seconds.
Rumble HD support was added in the game specifically on Switch. The vibrations are linked to the audio events. When a specific sound such as laser or explosion is played, the specific vibration sample of the sound is played on the gamecontroller/joycons at the same time.
Voilà ! Let us know in the comment section if you have any extra questions. Looking forward to you guys playing the game when it releases on 21st December 🙂
These porting efforts could benefit other Construct 2 games. But the only that comes to my mind is CoinOp Story and the development is halted for now.
Were you as puzzled as me by Construct 2 file format for translations?
Well not really, in Penelope, the localization was done via .json files loaded in a Dictionary.
(via the same method explained here : https://www.scirra.com/tutorials/444/supporting-multiple-languages )
The only annoying thing was to convert localization texts Unicode characters in \uxxxx codes.
There are other games, like Unsung, Klang, and more that could definitely benefit from this. Construct 2 is actually quite capable as a 2D engine, so I’d be quite interested in learning more about how this was done and seeing if it could be done for other games (my own included), but that’s dependent on Seaven Studio, so we’ll see.
What resolutions are you achieving docked and undocked?
Hi, can this method also be applied to port Construct2 games to PS4?