I had planned to release my multiplayer Unity game on Android and Windows 8 App store simulatneously but I see that Networking isn’t available for Windows 8 Apps yet:
I was very surprised to see this after having just been to a presentation hosted by Unity and Microsoft all about Windows 8 store publishing last week. They didn’t mention this bit of important information. Also, having spent the last 5 days trying to get my game to export to Win 8 app store, I have to say working with Win 8 and .Net 4.5 within Unity just feels a bit hackish. I guess Win 8 app support is essentially beta. Hopefully it will get some attention.
Yoonitee: I can’t comment on Unity’s features but you could consider a switch to Photon Unity Networking. It’s pretty similar to Unity’s but uses our servers and the PUN Free package is already Windows 8 compatible.
I am currently not 100% sure if this is working with Unity 4.3.3 (the latest release). Someone reported issues with that but 4.3.2 and below is working and we will work on any incompatibilities, too.
Yeah, I mean Photon looks really good except the 20CC limit. I mean my racing game can have 6 players at a time so that means that 3 games at once would take it over the limit which is not very much at all. I would be more happy with a 1000CC limit or no limit. (Or be able to host photon’s code on my own server like you can do with Unity Master Server).
Either way it means rewriting my code so I may as well make my Windows 8 Store app single player for the time being.
@guavaman If you go to another conference maybe you should point out to them that Networking isn’t supported! They would soon sort it out then!
Yes, also compiling with Net 4.5 does sometimes throw up some errors which you have to ignore because Unity doesn’t recognise the latest .Net 4.5 functions (such as threading functions) but it compiles anyway!
Having said that one of my most successful apps was made in Unity for Windows 8 so I can’t complain that much but am still disapointed about the Networking functions not available as this spoiled my current plans for my big cross platform app launch. And everyone wants multiplayer games these days.
Interesting, I was never able to get it to compile with errors in the code. That would be a lot less messy than what I had to do. So for mine the major change was with file handling, which must use the Windows.Storage class and async functions + await keyword, none of which are available in Unity’s .NET 3.5 Mono equivalent. What I ended up having to do was this:
Create a .NET 4.5.1 Windows 8 Store DLL from Visual Studio which would be referenced from my main code.
Place this DLL in the Plugins/Metro folder (as mentioned here).
Create another DLL, this time a mock DLL compiled to .NET 3.5 which has the exact same name as the previous DLL and the exact same public functions (same parameters, etc) and place this DLL in Plugins. This way Unity sees the mock DLL and ignores the .NET 4.5 DLL.
When you build the game, Unity will substitute the .NET 4.5 DLL for the 3.5 DLL. Note the name must be EXACTLY the same on both DLLs or it will not work (this got me at first).
Whenever you make changes to the DLL, you potentially have to also change the mock DLL, copy it to the project, and re-build the project (which takes quite a while). Rather bulky and makes testing a real pain.
Apart from that, there are quite a few classes and methods that are no longer valid in the Win 8 store .NET subset, including a couple which are supposed to be but don’t work anyway, mainly with Enums. And a few of the omissions don’t show up as compiler errors – you can only find out they’re not supported by debugging and finding the exception.
Well, what I found was that if I had it set to Android and then tried to compile for Windows Store it would fail on some .Net 4.0+ functions but then I wait a bit and compile again and it compiles. So obviously this is a bit of a bug with Unity. If it still doesn’t compile switch back to Android and then Windows again and try and compile a couple more times!
It seems like the warning messages are stuck thinking it only allows lower .Net functions after you switch to compile for Windows Store and only after you compiled once does it realise.
I had to do this to use some threading functions in a Windows Store app (which is on the store now) and seems to work fine.
yoonitee:
Maybe 20 CCU is not much but it’s fully free and meant for development. You literally have nothing to do to get running servers. When you have more players, the subscriptions are relatively cheap. It sounds easy to get 100 CCU but to have that many players at the same time, you will need many more sales / downloads.
As tip: You could get +100 CCU for free in the PUN+ package. Even if you totally ignore the “Android/iOS export from Unity Free” feature.
Anyways: If your game is fine without multiplayer, I didn’t say anything
Btw: Which one is it?
Hmm…
So photon works out about 8c a user per month in the worst case scenario where all users go online at the same time.
Well let’s imagine the lifetime of my game is 5 years. That is 5x12x8c = $4.80 per user worst case scenario. So I would have to charge $6 per game.
So that’s worst case. If only say 10% of people go online at the same time that is 48c per user. Which is still quite a lot. If you sell your game at $2.
It all depends weather your app is like WoW or Facebook that people spend a lot of time on. Or something that people play once and never use again.
It’s just so unpredictable. It’s a difficult pricing model. I don’t like to take risks. With my own server I know that I could just leave it there and not worry if 1 or 1000 people were on it at once.
Particularly I would be giving my game for free (with optional upgrades) which I would expect several hundred downloads per day.
Except you do have to worry about bandwidth costs, and if you’re using something like Amazon AWS and not running your own physical server, you have to pay for CPU and memory usage, etc. If you are running your own physical server(s), you have to worry about hardware costs, electricity, maintenance, etc, and it would be more difficult to have local servers for regions.
On Photon, it looks like a cool library, but I’m not quite getting the CCU / Monthly active user calculation. Their pricing page shows 100 CCUs = ~20,000 MAUs? You only estimate 0.5% of your users will ever be online at any one time? That seems quite low to me.
I just tried to port one of my games to Windows Store using Unity 4.5.2f1, and it looks like RPC and Sockets are STILL not supported for Windows Store publishing. While Photon may be a solution, the lack of Windows Store customers hardly justifies spending time on this. My time is much better spent on the Android/iOS versions then.
Unity guys: Any information about when networking features (RPC and Sockets in particular) will be available for Windows Store publishing?
yoonitee: You expect players to spend 10% of their next 5 years online in your game? 182 full days of gaming in 5 years?
guavaman: Maybe MAU to CCU is a bit low with 0.5%. But users sleep, work or go to school and in one month they rarely play just your game. It will depend on your game, of course, the target audience, etc.
Flarup: Unity’s networking will be replaced with UNet when that’s ready. The current “Unity Networking” and it’s workflow won’t become available for Windows Store, afaik.
My online multiplayer soccer game - Air Soccer Fever - very popular on Windows Phone… has 3 million downloads, 33000 daily active unique users, 85000 daily sessions.
I use photon on WindowsPhone 8, Windows 8 and Android version.
For the online multiplayer part: CCU Ranges between 60 to 160 during a 24 hour period. There are always online matches going on. but know that every one is not online at the same time, and not everyone plays the multiplayer part.
Previously on 100 CCU package which was $9/month. I upgraded to 500 CCU package that costs $39/month.
I use photon cloud so I don’t have any other costs.
So really if your online multiplayer game cant even justify $9 or $39/month then something is wrong! my game is FREE yes even the online multiplayer part, but it makes enough money that I dont have to worry about $39/month.