0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【discord.py】ゲーム参加者管理用discord bot作ってみた【python】【GCP】

Last updated at Posted at 2025-07-26

:star2:はじめに

こんにちは、OhaGiです。
今回はdiscord上でのゲーム参加募集を支援するbot 「gemaneko」 を開発しました。
pythonの discord.py を使用してdiscord botを作成し、GCPの Compute Engine でデプロイしてみました。

▼Github URL

Compute Engineでのデプロイbotの自動起動 などについては
↓の記事で紹介しています!
併せてお読み頂けると嬉しいです!

:seedling:開発背景

  • 参加しているゲーム用discordサーバーにおいて、 複数のゲームで同時に参加者を募集する場面が多く、どのゲームに誰が参加するのか把握しづらい という課題があった
  • 日常の会話の流れやボイスチャンネルでのゲームの参加が取り決められる場合が多く、 どのゲームに誰が参加するかが不明瞭になりがち だった

:white_check_mark:【gemaneko】 概要

  • gemaneko は、discordサーバー内で ゲーム参加希望者を効率的に管理するためのbot です
  • 特定のメッセージを送ることにより、誰がどのゲームに参加したいかを集計・表示できるため 参加希望者が一目で分かる ようになります
  • gemaneko は、gamemanagernekoを組み合わせて名付けました( ネコはかわいいので 🐾)

:pushpin:機能

/コマンドを打つことでgemanekoに指示を出すことが出来ます

コマンド 説明
/list 登録されているゲームの一覧を表示します
/add <ゲーム名> ゲームを登録します
/remove <ゲーム名> ゲームを削除します
/join <ゲーム名> ゲームに参加します
/leave <ゲーム名> ゲームから離脱します
/clear <ゲーム名> ゲームの参加者を全員削除します
/status <ゲーム名> ゲームの参加者一覧を表示します
/start <ゲーム名> ゲームを開始して参加者を全員削除します
/help ヘルプメッセージを表示します

dis-log-gemaneko.png
/コマンドを打つとgemanekoが応答してくれます

:tools:使用技術・ツールなど


python のライブラリであるdiscord.pyを使用して開発。
デプロイをGoogle Cloudの Compute Engine で行いました。
また、コーディング補助として Github Copilot を導入しました。

:pencil2:こだわりポイント

ゲーム名を小文字で管理
ゲーム名は自動的に小文字変換されるため、データの一貫性が保たれ、集計処理が容易になります
ゲーム開始後に参加希望データの消し忘れを予防します
/start {ゲーム名} を実行する際に、そのゲームの参加希望者リストが自動で削除されることで、過去の募集が残り続けることを防ぎます
GCEとsystemdによる運用
GCPのCompute EngineでVM上での安定稼働を前提とした設計になっています

:iphone:結果

  • 実際にdiscordサーバーで運営を開始して、当初の目的であった ゲーム参加希望者の管理の煩雑さを解消する ことが実現できました
  • 参加者の確認や集計がコマンドひとつで可能になり、会話の中で参加を募るよりもスムーズに調整できるようになりました

:green_book:学んだこと

  • discord.py を使ったbot開発方法
  • GCPを使った クラウド技術の基礎
  • systemdを利用してLinux サーバー上にbotを永続的に動かすこと
  • 運用を見越した設計・保守性の重要さ

:rotating_light:改善点

  • ワンクリックで操作可能にするなど、UXの改善
  • データを保持することで保守性を上げること

:calendar:今後の予定

  • 実際にdiscordサーバーで運用を続け、ユーザーからのフィードバックを元に機能の改善や新機能の追加を行っていく予定です

:checkered_flag: さいごに

自身の生活の問題を技術で解決することが出来ました。また、気になっていたクラウド技術のGCPに触れることが出来て良かったです

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?