Having created a successful project, a development team faces the challengу to integrate it into different social networks. Regarding the peculiarities of each social network, the process may appear rather effortful. The lecture is devoted to technical characteristics of the integration process and the solutions we use to save time and resources.
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. Учет платформоспецифичных механик