결론부터
- 1게임 파일은 내 서버, 텔레그램은 게임 메시지·플레이 버튼·점수판.
- 2/newgame 등록 → sendGame → 플레이 신호에 게임 주소로 답한다.
- 3점수는 서버가 setGameScore 로 — 화면에서 바로 올리지 않는다.
봇 게임의 구조
텔레그램 봇 게임은 내가 만든 HTML5 웹 게임을 대화 안에서 띄우는 방식입니다. 게임 파일은 내 웹 서버에 두고, 텔레그램은 '게임 메시지'와 '플레이 버튼', 그리고 점수판만 맡습니다.
| 누가 | 하는 일 |
|---|---|
| @BotFather | 게임 등록 — 짧은 이름(short name)·설명·사진, 선택으로 움직이는 미리 보기 |
| 내 봇 | 게임 메시지 보내기, 플레이 버튼에 게임 주소로 답하기, 점수 기록 |
| 내 웹 서버 | HTML5 게임 파일을 내려 준다 |
| 텔레그램 앱 | 앱 안 브라우저로 게임을 열고, 최고 점수를 대화에 알린다 |
만드는 순서
- @BotFather 에서
/newgame으로 게임을 등록하고 짧은 이름을 정합니다. 이 이름으로 게임을 부릅니다. - 봇이
sendGame에 그 짧은 이름을 넣어 보내면, 대화에 게임 카드와 플레이 버튼이 붙은 메시지가 나갑니다. 인라인 모드로도 보낼 수 있습니다(인라인 봇). - 사용자가 플레이를 누르면 봇에게 버튼 신호(callback_query)가 옵니다. 봇은
answerCallbackQuery의url에 내 게임 주소를 넣어 답합니다 — 앱이 그 주소를 엽니다. - 게임이 끝나면 내 서버가
setGameScore로 점수를 올립니다. 최고 점수가 바뀌면 대화에 알림이 뜨고 게임 메시지의 점수판이 갱신됩니다. 순위는getGameHighScores로 봅니다.
지켜야 할 것
- 게임 메시지에 버튼을 더 붙일 때는 첫 줄의 첫 버튼이 게임 시작 버튼이어야 합니다.
- 게임 주소에는 텔레그램이 붙이는 값(tg 로 시작하는 이름)이 따라올 수 있으니, 내 게임의 주소 값과 겹치지 않게 이름을 짓습니다.
- 공유 버튼으로 다른 대화에 게임을 퍼뜨릴 수 있습니다. 게임 안에서 점수와 함께 공유하는 기능도 공식 자바스크립트로 붙일 수 있습니다.
게임과 미니 앱 중 무엇으로
| 상황 | 맞는 쪽 |
|---|---|
| 대화 안 점수판·최고 점수 알림이 핵심 | 봇 게임 |
| 전체 화면·결제·로그인·저장 같은 앱 기능이 필요 | 미니 앱 — 미니 앱 만들기 입문 |
사용자가 게임 링크를 믿어도 될지 가리는 법은 텔레그램 게임 — 웹 게임과 미니 앱을 믿는 기준에 있습니다.
자주 묻는 질문
텔레그램 봇 게임은 어디에 올리나요?
HTML5 게임 파일은 내 웹 서버에 두고, 플레이 버튼 신호에 그 주소를 답하면 앱 안 브라우저로 열립니다.
게임 등록은 어떻게 하나요?
@BotFather 에서 /newgame 으로 짧은 이름·설명·사진을 정해 등록합니다.
점수판은 어떻게 갱신되나요?
setGameScore 로 점수를 올리면 최고 점수가 바뀔 때 대화에 알림이 뜨고 게임 메시지의 점수판이 갱신됩니다.
게임 메시지에 버튼을 더 넣어도 되나요?
됩니다. 단 첫 줄의 첫 버튼은 게임 시작 버튼이어야 합니다.
참고한 공식 문서
요약
한눈에 정리
- 1등록
/newgame · 짧은 이름.
- 2띄우기
sendGame · 주소로 답.
- 3점수
서버에서 setGameScore.
최종 수정 2026-10-06