【– この記事は、2020年10月に作成したツールの紹介です—】
BFVと呼ばれるゲームにおいて、サーバに参加しているユーザ名を取得するツール。 OCRで名前を取得している。
想定使用対象者は、サーバの管理者。 BAN情報を保持しておきたいという要望に応えて、作ったツール。
背景
BFVは、プレイヤーがゲームサーバを立ち上げることができる。
プレイマップやチケット数などを操作できるが、「BANしたプレイヤー情報を継続的に保存できない」という問題点があった。
そんな感じで、とあるサーバ管理をしている方の相談があり、作成した。
ダウンロード・使い方
githubのReadMeを見てください。
作成の際の小話
ソフトでやっていること
- ゲーム画面のスクリーンショットして、画像を作成。
- 画像をプレイヤーに小分けにする。
- 小分けした画像の色調を見やすいように変える。
- OCR(光学的文字認識)を使って、画像から文字を読み取る。
- 事前に用意してたBANリストと取得したゲーム参加者一覧を見比べて、BANユーザーがいないか判定、表示
簡単に出来たらいいと思ってしまうが
今回、OCRという画像から文字を読み取る技術を使いました。ちょっと技術分かる人は、「もっと綺麗にどうにかできないの?」とか思われるかもしれないですが、ハッキリ言って、「技術的にはできます」。
ですが、「ゲームを開発した会社(EA)の規約や日本の法律で、絶対にやってはいけない」ですね。
例「自動的にサーバから追い出す」
「自動的にBANリスト該当者をサーバから追い出す」という機能を付けたいとします。確かにあったら便利ですが、この場合、「マクロやボットによる操作」ということで、アウトです。
例「画像からではなく、通信データからプレイヤー名を取り出す」
「画像からではなく、通信データから直に取り出す」の場合は、プレイヤー名が確実に綺麗に取れるので、いいと思えてきますが。
「パケット解析をする」ということで、アウト。本当に古いゲームだと規約でグレーラインと言われている場合もあるが、絶対にやってはいけない。開発元や第三者から怒られてもしょうがない。
例「ゲームソフト自体からデータ引っこ抜く」
今回の話には、あまり関係ないですが、念のため言及します。
「ゲームソフト自体からデータ引っこ抜く」の考えの場合、1つはメモリから抜く方法、もう1つがゲームファイルから抜く方法が考えつくかと思うのですが。これ、2つともアウトです。というか、これをしようと思う発想自体がヤバいです。
まとめ
そんな訳で、ツールを作りました。本当は、ゲーム制作会社が実装すべき機能であるのですが、今回は実装はないということで、しょうがなく作った感じです。
法律・規約に注意しながら、実装・提供しましょう
コメントを残す