……

フリクラでスクショが公開された!
前もって用意出来る皆さんが素晴らしい……。


地味に開発中……エヘヘ……。
マップチップがまだ一種類しかないから付け足したいのだけど……やるべきことが多すぎて手付かず。


今回のゲームで、Luaを多用。
あらためてLuaすげー。

function Obj:call_operation(
	-- オペレーションをコール(ちょーごーいん)
	)
	
	return assert(loadstring(string.format("pcall(%s, self.op)", self:get_value("operation"))))();
end

こんなことが出来るよ!
何をしているかというと、関数の文字列を生成し、引数渡しでcallしている。
荒業中の荒業……そしてカオスだね、エヘヘ……。


でもさ、名前(文字列)だけで、関数をcall出来るからCの関数ポインタよりも柔軟。
しかも、引数さえも文字列で埋めることが出来る……うひゃひゃ。


あと、Lua自身で値をストックできる(おそらく_Gにストック)けど、Luaが暴走したときにリオープンしたいから、
値を保持するのをすべてC側にしてみた……。
これで、Luaのエラーも怖くない!
まあ、そもそも、エラーを前提に作るのもどうかと思うが……外部スクリプトは怖いよね、実際……。

ピスコン感想

http://px-minicon.blogspot.com/

どれも、素晴らしい曲。
ピストンコラージュの無限の可能性を感じたよ!


以下、個別感想。
順番に意味無いよ……聴いた順?
二行にて簡素に感想。
「→」は、現時点で投票するとしたら……これに入れるだろうなと。
もう少し、聴いて投票するよ!


・ワスレモノ
ノリノリですな。
同じ旋律を効果的に用いて心地良いリズムを作り出しています!


・動機なき動機
機械的な音が素敵!
パンの振り方がカッコ良い、素敵な世界観〜。


・錯光
戦闘の曲に用いたら盛り上がりそう、シュパーン。
小刻みなドラムのリズムに心躍る!


・飛び立てロケット
七拍子で、ここまで表現できるとは!
爽やかなロケットが目に浮かびます、ツボです!
→曲の質の良さなどから、「良い曲だな」と思った曲


・塀を跳び屋根へと
ニャアオの鳴き声がかわいい!
お魚をくわえた猫のお散歩が思い浮かび、ほのぼの。


・鳴動
リズミカル!
途中、しっとりな雰囲気も加味しつつまとまった良い雰囲気。


・旅に出かけたヨー
市販ゲームのオープニングにあってもおかしくない!
旅に出かけたくなる曲!
→音楽性などから、「良い曲だな」と思った曲


・死闘 〜I must…〜
RPGの戦闘曲にぴったり!
ぴこぴこが心地良い、あと後半の変調への流れも好き。


・519
宇宙との交信してるみたいな不思議な雰囲気。
独特な和音とリズム……予知できない曲進行が素晴らしい!


・無題
オリエンタルな雰囲気、音の広がりがすごい……。
イヤホンで聴いていると脳に刺さりそうです(良い意味で)。


・爆発女王グルービング・ベルのテーマ
素晴らしい構成、そして、完成度!
微笑ましい、そして、素敵な歌詞入り! ミクやっぱいいですね♪


・HEART BEAT
ロック魂を感じます!
もしや、肉声……? そして、ノリノリのギター!


・Satellite:Moon
音の広がりが素晴らしい!
主旋律に酔いしれます、一押し!
→全ての点において、一番好きな曲


・海に惹かれて
ピアノ主体の朗らかな曲調。
抑揚が、まるで、押し寄せる波のようです、素晴らしい構成!


・A Little Bomber's Time Capsule
これはすごい、ベース音がツボです!
素晴らしい完成度と構成と疾走感、心地よい曲です!


・宇宙飛行士
音の切り方が独特!さまざまな音が押し寄せる不思議な曲。
タイトルは「宇宙飛行士」だけどなぜかサムライを思い浮かべてしまいました。


・U.F.P.〜Curiosity Remix〜
ノリノリな曲、ハウス調なリズムが良い!
フェードアウトしてるのは何気にこの曲だけかも、U.F.P.は何かの略なんだろうか……。

せいぞん・ほうこく

次のフリクラは出る回だから(謎)DAEDALUSだと間に合わないから間に合わせるための別ゲームを出すよ。
DAEDALUSに期待してる方ごめんなさい……。
あと、間に合わせゲーを期待してない方ごめんなさい……。
yamaharaのゲーム製作は間に合わせの連続である!(謎パート2


DSのSAGA2を購入。
以前、はてなで言ったかもだけど、SAGA2が大好きだった。
ちょー懐かしい〜、このリメイクはいいね!
曲も原曲を損なってないし、聴いただけで、あの当時のわくわくした記憶がよみがえる!


SAGA2購入までは、ドラクエ9の練金をしてたけど、しばらく、SAGA2にどっぷりかも。
ちなみに、ドラクエの練金は68%……コンプまでには程遠いよ、嗚呼。


パズルゲーとか作っているが、何気にRPGが好きだったりするよ。
エヘヘ。

エラーを出すということ

拍手どうもありがとう〜。


今日は、ゲームとはあまり関係ないプログラミングの話。
プログラミング言語C(以下C)を使い始めて、数年になる。
ので、あえて語ってみる。


Cでは、コンパイルが通るが、使用方法を間違えると簡単に不正な処理のエラーが出てしまう。
これが、良くも悪しくもCの「難解」と言われる所以かもしれない。
Cにおいて重要なのは、このエラーに応じるスキルアップしかない。
なぜ、不正な処理が出るのかというと、大抵の要因は不正なメモリ領域の参照、つまりポインタの扱い如何である。
他のプログラミング言語の使い手にとっては、C特有のポインタとの戦いは、滑稽に見えるかもしれない。
「なぜ、彼等は見えない敵と戦っているのだろうか」と。
だが、私に言わせれば、C以外の言語に存在する、さまざまな仕様──関数を覚え、
使いこなすために、関数を覚え続けなければならないということに甚だいぶかしく感じてしまう。
「ここで、こういう処理をするためには、この関数を使う必要がある」というのを
辞書を引いて探すという言語、それは、プログラミングではなくて、
バラバラになったピースを集めて、ひとつの形にしているだけのものだと思われる。
用意された部品を集めて、誰もが同じように作ることのできるプラモデルようなもの──
つまり、方法さえわかれば、誰でも作ることが出来るというのは、なんだか味気ない気のする。
「エラーが出なくて、誰でも同じものが作れればそれで良い」とは、ごもっともだ。
わざわざCを選ばずに、簡易な手続きで、さまざまなことができる言語を選べばよいと思う。
そこは、価値観の違いだ。
ただ、私は、最初に触れたプログラミングがCであったことが、素直に嬉しい。
その理由は、単純に言えば、Cのプログラミングとしての純粋さだ。
Cでは、最低限のものしか用意されていない。
つまり、Cを理解するのは、その最低限のものだけを理解すれば事足りるのである。
で、その最低限のものの中に、ポインタというものが含まれている、ただそれだけである。


私は、タイピングすらままならぬ中で、Cの習得を始めた。
その頃は、ブラインドタッチも出来なかったので、午前中はブラインドタッチの練習、
午後は、渡されたCの本を最初から読んでいくというものだった。
プログラミング言語C 第2版 ANSI規格準拠」
渡されたこの本を一か月かけて、読み終えたときは、
正直に白状してしまえば、ポインタを理解していなかったのだろう。
つまりは、エラーをしょっちゅう出していたのだ。
今にして思えば、エラーを出すというのが重要だった。
前述のとおり、Cにおけるエラーといえば、不正な処理である。
しっかりと理解していないポインタを避けるために文字列をとって、
いろいろと関数を駆使してやっているソース。
そこでも容易に不正な処理が出てしまう。
で、あれこれと悩んで、ようやく文字列も単なるメモリー領域の確保に過ぎないと理解する。
行き着く先は、やはり、ポインタなのである。
さて、この、悪しき元凶と思しきポインタ。
「あそこやここで、エラーを吐きまくってなんというとんでもない代物だ」と思ってしまう時機を経て、
その思いがぽつりと折れてしまうと、
なんてことはない、エラーをはいてくれるだけありがたいではないか、
と、ある意味達観出来てしまうのである。
エラーが出て、人は、悩むものだ。
エラーを繰り返すことによって、無能の私も、
エラーを回避しなければならないという教訓を体に叩き込むことに成功する。
「ナアニ、エラーを出しているのは、ポインタではない、プログラミングをしている自分自身だ」ということを。
ここで、ようやく、ポインタと対峙できるわけだ。
「ポインタは、せいぜい4バイトしかない。そんなのに、ビビってしまってどうするんだ」
と決心して、エラーを出さないための所作法を学ぶ決心をする。
ポインタは、参照の際と、巡回の際にエラーを吐くのがほとんどだ。
だから、
*参照させる先が正しいか
*巡回させるために、節目がしっかりしているのか
という心がけが重要なのだと、学んだ。
これは、実に当たり前のことだが、しかし重要なことである。


エラーを出すことで、エラーを出さない重要性を学ぶというのは、
ナントモカントモおかしなことではあるのかもしれないが、
自身の製作過程でエラーを出す分には大いに良いことではないか。
「自身のソースが全面的に悪い」と思えば、ことごとくコメントアウトでつぶして、エラーを特定する。
で、特定出来たら、「ははん、こういった理由だったんだ」と学習する。
これによって、エラーに対する予防線になるとともに、
Cから作られたあらゆる言語に対する関数仕様への理解も深まる。
たとえば、何らかの手続きをする際に取得するハンドルというのは、
「ははん、メモリ確保のポインタ処理を隠匿するために、あえて、こういった関数の仕様にしているんだな」と気づき、
「必ず、ハンドルの閉じ忘れに気を付けよう」という身構えができるようになる……たぶん。
たとえば、バッファを確保する際に、
「あれ、ここで、こんなにメモリを確保してしまうと、動作に影響が出てしまうんじゃないかな」とか考えるようになる……たぶん。
このように、エラーを出すことというのは、案外重要で、
閾値を越えたときにちゃんとエラーを出さないような処理に導く方法などを身につけて、
プログラミングをするコツを習得していけば、
最短距離で回答を導くプログラミングを自然と思い浮かべることのできるのである。


でも、一番怖いのは、エラーの出ないバグだよね!(キリッ←これが言いたいだけ


終わり。

つれづれ

拍手どうもありがとう!
DAEDALUS。
障害物の設置を構想中。
移動不可の石とか、机とか、宝箱……とか。
降りる階段へのルートを完全に遮断しないようにするために、
いろいろ考察しないといけないわけである。
といっても、それほど、大仰な処理ではない……気がする。
構想中なので、まだ試していない罠。
いろいろ設置して、なんかごちゃごちゃさせて、見た目を面白くしたい。


http://px-minicon.blogspot.com/

ピスコン用の曲の下地を書いていた。
動機と聞くと悪い方にしか思い浮かべない……。
ということで、犯罪の動機みたいなテーマでいこうとおもう。
いつも、アンダーグラウンドですみません……。


完全書き下ろしなので、間に合うか。
最近、全然曲を書いていなくて、書き方を忘れかけで、どきどきものだね!
おおっと、動悸違いだ。(これが言いたかっただけ


何気に前回「始まり」テーマのピスコン。
リンク切れで、埋没していたので、jes.jpにアップしてみる。


動き出す人形
http://sansuido.jes.jp/mp3/puppet.mp3


結局最後に止まってしまうというオチ。


そういや、全然関係ないけど、
三分ゲーに投稿したゲームがリンク切れしているみたい。
MONOS以前のソースが、どのフォルダにあるかわからないから……
XIII、SAME CUBEが復活するか、微妙なところ。
たくさんの没ゲームプロジェクトの中に埋もれているぜ……。

……

マップチップを切り替えて遊んでみた。
Denziさんの同じマップチップにあった家風の素材。
突如として、家の中で暴れまわるネズミ退治に大変身!


床が赤くないと、マウスから出る血が目立つ。
全体的な雰囲気は和やかなだけに、ある意味ホラー……エヘヘ。