Takunojiのプログラミング・プレイグラウンド(遊び場)

Javaプログラミングを基本にして、ゲーム作成に必要なことの調査結果、やったら面白そうなことなどを記載します。プログラミングのススメ的なことも記載します。プログラミングで楽しく遊ぶために色々と記載して行きます。

Java ゲーム作成 〜DiscordでJavaコード〜

イントロダクション

最近知ったのですが、Discordなるものが世に出回り、ゲーム作成に必要な機能をいい感じで提供してくれるアプリがあるということで、JavaでDiscordできないか試してみました。

Discord

 SNSの様にユーザー同士のやりとり(チャットや音声通信)ができるアプリです。スマホ版のものと、ブラウザ版のものがあり両方併用できます。

初心者のためのDiscordガイド

今回は、Javaを使用してプログラムでログイン〜ユーザーの入力に対するレスポンスを返す。ハローワールド的な実装をやりました。

このプログラムの用途

このプログラムは、ユーザーの入力→プログラムのレスポンスというシンプルなやりとりを実装しています。

つまり、これを改造すれば「自分用の入力」=「コマンド」に対する処理を実装できます。そしてインターフェースクラスを使用した、ポリモーフィズムの実装を行いましたので自分好きなコマンドを好きなだけ作る事が可能です。

PGボックス〜ゲームとプロジェクトとプログラミング基礎〜

 

結果は以下に。。。「ping」と入力すると「pong」と返却するアプリです。

f:id:Takunoji:20180715162855p:plain

実行手順

1.開発環境のセットアップ

Java Discord セットアップ〜Hello Discord〜 – PGボックス


2.Discordのページに登録する

discordapp.com


3.Javaでプログラムを作成する

Java Discord ピンポン〜Discordプログラム〜 – PGボックス

 

4.実行したらDiscordサーバー上でアプリケーションが動いているのでコマンドを入力してみてください。下の様にコマンドに対応した返答が表示されるはずです。

 f:id:Takunoji:20180715162855p:plain

感想

Discordを使用してコマンド入力→レスポンスという流れを簡単に実装できるのでWeb経由により多人数で、やれるゲーム(テキストベース)は簡単?に作れそうだ。

ストーリや展開など難しい部分は腐るほどあるので、イチからゲームを作成するという観点で比較的簡単に作成することができると思います。

今後

ある程度の環境を作成したり、サードパーティを使用したり(TensorFlowとかOpenCvとか)もできそうなので試してみたいと思います。OpenCvはjarファイルをビルドパスに繋げるだけで使用できたような記憶があるのですが。。。確証はありません。。。

でわでわ。。。

 

関連ページ一覧

  1. IntelliJ IDEA Discord Botを作る〜Gradle環境のセットアップ〜
  2. Java Discord セットアップ〜Hello Discord
  3.  Java Discord ピンポン〜Discordプログラム〜
  4. Java Discord Listener実装〜コマンドを好きなだけ追加しよう〜

IntelliJ IDEA

  1. IntelliJ IDEA 環境構築 〜インストールと起動〜
  2. IntelliJ IDEA GitGitリポジトリからクローン〜
  3. IntelliJ IDEA 使い方〜Git接続 Java起動 etc
  4. IntelliJ IDEA Jarファイルを作る
  5. IntelliJ IDEA 使い方〜Maven Projectの作成〜
  6. IntelliJ IDEA 使い方〜Mavenでライブラリを追加する〜
  7. IntelliJ IDEA 使い方〜Javaのコンパイルレベル設定〜
  8. IntelliJ IDEA Gradleセットアップ〜コマンド入力部の表示〜
  9. IntelliJ IDEA Discord Botを作る〜Gradle環境のセットアップ〜

Eclipse

  1. Java Install Eclipse〜開発ツールのインストール〜
  2. Eclipse Meven 開発手順〜プロジェクトの作成〜
  3. Java OpenCV 環境セットアップ(on Mac)
  4. Eclipse SceneBuilderを追加する
  5. JavaFX SceneBuilder EclipseSceneBuilder連携~