今後やること

ちょっと今後絶対にやることをまとめておきます。個人的なメモとして。
上から優先順。

・サーバ探し
有料無料問わず。usamimiは不安定すぎる。無料サーバだから文句は言えないけど。
・チャット改良
これは先延ばしにしてきたけど現状がアレなのでやらないわけにはいかない。
・ゲーム作成
コンテスト自体はどうでもいいけど、目標がないと進まないので一応次のHSPコンテストを目標としとく。

2月以降に順次始めていきます。

HSPで思考設計型対戦ゲーム(5) 画面サイズ

画面サイズは800*600で作っていたんだけど、グラフィックとかを作ってるうちに横幅が狭く感じてきた・・・こんなもんだろうと思って作り始めたんだけどちょっと誤算だった。射撃主体だから横幅が狭いと自由度がないように感じられる。ただ画面サイズを横1000とかにするのはちょっと抵抗がある・・・まあ今日び横1000が表示できないほど小さいディスプレイ使ってる人なんてそういないだろうけど。
とりあえず距離によって画面の拡大縮小を行うようにするか・・・画像が荒くなりすぎたり弾が小さすぎて潰れてしまうことが少し心配だけど。とりあえず試してから考えるしかないな

HSPで思考設計型対戦ゲーム(4) 基礎的な部分を作り始めよう②

ポチポチ作ってます。ドット打ったりプログラム書いたり。
最近知ったのはHSPは変数やラベル名に日本語が使えること。前も聞いた気がしなくもないけど実際には使ってなかった。やっぱりプログラムに全角使うってのはすごい抵抗があるし。でもどうせ他人に見せないコードだし日本語だとパッと見で分かりやすいしそれがそのままコメント代わりになったりもするし名前もつけやすいしなどでメリットが多いので、一部で活用することにした。(チップ名をそのままラベル名にするなど)
パーツについてもいろいろ構想はできたので、あとはひたすら作りながら調整していくしか・・・
対戦の大部分ができても、今度はチップ設計プログラムも書かなきゃいけないので先は長い・・・
テストプレイしてもらうにもチップ設計できないと難しいしな。あとルールが複雑だからチュートリアルは必須なんだよな。マニュアルとかで説明してもいいけどこのシステムはぐだぐだ説明するよりも実演したほうが断然わかりやすいんだよな。カルネージハートがそうだったんだけど。
まあまだ先のことだ。今は今やるべきことをやろう・・・

HSPで思考設計型対戦ゲーム(3) 基礎的な部分を作り始めよう①

週末は小旅行に行っていたので進まなかったけどとりあえず先週末までに作った部分をまとめる。
AIデータをどう扱うかは既に決めたので、まずはチップと戦闘部分を作り始めた。AIに関しては設計したデータを数値化して直接プログラム内に書き込めばいいので、AI作成部は全体としては後回しで作成する。グラフィックもとりあえず後回しなので適当なシルエットを作って配置。とりあえずチップをいくつか作って動かしてみたかったので、前進、後退、旋回、索敵なんかを手始めに作る。AIデータに関しては前回書いたバーコード(チップの内容に関する赤、緑、青、分岐先に関する赤、緑、青の計6つ)をそれぞれ配列に格納して、「現在のチップ」を表す変数も用意する。チップの種類によって実行後、分岐先のチップ番号(基板上に並べた全部のチップに番号を割り当てる予定)を「現在のチップ」に設定する。発動から終了までを内部干渉を受けずに行うチップは全てこの手順で作成できる。発動後終了を待たずに別行動に移る場合はちょっと例外的な作り方をしなければならないが・・・(ジャンプなど)。
とりあえず、「前進→近距離前方索敵を繰り返し、敵を発見したら大きく後退する」というようなAIを作成して動かしてみたところ、問題なく動作することを確認。
チップに関しては後は作りながら増やしていくしかないので、グラフィックを考え始めたい・・・武器チップに関してもグラフィック作成と同時進行で進めたいし。


グラフィックに関してはどのような形態にするか考え中・・・メダロットやACのようにロボットな感じでパーツを付け替えるとなるとグラフィックの作成が結構な労力になるんだよね。例えば足パーツを作ったとして、歩きモーションが足グラフィックごとに使いまわせないことになるし。まあ簡略化はいくらでもできるが・・・
あとどのようにキャラクターのグラフィックを作るかっていう話も。つまり、パーツ別々のグラフィックを用意するならそれをくっつけなければならないわけだ・・・まあどうするかって言ったら背景透過でgcopyを重ねていくしかないんだけどさ。ちょっとめんどくさそうだなぁ
まあがんばろう

HSPで思考設計型対戦ゲーム(2) バーコード

画像をバーコード上に画像に組み込むと言ったが、具体的にどのようにバーコード化するか。これを決めとかないとプログラムが書けない。
というわけでいろいろ考えて、フルカラー使ってRGBの各値をパラメータとして読み込むことにした。具体的には以下のように各色を使う。
赤:チップのカテゴリ(移動、攻撃、・・・)
緑:チップの種類(前進、後退、・・・)
青:チップのパラメータ(移動量、・・・)
上記のままではチップの分岐先が組み込まれていないので、もう1ドット用いて分岐先を表す。
赤:分岐の有り無し(分岐するかしないか選べるチップの場合)
緑:真の分岐先
青:偽の分岐先
以上、見てわかるとおり、非常に無駄が多い構成となっている。チップカテゴリなんて5つくらいだし、分岐の有り無しなんて0か1かしか使わない。でもなんでこうしたかというと、当然ながらプログラムが作りやすいから。わかりやすくてデータも扱いやすい。とても作者に優しい。
とまあそんなわけで、フルカラー使ってデータを保存するので、必然的にpngを使わなければならなくなる。(bmpはWEB公開という意味で論外)
pngの読み書きを行うモジュールもいくつか公開されているので、後でいろいろ試してみようかと思う。

HSPで思考設計型対戦ゲーム(1) 構想

HSPを使って、2D対戦を行うAIをプレイヤーが設計する、というゲームを制作している。AI設計に関しては色々考えたんだけど結局「カルネージハート」というゲームのシステム以上のものは思いつかずそれをそのままパクることに。具体的には、「移動」や「攻撃」、「索敵」などのチップを並べて繋げていくことによりAIを設計するというもの。例を挙げると、①「索敵」で前方に敵がいるか調べ、敵がいなければ②「旋回」で向きを変えて①に戻る。敵がいれば③「武器」を使って攻撃を行う、というようにチップを繋げて構成していく形になる。チップは方眼状の基盤にはめていくので、当然置ける数には上限がある。
上記の例は実際にチップと基盤で表すと以下のような図になる。四角がチップを表し、中の数字はさっきの例の①〜③の数字に対応する。黒い矢印は分岐でYesを、白い矢印はNoを表す。壁に向けて矢印を向けると、一番最初(左上)のチップに戻る。

カルネージハートは3D、作ろうとしているゲームは2D(サイドビュー)で作成するので、戦闘システムやチップの種類などは変わるが基本の設計システムは上記のものを流用する。

ここまでは丸パクリなんだけど、このゲームで最もやりたいことは、作成したキャラクターを画像化してネット公開できるようにすること。これはバーコードのような形で設計データを画像に編み込めば別段難しいことなく実現できる。画像を読み込ませて他人のAIと自分のAIを戦わせたら面白いなあというのが一番の制作動機。画像だからカードのようにデザインして出力すれば楽しいし。ムラムラするよ。
苦労しそうなのがグラフィック、効果音関係だけどそれなりに頑張ってなるべく時間かけないように完成させます多分。そのうち。