CALENDAR
Sun Mon Tue Wed Thu Fri Sat
1234567
891011121314
15161718192021
22232425262728
293031    
<< July 2018 >>
本家STORY FACTサイト
NEW ENTRIES
CATEGORIES
RECENT COMMENTS
  • GB解析 -NG- 邪聖剣ネクロマンサー イシュメリアの悪夢 やったことあるんだよね・・・
    hikali (05/08)
  • GB解析 -NG- 邪聖剣ネクロマンサー イシュメリアの悪夢 やったことあるんだよね・・・
    マイケル村田 (05/04)
  • GB解析 -NG- ウィザードリィ3 ダイヤモンドの騎士 橋爪さんですね・・・
    hikali (03/29)
  • GB解析 -NG- ウィザードリィ3 ダイヤモンドの騎士 橋爪さんですね・・・
    マイケル村田 (03/25)
  • GB解析 -NG- ルパン三世/暁の第三帝国 良作なエンターテイメント
    hikali (01/09)
  • GB解析 -NG- ルパン三世/暁の第三帝国 良作なエンターテイメント
    マイケル村田 (01/06)
  • GB解析 -NG- 邪聖剣ネクロマンサー イシュメリアの悪夢 やったことあるんだよね・・・
    hikali (11/24)
  • GB解析 -NG- 邪聖剣ネクロマンサー イシュメリアの悪夢 やったことあるんだよね・・・
    マイケル村田 (11/21)
  • GB解析 -NG- 新・鬼ヶ島 暗黒の化身を討て! 成功した理由が良く分かりました。
    hikali (06/27)
  • GB解析 -NG- 新・鬼ヶ島 暗黒の化身を討て! 成功した理由が良く分かりました。
    マイケル村田 (06/24)
RECENT TRACKBACK
ARCHIVES
MOBILE
qrcode
LINKS
PROFILE
OTHERS
無料ブログ作成サービス JUGEM
 
管理人hikaliの開発の日々の備忘録です。
本家はこちら。
http://plaza.rakuten.co.jp/hikali/
とりあえず、リリース。

 えーと、単語ジェネレータを作っています。
 とりあえず20行ぐらいの非常に簡単なものを、google app engineにアップした。
 単語は、わたしが昔書いた短編を解体した。
 わたしは、物語解析もそうだけど、本当に物語の解体屋さんだなあ(笑)と思って笑ってしまう。解体すると、無数の使えるパーツになるんです、物語って。それで使ってみて、んー、まあまあかなあ。しかし、わたしはその単語がどこで使われているのかを全部知っているので、3つランダムに出てきても、あー、あのシーンね、ぐらいの感想しか抱かない。
 どう思うだろうか?
 単語数は、一応800ぐらいある。
 重複しているものもある。
 まだ、3本の短編を解体しただけなので、バリエーションと言うには心許ないが、これが数万のオーダーになってくればだいぶデータベースとして心強いものになるだろう。

 http://story-fact.appspot.com/randstr/

 さてここから、解体作業と平行しながら、データベース化(つまりBigTableへの移行)を進めていこうと思う。現在は、お好みの条件で表示できないので(たとえばSF用とか)、その辺をカリカリ仕上げていくことになる。
 もちろん、わたしの短編だけでは限りがあるので、テキスト化がなっている青空文庫作品を中心に、単語へと解体していこう。寺田寅彦のエッセイとかいいなあと思っていたりする。夢野久作とかをぶち込むと、一気にグロテスク路線に突っ走りそうな気がしている。あの人奇形児とか、寄生虫とか平気で多用するしねえ・・・。

 ただ、こうやって、小説の表現をばらばらにしてみて、あー、これは、小説の勉強になるなあと思った。
 さらっと読んだだけでは気づけない細かなテクニックに気づくのだ。
 講座で細かに説明した後であることもある。
 特にわたしのがんばっていた時代のものを解体すると、その当時との圧倒的なレベル差に打ちのめされる。言葉のつなぎが上手かったり、密度が高かったり、精度が尋常でなかったり。
 当時の集中力と今のそれは比べるべくもないが、洞察が鋭かったり、表現が適切だったり、あのコントロールをどうやっていたのだろうと、どうしても悔しくなってしまう。今の表現は、空白を使う技法を覚えてしまった後の文章なので、ある意味、手抜きと言えないこともないやり方がわたしの定石となってしまっているのだ。
 もっと、何も知らず、乏しい世界観だけで、荒野を駆けていた時代の駆動力には、もう戻れないと思いつつも、羨望を感じる。
 まあ、あの頃は泣きべそをかきながら書いていたので、あれをもう一回やるかと言われれば、たぶん遠慮するのだが…。

 
| pythonゲーム修行 | 02:09 | comments(2) | trackbacks(0) | 昨年の記事
[Pythonゲーム修行]アーキタイプのキャラデザした・・・。

 うわ、浦和負けた・・・。
 ショックでかい・・・。

 と。
 えーと、そちらの話はおいておきまして、ちょっとどん詰まっておりました。
 裏でこそこそと続けているPythonゲーム修行ですが、ステイタスに自動的に解説を入れるプログラム(というかその表示で使う、テキストなのですが)の最中、アーキタイプではまってしまった・・・。
 いや、書けないのではなく、書きすぎ・・・。
 こんな感じ。


帝国人 唐王朝的人々

きみは困った人だなあ。戦いを強いる。
北方が風雲急を告げていることは皇帝陛下も分かっている。
しかしだね、ここで帝国が動いてなにになると言うのだね?
シド援助はいい。海からの援護は絶えることはない。

だが、陸はどうだ。
われらの兵団は制海権を目下の目的に存在している。
中海を挟んで北方諸国と対峙しているわれわれとしては、それで十分なのだ。
まあ、保身だとかいうな。
そうなっているんだから仕方ない。

わかったよ、協力はするよ。
なにかあれば呼んでくれ。
助力はするよ。
これでも、御前試合ではなかなかいい成績だったんだぜ。



 な、長え・・・。
 いや、なんかノリノリになっちゃって、こんな感じで、16アーキタイプのキャラデザしちゃったゼ! なんかすっげー楽しいゼ! ノリノリだZE☆
 とまあ、どうすんだこれ・・・。
 どう考えても長すぎて使えないだろう・・・。

 実はこれ、TRPGのルールブックでアーキタイプを説明するのによく使われる手法。
 たしか、わたしの記憶が正しければ、この手法のエポックはサイバーパンク2020だった気がする。あれを初めて見たときのショックは本当にでかかった。まあ、今はみんなぱくりまくって、普通の手法なのですが。
 サイバーパンク2020の文章はこんな感じ。

 彼女からマイアミ出身だって聞いたときのこと、まだ憶えているよ。生まれたのは確か2004年だとか言ってたけど・・・本当だったらしい。なにしろ、ヨーロッパのやつらがワシントンに隕石を落とし、ニアミスがタンバ湾を吹き飛ばしたときの惨状を、ハッキリと憶えてたんだから・・・。
 あの娘の瞳は、信じられないほど蒼かった。レースの水晶みたいに、どこまでも透き通ってて・・・あの娘の微笑は雑誌のグラビアにだって耐えられる・・・。もちろん、両眼ともテクニクスの2350だったし、微笑はホントに雑誌から盗んできたものだよ・・・見事な人体彫刻ってわけ。けど、どこまでが本物かなんてことは、気にもならなかった。彼女にゾッコンだったからな。おれは、そういう男なのさ。

 ――ジョニー・シルヴァーハンド


 これは、あちこちに書いてある小説の引用みたいな部分なのだけど、こういうのが宝石のようにルールブックのあちこちにちりばめてある。読んでいるうちに、世界観がぼんやりと理解できてくる。
 まあ、二十歳にもならない坊主なんてイチコロですな。
 そして、分かったことは、これを書くのはめちゃくちゃ楽しいということ(笑)。
 しかし、レベル高いなあ・・・。
 果てしなくおいて行かれている・・・。
 わたしの書き方とは全然違うのだけど(わたしはどっちかというとイメージを飛び石のように跳ね飛ばして、ぎゅっと絞って最小文字数でイメージを作る方なので、こっちは結構ねっとり書いていて、集中している)、レベルの高さは伝わってくる文章です。

 わたしは、この手法をまねてみたのは実は初めてなのだけど、結構有効な方法であるとやりながら思った。
 なんというか、キャラクターデザインのラフの代わりになる。
 よくアニメにある、ラフデザイン。
 あれとまったく同じ機能を発揮する。
 実際、小説を書くとして、このラフだけで話が作れるかと言われれば、特に問題なさそう。
 まあ、もちろん、これはTRPGのアーキタイプのイメージをユーザに伝えるための手法なので、これを読んで、もうイキナリ、アーキタイプをプレイできるように作られていなければならないのだから、まあ、当たり前といえば当たり前なのだけど。
 あ、そうか。
 どんな鈍感で、ぼんくらなプレイヤーでもこれでプレイできるぐらいのラフじゃなければいけないのか。なるほど、そういうことだ、うんうん。

 というわけで、作った16アーキタイプ分の文章を残しておく。
 というか、こうやってさらしておかないと、永久にお蔵入りになりそうなので(笑)。
 結構これを書くのは時間が掛からない。
 だいたい、一つが10分から15分ぐらい。
 本当にラフですな。
 昔、小説は何十枚も書かないと完成しないからつらい。とりあえずさっと十分ぐらいで書けるはイラストはうらやましいと思ったことがあったのだけど、こういうのを「スケッチ」と呼んで、こういうのを積み上げるのを正当化するのもいいなと思った。

 長年の悩み解消(笑)。
 というわけで、16アーキタイプを晒してしまおう。
 うーん、さっと書いているので、できの悪いのもちらほらあるのだが、まあ、ラフなので・・・。決定稿ではないですよと、一応予防線張ってみたりして・・・。



システィア人 気ままな冒険家の民


潜り込むのは王家のねぐら、かぐわし姫君すらりと寝取る
ちゃんばら、決闘、ひらひらかわし、黄金抱えて五つの海へ
波が静まりゃ夢の続きを、小鳴くカナリア優しく抱き
あらしがこようとジャンクは滑る

おれたちシスティア
波間がすみかだ

堅物、生真面目、礼儀と忠節、そんな騎士には飽きたと小鳥
朱頬を寄せてふわりと笑う

帆桁を上げろ、風向き変わった、西か東か、サウスか氷海
こちらに利口な頭はないぞ、あちらに海鳥陸地が見えた
そちらは海への愛撫も知らぬが
どちらへ行こうとおれたちシスティア
うちらのジャンクの白帆の行方は、今宵の酒に聞いてくれ






シド人 豊かな都市商人貴族(男)

そう、最近は商売がやりにくくて仕方ない。
卿は聞いたかね。
大公は議会を取り仕切って、工業を興すという。
そう、例の「竜から鉄へ」ってやつさ。

おっと、わたしがこんなことを言ったって言わないでくれよ。
ただでさえわたしは睨まれてるんだ。
北方で奴隷売買をしていた科だとさ。
いったいいつの話だ。
もう二年も前の話だ。

しかし、騒がしくなるな。
北の情勢が芳しくない。
例の鎖の蛮族どもの南進が始まるって噂だ。
おっと、わたしがこんなことを言ったって言わないでくれよ。
武器でも磨くかね。
これでも、軍ではそれなりの使い手だったんだ。






シド人 豊かな都市商人貴族(女)

さてさてどうしたものかな。
大公は鎖の蛮族にシドが勝てると思っている。
この書状をみるといい。
騎竜兵団を北方配備にまわすと書いている。
用兵にたけているととは言い難いな。

よろしい。
では、シドの二大騎竜兵団が防戦に成功したとする。
しかし、鉄鎖の兵団はその戦力を容易に復元できるところに特徴がある。
つまり底なしってことなのだ。
わかるか?

これからは剣を身につけることにしよう。
最後に身を守るのは、結局、剣技だけだと、思い知るのさ。
竜も鉄も、使う者の力量に従うだけなんだってね。






シド周辺蛮族 都会化された蛮族(男)

まあ、旦那方に竜が乗りこなせないことなんてことは、分かってますとも。
この地方に駐屯する兵団が脳たりんのずんどう野郎ばかりだってことも。
だから、この兵でどうやって守るって言うんです?
この首竜の、のしのし兵団で?

まあいいですよ、おれたちは。
自分の身ぐらい守れますから。
しかし、農場は? 街は? 教会は?
あの鉄鎖のやろうに踏みつぶされろって言うんですかい?

おれたちの中にだって戦えない奴はいる。
それがあの鉄鎖の竜に蹂躙されるんですよ?
ほんと分かってるのかなあ。
まあ、おれはこいつがあればいくらでも森で生きていけるんですがね。





シド周辺蛮族 都会化された蛮族(女)

こいつかい?
こいつは、眼が優しいんだ。
首竜っていうのは、臆病で、苦痛を知っていて、仲間を大切にする。
そして最後に残って、仲間を守ろうとする。

牙を立てられ、肉を引きちぎられ、首に食いつかれても。
そうなってはじめて、こいつはちっぽけな勇気を存分に振り絞る。
こんなに、ずうたいだけはばかでかいのにね。
おかしいだろう?

だからさ、竜に乗る者はせめて守ってやるんだ。
その剣で、その足で、燃え上がる勇気で。
仲間をいたわうこころで。
剣はそのためにあるのさ。





ボルニア人 典型的な蛮族、鉄鎖の民

西のエストも、ザブンデも我らが牙の鮮血となった。
それにひとつ南洋の果実が加わったからと言って、なにがかわるか。
大顎に果実酒を、わずかに一滴垂らしたからと言って?
それが鉄鎖の胃袋を満たすとでも思うか。

だから控えろと言っている。
奪い尽くし、鮮血で大顎を満たし、あらゆる財宝を持ち去ってなんになる?
南洋には果実がなる大樹があると聞く。
もいでももいでも、次の年にはまたたわたになる大樹があると聞く。
その大樹を根こそぎに掘り返してはならない。

いくぞ、武器を持て。
鉄鎖を打ち鳴らして、竜を疾走らせろ。
ただし、収穫は慎重にな。




キュディス人 ソ連的人々。火山と翼の民(男)

そら、引き鐘だ。
編隊を組んで、あの山稜を滑って東に回ろう。
黄の兵団の速力があれば、2刻で裏手に飛べる。
七番隊、三番隊、十五番隊、北へ回れ。こちらは第二大隊を率いて陽動する。

しかし、チメン族もよくこんな時期に蜂起したものだな。
秋の爆種の収穫だって、十分だったという訳ではないのに。
八番、五番! ついてこい!
一度、雪面を舐めて、脅しにいく。

総員、短弓準備!
準備が整い次第、急降下、奇襲をかける。
近接戦闘の準備を怠るなよ!
虹翼の乗り手は地上でも最強であることを思い知らせろ!




キュディス人 ソ連的人々。火山と翼の民(女)

ひとたび大地へと降った氷雪は、大地を冷やし、竜を眠らせます。
山河は凍てつき、針葉はしろく、鈍色の空は低くひくく。
地吹雪が世界を覆い、世界は眠りにつくのです、永久に。
大地の熱が、目覚めるまで。

われらは、その目覚めを待ちましょう。
この、大地の熱のおわす、深い胎内で。
剣を磨き、技を鍛え。
いつときか、そのときがくるときまで。

大地の腑は今も目覚める時を、待ち遠しくしています。
溶岩と灼熱のおわすこの地で。
大地の巫女たちとともに。




トラン人 ナチス的人々。テクノロジーエリート。

さてと、次の集積地へ向かいましょうかね。
ここにはたいした「遺物」は残っていないらしい。
粒子カウンターもぞんがい不正確で困りものです。
浮遊船団を呼ぶことにしましょう。

しかし、あなたも困った人です。
トランの技術が北方人、いえ、この世界の人々に分かるとでも?
この荒野に散在するサウスの「遺物」を探す術を、容易に理解できるとでも?
まあ、あなたたちは冒険歌でも歌っていればいいのです。

はてさて、なかなか血気盛んなお方だ。
わたしと戦うと言うのですか?
まあ、いいでしょう。
ファウンダーの恐ろしさを思い知らせてやりましょう。





帝国人 唐王朝的人々

きみは困った人だなあ。戦いを強いる。
北方が風雲急を告げていることは皇帝陛下も分かっている。
しかしだね、ここで帝国が動いてなにになると言うのだね?
シド援助はいい。海からの援護は絶えることはない。

だが、陸はどうだ。
われらの兵団は制海権を目下の目的に存在している。
中海を挟んで北方諸国と対峙しているわれわれとしては、それで十分なのだ。
まあ、保身だとかいうな。
そうなっているんだから仕方ない。

わかったよ、協力はするよ。
なにかあれば呼んでくれ。
助力はするよ。
これでも、御前試合ではなかなかいい成績だったんだぜ。




帝国西方辺境人 牧歌的人々

なんです? 戦争?
どうすればいいんでしょうね。
税金で苦しくて、兵をとる余裕なんて、これっぽちもないんですが。
武器なんて、握ったこともなくて・・・。

分かりました。
なんとかしましょう。
だけど、期待をしないでください。
みんな、畑を耕す人たちなのです。

だから帰ってください。
はいはい、約束しましたから。
帝都はなんと言っているんですか?
まずはそれを聞いてきてください。






帝国南方辺境人 開拓者的人々

なんだ、ずいぶんはるばるやってきたじゃないか。
歓迎するぜ、ここには仕事もサウスも山ほどある。
あの尾根の材木を切り出せば都市ができる。
遺跡にぶつかれば、大金持ちだ。
ここにはなにもないが、すべてがあるんだ。

たしかに、竜は多い、うんざりするほどだ。
そりゃそうだ。サウスの「竜の城壁」だ。多いのは当たり前だ。

それよりもだ。この前、ひとりのシスティア人がのたれ死んだ。
片脚を竜に食いちぎられていたが、地図を持ってたんだ。
今朝から、南方中からダチを集めている。
どうだ、あんた。
こいつに乗ってみないかい?






ぺネス人 橋上都市の竜狩りの民

右か左か、そんなことを考えたことはありません。
もちろん、竜の眼のことです。
あの鱗のまぶたが閉じる前に、その弱点を刺さなければなりません。
その瞬間に迷うと言うことはあり得ません。

いつになったら、親方の寄騎となれるのでしょうね。
竜狩りは、有効な捕獲よりも大切に考えることがとてもたくさんあるのです。
例えば、仲間の命を守ること、例えば、竜を怒らせすぎないこと。
お金にならないこともありますが、その分払ってもらっています。

え? 戦争?
人狩りですか?
いや(笑)。
さすがに、竜狩りだけでも十分に罪深いことは分かっていますよね?





スカイ河流域人 昔話の流域に住む民たち

ほら、スカイの草鎧騎竜兵団の水竜がやってきますよ。
おーい! へへ、知り合いなんです。
月の巡りの6つ前の大氾濫の季節に、助けてもらったんです。
スカイ流域の草鎧が総出だったんです。

そうだ、あなたシスティア人でしょ?
月の船を知っていますか?
それとも、海を渡る吊り橋を?

サウス? いえ、知りません。
ここは北限の不凍河、大スカイ。
広大な流域には、あなたたちシスティア人ぐらいしか訪れません。
サウス人というのは、その名の通り南に住んでいるのですか?
すみません。本当になにも知らないのです。




エスト人 宗教的な祭祀主義に染まった騎士道の民(というかマルタ騎士団・・・)

ああ、失礼にもほどがある。
撤回を願おう、われらを亡国の民だなんて。
女王の御心のおわすところ、そこがわれらが領土。
つまりわれらこそが領土なのだ。

しかし、哀しいことよ。われらは夜を経るごとに、その数を減らしている。
暴虐な鉄鎖の牙に倒れている。
寺院は秩序を失い、もはや地下深く籠もるばかりである。
陛下の舞い戻るべき王座は、その神聖さをはぎ取られている。

なあ、システィア人。
女王陛下はどこにおわすのであろう。
見聞きはせぬか。
教えてくれ。



ザブンデ人 流浪の蛮族「難民」(をかかえた)騎竜兵団

ここを通せと言っている。
我らが民、百万の民の通過を許せと言っている。
ザブンデの竜の牙は深いぞ。
行き先はない。南方の、そうだな、シドが目的地だ。

これほど巨大な種族を受け入れることのできる領土はないと言うか。
それでも、どうしろと言うのかね。
この戦を負けるわけには行かない。
ザブンデの地を、豊穣の地を、蹂躙されるのを我慢できない。

そら、通過を許せ。
われらは、土地を取り戻す。
百万をこえる民はそれを望んでいる。


 以上。
 お粗末様でした。
| pythonゲーム修行 | 22:22 | comments(2) | trackbacks(0) |
[Pythonゲーム修行]公開します!


 えーと、お待たせしました・・・。
 ちょっとマニアな方にはわかりやすい、マッチメーカーライクな、Google App Engineアプリケ−ションを公開します。ルーンクエスト・ライクな戦闘システムで、無制限にいくらでも戦えるというシステムです。
 あんまりマニアじゃない方に説明すれば、まあ、ドラクエの闘技場みたいなもんだ。




 んーと、正直に言うと、非常に疲れた・・・(笑)
 というか、五時だよ・・・。
 こんな時間まで、なにやってんだよ、わたし・・・。

 というわけで、公開です!

 一応ブラウザチェックはしているのですが、たぶん、レイアウト崩れ等の不具合が発生することは確認済み。これは、そのうちに直していくので、よろしく!
 対応ブラウザとしては、

 opera > safari > firefox >>>>>>>>>>>>>>>ie7

 という感じです。
 もし、最高のエクスペリエンスを味わいたければ、Operaで。
 順次、直していく予定ですが、かなり地道な修正に依るしかないので、劇的な改善は期待しない方が吉です。
 あー、googleブラウザは試してないけど、Safari準拠だと思われる。

 なんか、分からないところがあったら、遠慮なくコメントくださいませ。
 とりあえず、9月中のリリースという、個人的な目標に間に合った(笑)。

 忙しかった・・・(笑)

 Street Createrはかなり不完全だけど、リリースだ!(笑)
 ここから、無限に膨らませていこう。
 ファイト、おー! ファイト、おー! ファイト、おー! ファイト、おー!

 あー、次は、ゲームブックのグラフ構造解析ツールのリファインだから・・・。はあー・・・。
| pythonゲーム修行 | 04:45 | comments(0) | trackbacks(0) | 昨年の記事
[pythonゲーム修行]デザイン苦戦中・・・。とりあえず、モック状態で遊べます。
 えーと、時間がかかりすぎというのもあるのですが、現在、デザインで難航中。

 story-fact.のデザインコンセプトは、実はかなりがちがちに作っていたりします。
 わたしが、デザイン出身で、しかも、マーケター出身ということもあり、ロゴを作った時点で、かなり厳密に、どんなブランドにするかを決めています。これは隠すことでもないので書いてしまえば、
 「カジュアル」「ファッショナブル」「文具品」「書店」「革新的」「未来的」
 といったあたりの、セグメントを狙ったデザインを指向しています。

 このイメージが一番近いのは、Book1st、Loft、東急ハンズあたり。
 基本的に、story-fact.は(というか、物語解析もだけど)、物語を作るための支援ツール屋さんなのです。便利に使って欲しい。そのためにあり得ないぐらい革新的な道具を、つまりソフトを提供する準備もアイデアも大量にある。そういうブランドイメージなのです。最大のライバルはKOKUYOです。
 まあ、フランクリン・コヴィーとかでもいいけど・・・。

 まさに、「ひらめき・はかどり・ここちよさ」です。
 しかし、困ったことに、わたしは、この辺のデザインに弱い(笑)。
 というか、この方面の技術が全くないゾ(笑)。
 わたしの専門分野は、基本的にニッチ・コンテンツ分野だっただけに、べたべたでこてこてのデザインしかしていない。で、やはり、色味の設計とかに、迷うわけです。だって、やったことのない配色なのですから。
 わたしの好きな配色はばりばりに彩度差と明度差を効かせまくるデザイン。
 対して、story-fact.が求めているのは、穏やかな中のメリハリ。
 これは全く違う。やってないのかと問われれば、うーん、・・・、うーん、たぶん、やってない・・・。だってさ、わたしは、派手な物語ばっかり追いかけてたんだぜ? 仕事でも。もうめちゃくちゃエフェクトとか効かせまくりですよ! という感じになるのだが、はあ・・・。
 というわけで、がんばってデザインを作ろう。
 たぶん、多くの人が想定していないけど、80%はできている。
 でもそこからの20%が詰まらない。
 プロはここから、延々に粘るのだ。
 ここからの精度に、すべてが掛かっていたりする。
 なので、まあ、こいつと格闘してみますか・・・。

 とりあえず、バナーを貼っておく。




 基本的にモック状態ではかなり遊べる状態になっていると思う。
 ここから、たぶん、4人日ぐらいの工程で実装される、きわめて重要なアップデートはまだされていないことを留意いただければ、かなり面白いはずである。
 「google」で「microsoft」に勝つ方法を模索するのは、たぶん、めちゃくちゃ面白い。
 わたしは、1ラウンドでmicrosoftを瞬殺にした。
 案外やれるもんである。
 あまりにも気持ちよくて、笑ってしまったほどだ。

 というわけでお試しあれ。
 順次、本格サイトへと移行します。






| pythonゲーム修行 | 22:58 | comments(0) | trackbacks(0) |
[Pythonゲーム修行]とりあえず、google app engine で動くようになったので、URLを貼っておく。

 わざわざ書くようなことではないのですが、どちらにしてもチェック用にGoogle App Engineの方を更新しなければいけないので、とりあえず、現在できているところまでがアップされています、と告知。

 http://gbsys.appspot.com/

 デザインとかは全くしていないモックなので、寂しい感じがするのは勘弁と言うことで(^_^; だいぶ、どうすればgoogle app
engineに怒られないで済むかが分かってきました。

 しかし、google app engineの反応速度は超速ですね・・・。
 ボタンを押しているときに、たぶんほとんど画面がぶれないので、
 「あれ? Ajax?」
 とか思ってしまうのですが、これは純粋なhtml。あまりにも超速なレスポンスなので、再描画しているのが分からないのですね・・・。たぶん、これ、ダイアルアップで接続したら、ほんとうにちんたらと再描画しているのが分かると思われる。

 だいぶ書いてきて、自分の書いたコードに愛着が出てきているのにびっくりする。
 もう、泣けるほどダメなへボコードなんだけど、ダメな子ほどかわいいみたいな、あちこちにたくさんのエラーを回避するしょぼい対策がしてあって、しょぼいなぁ、へぼいなぁと思いつつも、なんか好きになってしまう。
 うーん、これは戦いの履歴だなあって、そう思ってしまう。
 これの開発が終わったら、デザインパターンを学ぼう。
 ちょっと、google app engineが推奨している書き方は、phpからやってきた、へたれPython使いには、難しすぎるのだ。

 とりあえず、この先は、すでにあるコードを修正して乗っけるだけなので、そんなには難しくないはずだ、たぶん難しくないと思う、難しくはないんじゃないかな、ま、ちょっと覚悟はしておけ。

 ゲームバランスがちょっと荒い気がするのは、そもそもこのシステム自体が、FLASHゲームブックのバージョン3の仕様で、舞台間の移動とか、連鎖ファンブルとか、戦闘しながらシナリオが進む部分だったりとか、舞台データとか、舞台の崩壊とか、そういうのを組み込むことを前提に作っているからだったりする・・・。
 なので、純粋に「攻撃」「受け」「楯」といったような手順の駆け引きとしてみてしまうと、かなりバランスが緩い。ゲームバランスの最高峰はたぶんディプロマシーとか、マキャベリとかだと思うのだけど、その特徴はきわめてタイト。
 でも、ゲームバランスをぎゅうっと締め付けてしまうと、拡張性が失われる。完成品になったときにタイトになっていればいいわけで、今はすかすかなので、バランスが緩いのは勘弁して欲しい。

 なんか、このプログラムを書きながら、4Gamer.netに上がってくる、Games Convention Asia 2008のレポートを読む。
 やっぱり、コードを書かないゲームはゲームじゃないんだなと思うようになった。ゲームはアイデアじゃないんだよな。手触りとか、バランス感とか、そういうレベルのところは、やはりコードで書かないと実現できないのだなと思った。

 これは、オイゲン・ディーゼルの「技術論」の中に出てくる文章と全く一緒なので、製造業と言うか、工学全般に共通していることなのだろうと思う。
 オイゲン・ディーゼルの「技術論」は、特許法概説を書いている吉藤 幸朔さんが、どうも発明の理論構成の底本においているっぽい本で、実際上、特許法概説は弁理士試験のスタンダードになっているので、特許業務に就く人は、基本的に、このオイゲン・ディーゼルの「技術論」が間接的にインクルードされていたりするのだ。
 そう、ほとんどの人は気づいていないのだが・・・。

 というわけで、以前本家で取り上げたことがあるのだけど、ディーゼルエンジンを発明した、ルドルフ・ディーゼルの言葉を引用してみたいと思う。何かあったときに、わたしはこれをたびたび読み返す。そして、そうやって読み返すたびに、わたしは発明家でありたいのだと、そう思うのだ。



「理念だけでは発明とは絶対に言えない。発明品の目録から何でも取って見るといい。望遠鏡でもマグデブルグ半球でも紡績機でもミシンでも蒸気機関でも。発明と言われるものは常に実行された理念だけである。発明は決して純精神的な産物ではなく、理念と肉骨の世界との闘争の結果にすぎぬ。それ故にどんな完成せる発明にも、同じような思想は多かれ少なかれ確実に意識的に、時には既にずっと以前に、他の人々の念頭に浮かんでいたことを○○(旧字体のため不明。推測?)立てることができる。

 理念と完成せる発明品との間には、発明行為の本来の仕事と苦難の時間が存在する。常に天翔る思想の小部分しか肉骨の世界に押し付けることは出来ないし、又常に、完成せる発明品は、本来精神が見た、決して達しえぬ理想とは全然別の相貌を呈する。それゆえいかなる発明家も未聞の不評を受けながら理念や計算や実験に従事する。何かに達せんがためには、多くのことを欲せねばならぬ。最後に残るのはその最も小部分である。

 従って発明する、とは、無数の誤謬の皮を剥いで取り出した正しい根本思想を幾多の失敗と妥協を経て実際的成果に帰すことである。

 それ故に発明家は楽観主義者でなければならぬ。理念の力の全衝撃力は創造者個人の魂の中にだけあり、この者だけが実行の聖なる火を持っているのである」



| pythonゲーム修行 | 21:50 | comments(2) | trackbacks(0) |
[Pythonゲーム修行]とりあえず、回避策が見つかった・・・
 結局、一番はじめに考えた方法と全く同じ方法で、回避できることがわかった、けど、かなり特殊事例なので、あんまり役に立たないかも・・・。

 はじめと、今で違っている知識を。
 これが重要だろうと思う。

 これは関数、つまり、defでデータ処理をするときに、内部の関数、たとえば辞書型のデータを処理する関数だとしても、それをとりあえずretuneすることで、辞書型のデータが作れるというところかも。

 dic = dic_def(data1)

 で回収するみたいな・・・。
 わかりにくすぎるなあ・・・。
 どうしたらいいんだろう・・・。
 すごく持っている知識と書ける内容の、ギャップに苦しんでいる。

 いや、わたしが書いた、そのコードは間違っているとさえ思う。
 あー、わたし、かなりできない人ですから・・・。



 とりあえず、わたしは超えたのだけど、どう伝えたらいいのだろうか・・・。また別のステージが待っているだけで、別に楽しくもなんともないのだけど・・・。
(ただまあ、感情の振れ幅が大きいってことは結構充実しているということかもしれない・・・。)
 非常に平凡で、変なことをやっていることがわたしの日常だと思う。それは、おまえが、あちこちの現実にちょかいを出し過ぎるからだ、とは思う。まあいい。
 こういう実況中継って増えないのかなと思う。
 これはわたしが単にそういう文章が読みたいというだけなのだが・・・。
 わたしは、いちおう、テキストデータに残したものはすべて出しているけど、これは、かなりわたしがメモ魔であることに起因している。
 わたしが、考えをする時に、かなり高い確率で、テキストデータを打ちながら考える癖があって、それを単に放出しているに過ぎない。
(ちなみにどうでもイイが、これは最強のマーケティングデータだ。これ以上に強烈なマーケットデータはない。そういうデータが容易に流通すれば、全世界の経済活動はかなりすさまじいレベルで効率化できると思うのだけど、そんなことを言っている、識者はなし・・・。レベルが低すぎる・・・。もうほんとにお話ならないぐらいレベルが低い。クエリーがどれほど大切かをわかっていない人が多すぎる・・・。グーグルは広告会社ではなくて、クエリー会社なんだけどね・・・。絶望的にゴミばかりで、なんか情報産業最強な気になってくるよ・・・。もちろん、わたしが知らない、優れた人がいることは分かっているのだけど、根本的に、ここはローマ帝国崩壊が起こるなあ・・・。情報の本質か・・・。それは、結局物語解析なのだ・・・。あれは、結構惑星破壊弾クラスのインパクトを持っていたりするのだが、まあ、どうでもいいや。法律の観念が、わたしも理解していなかったけど自然にビルトインされている、情報操作をいかにするかの集大成みたいな世界だからね・・・。物語というのは、実際にはすごいヤバイんだ・・・。だから取り扱いはかなり慎重にしなければいけないのだけど・・・。)
 わたしが考えることは基本的に出すけれど、おそらく理解できないだろうと思うのは、単にわたしが説明に時間をかけていないだけで、説明しようとすると、かなりのパワーを割かれる。なので、意味不明状態で、メモが出てくるのは、まあそういうもんだと思ってもらえると、うれしい。

 追記:

 かなり意味不明状態な文章になっていたので、だいぶ直した(笑)。
 ほんとうに説明しようとしていないときの文章は意味不明である・・・。
 あまりにも意味不明なので消そうかと思ったけれど、プログラムは苦手克服分野指定しているので、まあ、みっともない様子を垂れ流しておいて、こんなバカでもがんばっているんだと、そういう風にみてもらえればうれしい。
 というわけで、残しておく。



| pythonゲーム修行 | 03:00 | comments(0) | trackbacks(0) |
[Pythonゲーム修行]うお・・・、できた・・・。全俺が泣いた・・・。
 自分で言うのもなんだが、あまりにも涙ぐましくて泣いた。
 デザインとか調整とかは全然まだ・・・。







 え? これだけ?
 www
 えー、これだけですよwww
 phpなら1時間で書けるよ・・・。

 コードはみたら、たぶんほんとうに全米が泣くから、いい。
 泣くのは自分だけでいい・・・(笑)。

 このPythonとGoogle App Engineという未知の二つの仕様、なんとかならんか・・・。


 追記:

 ・・・と、思ったら、この仕様駄目じゃん!
 この仕様も駄目だぁぁぁああぁぁぁぁ!

 泣けてきた・・・。
| pythonゲーム修行 | 22:44 | comments(0) | trackbacks(0) | 昨年の記事
[Pythonゲーム修行]泣きそうになった・・・。
 レベルはとても低いのだが、技術的な目処が立つ。
 それがすごくうれしくて、突破したのだな、と、じんわりと思う。
 この仕様の壁を乗り越えたと。
 あとはローマ帝国を荒らすゴート族と同じだ。リメス・ゲルマニクスを越えれば、あとは、無防備で、豊穣な領土が残っているだけだ。
 しかし、コードが汚いなあ・・・。
 わたしは蛮族なので、あんまり体裁は気にしないのだが、それにしても非効率すぎる気がして、ちょっとため息が出る。

 

 まあ、いいんじゃないか・・・。
 仕様上の問題はすべて取り払ったはず。
 結局のところ、序盤の20%に時間の80%がつぎ込まれる。
 そこは勉強して、仕様を理解しているフェイズなのだけど、結局そこが消費する時間のほとんどだったりする。
| pythonゲーム修行 | 02:29 | comments(0) | trackbacks(0) | 昨年の記事
[Pythonゲーム修行]google app engine のユニコードの処理に苦しんだ方への処方箋
: 'ascii' codec can't encode characters in position 6-32: ordinal not in range(128)


 このエラーメッセージをみて、ハッと心を奪われた同士諸君、こんばんわ。そして、

: coercing to Unicode: need string or buffer, NoneType found


 このエラーメッセージを見るたびに悪夢のリフレインに苦しむ戦士のみなさま、ようこそおいでくださった。

 見果てぬ夢を胸に抱きながら、google app engineの独自仕様(と、Pythonの仕様でもあるのですが・・・)に打ち砕かれた日々も今日で終わる。
 今から、インドの奥地でわしが取得した奥義を伝授しよう!

 と、大げさに始めてみましたが、どうもここで苦しむ方が多い気がするので、わたしが四苦八苦してなんとか回避できるようになった方法をここに書いておきます。

 まずは、実際に、google app engineで動作することが確認されているコードから。


#!/usr/bin/python
# -*- coding: utf-8 -*-

import cgi
import codecs

f = cgi.FieldStorage()


if f.getvalue('text','') == "":
html_body = u"""
ここにフォーム側htmlを記載
"""


print "Content-type: text/html¥n"

print html_body.encode('utf-8')

else:
html_body = u"""
ここに、表示側htmlを記載"""


text = f.getvalue('text','')
text = unicode(text,'utf-8')
text = text.replace("######","your name")

print "Content-type: text/html¥n"

print (html_body % text).encode('utf-8')


 (色分けには、こちらのスクリプトを使用しました)
 ■pyhighlight.py:Python ソースを HTML で色分け
 http://tuchinoko.moe-nifty.com/oboegaki/2005/05/pyhighlightpypy_932e.html


 Pythonのユニコード問題はこちら。
 ■PythonのUnicodeEncodeErrorを知る
 http://lab.hde.co.jp/2008/08/pythonunicodeencodeerror.html


 ■コードの全文はこちら
 html://story-fact.com/test10.txt


 ■実際に動いているところはこちら
 http://story-fact.appspot.com/


 google app engineのためにPythonを覚え始めたわたしような方は、ついphpのような言語と同じ感覚でPythonのコードを書いてしまいがちです。

 わたしがはまったのは、phpのechoと同じ感覚でPythonのprintを使ってしまっていたところ。phpのコードでは、htmlに文字列を埋め込む時にechoをよく使いますが、Pythonでは、これは通用しないと思った方がよいかもです。

  print (html_body % text).encode('utf-8')

 のように、埋め込んだ方がよいと思われます。
 これは、「PythonのUnicodeEncodeErrorを知る」に詳しいのですが、PythonのUnicodeの取り扱いが結構特殊だからです。また、Pythonはあまりマルチバイトの処理が得意ではないからです。phpのような感覚でいるとはまるかと思います。

 知っていた方が良さそうなのは、

 1.PythonのUnicodeは、いわゆるUTF-8ではない。

 純粋なUnicodeの方です。
 UTF-8の方は8バイト文字と呼ばれ、別の種類の文字列として区別されています。

 2.Pythonの内部では、マルチバイト文字列はUnicodeでないと処理できない。

 これも、知らないと結構はまるのですが(当然できるものと思い込んでいるため)、たとえば「+」を使って文字列を連結することもできません。ですので、フォームなどでマルチバイト文字列を受けとって加工するときは(置換など)、Unicodeに変換してやらなければなりません。

 3.Unicodeに変換するとき、値が空だとエラーになる。

 これも、嘘だろwww と思ったのですが、例外処理してやらなければなりません。

f = cgi.FieldStorage()
if f.getvalue('text','') != "":

 みたいな。

 4.google app engine ではUnicodeはprintしてはならない。

 これは、Pythonのprintが暗黙のうちに文字コードを変換するという仕様に絡むのですが、google app engineでは、必ずエラーとなります。

# -*- coding: utf-8 -*-

 のように文字コードを指定しても、google app engineではこのUnicode文字列をprintすると、asciiに変換しようとするからです。

 ですので、鉄則として、

 ・空を例外処理してマルチバイト文字列をUnicodeに変換
  ↓
 ・Unicode文字列で内部処理
  ↓
 ・マルチバイト文字列にエンコードして、print

 という流れになります。

 以上、簡単ですが、勘所を書いておきました。
 少しでも助けになれば幸いです。
 わたしも何度も挫折しそうになりましたが(^_^; これを機にすてきなアプリケーションを作ってくださいね!

 PS.

 これ、一つ一つ理解するのに、それぞれ5時間ぐらいかかったよ・・・。とほほ・・・。

| pythonゲーム修行 | 22:18 | comments(6) | trackbacks(0) | 昨年の記事
[Pythonゲーム修行] google app engineで動いた・・・
 パトラッシュ、ぼくはもう、つかれたよ・・・。
 あきらめが異常に悪いのは、ある種の才能なのかもしれない・・・。

 http://gbsys.appspot.com/

 これは戦闘シーンの行動決定をする(アクション・オーダーを)生成するためのユーザ・インターフェイス。Pythonとhtmlで実装している。Ajaxとかは、わたしは使えないので、ボタンを押すたびに純粋にサーバと通信している。
 html部分も結構大きいのだけど、全部で100行ぐらい。
 コード書いている時間より、google app engine の仕様と戦っている時間の方が長かった気がする・・・。
 これ、v 1.35だよ・・・www
 ローカル環境と本番環境で仕様が違うってなんだよ・・・。

 しかし、さすがと言うべきか、googleのバックエンドを使っているだけあって、反応がローカルのWebサーバと変わらない・・・。
 速すぎ・・・。
 なんじゃこりゃ・・・。

 というわけで、奮戦記は後ほど。
 google app engine 攻略法も、まだ材料がそろっていないので、のちほど。とりあえず、わたしは、WebアプリケーションとしてPythonをものにする勉強を続けよう。

 来週中ぐらい(<お? できるのか?)のタイミングで、現在ある自動戦闘システムを全面書き換えして、これをgoogle app engine上で遊べるようにしておこう。
 そこで、一応、Ver3システムの開発は凍結としよう。
 放置しておいて、バランス調整期間とする予定。

 つかれた・・・(笑)





| pythonゲーム修行 | 22:04 | comments(0) | trackbacks(0) |