
はじめに
俺はMMOゲームのギルドで、オークションBotを5年間使ってきた。
Lineage2Mが2021年にリリースされた頃から、ギルドのボスドロップ分配を自動化するために作ったDiscord Botだ。HIT The Worldでも使った。メンバーが入札して、最高額をリアクション参加者で割って分配する。手作業でやるとスプレッドシートとにらめっこになるやつを、Botに全部やらせていた。
5年間、自分のギルドでずっと動いていた。便利だった。でも、あくまで自分専用だった。
「自分専用」の実態
5年も育ててきたとはいえ、中身はひどいものだった。
ギルド名がハードコードされている。タイムゾーンは決め打ち。言語は日本語しかない。設定ファイルなんてものはなく、変えたい値はソースコードを直接書き換える。
複数のサーバーで使いたい時は、コンテナごとコピーしていた。 同じBotをもう一個立てて、トークンだけ変えて動かす。マルチテナント? なにそれ。
課金システムなんてもってのほかだ。サブスクリプションも、利用規約も、決済画面もない。誰かに売るなんて想定していない。自分が使えればそれでよかった。
SaaS化を決めた理由
ふと思った。このBot、売れるんじゃないか。
多くのMMOギルドが同じ課題を抱えている。ボスのレアドロップが出た。誰が取る? オークションで決めよう。でもオークションの管理は面倒すぎる。入札を手動で集計して、分配金額を計算して、結果を全員に通知する。やりたいけど、手作業じゃ無理——そういうギルドは多い。
ただ、自分専用Botをサービスにするには巨大な改修が必要だ。マルチテナント化、課金、管理画面、多言語対応、法的対応。自分の手でやる気力はまったく起きない。
でも今はAIコーディングの時代だ。不確定要素がない決まった作業なら、AIに一気に終わらせてもらえる。研究や実験と違って「調べてみないとわからない」がないやつ。そう踏んで、やることにした。
コードの改修
マルチテナント化、Stripe課金連携、OAuth2認証、Web管理画面、4言語対応。やることリストは長かったが、どれも定型作業だ。パターンは決まっているし、公式ドキュメントもある。ゴールは明確だ。
設計方針を決めて、実装はAIに任せた。一つ一つは別に難しくないが、量が膨大で、手作業で片付ける気にはならない類の作業だ。
最初にClaudeが出してきた方針が「856行のserver.jsを8モジュールに分割して、ギルドごとに設定を持てる構造にする。大改修です」だった。脅されたが、もともと動いていたプログラムで動作のロジックは明確だし、上に書いた通り不確定要素がない。案外あっさり終わるんじゃないかと期待していた。AIが得意な仕事なんじゃないかと。
実際、コードの改修は1日で終わった。
大変だったのはコードの外側
コードの改修より、「商品にする」ための作業のほうがよほど考えることが多かった。
法律
サブスクリプションでお金を取るなら、特定商取引法に基づく表記が必要になる。利用規約も書かなきゃいけない。消費者契約法に配慮した免責条項、返金ポリシー、個人情報の取り扱い。個人開発者がサービスを売る時に避けて通れない部分だ。
これもAIと一つずつ潰していった。「特商法に何を書くべき?」「この条項いる?」と相談しながら、最終的に全17条の利用規約ができた。法律の専門家ではないから正確さの保証はできないが、少なくとも「何も考えてない」状態からは脱出できた。
Stripeの審査
決済にStripeを使っているが、本番環境で動かすにはStripeの審査を通す必要がある。セキュリティがちゃんとしているかもチェックされる。
そこでAIにプロジェクト全体のセキュリティ監査をさせた。13件の指摘が出た。JWT有効期限チェックの欠落、OAuth2のオープンリダイレクト脆弱性、オークション終了の二重通知、APIのレート制限なし——自分では気づけなかったものも含めて、全部その場で修正させた。
5年間「自分しか使わないから」で見て見ぬふりをしてきた部分が、商品にする段階で一気に表面化した。
デプロイ
Botの本番デプロイには、自宅サーバーを使っている。以前の記事で書いた通り、AIにSSHでサーバーを直接触らせるスタイルだ。deploy.shを一発叩けば、ビルドからコンテナ更新まで全部終わる。
Web管理画面はVercelにデプロイ。こっちはgit pushだけ。
AuctionBOT
5年間、自分のギルドだけで動いていたBotが、今日からサービスとして公開された。
AuctionBOT — DiscordでギルドオークションをBotが全自動管理する。
/setupでチャンネルを自動作成、/auctionでオークション開始- メンバーがリアクションで参加登録、数字を投稿して入札
- 終了後、落札額 ÷ 参加人数を自動計算して分配結果を通知
- スナイプ防止(終了間際の入札で自動延長)
- 4言語対応(英語・日本語・韓国語・中国語)
- Free(1同時オークション)/ Pro(月500円、無制限)
ボスドロップの分配で揉めてるギルド、手作業の集計に疲れてるギルドリーダーがいたら、試してみてほしい。
おわりに
コードの改修は、正直AIに任せたら終わる時代になった。マルチテナント化も課金連携も多言語対応も、パターンが決まっている作業は一気に片付く。
でも「商品にする」のは、コードだけじゃ終わらない。法律、セキュリティ、値付け、ランディングページ。自分で判断しなきゃいけないことが山ほどある。AIは相談相手にはなるが、最終的に決めるのは自分だ。
5年間、自分だけが使ってきたツールが、今日から他の誰かに使ってもらえるものになった。売れるかどうかはわからない。でもまあ、出さなきゃ始まらない。