Making an MMO, I have a few questions about components

I see that Photon is a good server solution for Unity, while making a MMO style game. Is there any good solutions for front end such as log in, billing, security, and metrics tracking? That is the one thing I like about Hero Engine is that is has everything included, like a Latch Key business.

I didn’t find any good solutions in my search, some help would be great,
Thanks

I would say player.io. However, i haven’t tried that in full…

Player.IO is a full Networking Solution. It’s not really good for MMOs unless you can think creatively as it’s Room based system which only allows 45 players in a single room.

The best suggestion I can possibly give you is to not make shortcuts in your MMO!

Do not use RPC, it’s too bulky, best to use something like a UDP hardcoded packet, something like, packetHeader\r\ndata1\r\ndata2 (encryption is generally a good idea) as with an MMO, the server will be throwing out packets like a madman, and each client will be receiving UDP packets like it’s the end of the world.

Try to ensure your movement packets are only sent either when the player moves, or if you want to join them with a player status update packet, then send the packet only once every 0.200 seconds, use Unity3D to smooth the animations and you won’t see any real delays!

I personally have written my server from scratch using VisualStudio (C#) and the client is using Unity3D with a lovely Asynchronous background listener for packets. This ensures no packets are lost due to resetting the background listener, and prevents the client from “hanging”.

But then, I have experience working on reverse engineering servers from clients, as well as packet spoofing, sniffing and reprocessing… So yeah, it really comes down to what you want to do. It’s best to create your framework (even if some aspects you know will need to be changes) and once your framework is created, go back over the slow parts, and sort them out by making them run more efficiently.

The more packets sent from the server to one client = the more processing power the server needs, the more download speed needed by the client, and the more processing power of the client’s computer. The smaller size of the packets, the less resources used. Best to send ID numbers rather then names. Specifically in spells, say, a player casts “Heal” you want to shave 3 letters off your packet and just send “1” as the ID number in said packet to the server for interpretation and processing.

It can really be a lot of fun, and quite interesting working on these types of projects. If you want a server to have thousands of connections, you need to ensure the physical box can handle it, and the code is versatile enough not to crash, overflow or corrupt the data.

lol who says not to use RPC? uLink which currently holds the world record for Most players in a Online FPS match at 1000 is nothing but RPCs yet it was fast enough for them to get 1000 players in a match… RPCs will work great for a MMO! HeroEngine is also nothing but RPCs. Internet Communication Engine (ICE) which was made for the MMO Wish back in 2004 managed to get over 10,000 players on their servers and that’s again nothing but RPCs! lol

Make an RPC powered Client and Server setup and test it with 1,000 active connections, if you prove that Unity3D can handle it, then by all means, why not use it. RPC has it’s benefits, like making coding easier. But the size of the packets generated by RPC can be very very bulky.

Thanks for the info, I will heed your suggestions when I get a server system going. I am doing a racing game for my first project to get situated with Unity and a feel for game making in general. I plan to make a racing game that is PC based with combat, but the total number of simultaneous players would be about 20 for a team death match mode. I am making something that plays similar to World of Tanks, with different maps, play styles and vehicles.

I will let you know how things go, I don’t think I can code the server myself, I might have a friend who is highly skilled help me.

uLink IS made for Unity3D and it WAS a Unity powered Client and Unity powered Server that got them the world record of 1,000 active connections… SO it’s already been proven that Unity3D can handle it…http://muchdifferent.com/?page=game-world-record

Their game was a 1000 player FPS, which is not the same as an MMO. Apples to Oranges and all that.

JamesPro: I’m not sure if the server for that 999 player game was Unity or their own tech Pikko. It’s something else probably.