MMOs and Socket Servers Diego O. Scarpa 10 y 11 de Diciembre – Hotel Panamericano - Buenos Aires
10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires MMO and Socket Servers MMO = Massively Multiplayer Online Game What is the main concept? – Handle interaction between multiple users How we can do that? – Socket Server
10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Basic Design Diagram Socket Server Client 1Client 2 Services Client n
10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Socket Server Who it works? – Simple, it uses sockets Client Server Socket 1. bind() 2. listen() 3. accept() 4. send – receive 5. close() 1. bind() 2. connect() 3. send – receive 4. close()
10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Socket Server (II) Where is the complexity? – Communication – APIs – Security – Scalability – Performance – Tools
10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Communication Control Content Format – Join user, join room, leave room, custom message Data Content Format – text, object, etc Serialization Options – XML – JSON – Binary – Custom Message Control Content Data Content
10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Communication (II) Compression – Is it required? – Check your requirements – Do performance benchmarks
10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Tunneling – It should work behind a firewall or a proxy, Is this necessary? – Check your audience DMZ Communication (IV) Client Socket Server
10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Security Authentication/Authorization – Users – Permission – Do it always
10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Security (II) Encryption – Example, AES-128 – Check performance
10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Security (III) Anti Cheat – Unique Message Numbering Message injection Message modification – Anti-flood filters Chat issues – IP filter that prevents too many connections from a single IP address
10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Client Side/Server Side API Object Model – Users, Rooms, Variables Extensibility Interaction with external services Interoperability between extensions Threads
10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Client Side/Server Side API (II) Deploy server Cross platform – Client and Server sides Tools Creation Bots creation Variables: User, Room, Server Documentation
10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Scalability Clustering Load balancer Socket Server Socket Server Socket Server Socket Server Socket Server Socket Server
10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Scalability (II) Split the message handling – Rooms – Realms – Servers Server Realm Room Realm Room
10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Tools Tracking users Network traffic Performance
10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Tools (II) Logging Moderator: – kick, ban, etc.
10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Performance Communication Big O Benchmarks Bots
10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Deploy Review deploy process Auto reload
10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Socket Server Samples Commercial Socket Servers: Licenses Add-ons – Chat – Chat Filters – Ban user – Friends
10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Socket Server Samples (II) Electro Server 5PhotonSmartFox CoreJavaWindows C/C++Java Server Side APIJava, Javascript and AS.Net/C#AS, Javascript, Phyton and Java Client Side APIJava, C#, Obj-C, AS2, AS3.Net, Unity 3D, C/C++, Obj-C, AS3, Java AS2, AS3, Java,.Net, Obj-C, Ajax
10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Socket Server Samples (III) Electro Server 5PhotonSmartFox HTTP TunnelingNativeNoBlue box Anti cheatUnique message numbering Anti Flood NoAnti Flood Ip filter AuthorizationUser permissionsNo
10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Socket Server Samples (IV) Electro Server 5PhotonSmartFox StructureRooms, Extensions, Zones, Messages Applications, Rooms, Operations, Events Rooms, Extensions, Zones, Messages EncryptionyesNo Licenses25 CU - Free 1000 CU - $999 Unlimited - $4, CU – Free 500 CU - $ CU - $2250 Unlimited - $ CU - Free 500 CU € 2000 CU € 5000 CU € Unlimited – 2000€
10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Conclusions Planning Review requirements before build a custom socket server Check that server don’t have unnecessary features Create tools to control the server Create bots to control the performance Be aware of the messages size and serialization
10 y 11 de Diciembre – Hotel Panamericano – Buenos Aires Questions ?