Using Pretendo's code for other revival projects

Interesting Question/Idea… Considering people used to use other Miiverse clone’s code (like how Sillyverse used Ultima’s code) to start their own clones, could it be potentially possible for users to use the code from the Pretendo Network and modify it to kick-start their own homebrew Nintendo Network revivals?

I feel like the accessibility that is put into @MatthewL246_PNID’s Pretendo Docker server project could be a start to that.

2 Likes

This is actually more of an open-source software licensing question than something directly related to my project.

The majority of Pretendo’s repositories use the GNU Affero General Public License v3.0, which essentially states that:

  • You are allowed to use or distribute the software for any purpose, including commercial use.
  • You must include a copy of the license whenever you distribute the software, including when you host it on a server.
  • You are allowed to modify the source code.
  • You must keep your modifications of the code open-source and under the same license (including the copyright notice, which gives credit to the original author).

TL;DR: Yes, but your clone must be open-source too.

1 Like

Saved this to my notes!

Thank you for letting me know!

Do you think anyone has done something like this yet? Or, are they planning to?
I got a feeling we could make a whole scene out of this! :grin:

I know that the Aquamarine Miiverse clone developers used a modified version of Inkay.

I’m not totally up-to-date on the scene but there are probably others.

1 Like

When I’m thinking of Nintendo Network/Pretendo clones, I’m talking about the WHOLE NETWORK, not just a part of it.

As far as I know, there is nobody else trying to make or host a full Nintendo Network revival. Impatient people who are frustrated with what they see as slow progress from Pretendo have certainly threatened to do this before, but I don’t think any of them ever made any real progress lol

If it were to happen like that, but the newer, more popular network carries on Pretendo’s legacy, then there is still something to look forward to in that case!

What we are doing now as a homebrew project could very well impact what’s to come, in my opinion. Again, it’s the legacy that matters, and our role in it is necessary to preserve it.

I just hope that never becomes necessary.

1 Like

As Matthew said this is mostly a licensing question. You are free to do what you want with our code so long as it’s within our licensing agreement. Our license is pretty permissive, with the only real restrictions being that you must keep the same license, keep your version open source, and state your changes. Technically though when it comes to “keep it open source”, all it requires is that people who have access to the application must also have access to the source code. This is why we use AGPL and not GPL. Under AGPL network use counts as “distribution”, whereas under GPL it does not. This protects our servers, as it means that anyone who can connect to the servers is counted as “accessing the application” and thus must have access to the source code (under regular GPL this is not the case, and people would NOT be required to make their forked server open source)

Also we sort of intend for our code to be used by others. And it already has been. One of the things we’ve been focussing on is making sure our code is usable by other projects, specifically because it’s useful outside of Nintendo Network. Nintendo did not make their networking libraries themselves. They were licensed from a company called Quazal under the name Rendez-Vous. Nintendo modified Rendez-Vous a bit, added some extensions, and then rebranded it as NEX, which is what 1st party Nintendo Network games use

However because NEX is based off Rendez-Vous, it means that there’s a lot of overlap between NEX titles and other titles (even on other platforms) which use the original Rendez-Vous library (of which there are many, since Quazal would license the library to anyone and was very permissive with branding rights). This is especially apparent in Ubisoft titles, as they bought out Quazal some time ago

So we’ve been designing our libraries to accommodate this better, and allow for more platforms/games to have custom servers built. While updating our NEX libraries to their v2 release, one of our developers DaniElectra used Rayman Legends as a testing title, which uses the original Rendex-Vous library. There are also projects which make custom servers for other games on other platforms using our libraries, such as GitHub - ihatecompvir/GoCentral: Rock Band 3 "Rock Central" server re-implementation in Golang which makes RB3 servers for the PS3, Xbox 360 and Wii

You should not underestimate the type of time, infrastructure, cost, etc. that goes into running something like this. There is a reason why we have donations, it’s incredibly difficult and expensive to run something of this scale. It’s not very trivial to get right. While @MatthewL246_PNID has done a great job with his Docker project, if you want something that’s going to scale it likely won’t work out of the box. It’s great for stuff like local events, testing services, etc., but there’s a reason why we’ve contacted 2 industry professionals who create this kind of infrastructure as their real day jobs to help us design ours

Our libraries/servers are only one portion of running a network like this. You also need to factor in things like global CDN caching, database costs, storage costs for user generated content, connecting all the services together, etc. There’s also a few things we produce and use internally which aren’t open source, though none of it is very critical. One of these being our admin panel, which plays a decent role in the infrastructure but isn’t open source. You would need to create your own management dashboard (like Matthew did). You also need to implement methods of scaling the servers, including their databases and storage, as well as things like proper failover and distributed instances of the servers.

While certainly possible, if you want to do anything more than a toy deployment you’ll need to put in a lot of leg work, elbow grease, and money. With the changes coming to our own infrastructure, all things combined we’re looking easily at a few thousand dollars a month just to operate. Server rack space (which is looking at ~$500/m by itself, with our current load/requirements), paying Cloudflare/Bunny for SSL and CDN purposes, managed databases (which themselves can cost more than the server rack space. Even at the lowest ends, which isn’t enough for us, managed Mongo services are around ~$60/m. On the higher ends, which we would need, it’s well over $5k/m. The same goes for Postgres, easily $1k+/m for anything we would need), storage costs since we generate millions of pieces of user generated content (our StreetPass Relay server has over 500GB of data across over 50 million files of user generated content alone). And like I said, this is just with our current requirements. We only support a few games right now, but eventually this will be scaled up to hundreds of games. Which means it’s not unlikely that we will need to scale up our infrastructure again in the future

Some of that you can do away with, like you don’t NEED managed databases and you don’t NEED failover or automatic scaling. But if you don’t have those things, you’re going to be doing a LOT more manual work. Especially on the database side, managing your own database at scale is incredibly annoying (especially when you factor in that now you have to manage storage space/costs for your UGC, AND your database now)

Again, it’s certainly possible to do. This is not meant to discourage the idea. But I felt like I should point out the reality of what it takes to run something like this properly. There’s a reason we have donations to keep things afloat

3 Likes

So long as I’m alive and we have funding, it won’t be. I have no intentions of ever letting Pretendo Network die for any reason. Ideally this remains online forever

4 Likes

Thank you, @PN_Jon. Don’t get me wrong here; I do love Pretendo very much and it’s a very great service. The idea for what I’ve said just came up to me, but if the Pretendo Network can be preserved forever, then that in itself would be very great for the homebrew scene.

1 Like