一昨日ですが、忍者サイトマスターというツールをこのブログに設置しました。
これ、面白いですね。自分のブログと似ているサイトがわかったり、お気に入りというかブログ自体をフォローすることだってできますし、Twitterに同期だってできるんです。
ブログ主の、twitter率が高いために、流行に乗っているなぁ。そんな感じがあります。
さて、宣伝だけで終わっても意味ないので、OEの話をさせていただきます。
今日は自分の考えを整理しておきたいので、少々口調が変わるかもしれないのと、これから自分が議題に出す内容なので、100%採用ではないことをご了承ください。特に僕の制作範囲は、エディターですので、ランタイムに関しての意見は基本、カズさんを優先させておきたいですから。
1,普通のFPSの構造
普通のFPSがどんなものかは置いておいて、僕がやったことがあるFPSは以下
・SOW(現在サービス停止)
・スペシャルフォース
・ペーパーマン(笑)
・鉄鬼(TPSじゃん)
・AVA
・MGO2(PS3じゃん、それにTPSじゃん)
なぜ、このようにTPSも上げたかというと、TPSもFPSも結局はカメラ位置が違うだけなのです。
なので、それくらいは何とか調整ができるんじゃないかな~と思っているわけなんですね。
さて、以上のサンプルから考えるFPSの構造は、以下です
起動ウィンドウ(スプラッシュウィンドウ)->ロビー選択->部屋選択->部屋内の待機画面(?)->実戦
そしてその間には以下の機能がありますね。
1,メール
2,ランキング
3,インベントリ
4ショップ
この四つの中では優先度を決めて作業をしていきたいと思います。
1,インベントリ
2,ショップ
3,メール
4,ランキング
の順番に優先します。
一つ作るのに何日もかかりそうなので、全部実装してのベータ版というのは厳しいかもしれません。
アップデートして~アップデートして~という感じで、のほほんと行きましょう。
そのたびそのたび公開していく予定です。
また、メニューも問題です。
当初は、簡易的なOEScriptを実装し、メニューを、ほかのものとバインドさせることで、ある程度の自由度を確保しようと考えたのですが、スクリプトを実装するというのは、ただバインドさせるというわけにもいかず、多少の計算などもスクリプト自身に実装させなければなりません。
現行の状態で、動けるプログラマーが2名であるのに、ここまで本格的なことに手を出すと何も終わらない気がするので、メニューもテンプレート化します。
もちろん、テンプ化したものは、ある程度発展したらだんだんと自由になるように設定していくつもりです。
次にキャラのアニメーションについてです。
例えば、考えられるだけで以下のモーションがありますね。
・走る ・歩く ・グレネードを投げる ・しゃがむ ・ほふく
などなど
考えるだけでいっぱいありますが、これは当初の予定では、モーションエディタを作成して、ユーザーにアニメーションxファイルを作ってもらうことによって実現させます。
これをインポートするわけです。
例としては以下です。
ux.getuploader.com/onlinegameediter/download/1/%E6%AD%A9%E8%A1%8C%E3%83%A2%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3.rar
一つネタが入っているので注意w
コレはaviファイルですが、OEで対応するのはXファイルのみになるはずです。
ボーンのアニメーション作るツールまで実装してたら、本物の3Dソフトじゃないですか!
というわけで、今回はこの機能は先送りにして、ユーザーがインポートしたモーションファイルを切り替えることで、キャラの動きを再現しようと思う次第なのです。
問題は、ファイルが重くなりそうってことだけですかね。
エディタもメニューの幅が広くて、解像度高くないと、作業しにくそうです。
そして、あたり判定ですが、さすがにこれを実現するソフトというのは外部に無いようなので、実装する必要があります。
とはいっても、平面を立体に張っていくだけだと思うんですがね。
やはりここが難所でしょう。
エディタ製作として一番不安なところであります。なんとか実現させたいです。
2,ゲームファイルはどうするか?
ゲームファイルは、ランタイムが読みだすゲームの内容を定義した内容が書かれている、エディタのエクスポートデータ。
XML形式で書くものの、MSXMLパーサーは今までに触れたことないから苦戦しそう。
ただ、XMLで書くことは、もし将来OEScriptを実装することになった場合、XMLスキーマが非常に便利に使用できるのでいい。
サーバー通信については、データベース通信、クライアント間通信の2つがあるだろう。
だが、NAT越え問題などもあり、後者のクライアント間通信を実現するには、サーバーが仲介する必要性があると思われる。
サーバーの準備も必要だ。
だが、サーバーにはできる限り処理をさせず、クライアント側にクエリの発行まで処理させれば、おそらく、これもテンプ化できる。
データベース通信については毎度おなじみ、MySQLを使用しようと思う。
というのも、SQL Serverはわかんなかったですw