Mono 3.0 Released

I saw that Mono 3.0 was released (Mono 3.0 debuts, casting a wider .NET | Ars Technica) and there are definitely some goodies there that I wouldn’t mind getting my hands on for Unity programming.

Could Unity Technologies let us know what their future is with Mono and if they are planning on continuing to use it? Are they going to update their mono libs to more modern versions of these? Are they going to create their own cross-platform library?

There are huge performance gains with the different garbage collection in particular that we are missing out on, and where every ms matters in a real-time environment it kind of hurts.

bump. This, along with an ETA for MonoBleedingEdge use in main branch, would be great to know.

Why would they use a bleeding edge branch in something intended for widespread production use? No thanks…

I’d welcome an update to a more recent stable release, though.

It’s at 3.1.1 now, 3.0.6 being marked as a ‘stable’ release - should be fine with a few point releases behind 3.0.

Now that 4 is along, it isn’t likely to happen till 5.0. It is possible it that it might happen at 4.5;

The problem with upgrading mono is it breaks backwards compatibility in the webplayer so it the installer has to be bigger… or something like that.

^^ This

As previously mentioned, if Unity upgrades Mono, then that means multiple versions of mono will have to be included in the webplayer download, increasing download size. This is why I suspect it’s been held off for so long, this is a difficult problem to solve for. Unity will have to come up with some new scheme to deal with this somehow and allow Unity to switch mono versions as necessary.

I think it’d be cool if the Unity webplayer became just like a shell that streamed the necessary contents of the engine on demand. So lets say someone installs the webplayer fresh, then goes to a webgame that uses physics and relies on Mono 3.0. It will then on demand download only the necessary core files to run a game with physics and mono 3.0, foregoing every other component like Mono 2.0, umbra whatever. But then if someone goes to a game with Mono 2.0 that uses umbra, it will then recognize that and download those things.

Like I said, this is probably why a Mono upgrade hasn’t happened, some clever scheme will have to be invented like the one I just described. But I really do hope we get a mono upgrade next time around because Mono 3.0 looks awesome.

Or Unity could just implement Mono 3.0 and make it a build option only available for iOS, android or desktop. So then those of use who don’t do web could benefit from new mono.

Inherent multi threading of the GC… Hmm, less faffing about dealing with allocation hitches, and a lazier me. I like the sound of that.

Considering the poor state of Mono right now (see: the GC nightmare), that’s a really terrible excuse, especially considering the size of the webplayer distributable. This isn’t like a 1 gig download or something, it’s 25 megs.

+1000000000000000000000000000000000000

That’s true, I would hate downloading anything over 25 MBs for a plugin, but Unity seriously does need to upgrade Mono. As it stands now, it’s simply too old.

You’d never even notice. You don’t see the download and most internet connections are such that the (frankly marginal) increase in plugin size would be invisible. Even if it were to double, the average broadband connection is such that you’re going to spend 20 seconds downloading it instead of 10.

I suppose, but think of the future… Let’s say Unity adopts 3.0, and there are 2 versions of Mono in the plugin. Well, then what about 5 years from now when Unity needs to upgrade Mono again? Do we drop support for games running the current Mono version, or do we download components? On Windows it would be easy to remove these extra components from Add and Remove Programs, but what about Mac, where there’s no equivalent functionality? They’ll be murky issues abound.

I HIGHLY doubt that the scripting engine is even remotely close to the largest component in the Unity web player. Not only that, but I’m pretty sure the player is entirely self-contained and doesn’t actually install Mono on the system, which is how it gets around needing administrator access to be installed.

Why can’t the Unity team just upgrade to the latest version of mono? You can sync other IDEs that Unity doesn’t use out of the box such as notepad++. Are there Unity specific features that only their version of mono supports? If the Unity team has such a hard time play catch up then they should create their own IDE so they can upgrade it as they need to. I’m still confused as to why they completely abandoned their UniSciTE IDE.

Mono isn’t the IDE, that’s MonoDevelop, and that’s just a fancy text editor. What’s of concern to people is the scripting runtime built into the engine itself.

Have you actually used it? Don’t expect that the newer version of Mono is somehow magically so much better, or that the GC currently is a “nightmare” for that matter.

The Unity web plugin is nowhere near 25MB.

They already use different plugins for different versions of Unity. Add/Remove Programs is a non-issue anyway.

Because it breaks stuff. Nothing to do with the IDE.

–Eric

Upgrading mono isnt even enough really…

we need a way to include additional DLLs in the web player so we can support things like webservices and wcf without resorting to plain WWW or tcp access… enterprise technologies are just too valuable for complex game development… best we can do now is get those tools on the desktop builds… the web player should be able to handle loading signed mono dlls that it doesn’t include by default.

I can’t even find a post telling exactly what version of mono 4.0.1 is using so I can pull in DLLs that i need for my project (system.threads.tasks and the web service/WCF stuff just for starters)

So we need some more openness, an upgrade, and some new features :slight_smile:

Yes, it’s bundled into the download.

It’s not the IDE. It’s the Unity editor which relies on scripting functionality, it’s MonoDevelop, which would need to be upgraded, it’s the whole engine. This is not a trival process.