Server side game_development
-
Upload
yekmer-simsek -
Category
Technology
-
view
1.011 -
download
0
description
Transcript of Server side game_development
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?