Kid Tripp Nintendo Switch Development Blog
Overview
Why blog the process?
When the Nintendo Switch was announced, there were a few stories in the media about what a nice system it is to develop for and how quickly some existing games were ported to the system, with a time of one week being quoted for one particular game. This all seems nice and has given me some confidence that I can get Kid Tripp running on the new hardware with minimal fuss and effort, but is that really the case?
These quotes and figures don't really give any useful information. What code actually needed to be converted or replaced for the Switch? How portable was all the existing code? How many assets needed work to get them in appropriate formats? How many people were required for the conversion? I'm planning to give a more broad picture of how easy it is to convert an existing game over to the new platform from the point of view of a single developer who has not written a single line of code for the system.
What work was involved in the 3DS version?
The initial conversion of Kid Tripp over to the Nintendo 3DS wasn't too long or difficult a process. I was able to extract the hardware specific code from Digger Dan DX to form an engine, or framework, on which to build Kid Tripp. I call this engine the "nagEngine". This is a fairly simplistic game engine which offers sprite rendering, audio playback, input reading and file reading as the main functionality required for both Kid Tripp and Digger Dan DX. This engine currently supports the PC, which is used for the bulk of development work as development is faster and a lot more portable on the PC, and also the Nintendo 3DS.
Once nagEngine was in a sufficiently advanced state, I converted the Kid Tripp game code from Objective C over to C++, generally one file at a time. The original developer, Mike Burns, had left his code in a really nice state for conversion. After a few files were converted, I had the intro playing back on the 3DS hardware in about 4 days. After another three days, I had enough of the menu system working that I was ready to start on the actual game. It then took about 14 days to get the game to a state where the first level was playable from start to finish. All this work was done in my lunch breaks and evenings as I have a different full time job.
For the Switch, what work will be involved?
My goal is to get the game running on the Switch exactly as it runs on the 3DS with no modifications - for example no special case handing of the Home menu or Switch controller options at this time. They will come before submission, but for this target I want to get the game playable from start to finish on Switch hardware. This means that I won't have to touch the game code at all. The only work required is to produce a Switch specific version of the nagEngine.
I will go into more detail about this in each relevant section, but broadly speaking there are some sections of the nagEngine that won't require any work at all, for example I have some random number generation code. This should compile on the Switch without modification. The code that requires conversion is for more specialised processes such are reading the input devices, file handling and playing audio.
What are the challenges?
Well, for starters I don't have any Switch development hardware yet, but that won't stop me! I didn't have any Nintendo DS development hardware when I first developed Digger Dan. My Switch development hardware is on order and possibly will arrive during this week. I really hope it does so that I can post images and footage of the process which are running on the actual hardware. Before that time, it is possible to write and test Switch code without the actual hardware.
As mentioned above, I've not written a single line of code for the Switch yet, so that inexperience will be something of a challenge. I'm assuming that there will be samples available for all the tasks that I need to perform that can be used as a basis for the Switch implementation of the nagEngine. There were for 3DS. I've not actually downloaded the development software for Switch from Nintendo yet. That will be the first stage of the conversion process as will a bit of document reading and the studying of the samples.
How long is it likely to take?
I simply have no way of knowing. I mentioned above that I have a day job, however right now I am on holiday for a week so am able to focus some quality time on the task. Writing this blog is one way of keeping me off Crash Bandicoot which is calling to me right now...
I will be timing each session as I work and recording the total time spent on the conversion in the blog. If I don't get it finished before I go back to work, that won't affect that amount of time spent on the task only the completion date.
More Pages
Phase 1
Phase 2
Phase 3
Phase 4
Phase 5
Phase 6
Follow me on
Twitter for notifications when new pages are added.