23
Server Side Game Development is hard!

Server side game_development

Embed Size (px)

DESCRIPTION

General server side game development concepts, why it is hard, what to use as server etc.

Citation preview

Page 1: Server side game_development

Server Side Game Development

is hard!

Page 2: Server side game_development

Too many front end platforms

-ios-android-browsers-flash

Page 3: Server side game_development

Session is evil

-Can not scale

Page 4: Server side game_development

Long polling

-Socket programming-Protocols-Ups!

Page 5: Server side game_development

Database?

-Read/Write is small-Not a good idea to use MySQL+Memcache-NoSQL shines

Page 6: Server side game_development

Write your own server?

Not a good idea

Page 7: Server side game_development

Open Source alternatives

-Reddwarf Server (Project Darkstar)

Page 8: Server side game_development
Page 9: Server side game_development

Buy a good one?

-Smartfox Serverhttp://www.smartfoxserver.com/

Page 10: Server side game_development

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

Page 11: Server side game_development

Smartfox Server

The bad-2500 Euro / server / year-Not a Free Software

Page 12: Server side game_development

Smartfox Server

The Ugly- Does not scale!

Page 13: Server side game_development

What others do?

Social Game-Zynga-King.com-WoogaMMO’s-EA Games-Blizzard

Page 14: Server side game_development

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

Page 15: Server side game_development

NoSQL is your friend

-Redis-Memcache-MongoDB-Hazelcast-CouchDB-Riak-Cassandra

Page 16: Server side game_development

Wooga

-Diamond Dash (4.6M DAU)-Monster World-Bubble Island-Brain Buddies (LAMP)

Page 17: Server side game_development

LAMP

-Brain Buddies, Bubble Island-Nginx instead of Apache-MySQL is fast enough

Page 18: Server side game_development

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

Page 19: Server side game_development

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

Page 20: Server side game_development

Rails Again

Pearls Peril- Rails, Redis (High score, Metadata, etc), Riak (All other stuff)

Page 21: Server side game_development

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

Page 22: Server side game_development

Alternatives

Write your own server- NodeJS- Java NIO, Akka, Netty- Erlang, Scala

Page 23: Server side game_development

Questions?