Your SlideShare is downloading. ×
Социальный игровой сервер на Python: от первого коммита до продакшена
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

1,004

Published on

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

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

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

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×