Just curious what the community thinks that the best backend server solution is for Unity.
The two I am looking at would be SmatFox and Photon (by ExitGames). Let me know if there are others that can stand up to thousands of concurrent users. MMO style (persistent virtual world)
EDIT: This is for a serious game market where the budget is similar to a small MMO.
There is no “one for all” especially not without knowing the budget for development but especially also later for upkeep (cause mmo style things cost a massive amount for upkeep as does the support staff, the backend techs license fee will become your smallest issue)
Well the budget is much like a small mmo. As far as staff and support all of that is handled.
I am still just doing research on this engine for a few projects, we currently use the Unreal Engine for most things.
The projects I am looking at using unity for would be more of persistent world, application sharing, video conferencing type of things. We also want to use this world for training if possible.
So it will cover a large array of things and require quick iteration of art assets to support things like unique training activities. This is the main reason we are interested in Unity. However we don’t have time to spend 2+ years developing this engine, so we are looking for the best combination of middleware to support our efforts.
Be aware than bandwidth costs for a small mmo such as the more popular private wow servers like magicwow or wowscrape reportedly run around 10-15k a month. 5000 users per server on average is a lot of data
Both can likely handle persistance through database hooks. However afaik SFS is TCP only. Video and ‘mmo’ sort of activities are more suited to UDP. If the ‘training’ portion of your project consists of powerpoint type slides than that’s another matter.
Thanks for the clarification on what you are seeking.
I think unless they are all within the same environment (and not just a smaller thing with persistence), both are an option.
If you have all in one world then the options are Photon Mmo or if the Badumna guys get around to come up with reasonable fees not out of the air expectations (50% of tech + upkeep of traditional architectures), then potentially also badumna might be very well an option
I’m also forced to say though that unless its desktop based (where you can use plugins), it would not be possible to achieve what you want (no access to desktop or webcam), just we talk about the same thing on that end
For my project all of this would be on a private network (not on the internet). There may be the occasional external user connecting via VPN or tunnel but generally due to data security we don’t want external access.
This project won’t make profits, this is not being sold as a end product. It is being developed internally and used as an internal tool for collaboration and training. So a profit saring framework wont fit for our project.
Hope this is helping define the use a little more.
Wanted to add a question: What is the built-in Unity server capable of? I assume the anwser is small FPS type of implimentations (2-25 users?). But just thought I would ask.
What it is capable of depends a bit on how realtime oriented it is and how many players are synced with each other all the time.
generally the less message you have to send around due to lower frequency or smaller groups of players that are intersynced, the more you get in. But you won’t be able to get in “mmo class” amount of users. But if we talk of 100-200, then if you can do such a seperation as mentioned above, its definitely possible.
and as you have it all on local LAN only you can skip one of the major problems at the time with it: masterserver - con tester as you can just connect to the public adress of the machine.
as for communication: you would do it through RPC from client to server only and server then would forward it to the other users that need to get it, not to all others
I’d make sure you coordinate with the network folks at your company. It might or might not be practical (router, building configuration/size) to move the traffic onto a dedicated segment.
If you’re streaming video to a hundred or so users like it sounds you intend to, network managers get salty when such things start competing with interactive users try to do order entry.
I remember this poor guy at an insurance company I worked for, he was a pc tech who was innocently testing some new disk image software. Turns out it used multicast and the network, even with it’s fancy cisco router the size of a mini fridge, reacted like it was an ICMP attack and ground to a halt.
They pulled out the thousand dollar BERT testers and whatnot to figure out was going on, intercom announcements and the like! He was tagged with the embarrassing name ‘multi-man’ for quite some time.
zergcow, just wanted to correct the comment from dreamora about badumna.
Badumna definitely works for internal applications when all your users are in a private network. It works using a distributed architecture so you get the benefits of scalability if ever your application had lots of users.
You may want to contact us through the website (www.badumna.com) for pricing information regarding such internal applications.
nobody said it won’t work. It just won’t work under the constraints he mentioned and the licensing intend you / your company mentioned on the various cases you were asked for some usefull and binding license cost informations.
Last I’ve seen was the same as first I’ve seen it, a 50% of the “normal costs for tech and upkeep”, which to anyone with some background sounds like worlds more than any competition will cost independent on if you take the here mentioned backends, raknet or even NetDog, which all come with one time fees and thus clear calculatability.
I know that your tech saves money, but just as well I know that indies hate nothing more than ongoing bindings and fees, especially if their are pretty much affordable alternatives that are already fully working unlike the db nodes of badumna.
I can clarify the Badumna pricing information that I posted previously. We said we’re aiming to reduce the overall cost for networking (ie. networking engine license plus the ongoing server bandwidth costs) by about 50%. This was intended to be a guide for those building large MMOs with lots of concurrent users, and high ongoing server/bandwidth costs.
Please be reassured that we will also be offering an indy product at a low one-time fee for MMOs with less than 200 concurrent users.
As promised, we’ll be publishing full pricing information soon, to coincide with the commercial release. In the interim, we’d like people to contact us directly (info at scalify dot com) with their project details so that we can offer an introductory rate. Several customers have taken up these offers. So either way, Badumna costs less than other networking options, in addition to the scalability benefits of the peer-to-peer architecture.
I am running a mix of Photon, Raknet and a custom .Net engine that I wrote, and I really do not have a bandwidth issue, packets are kept to a minimum with the only data being sent around is command ID’s, positions are all burst broadcasts with client sending to the server, and the server determining who is in range to receive the broadcast to limit the recipients of the information. It all boils down to sending as little data as possible to minimize bandwidth.
Interesting, for which data are you using raknet and your custom .Net-engine and why? Only for per2peer and code, already integrated before evaluating Photon or is there some client-server-stuff you think Photon is suboptimal for in comparison to raknet or to your custom approach?
This approach is specifically for business logic. Photon is in control of the heavy lifting work, although I could use Photon for all of it, if one piece in my puzzle goes out, I don’t want the game to come to a screeching hault. The raknet component for the moment is handling the lobby’s, that is because I have legacy code for my lobby system that was already built around Raknet and I tend to try to not reinvent the wheel, if it works, leave it alone. The .NET interface is setup to handle communication to my database systems.
Different data for different purposes, different engines for different layers of bandwidth use. If I have to reboot the photon server for any reason, the lobby’s will still accept players, if I have to reboot the business logic servers, the .NET bridge will buffer data to stream and catch up with the business logic servers later, you have to look at a game in broader form to decide on what engine to use. Besides even a small MMO needs to maximize hardware and bandwidth, so the question becomes a simple how.
I plan on replacing the raknet lobby at some point with a pure photon lobby.