server side game_development

Post on 10-May-2015

1.014 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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?

top related