SlideShare a Scribd company logo
Интеграция проекта
в несколько социальных сетей
не причина головной боли
Алексей “Vooparker” Аникутин
Компания Rocket Jump, Москва
FlashGAMM Moscow 2013
Схема интеграции проекта
с социальной сетью
Social Platform API
Client Server
- Проектно-специфичные взаимосвязи
- Платформо-специфичные взаимосвязи
Проблемы И Особенности
1. Интеграция проекта затрагивает несколько компонентов
приложения (клиент, сервер, прочие сервисы)
2. Различные социальные платформы предоставляют разный
функционал по интеграции
3. Код, отвечающий за взаимодействие с социальной сетью, тесно
вплетен в основной код проекта
4. «Столкновения» разработчиков на одном участке кода
ЗАДАЧИ
Основная цель – упростить процесс интеграции до обычной рутины
1. Техническая составляющая интеграции в новую социальную сеть
должна занимать минимальные сроки и ресурсы (не более одной
недели)
2. Процесс интеграции не должен никаким образом сказываться на
разработке функционала
3. Процесс интеграции может происходить в несколько социальных
сетей одновременно
4. Учет специфичного функционала каждой из социальных сетей
Решение
Необходимо выделить все что так или иначе связано с интеграцией
в отдельный слой, который станет промежуточным звеном между
вашим приложением и API социальной сети.
Схема интеграции проекта
с социальной сетью
Social Platform API
Client Server
- Проектно-специфичные взаимосвязи
- Платформо-специфичные взаимосвязи
Web Platform Context Payment
Other
services
Страница приложения
Задачи:
• Интерпретация платформо-специфичных параметров запуска
приложения
• Проверка авторизации пользователя социальной сети и выдача
данных авторизации для игрового сервера
• Платформо-специфичный функционал
Клиент и контекст платформы
1. Клиент ничего не знает о том, в какой социальной сети он
запущен, он знает лишь о том, что выполняется в контексте.
2. Все задачи, связанные с социальными механиками, клиент
передает в качестве «игрового» запроса в контекст.
3. Контекст транслирует игровой запрос в конкретную механику
социальной сети, после чего возвращает в «игровом» формате
результат выполнения запроса.
Клиент и
платформо-специфичные механики
1. Несмотря на общую схожесть, разные социальные сети
предоставляют свой набор механик. Причем, чем в больше
количество социальных сетей проект интегрирован, тем меньше
пересечений.
2. Иными словами проект должен знать о том, в рамках какой
социальной сети он запущен. Или нет?
3. Для того, чтобы не оперировать знанием о текущей социальной
сети, мы используем понятие «фича».
4. В коде проекта мы просто проверяем, поддерживает ли контекст
данную «фичу».
Клиент и
платформо-специфичные механики
if(isVkontakte)
{
// call vkontakte api method
}
else if (isOdnoklassniki)
{
// call odnoklassniki api
method
}
...
else if (isFacebook)
{
// call facebook api method
}
if(Platform.context.isFeatureSupported
(SAVE_SCREENSHOT))
{
Platform.context.execute(new
SaveScreenShotRequest(bitmapData));
...
}
Схема
взаимодействия игры и контекста
Social Platform API
Platform Context Logic
Social Platform API Library
Game Logic
Translate PlatformRequests to specific actions
Custom Service API
Custom Service API Library
PlatformContext
- Проектно-специфичные взаимосвязи
- Платформо-специфичные взаимосвязи
Программный интерфейс
PlatformContext
public interface IPlatformContext
{
function configure (params:Object):void;
function execute (request:PlatformRequest):PlatformProcess;
function isFeatureSupported (name:String):Boolean;
}
Взаимодействие
сервер-сервер
Основная идея – выделение платформо-специфичного
функционала в виде набора отдельных сервисов.
Две группы сервисов:
1. «Принимающие» сервисы (платежный сервис)
2. «Отправляющие» сервисы
Схема взаимодействие
сервер-сервер
Social Platform API
Payment
Server Logic
Custom Service API
Event Service Logic
- Проектно-специфичные взаимосвязи
Event Service
- Платформо-специфичные взаимосвязи
Platform Plugin Service Plugin
Итоги
1. Четкое разделение «игрового» кода и кода, отвечающего за
интеграцию.
2. Прозрачная архитектура
3. Возможность интеграции в несколько социальных сетей
одновременно.
4. Возможность развивать игровые механики параллельно с
процессом интеграции
5. Учет платформоспецифичных механик
Спасибо за внимание
Вопросы?
Присылайте свои резюме на:
wanted@rocketjump.ru
Хотите у нас работать?

More Related Content

PPTX
Blitz Smart Card Plugin
PPTX
Dot.net building scalable java script application using react and typescript,...
PPTX
Обзор мобильной платформы Bada
PPTX
Sergey Gavruk - Mix11
PPTX
Ivan Shaban - Robotlegs 2+
PPTX
Виртуализация приложений с помощью Microsoft APP-V
PPTX
10 low cost adviezen om je eigen zaak te starten
PDF
Vaikų žaidimo aikštelės
Blitz Smart Card Plugin
Dot.net building scalable java script application using react and typescript,...
Обзор мобильной платформы Bada
Sergey Gavruk - Mix11
Ivan Shaban - Robotlegs 2+
Виртуализация приложений с помощью Microsoft APP-V
10 low cost adviezen om je eigen zaak te starten
Vaikų žaidimo aikštelės

Viewers also liked (8)

PPTX
Paraolinpiadak
PDF
Ринат Ибрагимов - Региональное SEO: продвижение сайтов, созданных на  Drupal
PPTX
Drafts of Adverts & Double Page Spreads
PDF
06 seca1
PDF
CvSysadminOpsDestinieLANDRAC
PPTX
Paraolimpiadak
PDF
Control de constitucionalidad y de convencionalidad
PPTX
Lesson three
Paraolinpiadak
Ринат Ибрагимов - Региональное SEO: продвижение сайтов, созданных на  Drupal
Drafts of Adverts & Double Page Spreads
06 seca1
CvSysadminOpsDestinieLANDRAC
Paraolimpiadak
Control de constitucionalidad y de convencionalidad
Lesson three
Ad

Similar to Rocket Jump: Project integration into few social networks is not a headache (20)

PDF
Миграция Web-проекта в облако. И.Гальцев.
PPT
PureMVC and Papervision
PPT
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
PPT
UAFPUG6 - PureMVC
PDF
Android - 15 - Social
PDF
Шаблоны проектирования в Magento
PPTX
Идентификация и аутентификация - встроенные функции безопасности или задачи с...
PPT
CodeFest 2013. Биллевич В. — SDK мобильного сервиса. Добавление новой функцио...
PDF
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
PDF
презентация Адеев Николай, Artsofte для Tеlecom&Clouds 2014
PPTX
методология Rad (46)
PPT
1С-Битрикс: Управление сайтом Версия .NET
PPTX
Разработка профессионального стандарта "Специалист по интеграции облачных при...
PPTX
Модульная структура. Цветцих Денис D2D Just.NET
PPTX
Модульная структура
PPTX
Никита Галкин "Testing in Node.js World"
PPTX
«трудности при разработке сложных распределённых систем на Java. способы реше...
PDF
Backend as a service Scorocode for mobile, web and desktop apps
PPTX
Микросервисы в .NET Core
PPT
Symfony2 practice
Миграция Web-проекта в облако. И.Гальцев.
PureMVC and Papervision
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
UAFPUG6 - PureMVC
Android - 15 - Social
Шаблоны проектирования в Magento
Идентификация и аутентификация - встроенные функции безопасности или задачи с...
CodeFest 2013. Биллевич В. — SDK мобильного сервиса. Добавление новой функцио...
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
презентация Адеев Николай, Artsofte для Tеlecom&Clouds 2014
методология Rad (46)
1С-Битрикс: Управление сайтом Версия .NET
Разработка профессионального стандарта "Специалист по интеграции облачных при...
Модульная структура. Цветцих Денис D2D Just.NET
Модульная структура
Никита Галкин "Testing in Node.js World"
«трудности при разработке сложных распределённых систем на Java. способы реше...
Backend as a service Scorocode for mobile, web and desktop apps
Микросервисы в .NET Core
Symfony2 practice
Ad

More from DevGAMM Conference (20)

PPTX
The art of small steps, or how to make sound for games in conditions of war /...
PPTX
Breaking up with FMOD - Why we ended things and embraced Metasounds / Daniel ...
PPTX
How Audio Objects Improve Spatial Accuracy / Mads Maretty Sønderup (Audiokine...
PPTX
Why indie developers should consider hyper-casual right now / Igor Gurenyov (...
PPTX
AI / ML for Indies / Tyler Coleman (Retora Games)
PDF
Agility is the Key: Power Up Your GameDev Project Management with Agile Pract...
PPTX
New PR Tech and AI Tools for 2023: A Game Changer for Outreach / Kirill Perev...
PDF
Playable Ads - Revolutionizing mobile games advertising / Jakub Kukuryk (Popc...
PDF
Creative Collaboration: Managing an Art Team / Nastassia Radzivonava (Glera G...
PDF
From Local to Global: Unleashing the Power of Payments / Jan Kuhlmannn (Xsolla)
PDF
Strategies and case studies to grow LTV in 2023 / Julia Iljuk (Balancy)
PDF
Why is ASO not working in 2023 and how to change it? / Olena Vedmedenko (Keya...
PDF
How to increase wishlists & game sales from China? Growth marketing tactics &...
PDF
Turkish Gaming Industry and HR Insights / Mustafa Mert EFE (Zindhu)
PDF
Building an Awesome Creative Team from Scratch, Capable of Scaling Up / Sasha...
PPTX
Seven Reasons Why Your LiveOps Is Not Performing / Alexander Devyaterikov (Be...
PDF
The Power of Game and Music Collaborations: Reaching and Engaging the Masses ...
PPTX
Branded Content: How to overcome players' immunity to advertising / Alex Brod...
PPTX
Resurrecting Chasm: The Rift - A Source-less Remastering Journey / Gennadii P...
PPTX
How NOT to do showcase events: Behind the scenes of Midnight Show / Andrew Ko...
The art of small steps, or how to make sound for games in conditions of war /...
Breaking up with FMOD - Why we ended things and embraced Metasounds / Daniel ...
How Audio Objects Improve Spatial Accuracy / Mads Maretty Sønderup (Audiokine...
Why indie developers should consider hyper-casual right now / Igor Gurenyov (...
AI / ML for Indies / Tyler Coleman (Retora Games)
Agility is the Key: Power Up Your GameDev Project Management with Agile Pract...
New PR Tech and AI Tools for 2023: A Game Changer for Outreach / Kirill Perev...
Playable Ads - Revolutionizing mobile games advertising / Jakub Kukuryk (Popc...
Creative Collaboration: Managing an Art Team / Nastassia Radzivonava (Glera G...
From Local to Global: Unleashing the Power of Payments / Jan Kuhlmannn (Xsolla)
Strategies and case studies to grow LTV in 2023 / Julia Iljuk (Balancy)
Why is ASO not working in 2023 and how to change it? / Olena Vedmedenko (Keya...
How to increase wishlists & game sales from China? Growth marketing tactics &...
Turkish Gaming Industry and HR Insights / Mustafa Mert EFE (Zindhu)
Building an Awesome Creative Team from Scratch, Capable of Scaling Up / Sasha...
Seven Reasons Why Your LiveOps Is Not Performing / Alexander Devyaterikov (Be...
The Power of Game and Music Collaborations: Reaching and Engaging the Masses ...
Branded Content: How to overcome players' immunity to advertising / Alex Brod...
Resurrecting Chasm: The Rift - A Source-less Remastering Journey / Gennadii P...
How NOT to do showcase events: Behind the scenes of Midnight Show / Andrew Ko...

Rocket Jump: Project integration into few social networks is not a headache

  • 1. Интеграция проекта в несколько социальных сетей не причина головной боли Алексей “Vooparker” Аникутин Компания Rocket Jump, Москва FlashGAMM Moscow 2013
  • 2. Схема интеграции проекта с социальной сетью Social Platform API Client Server - Проектно-специфичные взаимосвязи - Платформо-специфичные взаимосвязи
  • 3. Проблемы И Особенности 1. Интеграция проекта затрагивает несколько компонентов приложения (клиент, сервер, прочие сервисы) 2. Различные социальные платформы предоставляют разный функционал по интеграции 3. Код, отвечающий за взаимодействие с социальной сетью, тесно вплетен в основной код проекта 4. «Столкновения» разработчиков на одном участке кода
  • 4. ЗАДАЧИ Основная цель – упростить процесс интеграции до обычной рутины 1. Техническая составляющая интеграции в новую социальную сеть должна занимать минимальные сроки и ресурсы (не более одной недели) 2. Процесс интеграции не должен никаким образом сказываться на разработке функционала 3. Процесс интеграции может происходить в несколько социальных сетей одновременно 4. Учет специфичного функционала каждой из социальных сетей
  • 5. Решение Необходимо выделить все что так или иначе связано с интеграцией в отдельный слой, который станет промежуточным звеном между вашим приложением и API социальной сети.
  • 6. Схема интеграции проекта с социальной сетью Social Platform API Client Server - Проектно-специфичные взаимосвязи - Платформо-специфичные взаимосвязи Web Platform Context Payment Other services
  • 7. Страница приложения Задачи: • Интерпретация платформо-специфичных параметров запуска приложения • Проверка авторизации пользователя социальной сети и выдача данных авторизации для игрового сервера • Платформо-специфичный функционал
  • 8. Клиент и контекст платформы 1. Клиент ничего не знает о том, в какой социальной сети он запущен, он знает лишь о том, что выполняется в контексте. 2. Все задачи, связанные с социальными механиками, клиент передает в качестве «игрового» запроса в контекст. 3. Контекст транслирует игровой запрос в конкретную механику социальной сети, после чего возвращает в «игровом» формате результат выполнения запроса.
  • 9. Клиент и платформо-специфичные механики 1. Несмотря на общую схожесть, разные социальные сети предоставляют свой набор механик. Причем, чем в больше количество социальных сетей проект интегрирован, тем меньше пересечений. 2. Иными словами проект должен знать о том, в рамках какой социальной сети он запущен. Или нет? 3. Для того, чтобы не оперировать знанием о текущей социальной сети, мы используем понятие «фича». 4. В коде проекта мы просто проверяем, поддерживает ли контекст данную «фичу».
  • 10. Клиент и платформо-специфичные механики if(isVkontakte) { // call vkontakte api method } else if (isOdnoklassniki) { // call odnoklassniki api method } ... else if (isFacebook) { // call facebook api method } if(Platform.context.isFeatureSupported (SAVE_SCREENSHOT)) { Platform.context.execute(new SaveScreenShotRequest(bitmapData)); ... }
  • 11. Схема взаимодействия игры и контекста Social Platform API Platform Context Logic Social Platform API Library Game Logic Translate PlatformRequests to specific actions Custom Service API Custom Service API Library PlatformContext - Проектно-специфичные взаимосвязи - Платформо-специфичные взаимосвязи
  • 12. Программный интерфейс PlatformContext public interface IPlatformContext { function configure (params:Object):void; function execute (request:PlatformRequest):PlatformProcess; function isFeatureSupported (name:String):Boolean; }
  • 13. Взаимодействие сервер-сервер Основная идея – выделение платформо-специфичного функционала в виде набора отдельных сервисов. Две группы сервисов: 1. «Принимающие» сервисы (платежный сервис) 2. «Отправляющие» сервисы
  • 14. Схема взаимодействие сервер-сервер Social Platform API Payment Server Logic Custom Service API Event Service Logic - Проектно-специфичные взаимосвязи Event Service - Платформо-специфичные взаимосвязи Platform Plugin Service Plugin
  • 15. Итоги 1. Четкое разделение «игрового» кода и кода, отвечающего за интеграцию. 2. Прозрачная архитектура 3. Возможность интеграции в несколько социальных сетей одновременно. 4. Возможность развивать игровые механики параллельно с процессом интеграции 5. Учет платформоспецифичных механик
  • 16. Спасибо за внимание Вопросы? Присылайте свои резюме на: wanted@rocketjump.ru Хотите у нас работать?