LOL API 사용법에 대해서 파고들어 보니, 저희가 정말 필요로 하는 정보들은 Local Computer의 Local API를 사용해야 한다는 것을 알았습니다. 현재 서비스 중인 여러 LOL 실시간 통계 APP들도 PWA 혹은 Electron 형태의 desktopAPP을 서비스 제공을 위해 사용하고 있었습니다. 먼저 팀원분들께 더 깊게 알아보지 못하고, 기획을 말씀드린 점 죄송합니다. 그래도 좀 찾아보니 PWA와 DeskTop APP으로 로그인이 가능하네요! 그리고, Replay API, LOL chat, 닷지 알림 등을 다른 좋은 API도 쓸 수 있다는 점은 긍정적인 것 같습니다. 팀원분들의 이해를 돕기 위해 약소하지만, LOL에서 Local API를 만들고 제공하는 원리와 제공 사이트, 사용법, 저희 프로젝트에 적용할 방안 3가지 정도 소개하겠습니다. 감사합니다.
LOL에서 제공하는 Local API는 두 개가 있습니다. 하나씩 설명드리겠습니다.
첫번쨰로 ‘LOL 로비 화면’ 이라 불리는 (본 게임에 들어가기 전에, 아이템샵, 친구와의 채팅, 게임 시작 버튼을 누르는) LOL Client에 대한 API입니다. 밑은 예시 입니다.
해당 API는 LCU(Lol client Update)라는 이름으로 불립니다. 해당 API의 라이프 사이클은 다음과 같습니다.
API가 OPEN 되는 시점 | API 종료 시점 |
---|---|
컴퓨터 사용자가 LOL 아이콘을 누른다. | 컴퓨터 사용자가 LOL CLIENT를 끈다. |
LCU는 LOL의 아이콘 버튼 (leagueoflegend.ex)가 눌리는지로 활성화가 판단됩니다. 다음은 LCU의 SWAGGER 입니다. 해당 SWAGGER는 LOL client를 실행하는 중에만 사용 가능합니다. https://www.mingweisamuel.com/lcu-schema/tool/
해당 API를 통해서 현재 서비스 중인 자동 룬 설정, 챔피언 선택/ 벤 화면에서 팀원의 챔피언 선택마다 승률을 실시간 통계로 보여주는 로직등을 구현합니다.
LOL의 본 게임 실시간 데이터, Replay를 제공하는 LIVE LOL CLIENT 입니다. https://developer.riotgames.com/docs/lol#game-client-api_live-client-data-api
해당 API에서 팀원 전체의 골드 획득량, 룬 정보, 스펠체크, 킬, 뎃, 어시, 용을 누가 죽였는지, 퍼블, 첫번째 포탑 제거 등 LOL 전반에 대한 모든 API를 얻을 수 있습니다. 해당 API가 https://127.0.0.1:2999 를 가리키고 있는데, 해당 주소는 LOL CLient가 켜져있을 때도 접근이 불가능 하고 오직 LOL 본 게임에 진입 했을 때만 활성화 됩니다.
Live LoL Client 시작 시점 | Live LoL Client 종료 시점 |
---|---|
LOL 대기 화면을 지나서 본 게임에 접속한다. | LOL 본 게임에서 나온다. |
원리는 다음과 같습니다. LOL이 본 게임에 들어가면 desktop App이 포트번호 2999번에 게임의 메타 데이터를 상세히 기록합니다. 그 후 게임이 끝나면 2999번에 적은 내용들을 서버로 전송합니다. 그래서 어제 실행해본 결과 RIOT 서버 API에 matchID를 입력 해서, 실행 중인 게임에 대한 바로 접근은 힘든 것으로 확인되었습니다.