Upload
yekmer-simsek
View
1.011
Download
0
Tags:
Embed Size (px)
DESCRIPTION
General server side game development concepts, why it is hard, what to use as server etc.
Citation preview
Server Side Game Development
is hard!
Too many front end platforms
-ios-android-browsers-flash
Session is evil
-Can not scale
Long polling
-Socket programming-Protocols-Ups!
Database?
-Read/Write is small-Not a good idea to use MySQL+Memcache-NoSQL shines
Write your own server?
Not a good idea
Open Source alternatives
-Reddwarf Server (Project Darkstar)
Buy a good one?
-Smartfox Serverhttp://www.smartfoxserver.com/
Smartfox Server
The good-Less code via listener based API-Client API’s, no need for socket programming-Stable-Out of the box HTTP tunneling
Smartfox Server
The bad-2500 Euro / server / year-Not a Free Software
Smartfox Server
The Ugly- Does not scale!
What others do?
Social Game-Zynga-King.com-WoogaMMO’s-EA Games-Blizzard
Wooga Open Source
- https://github.com/wooga Wooga Github- Pocket Island - HTML5 game (Ruby, NodeJS)https://github.com/wooga/Pocket-Island- Lots of Ruby-Erlang-Redis-JS stuff- Wooga SlideSharehttp://www.slideshare.net/wooga
NoSQL is your friend
-Redis-Memcache-MongoDB-Hazelcast-CouchDB-Riak-Cassandra
Wooga
-Diamond Dash (4.6M DAU)-Monster World-Bubble Island-Brain Buddies (LAMP)
LAMP
-Brain Buddies, Bubble Island-Nginx instead of Apache-MySQL is fast enough
Rails World
Monster World- Started with Rails - MySQL-Not so useful, Farming games are not arcade games-Switched to Redis, now it rocks!Happy Hospital-Rails - Redis cluster-Fast enough but Redis is not RDB-Redis problems as main DB
Magic Land- No DB is faster than no DB- S3, Erlang- Erlang Workers, S3 used for records- Stateful development is complex- Open sourced most of the erlang stuff used for this game in github
StateFul
Rails Again
Pearls Peril- Rails, Redis (High score, Metadata, etc), Riak (All other stuff)
Problems
Software is easy, data is hard-RedisNo backup, No slave-AWSFast to create instance, it fails sometimes, Slow IO on EBS-JRubyHelps a lot as Concurrency libraries are great for threading in Java World
Alternatives
Write your own server- NodeJS- Java NIO, Akka, Netty- Erlang, Scala
Questions?