maandag 18 februari 2013

Homebrew on the Nintendo 3DS


When I started programming and development for the Nintendo 3DS, I was really annoyed. The tools provided by Nintendo are not really sufficient and there are tons of things a developer needs to do by himself.
 
Developing all these tools by yourself take up a huge amount of energy, time and money. This would not be a problem if you are a big developer/publisher knowing you will release at least a few big retail titles (you will earn back the year you invested in creating a framework).
 
But for a indie developer this is almost undoable. You basically have to work for a year or so to create a framework. And when that is done, you cannot really make any money since a framework is not a sellable game. You still have to build that on top of the framework.
 
And this is why Goodbye Galaxy games has not released anything yet on the Nintendo 3DS.
 
Anyway, I have been very busy the last few months building a framework and tools so I can easily create games for the system. Hopefully we will announce some games really soon :)
 
The biggest thing I was missing are emulators (or simulators) that would allow me to run roms on my computer. Now obviously most readers only know emulators and roms as something bad. But official developers also use emulators to quickly check their own games.
 
Sure you can use official development kits for this, but it’s not always efficient to do so. You see, loading your game code into a devkit takes up quite some time. Before anybody panics and thinks the devkits are slow; they are not. But it still takes up between 30 to 60 seconds.
 
This does not sounds like much but here is how the process goes during development :
 
-          Wait 30-60 seconds to boot game
 
-          Check if enemy is standing in the correct spot
 
-          Nope, he needs to be bit more to the left
 
-          Make change in code
 
-          Wait for compiling code
 
-          Wait  30-60 seconds to boot game
 
-          Nope, still needs a bit more to the left
 
-          Wait for compiling code
 
-          Wait 30-60 seconds to boot game
 
As you can see this becomes quite annoying quickly.
 
And this is where emulators come in. Doable click on the rom icon and ‘BOOM!’ your game is running on your screen. No more waiting!
 
So next to a framework I wanted to build something that I could use to quickly prototype with. And I came up with my own awesome BASIC interpreter. It works a bit more like Visual Basic as in the fact that it has sub routines and functions and no line-numbers.
 
It also is more than just a interpreter there is a complete suite build around it. You can basically load in any kind of graphics asset file into the library (just like you can do in Adobe flash)  and then use it in your game.
 
And the best part of course; you can run your code straight from the program by pressing ‘run’. It even comes with a debugger (although many improvements could still be made).
 
When you’re done you can save the pre-compiled data + assets into something that you can save on a SD card or read as a QR code. Making it super easy to test it out on real hardware.
 
The program/app on the 3DS that can read the pre-compiled data and assets, works a bit like the Petit Computer DSiWare app (except you cannot write code within the app).
 
And now for the title of this blog post; I’m thinking about releasing the program/app in the Nintendo 3DS eshop for maybe a small amount (2$ or something?). And release the programming-software for the PC for free.
 
This way, just like with Petit Computer, anybody who would like to create little games for the 3DS could do so! This could be an amazing break through!
 
We had all these talks about piracy and homebrew the last few weeks. And the problems with homebrew is that most of these hacks later get abused for piracy means.
 
Now image you can just use your retail 3DS to make games for, and you don’t need to hack it! No need for a R4 card! No need for weird custom hardware or tools! No need for piracy!
 
Would that not be amazing ?
 
 
 
The reason for this blog post is to see how many people would actually want to use this. Since it will still take quite some effort to create something really perfect (debugger needs work, the overall editor functionalities could be expanded, there’s no 3D engine at the moment only 2D games that can have a different Z axe for a 3D effect).
 
So let me know what you guys think!
 
 
 
Here are two screenshots of the suite :
 
 

36 opmerkingen:

  1. This project sounds pretty cool! I could see it having a small audience if it was available in the e-store.

    Regarding your described workflow, it sounds like you might benefit from adopting a more data-driven approach to developing. If you can separate your numbers from your behavioral code, you can try out a lot of things by changing your data alone; not requiring a recompile and transfer. Just a thought. :)

    BeantwoordenVerwijderen
    Reacties
    1. I do develop quite data-driven. I always create custom level editors,etc. But a lot of my games have a puzzle element which require timing.

      And to test if the timing is good, you need to see the stuff run (be able to play).

      For example; there's a level where you can walk inbetween two enemies. It took some trail and error to find out if the guards where far enough from each other to be able to do this.

      Especially if this kinda stuff happens in a smaller room where if a guard hits a wall he turns around, the patterns become too complicated to just 'guess' from inside the level editor.

      Verwijderen
  2. It seems like there is hope for the 3DS Homebrew scene to happen. The only thing is, If Nintendo allows it (Which will be hard but it's worth it), Nintendo would probably put some kind of protection on it for the system to be used optimally, and will most likely screen the code as per normal circumstances. Abusers would be reported and good users would be benefiting from the system to learn how to make games.

    There is space for creative development in this industry, we just need to push for our goals and inspire others to push with us :)

    BeantwoordenVerwijderen
  3. I would be in! It is a personal dream of me to one day make games for Nintendo products so count me in as Pre Order. No seriously it would be a day one purchase for me.

    BeantwoordenVerwijderen
  4. I would LOVE for this to be released! This would take indie dev to whole new levels!


    (You've made it on a few websites too btw!)


    (http://tinycartridge.com/post/43493040957/hope-for-running-homebrew-3ds-games-apps-while)

    (http://gonintendo.com/?mode=viewstory&id=196500)

    BeantwoordenVerwijderen
  5. I would buy this app if you released it. It sounds like there could be some fun homebrew released for it.

    BeantwoordenVerwijderen
  6. Sounds cool! I would love to try this out.

    BeantwoordenVerwijderen
  7. Its good to finally see some progress on a game creator for the 3ds. Rather than people cracking into the system for piracy, hundreds of others waiting for someone to make homebrew, we have a 100% legit/legal tool that has limitless possibilities. I couldn't give a cow if I had to pay 5$ for a a great application such as this. I think you should talk to other companies such as yoyogames to see if they can somehow get gamemaker implemented with your program as well. Porting it on other consoles such as the wii u. Soooo many possibilities, and potential. Please, please, please do not let this die. Make a donation page, SOMETHING to make this project live.

    BeantwoordenVerwijderen
  8. Sounds great - though I'm seriously no BASIC fan. Lua would seem like a more logical choice of scripting language, but it sounds like you wrote the interpreter yourself, so there's probably no way of changing the language used without rewriting a large part of it.

    Anyway, I'm dubious about whether Nintendo would ever allow this. It depends on how powerful the scripting language is, I guess. But in general it seems they don't want to allow any content they can't control, because they wouldn't be able to prevent "bad" software from damage the system in some way, and therefore, Nintendo's reputation.

    But if its power is limited enough, and verifiably so, it might have a change. I would likely buy it to try some things (:

    As a side note, I can't seem to be able to change my avatar on Blogger comments. Interesting.

    BeantwoordenVerwijderen
    Reacties
    1. Like I said in my blog; they already allowed Petit Computer for DSiWare, which is basically the same except you do the programming on the DS as well.

      Verwijderen
  9. This sounds brilliant! We are still waiting for Nintendo tu give more informations about how the connection between Unity and the WiiU will work. Nintendo really needs to be more open to hobbyist/indie development. Especially on the 3DS! I'm sure a lot of people would love to try out some game ideas on the 3D screen...

    Anyway, you release, I buy :)

    BeantwoordenVerwijderen
  10. I would love this. I would buy it day one. Count me in!

    BeantwoordenVerwijderen
  11. Count me as interested! And I'm fine with a BASIC-style interpreter. How would the QR-code thing work, though? Would it just be a URL pointing to an online repository? I don't see all of the graphic and sound resources fitting into a single QR code without procedural generation. (Reminds me of the old 256-byte Apple II demos. :-) )

    BeantwoordenVerwijderen
    Reacties
    1. right now QR-codes include everything (code + assets). This might be annoying for bigger projects, so for those your probably better of using the SD-card option.

      In the future I will probably add download function as well (and QR-code being a URL).

      I would like to note that source-code and assets are split in different QR-Codes which is nice if you just made a quick change in the code, you only have to scan the source-code QR-code and not all assets.

      Verwijderen
  12. Being able to code for, and run code of others on the 3DS? That would be amazing. This would be the first, possibly only, thing I would purchase from the e-shop.

    BeantwoordenVerwijderen
  13. Count me in. In fact the other day while enjoying Fire Emblem I was thinking of making a tribute game for tigsource in glorious 400x240. And then I thought people wouldn't get it unless I put a mock 3DS interface around it. And then this news came along.

    Please proceed, my good friend, and I hope Nintendo won't do anything stupid like crush our hopes.

    The 3DS strength right now is the quirky third party Japanese games since all the casual devs have moved on to tablets and microtransactions.

    Also, I would appreciate it if there can be support for more programming languages.

    BeantwoordenVerwijderen
  14. I have two hopes for this project, 1. That it happens, being a homebrew coder, I would love more than anything for a legit way to run homebrew on a Nintendo handheld and 2. A European release! We still don't have petit computer here and probably never will, we never get anything :(

    BeantwoordenVerwijderen
  15. Wow man, if this is just as good as it sounds, this could be the piracy KILLER for 3DS. Why? Because all the efforts to hack the 3ds are done in the shake of having homebrew.

    If you can give us (for 2$ :D) a legal way to make games for 3ds and nintendo allows it (THEY MUST) this could mean the end (not really, but close i think) for piracy on handhelds.

    Hope this comes out and wow ... :D

    BeantwoordenVerwijderen
  16. As someone who's just getting into game development, this sounds amazing. Since flash carts have basically become illegal, this is the perfect way for non-pirates to have fun with the system and get native 3DS hardware support allong with it. I'd deffinitley purchase this is if was on the e-shop. Even if it was upwards of $10.

    BeantwoordenVerwijderen
  17. This sounds awesome. I'd happily purchase this app. and it'd be worth more than $2 for the privilege.

    Good luck with this and I look forward to seeing it available on the eStore.

    BeantwoordenVerwijderen
  18. The flash cards on DS have always give the possibility of try games before buy it, the homebrew, and also the plague of piracy.
    The 3DS have a lot of Demoes, 3D videos, you can try a game before buying it. If this app become reality will also have homebrew. There is no use to hack the console if you can have bot things.

    With this app using homebrew can become very simple, just download or share. No risk to find nocive code (for the pc and the console) and no complicated passages to do.

    It's a great thing if Nintendo allow you to sell it, i'll buy if it comes also in Italy (we don't have petit computer -.-) and maybe i'll try to do something with my poor programming skill.

    Sorry for bad English XD
    I'll give you a bit of visibility in ITaly on my DS/3DS blog. Bye!

    BeantwoordenVerwijderen
  19. I would buy this if you released it into the eshop.

    I would never have imagined that the 3DS SDK doesn't contain a 3D rendering API! That must make it real annoying to code for the system. If you make your interpreted language nice and object-oriented, then the community can just go ahead and code all the libraries we need.

    BeantwoordenVerwijderen
  20. This is a very awesome idea! I've been reading up on how to code using C++ and someday I think it would be cool to code games for the 3ds without having to find a developer/publisher. I hope this idea continues to move forward and someday be published in the eShop

    BeantwoordenVerwijderen
  21. I am wondering when this will be up and running and will you be making it RM compatible. Classic RPG style with 3DS look. As a Designer I am interested in this format.

    BeantwoordenVerwijderen
  22. My brother and I have been talking about making a game out of one of our cartoons and we think the 3DS would be a great fit for what we want to do. If you do sell your app in the eShop I would definitely purchase it and get to work!

    BeantwoordenVerwijderen
  23. I'd pay more than $2. This would be incredible.

    BeantwoordenVerwijderen
  24. Are there any updates on this?

    BeantwoordenVerwijderen
  25. you can definitely count on my support! BTW, how're things going with the project?

    BeantwoordenVerwijderen
  26. Sounds awesome, i would definitely buy it in a second XD and $2? I too would pay more like $10 if it produces quality games and has a professional/complete feel to it, while still being easy to use. Cant wait to see how this turns out.

    BeantwoordenVerwijderen
  27. Is this still being developed? I'd definitely purchase as well.

    BeantwoordenVerwijderen
  28. I am following your blog from now on, this would be way tooo cool. Do you have any release of your code on github etc for contributions, programmers like me would love to help out.

    BeantwoordenVerwijderen