A gamedev's answer to Why do New 3DS 2DS exclusive games exist?

December 11, 2018, at 02:37 AM by mgarcia in 2018, Blog, 3DS, GameDev (3 comments)

Author: mgarcia Date: 2018-12-11 12:37 +1100 Tags: 2018, Blog, 3DS, GameDev Comments: Open




Size: 1.14 MB

I was catching up with Otyugra Games and this is not the best way to ask for money for a new project , Never give money without seeing a prototype!!

Update
This is Matthew Kordon, he replied to my first gamedev post on r/3DS
Asking for money just on hopes and dreams isn't going to make you a game.
He's just burning a community desperate for anything new.
The result wont be a game but instead he'll get a bad reputation in a very small industry.

Anyway, this post isn't about that!
I noticed on their 3DS project post two replies asking why they were targeting N3DS (New 3DS) instead of the O3DS (Original 3DS).

comment #1
Regarding the O3DS power versus the N3DS, the console has had beautiful games running at 60fps, even in 3D mode, the games that had those issues are often lazy or bad game design for the system that refused to spend a few hours doing proper tweaks to support it, I can't cherish a developer if their reasoning is "not enough processing power" for a title that probably is gonna be nowhere near the highest end kind of graphics the system can output.
comment #2
What doesn't excite me, however, are 'New' 3/2DS Exclusives. Is there a reason for making it exclusive to the 'New' systems? I have an old 3DS, and I don't feel like getting the money for upgrading, especially this late in the 3DS lifecycle. I feel like others may be in the same boat... Would it be possible to explore some options for making it available to all 3DS systems? Considering that it is a card game, I feel like it would work fine on an old 3DS system... Also, making the extra effort to release the game on all systems may increase profits in the long run...

I'll start by saying, looking back to the DS library, it has some very nice looking 3D games! But it's not "lazy dev" to target N3DS!

The difference between O3DS and N3DS programming wise is huge!
Firstly, It's not the graphics rendering, they both have the same GPU. It's actually, just everything else!
The N3DS has 4 times the CPU Mhz speeds and twice the RAM which is also twice as fast. Which means the O3DS can only process a very limited amount of polygons before you hit even 30FPS or worse!
You're probably thinking so what??

Well, I'm coding my 3DS game in C/C++ AND I'm rolling my own 3D engine, which is optimised for low end systems! And the performance hit is huge!

My 3DS game engine
My 3DS game engine

The only way to get anything that looks and plays great on O3DS is via low level assembly, which is a huge investment this late in the 3DS's life! And yes, there are people that have made that investment many years ago ie Nintendo, 2nd and 3rd parties. But not the new dev's, the new indies which are mostlikely limited to using Unity3D.

I'm not pretending to be the worlds greatest 3D engine coder, far from it. But my engine code is fairly lean (<4MB) compared to Unity3D (>20MB)!
It's only processing 2000 triangles or less each frame but after frustum checks and poly culling, I couldn't even get an empty 3D landscape running at a smooth 60FPS on the O3DS! Then you add gameplay, input & audio processing, it's just not worth while. The only way to really optimise C/C++ code is via hand coded assembly. It's not 'just a few hours', it's researching hardware design and programming registers directly, which I'm not even skilled enough to do nor prepared to learn! While the N3DS processes the same thing like at 200 FPS, which is how it needs to run for an empty landscape scene!

  youtube of my crappy 3D engine | youtube my crappy 3D engine 

While on my PC, which is 1000's times faster then a N3DS, the same code just flies!

And for unity3D to target O3DS you're looking at something simple in gameplay like an atari 2600 or C64 style of game!
As Unity3D takes most of the RAM and CPU cycles.
And unfortunately, most new gamedev's (for whatever reason unknown to me) tend to shy away from C/C++ languages preferring instead Microsoft's proprietary C# and have a very strong dependency on a game engine.
Both I think are ridiculous as C/C++ isn't that different or harder then C#. And a small 2D engine is relatively easy to create, especially with all the existing code that's out there now!
But that's the state of indie gamedev today :/

So that's why you don't see as many new O3DS games compared to N3DS.

But from my point of view the real benefit to targeting N3DS isn't just because of it's indie friendly power but for it's extra inputs. It resembles a modern controller with the 4 shoulder buttons and the two analog sticks. Which makes the N3DS a worthy base target and porting up to other consoles and PC a great idea!

N3DS
N3DS

Thanks for reading.
PS: If you have a comment or feed back, please leave it below, I may miss it on my social media feed.
mgarcia


3 comments on "A gamedev's answer to Why do New 3DS 2DS exclusive games exist?"

  • billy: 2018-12-11 23:06 +1100
    Awesome work in explaining! Will you be potentially giving your engine to other licensed Nintendo Developers? ^^
  • James Peidorreiro: 2018-12-12 07:25 +1100
    I don't know.

    http://mg.org/Blog/3DS is 404 and mg.org is an awful page.

    So, tha "lazy dev" is true afterall.
  • MGarcia: 2018-12-12 08:41 +1100
    @Billy: The engine is WIP and doesn't do much.
    But I do share code via Nintendo's forum:
    https://developer.nintendo.com/group/development/wtc6ppr2/forums/english/-/gts_message_boards/posts/13595851

    @James Peidorreiro: Fixed! thanks : )



Comments are open.


Your name or alias (required):

Your plain text comment (required):


Your entered name and comment will be displayed above this form.
There is no reply notifications or editing of comments.

 Enter value: 2065  



RSS Feed @mgarcia_org Twitter Feeder my random Youtube videos
← An IndieWeb Webring πŸ•ΈπŸ’ β†’



Page last modified on March 23, 2020, at 02:09 PM and visited 7194 times.

Powered by PmWiki