psy-no ver.0.3.0

ぐにゃーとした世界で殺陣って下さい。

○ 動作環境

OS 的には Windows, Linux, MacOSX 。 その他 GNU/SDL/OpenGL 環境。
MacOSX は今はチトきついのでリリースしてません。

CPU 的にはたぶんそんなにたいしたものはいりません。

ビデオカードはハードウェアで OpenGL を扱うドライバが入っていれば
どうしようもなくダメなものでない限りたぶん大丈夫な気がしています。

開発環境は Celeron 1.7GHz, RADEON IGP 340M とそんなとこ。

○ インストール

展開して、 psyno.exe をダブルクリックして下さい。
config.exe で各種設定が行えるかもしれません。

○ 操作

攻撃ボタンが z とパッドの一つ目のボタン、
ダッシュボタンが x とパッドの二つ目のボタンです。
それとアローキーかパッドの十字キーで移動方向を。
padconf.exe を動かすと設定できるかもしれません。

A ボタンは攻撃ボタンです。剣らしきものを振り回すはず。

B ボタンはダッシュボタンです。

最初の画面以外で Escape を押すことによって、
タイトル画面に即座に戻ることができます。

○ 適当な操作説明

長ったらしい README なんて私も読まないので簡潔にまず書きます。
とにかくダッシュボタン+方向で走って下さい。
敵は方向を押さずにダッシュで急接近→攻撃でほふって下さい。
ほふった後はもう一度方向を押さずにダッシュして下さい。
このダッシュの間は無敵になってるのでおトクです。
で敵に近づいたらもう一度攻撃、これが殺陣です。
この間は攻撃力に表示されている倍率がかかります。

最初の画面でしばらく放置するとデモが流れます。
それを見ると雰囲気がつかめるかと思います。

○ ちゃんとした操作説明

方向と一緒に押すことによってその方向にダッシュできます。
普段の移動に使うと良いでしょう。
これをノーマルダッシュと呼びます。

自機から敵に向けて直線が出ていますが、
最も近い敵が画面内にいる場合、その線は点滅しているはずです。
方向を押さずにダッシュボタンを押すことによってその敵に向けて走ります。
これをクイックダッシュと呼びます。

クイックダッシュ中に A ボタンを押すことによって
クイックダッシュ攻撃が出ます。
これは普段の攻撃より攻撃範囲が狭くなっています。

攻撃が敵に命中して敵が死んだ場合、敵の周りの弾が消え、得点になります。
敵はバリアをはっている間はダメージを半分しか受けません。
通常時の攻撃力は 1 で、ザコの体力も 1 です。
つまりバリアをはっていないザコは一撃で倒せます。

ザコじゃない敵は青っぽい弾を吐くので注意して下さい。
後半のザコっぽいけど青い弾を吐く連中は 2 の体力を、
どまんなかに出てくる形の違うヤツは 5,7,10 の体力を持ってます。

敵が死んだ直後に A ボタンを押すと、最も近い敵に連続攻撃をしかけます。
この攻撃は攻撃範囲が非常に広くなっています。
また、この攻撃中は自機は完全無敵となっています。

敵が死んだ直後に B ボタンを押すと、ある程度近い距離に敵がいる場合、
その敵に向かって持続時間の長いクイックダッシュを行います。
このダッシュの間は、自機は完全無敵となっています。
また、このダッシュの間に出した攻撃中も完全無敵です。

上記二つの完全無敵状態は、敵を殺し続ける限り続きます。
安全な上に得点も高いので、できる限り頑張って殺陣って下さい。

「敵が死んだ直後」はちょうど一秒間あります。
あせってボタンを連打する必要はありません。
この間に方向キーを入れることによって、
次のターゲットの敵を変えることができます。
これによってなるべく長くコンボを維持できる順序を考えられます。

20パターン撃破するとゲームは終了します。

○ EASYモードについて

NORMALモードは後半が鬼のようだったので反省して簡単なモードも作りました。
このモードでは敵のバリアによって攻撃力が半減しません。
また、敵の数や敵弾が少なかったりします。

○ ENDLESS モードについて

最初は普通の NORMAL ですが、 Pattern21 以降があります。
Pattern21 以降は敵の体力が 1.5倍、 41 以降は 2.0 倍…
と 0.5倍ずつ敵の体力が増えていきます。
昔のファミコンとかのゲームのような増え方を。
もし 60 を越えればかなりえらいと思います。

○ 詳細

スコアについて

敵はライフ*10000点持ってます。それに倍率がかかります。
弾を消すと点数が加算され、それにも倍率がかかります。

弾は消える際にそれまでに消した弾の数*10点です。
具体的に書きますと、コンボ中に10個弾を消した状態で5個の弾を消すと、
(11+12+13+14+15)*10*倍率の点数が入ります。
ただし、この弾消し累計は 100までしかカウントされません。
コンボ中に100個弾を消した状態で5個の弾を消すと、
(100+100+100+100+100)*10*倍率の点数が入ります。

残時間 1フレームに付き 1000点
敵を全部倒すと 100万点
残機ボーナス一機 20万点
ノーミスだと 200万点

○ スコアサーバ

リプレイを保存した後にリプレイを送ることができます。
送られたリプレイは同じ名前の人が既にそれより高い点数を
取っていない状況でのみサーバに保存され、ランキングが変動します。

"NET REPLAY" によってスコアサーバ上のリプレイを見ることもできます。
一度見ると保存されるため、REPLAY の項目にも現れます。

ランキングはブラウザで見ることもできます。
http://shinh.skr.jp/psyno/scoreserv.cgi

古いバージョンのリプレイは再生できるようにするつもりです。
新しいバージョンのリプレイを古いバージョンで再生することはできません。

○ その他

ご意見ご感想はお気軽にメールなりなんなりと。

ライセンスは GPL2 です。
http://www.gnu.org/copyleft/gpl.html
http://www.opensource.jp/gpl/gpl.ja.html

ダッシュのシステムなどはサイキックフォースから、
殺陣のシステムなどは SHINOBI から影響を受けているはずです。

○ 感謝

mineletさんの Digitalized Heaven を使わせてもらってます。
ご快諾いただき、感謝感激でございます。
http://fakesystem.jpn.org/

SDL に感謝。
http://www.libsdl.org/
クロスプラットフォームなゲームライブラリ。
とにかく抜群の信頼性。自分のプログラムに集中できます。
低レベル過ぎるのがちと最初は酷だけど、
慣れるとサブライブラリの選択が楽しいのもまた魅力。

SDL_mixer に感謝。
http://www.libsdl.org/projects/SDL_mixer/
SDL の音楽関係のサブライブラリ。
なんか色んなフォーマットの音楽が統一インターフェイスで鳴るのです。

SDL_net に感謝。
http://www.libsdl.org/projects/SDL_net/
D の std.socket がどうもアレなので。

OpenGL に感謝。
http://www.opengl.org/
有名すぎて説明する気も起きませんけど。

Portable Coroutine Library (PCL) に感謝。
http://xmailserver.org/libpcl.html
fiber 作るライブラリです。
自分で対応プラットフォームを増やしてます。
http://d.hatena.ne.jp/shinichiro_h/20041019#1098112971
自分的には、 D言語+PCL はかなり無敵なゲーム製作環境な気がしています。
とてもラクチン。 enemy_move.d などを参照されたし。

Mersenne Twister に感謝。
http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/mt.html
これがないとリプレイ実装する気が起きません。

SDL_pad を使っています。
http://shinh.skr.jp/sdlpad/
SDL のちょっとしたラッパです。

glbf を使っています。
http://shinh.skr.jp/glbf/
bitmap font を描画するライブラリです。

東風を使っています。
今はどこにリンクをはったら良いのだろう…

○ TODO

・GC対策

以下はやらない可能性大。

・きちんと説明書を書くとか。
・チュートリアル作るとか。
・英語のドキュメント書くとか。

○ 更新履歴

0.1.0 作った
0.2.0 自機死亡をハデに。自機死亡時に弾消し(リプレイバージョンアップ)。
      リプレイ選択画面での Access Violation を解消。
      フルスクリーン時にマウスカーソルを消した。
      付属の config.exe をちゃんと動くように。
      背景の種類が増えた。
      背景を正しくシンクロするようにした。
      アイコンをつけてみたり。
      パーティクルのα値調整。
0.2.1 リプレイ選択画面での Access Violation を解消(またか)。
      "send replay?" で NO と言えるように。
      線にアンチェリを。設定でオフにできるように。
      プロキシ対応。 Basic認証はできてるかわからない。
      死亡からの復活時にエフェクトを。
0.3.0 GDC でコンパイル/実行できるように。
      OSX の GDC 向けの FIX。(stacksize, array copy, sword, nested class)
      ダメージ時もダッシュできるように。(リプレイバージョンアップ)
      EASYの真ん中の敵の体力を少し減らした。(リプレイバージョンアップ)
      すごくいい加減に英語ドキュメント
      DMD-0.109対応

------------------
 shinichiro.h
  s31552@mail.ecc.u-tokyo.ac.jp
  http://shinh.skr.jp/