Социальный игровой сервер на Python: от 
первого коммита до продакшена

 

Алексей Романов, ведущий разработчик
Компании M...
Пара слов о компании
●

●

●

●

 

Дата создания: 2008 год
Пишем казуальные игр для 
платформ PC, iOS, Android, Web
В осн...
Веселая ферма

 

 
Солдатики

 

 
Toy Monsters

 

 
Цели доклада
1. Поделиться опытом создания социальных игр 
2. Рассказать о архитектуре и реализации 
социального игрового ...
Вкратце о соцсетях

 

 
О проекте
Сотрудник отдела 
продаж,  которого 
едва не сожгли 
на костре

 

 
Ингридиенты
●

●

Куча арта и сбалансированных карт

●

Готовые адаптеры для соц. cетей

●

 

Готовая игра на pc/android/...
Команда
●

●

●

●

 

Клиетский Flash­программист: 1 шт.
Серверный Python­программист: 1 
шт.
Гейм­дизайнер: 1 шт.
Художн...
С чего начать?
●

●

●

●

 

Написание дизайнерского документа 
тов. геймдизайнером
Согласование фич с руководством
Плани...
Планы релизов!
●

●

 

VK → OK → Facebook( + Zynga 
Network) → Nasha Klassa
Все фичи должны быть 
готовы уже для VK

 
Организация 
работы
●

●

Redmine + SVN

●

 

Все люди в одной комнате
Тестовый сервер

 
Что же делать 
программисту?
●

Проектировать архитектуру

●

Общаться с гейм­дизайнером

●

Проводить бенчмарки своего ко...
Компоненты игры

Клиент(Flash)
Клиент(Flash)
Client Social API

Социальная сеть

Server­to­client API
Server Social API
Се...
Архитектура 
игрового сервера
MySQL

Billing server

Game Server
Redis

Person bind

Admin site

RPC(msgpack)

RPC(msgpack...
Технолоческий стек

 

 
Пишем код сервера
●

●

●

●

 

Код пишется довольно просто и быстро
Не забываем думать про 
производительность
Не забыва...
Код в студию!

 

 
Деплоймент в 
production
Prod1

Prod2

Статика
Реплика MySQL
Обсчет статистики

MySQL
RabbitMQ
Redis
Игровые сервисы
Крон­...
Особенности соцсетей
●

●

Одноклассники

●

Nasza­klasa 

●

Facebook

●

 

Вконтакте

Belbeit
 
VK
●

●

Легко выходить
Довольно неплохая 
документация

●

●

 

Неплохая статистика
Платежи: вырезано цензурой
 
ОК
●

●

“Злой” процесс review приложения

●

Отвратительная документация

●

Кривенькая глючная статистика

●

На старте ...
NK
●

●

Open Social
“Сверхзлой” процесс review 
приложения

●

●

 

Нет статистики из соц.сети
Платежи: вырезано цензуро...
FB
●

●

Отличная документация

●

Клевая статистика

●

 

Легко выходить

Платежи: вырезано цензурой
 
Belbeit
●

Арабская!

●

Очень сырая

●

Плохая документация, зато есть прямой чат с 
разработчиками :)

●

●

Никакой ста...
Тактика на сервере
●

Правильные  структуры данных в памяти

●

Асинхронная обработка запросов

●

RPC для клиента, RPC дл...
Стратегические аспекты
●

●

●

 

“Толстый” клиент ­ “тощий” 
сервер
Использование open­source
Ограничение фантазии гейм­...
Спасибо за внимание
Контакты: 
●

●

 

Facebook: 
http://www.facebook.com/alexei.romanoff
Email: drednout.by@gmail.com

 
Upcoming SlideShare
Loading in...5
×

Социальный игровой сервер на Python: от первого коммита до продакшена

1,188

Published on

Важными потребностями современного человека являются: общение с другими людьми и игры. На стыке двух этих потребностей и возникли различные игровые приложения в социальных сетях. Обычно такие приложения требуют наличия серверной стороны, способной справляться с высокими нагрузками. В данном докладе Алексей делится опытом разработки серверов на Python для социальных игр, начиная от этапа разработки дизайнерского документа и заканчивая выпуском игры в продакшн и её дальнейшей поддержкой.
Автор: Алексей Романов

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,188
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
16
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Социальный игровой сервер на Python: от первого коммита до продакшена

  1. 1. Социальный игровой сервер на Python: от  первого коммита до продакшена   Алексей Романов, ведущий разработчик Компании Melesta  
  2. 2. Пара слов о компании ● ● ● ●   Дата создания: 2008 год Пишем казуальные игр для  платформ PC, iOS, Android, Web В основном пишем на C++, Python,  Action Script Около 80 человек в штате  
  3. 3. Веселая ферма    
  4. 4. Солдатики    
  5. 5. Toy Monsters    
  6. 6. Цели доклада 1. Поделиться опытом создания социальных игр  2. Рассказать о архитектуре и реализации  социального игрового сервера на python  3. Рассказать об особенностях выпуска в  различных социальных сетях    
  7. 7. Вкратце о соцсетях    
  8. 8. О проекте Сотрудник отдела  продаж,  которого  едва не сожгли  на костре    
  9. 9. Ингридиенты ● ● Куча арта и сбалансированных карт ● Готовые адаптеры для соц. cетей ●   Готовая игра на pc/android/ios/tizen Скелет сервера   
  10. 10. Команда ● ● ● ●   Клиетский Flash­программист: 1 шт. Серверный Python­программист: 1  шт. Гейм­дизайнер: 1 шт. Художник: 0.5  (арт ведь уже весь  есть!!)  
  11. 11. С чего начать? ● ● ● ●   Написание дизайнерского документа  тов. геймдизайнером Согласование фич с руководством Планирование работы и график  релизов Организация работы команды  
  12. 12. Планы релизов! ● ●   VK → OK → Facebook( + Zynga  Network) → Nasha Klassa Все фичи должны быть  готовы уже для VK  
  13. 13. Организация  работы ● ● Redmine + SVN ●   Все люди в одной комнате Тестовый сервер  
  14. 14. Что же делать  программисту? ● Проектировать архитектуру ● Общаться с гейм­дизайнером ● Проводить бенчмарки своего кода и  других проектов ● ●   Развернуть тестовый сервер Апгрейдить технологический стек  
  15. 15. Компоненты игры Клиент(Flash) Клиент(Flash) Client Social API Социальная сеть Server­to­client API Server Social API Сервер(Python)    
  16. 16. Архитектура  игрового сервера MySQL Billing server Game Server Redis Person bind Admin site RPC(msgpack) RPC(msgpack) Rabbitmq Login Server RPC(AMF) Nginx Cron­scripts HTTP(S) Game client    
  17. 17. Технолоческий стек    
  18. 18. Пишем код сервера ● ● ● ●   Код пишется довольно просто и быстро Не забываем думать про  производительность Не забываем, что код асинхронный Много времени уходит на согласование  взаимодействия сервера и клиента  
  19. 19. Код в студию!    
  20. 20. Деплоймент в  production Prod1 Prod2 Статика Реплика MySQL Обсчет статистики MySQL RabbitMQ Redis Игровые сервисы Крон­скрипты Деплоймент: /dev/hands , rsync    
  21. 21. Особенности соцсетей ● ● Одноклассники ● Nasza­klasa  ● Facebook ●   Вконтакте Belbeit  
  22. 22. VK ● ● Легко выходить Довольно неплохая  документация ● ●   Неплохая статистика Платежи: вырезано цензурой  
  23. 23. ОК ● ● “Злой” процесс review приложения ● Отвратительная документация ● Кривенькая глючная статистика ● На старте игры много траффла ● “Веселый” биллинг :) ●   Для релиза нужен договор  Платежи: вырезано цензурой  
  24. 24. NK ● ● Open Social “Сверхзлой” процесс review  приложения ● ●   Нет статистики из соц.сети Платежи: вырезано цензурой  
  25. 25. FB ● ● Отличная документация ● Клевая статистика ●   Легко выходить Платежи: вырезано цензурой  
  26. 26. Belbeit ● Арабская! ● Очень сырая ● Плохая документация, зато есть прямой чат с  разработчиками :) ● ● Никакой статистики пока нет ●   Мало людей  Платежи: вырезано цензурой  
  27. 27. Тактика на сервере ● Правильные  структуры данных в памяти ● Асинхронная обработка запросов ● RPC для клиента, RPC для внутренних  сервисов ● ● Консольный игровой клиент – это клёво ●   SQL+NoSQL+message queue: наше всё Статику – в облако!(если что)  
  28. 28. Стратегические аспекты ● ● ●   “Толстый” клиент ­ “тощий”  сервер Использование open­source Ограничение фантазии гейм­ дизайнера  
  29. 29. Спасибо за внимание Контакты:  ● ●   Facebook:  http://www.facebook.com/alexei.romanoff Email: drednout.by@gmail.com  
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×