Java(プログラミング言語)を使用して簡単なゲームを作成しようとしています。
大まかに下のようなイメージです。これはU16プログラミングコンテストで使用する画面(UI)です。
簡単なゲームというところで、シンプルなルールで作成しようと考えた結果このゲームを真似ようと思った次第です。
U16プロコンサーバー
上のアプリ(サーバー)は確かChaserという名前だったような気がしましたが、いまいち見つからず。。。
Gitからダウンロードできますので、興味があれば。。。細かい取得の方法は下の記事に記載しています。Git クローンで取得します。ちなみにEclipseを使用しています。
ちなみに下の動画は、Gitからウ16プロコンサーバーをクローンして、自分のPCで動かしてみたものです。
大まかに、以下のようなルールでゲームを行います。
下の条件を満たした時に勝利することができます。
- クライアントアプリで、サーバーにアクセス
- サーバーで「H」か「C」を操作して
2-1. アイテムの保有数が多い方
2-2. 相手をブロックにはさめる
2-3. 相手が行動不能になる
ここでのポイントは、クライアントアプリを自分で作成するところです。作成するのにプログラムを作成します。
シンプルに、下のようなプログラムを作成します。
- クライアントアプリからサーバーにSocket通信で接続する(実装サンプルはこちら)
- サーバーから送信される周りにある物体の情報(ブロック(通行不能)とかアイテムなど)を取得(受信)
- 周りの情報を判定して、次の操作をプログラミングする
上記の1~3を繰り返して上記のルールで勝敗を決します。
自分は何を作るのか?
実は以前に自分もこちらのクライアントアプリを作成したことがあります。しかし、期日までにちゃんと作成できず。。。
このような経緯があり、「Javaでプロコンサーバーを作成する。」という目標ができました。そして現在に至るという次第です。
作成するのに、色々と考えています、大まかにRPG風にU16プロコンサーバーを作成し、ステージをダンジョンに変えてやったらどうだろうか?と考えた次第です。詳細に関しては以下の記事を参照ください。
ここまできて、「占い」を使用してみようと考えたので、色々と調べました。やはり「魔法」は必須だと思ったからです。
プレーヤー生成ロジック
実際のところは、まだロジックができていません。そのために今まで調べ、まとめてきたことをいかに示します。
プレーヤーが入力するもの
現状では、以下のように考えています。処理フローで書くとしたのようになります。
- クライアントアプリで、サーバー(ゲーム)に接続する
- 接続時に、簡単な認証を行う。
- プレーヤーの情報を記載するファイルを指定しているので、そのファイルを読み込む(クライアントから送信する)
- プレーヤが入力するのは名前(ゲーム用の名前と本名のローマ字)、生年月日です。
【前提】
あくまで、子供向けのプログラミングゲームなので小難しい部分は親クラスで実装してしまいます。
なので、プレーヤーは親クラスを継承してクライアントアプリを作成することになります。
入力値から算出するもの(Ver1.0)
入力値から算出するのは、以下の23項目です。
そして、数秘術をベースにして値を算出します。
数秘術では、生年月日と名前から以下の数字を取得します。
- 人格数
- ハート数
- 運命数
- 意思数
- 特性数(複数)
- 欠落数(複数)
そして、各数字を分類(パラメータ化)してその値をプレーヤーの値に設定する想定です。
プレーヤのパラメータ(性質)
前提として以下のパラメーターは各項目に対して数値が高いということは「行動しやすい」「感受性が高い」などのようにその方向に向かい傾向が強いことを示す。
- 目的達成に向けて行動したい性質
- 個性を大切にする性質
- 自立性
- 愛情性
- 知識性
- 許容性
- 連帯感を持ちたい(共有したい)性質
- 認知、知名度があることを実感したい性質
- 創造することに喜びを感じる性質
- リーダーシップを着ることに喜びを感じる性質
- 真理を求める性質
- 奉仕することに喜びを感じる性質
- 他者から認められることに喜びを感じる性質
- 意志を貫く性質
- 霊性(物質界とは違う世界を感じる性質)
- 論理性(物事を順序立てて)考える性質
- 空間把握能力、そのように物事を捉える性質
- 無私(無我、利己的な考え方から解放された)性質
- 自制を持って行動しようとする性質
- 具現化しようとする性質
- 行動を起こそうとする性質
- よく考えようとする性質
- 考えなど、色々と表現しようとする性質
ちょいと細かい(数が多い)ですが、これらの情報をまとめて以下の7項目くらいにしようと考えています。
- HP
- MP
- 力
- 素早さ
- 打たれ強さ
- 精神力
- 霊力
まとめ
とりあえずはこのような形で、パラメータ化を考えています。もう少し、考え練ろうと思っています。