How close is Fuze programming to native Switch programming
-
I'm slowly progressing in my game dev education as I try things out in FUZE. It got me thinking about how different this type of programming is from "real" programming for games on the Switch.
Obviously the FUZE team has written a Switch "app" so I'm just curious how much of what we're doing translates to actual Switch development.
I know the concepts probably translate pretty well (sprites, the main loop, etc.), but what does native Switch coding look like? What are the barriers to actual Switch development (purchase dev kit, licensing, etc.). And what does the coding environment look like?
I probably should just google it, but I was curious what the FUZE team thought, and if anyone else has experience development natively for the Switch.
-
@plarpco well from the hardware side the barrier is quite high. You will need a Switch development unit. These come in two types an eDev which is similar to the consumer version except less functional as it doesn't have access to the store and an sDev which has a a built-in debugger. I have an eDev unit which I think cost over 400 pounds. I think that the sDev unit is over 1000 GBP. More details here: https://www.wiiubru.com/forum/index.php?threads/switch-development-units-sdev-and-edev.105/
-
@plarpco On the software side I have to declare that I am not an expert on this but I think that Unity is the preferred development environment for Nintendo Switch (this is based on C#). Having said that Fuze itself is written in C++ (old school). Please somebody correct me if this wrong!
-
Thanks @pianofire! I've played some switch games that were made in Unity (Overcooked is a favorite), so I figured that was an option, but I'm assuming most don't use Unity so they must be building their own engines in C# or a lower-level language.
Does Nintendo sell an eDev unit to anyone, or do you have to be an established game company? Is your eDev unit through the FUZE team, or something you had on your own?
If you could acquire an eDev/sDev unit and wrote a game in Unity, you could technically get it up on the eShop?
I realize these are kind of stupid questions. Obviously that is what people are doing... seems so easy! I do think FUZE will help teach the fundamentals so that someone could get the basics down enough to write an eShop game. Maybe some of the users here should form a collective and purchase an eDev or sDev and form a game company!
-
And I guess this is the place to start: https://developer.nintendo.com/
Edit: Although that only describes the process for 3ds. Hmm...
-
@plarpco I got mine through Fuze (as part of the team). I assume that you have to register with Nintendo first.
-
@plarpco
Before I discovered FUZE I was looking into how I could work on the Switch myself.
As far as I know you have to be part of Nintendo's development program before you can buy a dev console or get a License for the Unity Switch SDK, and to join you would need to demonstrate somehow that you are capable and serious about bringing appropriate content to the Switch.While Nintendo has put a lot of effort into making their platform more accessible to new and independent developers - and the Switch isn't quite the "walled-garden" the 3DS had started as, they've got the Switch fairly locked down and still have a fair bit of control over who they let in. Which makes sense because a console lives or dies by it's games; too many bad games or too few good ones can easily end it, and Nintendo doesn't have the alternative revenue streams to support themselves if the Switch tanks like Sony or Microsoft do.
An alternative could be a black-market or unlicensed dev kit or hacking your Switch, but if you're not carful you can brick your console, get your account banned, or have your IP blacklisted.
As far as similarity in terms of writing code, you'll run into some huge differences - mainly that there are a lot of different software architectures, paradigms, and development strategies that can apply to any single game - and different types of games will have different requirements on top of this. Then the languages you use makes big differences too. Java and C# may look and act similar and have some parts that look exactly the same but actually involve two different paradigms and making good use of either language requires knowing the difference.
If you really are interested in making a game I would suggest staying away from any low level or complex languages - not because they're not suited towards games, but because you'll spend a lot more time trying to understand and use the language properly than working on the design and development of your game. For 2D game programming similar to FUZE, check out the Pygame library for Python - a lot of the concepts transfer really well and Python is a very powerful and easy to use language with lots of good tutorials.
That being said, you can still have an easy time of it with any language or environment if there is a good API/library geared toward what you are trying to do.
I also wouldn't discount tools like GameMaker Studio or modding tools where you do much of the work outside of code as you can focus more on creating the game itself - then once you have a good understanding of how your game needs to be put together you can do it in any language or environment, or continue improving your game with the tools you have.
If you are serious about making a Switch game, GameMaker is a another development option for the Switch, so if you decide to give it a go and can put together a game with it, you may then have a much easier time of getting it on the Switch.
-
@IANRASE thanks for the great info. Make sense to me. I'm happy that I can write a game that me and my wife can play on our couch without to much trouble, so I'll stick with FUZE for a while. I barely have time to do this, let alone dig into a new dev environment. Just having fun! Cheers!
-
Pianofire is almost right! (wow, i don't think i have ever said that before - haha that goes both ways!)
FUZE is written in pure C - that's proper old skool and as close to the metal as you can get without resorting to machine code. Actually i think Luke has a few machine code routines in there too. He really is a masochist.
By the way. Luke, the lead programmer on FUZE is 19 years old. That's right folks nineteen years old!
Pure C programming a Nintendo Switch at 19.
I'm 53... i'm his boss.. I hate him!
-
@Jonboy said in How close is Fuze programming to native Switch programming:
Pianofire is almost right! (wow, i don't think i have ever said that before - haha that goes both ways!)
FUZE is written in pure C - that's proper old skool and as close to the metal as you can get without resorting to machine code. Actually i think Luke has a few machine code routines in there too. He really is a masochist.
By the way. Luke, the lead programmer on FUZE is 19 years old. That's right folks nineteen years old!
Pure C programming a Nintendo Switch at 19.
I'm 53... i'm his boss.. I hate him!
I'd never heard of him until now, but I also hate him too.. clever sod. lol
-
@Jonboy Impressive. Please give Luke a high-five from me next time you see him!
-
@Jonboy said in How close is Fuze programming to native Switch programming:
Pianofire is almost right! (wow, i don't think i have ever said that before - haha that goes both ways!)
FUZE is written in pure C - that's proper old skool and as close to the metal as you can get without resorting to machine code. Actually i think Luke has a few machine code routines in there too. He really is a masochist.
By the way. Luke, the lead programmer on FUZE is 19 years old. That's right folks nineteen years old!
Pure C programming a Nintendo Switch at 19.
I'm 53... i'm his boss.. I hate him!
@Luke care to weigh in on this? 🙃
-
I would just like to add that the whole Nintendo dev environment (hardware and software) is under pretty strict NDA so you can google all you like you won’t find much info about it online and what you do find is leaked info which may or may not be correct.
Fuze is written in C++ not purely C. Can’t comment on the assembler. There maybe some hidden in there I suppose.