2011-02-15 Tue [ ゲームについて ]
がまぐに2号でも投稿プログラムを書かせてもらいました。
時間がなくて、ギリギリで作っていたら、一度もハングしたことのなかったsmall basicがハングしてくれて、しかも全然セーブしてなくて、いやーマーフィの法則キタア! って感じで、ヤケクソで前回のプログラムを大急ぎで書き直し、2時間チョットで作ったゲームを渡すハメになりました。
次こそはああああ…もうちょっとマシなゲームを…ぐはっ
時間がなくて、ギリギリで作っていたら、一度もハングしたことのなかったsmall basicがハングしてくれて、しかも全然セーブしてなくて、いやーマーフィの法則キタア! って感じで、ヤケクソで前回のプログラムを大急ぎで書き直し、2時間チョットで作ったゲームを渡すハメになりました。
次こそはああああ…もうちょっとマシなゲームを…ぐはっ
2011-01-15 Sat [ ゲームについて::イロイロ ]
もともと、ニコ生に出たことから話は始まる。
ニコ生に出るとき、古いモノを持ってきてくれると盛り上がるというので21年前のCDを引っ張り出し作りかけのイースを持っていって見せた。ところが、それを見ていたPCエンジンマニアの外人がいて、なんとFacebook経由で「未完成版のイースを売ってくれ」と言ってきた。
僕は売る気はないと、蹴っ飛ばしていたのだが、しつこくして結構面倒くさかった。
(ぶっちゃけると、今でもメールがやってきている。返事出さずに無視してるけど)
で、それについてツイートしたところ「開発版」と「製品版」の違いの話になった。
基本的には開発版にはレアリティ以外なんのいいところはない。だいたい開発途中だからバグはあるし、最後までプレイ出来ないことがほとんどだ。デバッグコマンドが使えたところで、製品版との互換性がない場合が多いし、本当にコレクターアイテムでしかないと思う。
当たり前だが、作っている途中の未完成品なのだから、メリットなどほとんどないに等しいのだが、ただ、開発版の、特にPCエンジン時代のCDROMには製品版にはない人によっては大きなアドバンテージがある。
それは音楽だ。
例えばイース1・2では声優さんの声が音楽にミックスダウンされているので、オープニングのFeenaやリリアの曲は、音楽として聞けるトラックはCDDAとして入っていない。ところが、製作途中ではミックスダウンされていないバージョンが存在するので、オープニング・フィーナの2つをサウンドトラックとして聞くことが出来る。また米光さんのボスのアレンジは実は2つあり、最初の1個はボツになっているが、これは開発版の一部以外では聞くことが出来ない。
またエメドラでは福田さんにたった一曲ボツ出しした(ラスボスの曲が天外2のラスボスに似た印象があった)曲があるのだが、それを聞くことが出来たりする。
だからPCエンジン時代のCDでは、開発版にはメリットがないわけではない。しかし、そういや、自分の関係したゲームで一番曲が好きなのはエメドラなんだよなあ…てなことをツイートしたらである。
と、とんでもないことを言ってきたので「PCエンジン版では直したわいっ!w」と返したところ…
ここで、お分かりにならないであろう人のために、タムリン問題を説明しておこう。
タムリンとはRPG、エメラルドドラゴンのヒロインで、序盤からずっとプレイヤーの分身たるアトルシャンと共に行動をする。
またエメラルドドラゴンでは戦闘でプレイヤーキャラ以外を操作することが出来ず、「命令」コマンドである程度コントロールすることしかできない。また魔法については一切コントロール出来ない。言い換えると、他のメンツはAIで行動し、プレイヤーはハラハラしながら見ていることしか出来ない。そしてPC88版では(多分すべてのPC版)、最初からいるタムリンは、パーティの貴重な回復役なのだが、通称タムリンレーザーと呼ばれる攻撃魔法レイヴァース習得後、ヒール(回復魔法)を唱えなくなって味方を見殺しにする…というので非常に有名だった。
これをもって「タムリンは馬鹿」というイメージが出来上がっていたわけだ。
ところがPCエンジン版のエメドラではタムリンはちゃんとヒールを使うので、賢い! と言われたし、@Non110 さんには驚かれたわけだが、これはPCエンジン版が賢い…というよりも、恐るべきPC版の仕様から来る問題で、PC版がバカになったわけではなかったのだ。
こんなものはソースを見たことがある人間以外は知る由もない事実だが、実はPC版ではAIが覚えられる魔法は4つしかない。
そしてタムリンレーザー覚えるときに、ヒールを潰してタムリンレーザーを覚える。
つまりPC版ではタムリンレーザーを覚えると同時にヒーラーとしての能力を失ってしまう世にも恐ろしい仕様だったのだ。
しかも、そんなことユーザーが分かるわけはない(どれだけの魔法を使えるのかなどをユーザーが知る方法は全くない)。だからユーザーはありもしないヒールを期待して、ヒールを持たないタムリンに見殺しにされて死んでいたわけだ。
つまり、PC版では「あるときを境に、ヒールを忘れてしまうタムリンのヒールを期待して死んでいた」わけだ。
というようなことを説明していたら、エメドラの原作者曰く
お後がよろしいようで。
ちなみに、飯君は、現在パタポンシリーズのディレクターをしていて、もうすぐパタポン3の発売である。
■公式ページ
■体験版ダウンロードページ
PSNに体験版も置かれている。面白いと思ったら買ってあげてください。
ニコ生に出るとき、古いモノを持ってきてくれると盛り上がるというので21年前のCDを引っ張り出し作りかけのイースを持っていって見せた。ところが、それを見ていたPCエンジンマニアの外人がいて、なんとFacebook経由で「未完成版のイースを売ってくれ」と言ってきた。
僕は売る気はないと、蹴っ飛ばしていたのだが、しつこくして結構面倒くさかった。
(ぶっちゃけると、今でもメールがやってきている。返事出さずに無視してるけど)
で、それについてツイートしたところ「開発版」と「製品版」の違いの話になった。
基本的には開発版にはレアリティ以外なんのいいところはない。だいたい開発途中だからバグはあるし、最後までプレイ出来ないことがほとんどだ。デバッグコマンドが使えたところで、製品版との互換性がない場合が多いし、本当にコレクターアイテムでしかないと思う。
当たり前だが、作っている途中の未完成品なのだから、メリットなどほとんどないに等しいのだが、ただ、開発版の、特にPCエンジン時代のCDROMには製品版にはない人によっては大きなアドバンテージがある。
それは音楽だ。
例えばイース1・2では声優さんの声が音楽にミックスダウンされているので、オープニングのFeenaやリリアの曲は、音楽として聞けるトラックはCDDAとして入っていない。ところが、製作途中ではミックスダウンされていないバージョンが存在するので、オープニング・フィーナの2つをサウンドトラックとして聞くことが出来る。また米光さんのボスのアレンジは実は2つあり、最初の1個はボツになっているが、これは開発版の一部以外では聞くことが出来ない。
またエメドラでは福田さんにたった一曲ボツ出しした(ラスボスの曲が天外2のラスボスに似た印象があった)曲があるのだが、それを聞くことが出来たりする。
だからPCエンジン時代のCDでは、開発版にはメリットがないわけではない。しかし、そういや、自分の関係したゲームで一番曲が好きなのはエメドラなんだよなあ…てなことをツイートしたらである。
@DARL_Japan: @snapwith エメドラはやった事無いので、タムリンが(仲間が)死ぬほど馬鹿と言う事しか知りません。キリッ
と、とんでもないことを言ってきたので「PCエンジン版では直したわいっ!w」と返したところ…
@Non110: @snapwith えええ! PCエンジンのタムリンは賢いんですか!!!
ここで、お分かりにならないであろう人のために、タムリン問題を説明しておこう。
タムリンとはRPG、エメラルドドラゴンのヒロインで、序盤からずっとプレイヤーの分身たるアトルシャンと共に行動をする。
またエメラルドドラゴンでは戦闘でプレイヤーキャラ以外を操作することが出来ず、「命令」コマンドである程度コントロールすることしかできない。また魔法については一切コントロール出来ない。言い換えると、他のメンツはAIで行動し、プレイヤーはハラハラしながら見ていることしか出来ない。そしてPC88版では(多分すべてのPC版)、最初からいるタムリンは、パーティの貴重な回復役なのだが、通称タムリンレーザーと呼ばれる攻撃魔法レイヴァース習得後、ヒール(回復魔法)を唱えなくなって味方を見殺しにする…というので非常に有名だった。
これをもって「タムリンは馬鹿」というイメージが出来上がっていたわけだ。
ところがPCエンジン版のエメドラではタムリンはちゃんとヒールを使うので、賢い! と言われたし、@Non110 さんには驚かれたわけだが、これはPCエンジン版が賢い…というよりも、恐るべきPC版の仕様から来る問題で、PC版がバカになったわけではなかったのだ。
こんなものはソースを見たことがある人間以外は知る由もない事実だが、実はPC版ではAIが覚えられる魔法は4つしかない。
そしてタムリンレーザー覚えるときに、ヒールを潰してタムリンレーザーを覚える。
つまりPC版ではタムリンレーザーを覚えると同時にヒーラーとしての能力を失ってしまう世にも恐ろしい仕様だったのだ。
しかも、そんなことユーザーが分かるわけはない(どれだけの魔法を使えるのかなどをユーザーが知る方法は全くない)。だからユーザーはありもしないヒールを期待して、ヒールを持たないタムリンに見殺しにされて死んでいたわけだ。
つまり、PC版では「あるときを境に、ヒールを忘れてしまうタムリンのヒールを期待して死んでいた」わけだ。
というようなことを説明していたら、エメドラの原作者曰く
@Atsushi_Ii 飯淳 Ejun
バカな娘ほど可愛いと申しまして…w RT @snapwith: PCエンジン版では直したわいっ!w QT @DARL_Japan: @snapwith エメドラはやった事無いので、タムリンが(仲間が)死ぬほど馬鹿と言う事しか知りません。キリッ
バカな娘ほど可愛いと申しまして…w RT @snapwith: PCエンジン版では直したわいっ!w QT @DARL_Japan: @snapwith エメドラはやった事無いので、タムリンが(仲間が)死ぬほど馬鹿と言う事しか知りません。キリッ
お後がよろしいようで。
ちなみに、飯君は、現在パタポンシリーズのディレクターをしていて、もうすぐパタポン3の発売である。
■公式ページ
■体験版ダウンロードページ
PSNに体験版も置かれている。面白いと思ったら買ってあげてください。
2010-12-18 Sat [ ゲームについて ]
がまぐ公開されておめでとうござます…と投稿した身で書いているのもなんだけど、それはともかくとして。
がまぐに参加してくれと言われたとき、小さなプログラムを書くツールとしてSmall Basicを使った。
前のポストで使った印象として、小さくて・簡単でわかりやすいが、反面、30年間のソフトウェア技術の進歩を否定するような代物だ…と書いたわけだが、そのあとしばらく考えて思ったことを書きたい。
少なくとも、プログラムの初心者、ホビイストには、構造化プログラムはともかくとして、ローカル変数も型の宣言もオブジェクトもクラスも、テンプレート(ジェネリックプログラミング)も、およそ30年間のプログラム技術の(論理的な)進歩のほぼすべては「必要ない」ということだ。
(正確にはオブジェクトとクラスはWindowsの.netの構造上、ある程度顔は出してくるけれど)
なぜなら、プログラムの初心者・ホビイストは共同作業をしない。だから影響をローカルにする必要がない。つまり影響をローカルに抑えるための様々な機能、名前空間・スコープ宣言、そういったものは一切必要ない。だいたいSmall Basicは複数のソースコードを扱えない。
もちろんクラスなんていらない。まず再利用することがないのにクラス作ったってしょうがない。ジェネリックプログラムもそうだ。抽象化は本質的には再利用・バグを作らないためで、抽象化されたレベルのプログラムをするのは初心者には常に難しい。
変数宣言しない変数は文句を言われるよりも「いきなり使ってるのに初期化してない」チェックだけして、あとはインテリセンスに頼るほうが初心者には楽だ。
サブルーチンが引数を取れないときには腰を抜かしたし、ローカル変数ないのもびびったけれど、せいぜい数百行(例えばcannonballは200行ほど)、1000行あれば信じられないほど大きいという範囲のプログラムで、そんな機能がいるか、全くギモンだ。だいたい関数にすると、戻したい変数が増えるに従って、配列戻しの概念だのが出てきて、遥かに複雑化する。ともかく使った変数は世界中から見えてしまうほうが楽なのは確かだ。
構造化がどれほど必要かすら疑問だ。もちろん構造化は最低できないと困るが、small basicでは、if-then-elseやwhile文によって、goto文は絶対に必須ではなくなる程度には構造化はサポートされている。
また、下手にループからの脱出にbreak用意するぐらいならgotoの方が初心者にはわかりやすいのも事実だ。
と、考えていくと、この30年ほどのプログラム技術の進歩の大半は「巨大なプログラムを作ったとき、それを無駄にせず、出来るだけ再利用し、多人数で作ってもトラブルが発生しないようにする」ために発達してきたもので、初心者やホビイストに必要な技術ではないのだ、と思えるようになった。
そして、遥か遠い昔、32年ほど前に使われていたTiny Basicにいくつか構造化のための文法を付け加えたsmall basicは、実は初心者やホビイストにとって十分に意味のある言語だな、と思ったのだった。
がまぐに参加してくれと言われたとき、小さなプログラムを書くツールとしてSmall Basicを使った。
前のポストで使った印象として、小さくて・簡単でわかりやすいが、反面、30年間のソフトウェア技術の進歩を否定するような代物だ…と書いたわけだが、そのあとしばらく考えて思ったことを書きたい。
少なくとも、プログラムの初心者、ホビイストには、構造化プログラムはともかくとして、ローカル変数も型の宣言もオブジェクトもクラスも、テンプレート(ジェネリックプログラミング)も、およそ30年間のプログラム技術の(論理的な)進歩のほぼすべては「必要ない」ということだ。
(正確にはオブジェクトとクラスはWindowsの.netの構造上、ある程度顔は出してくるけれど)
なぜなら、プログラムの初心者・ホビイストは共同作業をしない。だから影響をローカルにする必要がない。つまり影響をローカルに抑えるための様々な機能、名前空間・スコープ宣言、そういったものは一切必要ない。だいたいSmall Basicは複数のソースコードを扱えない。
もちろんクラスなんていらない。まず再利用することがないのにクラス作ったってしょうがない。ジェネリックプログラムもそうだ。抽象化は本質的には再利用・バグを作らないためで、抽象化されたレベルのプログラムをするのは初心者には常に難しい。
変数宣言しない変数は文句を言われるよりも「いきなり使ってるのに初期化してない」チェックだけして、あとはインテリセンスに頼るほうが初心者には楽だ。
サブルーチンが引数を取れないときには腰を抜かしたし、ローカル変数ないのもびびったけれど、せいぜい数百行(例えばcannonballは200行ほど)、1000行あれば信じられないほど大きいという範囲のプログラムで、そんな機能がいるか、全くギモンだ。だいたい関数にすると、戻したい変数が増えるに従って、配列戻しの概念だのが出てきて、遥かに複雑化する。ともかく使った変数は世界中から見えてしまうほうが楽なのは確かだ。
構造化がどれほど必要かすら疑問だ。もちろん構造化は最低できないと困るが、small basicでは、if-then-elseやwhile文によって、goto文は絶対に必須ではなくなる程度には構造化はサポートされている。
また、下手にループからの脱出にbreak用意するぐらいならgotoの方が初心者にはわかりやすいのも事実だ。
と、考えていくと、この30年ほどのプログラム技術の進歩の大半は「巨大なプログラムを作ったとき、それを無駄にせず、出来るだけ再利用し、多人数で作ってもトラブルが発生しないようにする」ために発達してきたもので、初心者やホビイストに必要な技術ではないのだ、と思えるようになった。
そして、遥か遠い昔、32年ほど前に使われていたTiny Basicにいくつか構造化のための文法を付け加えたsmall basicは、実は初心者やホビイストにとって十分に意味のある言語だな、と思ったのだった。
2010-12-11 Sat [ ゲームについて ]
Twitter上で、たまたま参加してしまったので宣伝。
#gamag というハッシュタグで行われている活動で、昔のマイコンベーシックマガジンみたいなプログラム初心者向けの雑誌(pdf)を作ろう、という活動をしている人達がいる。
サイトは
■ ゲーム制作雑誌 執筆者+読者サイト
■ 現在の誌面
作っている人達は、ほぼTwitterで集まっている。
たまたま、投稿用のゲームを書いてくれないか…という話になり、他の人達が、XNAとかJavaとかけっこー高級な言語で作っている中、自分の知る限りで、およそどんな言語よりWindows上で(簡単な)プログラムを書く上では最強に楽なSmall Basicを使って、手抜きなゲームを一個投稿させてもらった。
ちなみにSmall Basicは楽しくもひどい言語だ。以下、Small Basicの驚くべき能力の列挙w
・大域変数しかない
・配列宣言ない
・変数に型はない
・サブルーチンが引数取れない
・戻り値もない
・ループからbreakする方法がgotoしかない
・try...catchなどのエラーハンドリングがない。
・配列などの初期化記述がない。
はっきり書くなら近代的な高級言語と呼べるようなモノではなく、この30年ほどの、ダイクストラや、ヴィルト先生や、さまざまな人物が連綿と作り上げてきたソフトウェア工学全否定して、32年ぐらい過去に戻って、Tiny Basicが甦ってきたとしか思えないような代物だが…Windowsでグラフィックとマウスを扱う上では、これより簡単な言語はない、と断言できるほど簡単なうえに、恐ろしく楽しい。
やっぱり簡単に・グラフィックが動かせて・結果がすぐ見れるというのは本当に大事だと思った。
遥か遠い昔、BASICでマイコンBASICマガジンに投稿していた人も、プログラム素人も、誰でも遊べるレベルの約束が恐ろしく少ない、超簡単言語として、ぜひ遊んでみて欲しい…と思ってしまったのだった。
・Small Basicホーム
・Small Basic日本語リファレンス
#gamag というハッシュタグで行われている活動で、昔のマイコンベーシックマガジンみたいなプログラム初心者向けの雑誌(pdf)を作ろう、という活動をしている人達がいる。
サイトは
■ ゲーム制作雑誌 執筆者+読者サイト
■ 現在の誌面
作っている人達は、ほぼTwitterで集まっている。
たまたま、投稿用のゲームを書いてくれないか…という話になり、他の人達が、XNAとかJavaとかけっこー高級な言語で作っている中、自分の知る限りで、およそどんな言語よりWindows上で(簡単な)プログラムを書く上では最強に楽なSmall Basicを使って、手抜きなゲームを一個投稿させてもらった。
ちなみにSmall Basicは楽しくもひどい言語だ。以下、Small Basicの驚くべき能力の列挙w
・大域変数しかない
・配列宣言ない
・変数に型はない
・サブルーチンが引数取れない
・戻り値もない
・ループからbreakする方法がgotoしかない
・try...catchなどのエラーハンドリングがない。
・配列などの初期化記述がない。
はっきり書くなら近代的な高級言語と呼べるようなモノではなく、この30年ほどの、ダイクストラや、ヴィルト先生や、さまざまな人物が連綿と作り上げてきたソフトウェア工学全否定して、32年ぐらい過去に戻って、Tiny Basicが甦ってきたとしか思えないような代物だが…Windowsでグラフィックとマウスを扱う上では、これより簡単な言語はない、と断言できるほど簡単なうえに、恐ろしく楽しい。
やっぱり簡単に・グラフィックが動かせて・結果がすぐ見れるというのは本当に大事だと思った。
遥か遠い昔、BASICでマイコンBASICマガジンに投稿していた人も、プログラム素人も、誰でも遊べるレベルの約束が恐ろしく少ない、超簡単言語として、ぜひ遊んでみて欲しい…と思ってしまったのだった。
・Small Basicホーム
・Small Basic日本語リファレンス
2010-12-08 Wed [ ゲームについて::イロイロ ]
ニコ生出たとき「ときメモの話をしてくれ」とコメントに流れていて、喋りたかったんだけど、返事できなかったのでここで。
この文で「ときメモ」というのはときめきメモリアル1を指すと思ってもらっていい。
さて、PCエンジン版『ときメモ』を短くまとめると、以下のテキストになる。
微妙に今の人が思っている『ときメモ』と違うだろう。当たり前だ。
『ときメモ』は恋愛育成ゲームと呼ばれるジャンルが登場する前のゲームで、上記シナリオは企画者が想定した『ときメモ』のプレイ。
企画者達の描いた上記のプレイシナリオに、当時レビューをした僕はあっさりかかった。
だいたい雑誌に来た広報資料に「藤崎詩織にふさわしい男になるために3年間の高校生活で自分を鍛える」と書いてあったし、その他大勢のヒロインの事なんて一言も書いていなかった(マルチエンド程度は書いてあったはずだが、マルチエンドもプリンセスメーカー系では当たり前だ)。
だから本当に幼馴染の藤崎詩織を落とすために自分を鍛える『プリンセスメーカー』だと思ってプレイを始めたし、まさかパラメータの一つ一つに合わせてヒロインが設定されていて、山のようにいるなんて想像もしていなかった。
そして当たり前だが、パラメータは上げれば上げるほどいいのがゲームの常識だ。だいたい「才色兼備のパーフェクトヒロイン、藤崎詩織を落とせ」と言われているんだから、全パラメータ上げ倒せばいい、と思うに決まってる。で、パラメータを上げると、次から次へとヒロインが現れ、爆弾処理でグチャグチャになって、後半はデートを管理するために必死で目を血走らせる、とてもゲームとして面白いものになっていた。
続きを読む▽
この文で「ときメモ」というのはときめきメモリアル1を指すと思ってもらっていい。
さて、PCエンジン版『ときメモ』を短くまとめると、以下のテキストになる。
プレイヤーは「3年の間に藤崎詩織にふさわしい男になれ(落とせ)」という目標とともに、当時流行していた『プリンセスメーカー/卒業/誕生』型のパラメータゲームに見えるものを渡される。藤崎詩織は才色兼備の究極キャラ。だからプレイヤーはしゃかりきになってパラメータを上げる。するとパラメータをトリガーにして女の子が山のように現れる。その山のように出てくる女の子の誰かを好きになってもいいし、藤崎詩織を目指してもいい。ともかくプレイヤーはモテすぎて、女の子に振り回される地獄の学園ライフを送り、そして女の子に告白される日を迎える。
微妙に今の人が思っている『ときメモ』と違うだろう。当たり前だ。
『ときメモ』は恋愛育成ゲームと呼ばれるジャンルが登場する前のゲームで、上記シナリオは企画者が想定した『ときメモ』のプレイ。
企画者達の描いた上記のプレイシナリオに、当時レビューをした僕はあっさりかかった。
だいたい雑誌に来た広報資料に「藤崎詩織にふさわしい男になるために3年間の高校生活で自分を鍛える」と書いてあったし、その他大勢のヒロインの事なんて一言も書いていなかった(マルチエンド程度は書いてあったはずだが、マルチエンドもプリンセスメーカー系では当たり前だ)。
だから本当に幼馴染の藤崎詩織を落とすために自分を鍛える『プリンセスメーカー』だと思ってプレイを始めたし、まさかパラメータの一つ一つに合わせてヒロインが設定されていて、山のようにいるなんて想像もしていなかった。
そして当たり前だが、パラメータは上げれば上げるほどいいのがゲームの常識だ。だいたい「才色兼備のパーフェクトヒロイン、藤崎詩織を落とせ」と言われているんだから、全パラメータ上げ倒せばいい、と思うに決まってる。で、パラメータを上げると、次から次へとヒロインが現れ、爆弾処理でグチャグチャになって、後半はデートを管理するために必死で目を血走らせる、とてもゲームとして面白いものになっていた。
続きを読む▽