AFTER★SE7EN このページをアンテナに追加 RSSフィード

2016-08-20 プログラマという職業とその最低要件とは何かという事を勝手に考えて

プログラマという職業とその最低要件とは何かという事を勝手に考えてみた

| 13:23 | プログラマという職業とその最低要件とは何かという事を勝手に考えてみたを含むブックマーク プログラマという職業とその最低要件とは何かという事を勝手に考えてみたのブックマークコメント


 昔、インターネットグーグルもない時代からプログラマをやっていた人達というのを自分尊敬している。

そういう人達は、書籍マニュアルを頼りにプログラムを組んでいたのだと思う。書籍マニュアルは紙だから

調べるのも大変で、効率的仕事をするには、言語仕様をつきつめて暗記していることが必須要件だったのだろうと思う。

翻訳されていないドキュメントから学ぶ必要もあったのだろう。あるいは、各社の中で、独自マニュアルドキュメント

豊富にそろっていたのかもしれない。そういう時代には本当に適性のある人しかプログラマにはなれず目指すことすらできなかったのではないかと思う。

桁外れの記憶力と思考力を備えていない事には、どんなソフトウェアも生み出しえなかったのではないか想像する。


 が、今はインターネットグーグルもあるために、原典を取り寄せたり口承される希少な技術を学ぶためにどこぞの企業なり研究機関なりに

認められて一員となったりなどができなかったとしても色々なものを作るために必要な最低限の技術をサッと調べて使える時代になっている。

勿論、様々な組織体にはそれぞれ外に公開することで競争力を失う事になってしまわないよう中核の技術などはいつでも門外秘として大事に守られているし

そういうものがあることによって各組織体アイデンティティ個性長所は維持されていると思う。それはなんとなく、プライバシーが人の個性を支えている

事にも似ていて、セキュリティ企業の特徴を支えているのだという気がする。


 ある時期までインターネットは、LinuxであれApacheであれ根幹の部分がオープンソースソフトウェアによって支えられていて、

ソースコードそのものが公開されていたり、情報をくまなく広めるための広報的な側面に特化して尖っていたような気がする。ブログ化の時代と言われていた

WEB2.0時代まではそうだった。が、SNS化の時代には、むしろクラスタ化されたそれぞれの集団が、内輪と外を明確に区別して

内輪にだけ情報が行き届くようなプライベートクラウド的な情報の統制が主流になってきているのかもしれない。

ビジネス世界では、実際にはオープンソース系のソリューションを使わないところも多いようだ。なぜならオープンソース系のシステム場合

その部分に起因するトラブルがあった場合責任主体存在せず、全部公開しているのだから細部に至るまで仕様理解すべきで、問題がおきたら使う側の自己責任であるという事になってしまうためだろう。

オープンソースでなければ普通は、販売元や開発元に問い合わせれば良いだろうが、オープンソースはそういう責任のあり方はしていないのではないかと思う。


 話が脱線したけれども、OSソースコードであれプロトコルスタックソースコードであれ何であれ、インターネット上には公開されていて

それらを読み解くための必要プログラム文法インターネット上には解説があるという中で、

例えば自分のような、たぶんインターネットがなかったらプログラミングには関わる事もできなかったであろう大した記憶力も思考力もないプログラミングの才能などない人間であってさえも

ググりながらなんとかプログラムを組み立てたり仕事をしたりする事が可能時代になっている。

くまブであったりKDPランキングであったり、アンテナサイトであったりと言ったようなものを無から作り出すことができている。

で、大抵のプログラミング入門書なり学習カリキュラムというのは、インターネットがない時代プログラミング学習法を前提にしているように思える。

それはハローワールドからまり、各データ型の扱える範囲などを覚え、ループ分岐の後にオブジェクト指向理解するというようなカリキュラムだ。

恐らくそのやり方は鉄板であり、そういう風に細部から入っていくことで系統立った仕方で体系的にすべてを理解し暗記することでしか

本当に才能のあるプログラマにはなれないことは確かだと思う。細部の意味理解し、細部から知識を組み立てていくような学習方法だ。

だがその一方で、付け焼刃的でしかないにせよ、最短コースで一瞬でプログラミングをある程度扱えるようになるための方法というのもある。

それは、細部を後にまわして全体像や骨格だけを先に完成させ、やせ細ったその骨格を少しずつ肉付けしながら太らせていくような学習方法だと言えるかもしれない。


 プログラマという職業において一番肝心な事は、ノウハウを生み出しつつ新しい知識をどんどん学べるかどうかだという事のように自分は感じている。

新しい知識をすぐに吸収できるかどうかという部分で、私の場合だんだん学生時代のような勉強法ではない手順で学んでいくようになっていったが、

多くのプログラマが実は知らず知らず同じような方法実践しているような気がする。

そしてその方法論を最初から知っていれば良かったのではないかという気がしている。


 ただこの方法論について語るときにどうしても思うのは、”とは言えやはり本当はこの付け焼刃的な理解では、本質理解できないんだよ”という

自分に対する自戒の念だったりする。だから結局のところは、動くものが作れるようになったその後で、細部の意味理解するための体系的な知識

確認のほうへと、従来の学習カリキュラムを逆走するような形で原点回帰することが、本当にプログラマとして生きていく上では最終的には必要になる。

(そういうものを目指さず動くものを作れるようになるだけであれば、それは必要ない。車の運転をするだけなら車のエンジン構造を学んでいなくても可能なのと同じ事だ)

世の中の大半のプログラマー自分よりすごい人ばかりだから、そういう人には私の言っている事はやはり今更感があるだろうが、

むかしの自分にもし伝えられることがあるとしたら、新しい技術自分で使ってみる時にどういう風に学ぶのが早かったかということを伝えたいもんだな、と思っていた。

ただ、私のやっている学習スタイルだと細部はほとんどスルーしてしまうから、動くものが作れたとしても本質理解できていないし、

他のプログラマ議論するために必要な語彙もそろわなくなってしまうので、プログラマとして生きていく上では、動くものができたその後でもいいか

自分が作ったものが何なのかという事を細部に至るまで説明できるように関わっている言語仕様の詳細を学んでいくべきなんだろうねということ、

そしてそれは何も作れていない状態言語仕様を学ぶのと比べればモチベーションは高い状態で取り組めるし、

とりあえずものが完成するというところにメルクマールを置くのであれば、最短最速の学習コースだといえるんじゃないか、という風に思っている。


 どんなものであれ最初から本質に入ろうとすると、抽象的すぎてすさまじく頭脳明晰な一握りの人達しか超えられないハードルがあると思う。

例えばJava言語であれば、最初の1ページ目にあるハローワールドの一文である以下の文

System.out.println("Hello World !");

理解するためには、最後のページあたりに説明されているオブジェクト指向ストリームラッパーなどについて知っている必要がある。

Systemクラスの出力ストリームoutのprintlnメソッド引数文字列を渡しているからだ。

だがそれを、プログラミングとは何だろうと思って初めてJavaから学ぶ人の最初の入口で説明しても、頭脳明晰な一握りの人達しかついていけない。

人間意味の分からないものは覚えられないのだから最初から意味理解しようとする普通人達の多くが、ここですでに挫折する。何を言っているのか意味が分からいからだ。

じゃあどういう順番で学べばよかったのだろうか。

そんな話を数年前に書いた。

世界観とは何なのかを勝手に考えてみた

16:00 | 世界観とは何なのかを勝手に考えてみたを含むブックマーク 世界観とは何なのかを勝手に考えてみたのブックマークコメント


 新海誠の「君の名は」の広告をみてこの人の作品はなぜこんなに強い世界観を感じさせるのだろうと考えていた。

目の前にあったのはただの絵でしかない。作品を見た後に全体を理解したうえでの状態であれば、

世界観とは全体性調和の事だと、かなり素朴に言えたはずだろう。

D

 ところがこの世界観を感じている時点で私は、作品を見ていない。昔の作品を見ていたから、その印象がまだ知らない作品内容を補完して、そこで世界観を感じ取ったのだろうか?

だがそもそもそれらの過去作品と似ている保証ひとつもない。

 じゃあ一体どこに世界観を感じるのだろう。見てもいないのに感じる世界観はどこから来るのだろう。私がその時、端的に感じたのは、つまりこういうことである


「背景だ」


 庵野秀明新海誠には一つの極めて分かりやすい共通点がある。キャラクターデフォルメされているにも関わらず、

背景は異常なほど緻密で写実的だ。フェティッシュを放つほどまでに、細部に行けば行くほど高精細な線が密集し、それは作品世界を超えて

現実生活社会記憶感覚召喚する。背景が異常にリアルであることによって、その絵づらは、描かれているものの外側にも空間が広がっていることを

疑いようもなくほのめかす。


D


 そしてそのことからは、なんとなく芥川龍之介羅生門を思い出した。羅生門文章の凄みというのは何なのかというと、

かなり短く端的なことだけを語っているような字数でありながらも、文章がたどった流れがまるで葛飾北斎浮世絵のように、

触れたいくつかの事柄だけを手掛かりに、ほかの事は語らぬまま、奥行きの中に封じ込められた完全な風景読み手の前に浮き彫りにしてしまうような表現力だった。こういう表現

常人には不可能で、何を強調し何を真っ白くかき消すのかということには、強い趣向性みたいなものが反映されると思う。

何かを撮影するときに、どの距離からどの角度で撮影するかという感性の中にその人の価値観のようなものが強く現れるのと似ているかもしれない。


D


 水墨画を書いたことはないか適当なことを言っては怒られるかもしれないが、日本の伝統的な表現の多くは、実は描くことによって

表現するというよりは、むしろ線や面によって空白を浮き彫りにすることで、虚無にこそ奥行きの本質表現させるような

逆説的な表現によって、空白のほうに主題を語らす”浮き彫りの技術”に特徴があるのではないだろうか。


 世界観というのは、そういう意味では、語られる物語や描かれる対象というよりも、その奥の陰影の中に投じられている、絵づらの外側にまで

ぐるりと達しているような描かれていない空間リアリティのような気がする。

 そしてそれを作り上げているのは、カメラの中心というよりはむしろ脇役だと思われている後ろの背景のリアリティなのではないか

トラックバック - http://d.hatena.ne.jp/Kow/20160820

2016-08-13 スタミナ制ソーシャルゲームとは何だったのか勝手に考えてみた

スタミナ制ソーシャルゲームとは何だったのか勝手に考えてみた

| 10:50 | スタミナ制ソーシャルゲームとは何だったのか勝手に考えてみたを含むブックマーク スタミナ制ソーシャルゲームとは何だったのか勝手に考えてみたのブックマークコメント


 2016年ソーシャルゲーム世界ではかなりインパクトがある一年になってるのかなという気がしてる。勿論それは、ポケモンGOもそうなのだ

ここ数年固定化していたAppStoreやGoogle Playランキングが全体的に再び変化が激しくなってきた。


 そもそもの話に戻ると、だいぶ昔のソーシャルゲームというのは、元々はモバイルウェブサイト技術で作られたゲームだった。

モバイル用のflash演出と、画像素材しか見栄えで差別化できる要素がなかったので、画像演出が一番派手になる画像で戦うカードバトルゲームってのが

ジャンルとして一世を風靡していたのかもしれない。


 その後、二つの流れがあって、HTML5さら演出を派手にしていく方向性と、一式クライアント側にダウンロードさせ更新が頻繁に入る部分をサーバに持たせるアプリ方向性があった。

これは誰が見ても明らかなように、今アプリが主流になったのだった。

そしてアプリになることによって、スマホを前提にした作り方ができるようになったことからスマホ独自操作スワイプ操作)を使えるゲーム体験提供したパズドラモンスト

なが〜い間、ランキングの頂上に座っていた。

 

 ポケモンGOは、さらにここに位置情報をやり取りできるという部分を使って新しい体験を見せた。

と同時に、クエスト部分がただの演出ではなくガチゲームループになっているゲームランキング上位に現れ始めた。


 この部分はどうやら議論も深まっているようで、スタミナ制の長所短所として知られている。

かつてのソーシャルゲームは、クエストで敵が攻撃してくる事がないので、ボス以外に負けることがありえなかった。ポチポチポチポチタップしていくだけである

そこでハードルになっていたのは、スタミナという仕組みだ。クエストを進めるとスタミナが切れる。待つと回復するが、それまでは進めない(課金すれば……)という仕組みだった。

ところがこの部分が今日では徐々に時代と共にこのスタミナ式のポチポチゲーでないスタイルが主流に置き換わっているのだ。スタミナが切れる事によって進めないのではなく、自分自身がうまくならないとむずかしさが上がって進めないという昔のゲームっぽさが入ってきている。

新しい攻略法を日々更新していく攻略サイト群やら、攻略情報などが飛び交って、話題性がどんどん飛び火していくような言論空間SNS上に広がっていく。

 とんでもなくうまいプレイヤーになれれば、課金しなくてもどんどん進めるのだろうか?という気になってどんどんやり込めてしまう。身の丈以上にうまいプレイヤーだと思われたいか

ついつい課金してしまう。

 それまでのカードバトルゲームでは、ここはうまい下手よりも運と課金額が左右していたが、うまければのし上がれるぞ!というゲーム性がうまく調整されていることによって

なんかこう、すげー熱いことになってきている気がする。


 考えてみると不思議なことだけど、スタミナ制は公平な仕組みではあったように思える。

うまい下手は問われていなかった。課金額とかプレイ頻度しか問われていなかった。だが今や、スタミナ制ではなくゲームゲームしたゲーム性に置き換わり、

流行りのゲームにはアクション性とか選択の組み合わせ判断の正確さやら速さやらが遊びの部分に入るようになった。

こうしてゲーム性が高まれば高まるほど、人間スペック差なり集中力の差みたいなものが入ってきて不公平になっていく(賢さ冷静さやる気なり反射神経なり動体視力なり)。

しかし人は、自分こそがうまい!つよい!才能がある!俺TUEEEE!と思うから、この不公平さに逆に熱狂してしまうのかもしれない。

うまくなることによって、強くなることによって、選べる選択肢は増え、自由度可能性がどんどん上がっていく。不自由な束縛は解除されていく。

かけた時間ではなく、一瞬の集中力判断力で決まるかに思える試合的なバトル!

真剣勝負で大逆転だああ

ポチポチゲーは本当にポチポチゲーだったのか

| 02:18 | ポチポチゲーは本当にポチポチゲーだったのかを含むブックマーク ポチポチゲーは本当にポチポチゲーだったのかのブックマークコメント


 昔書いていた事とも同じような話の繰り返しになってしまう部分もあるかもしれないけど、

実際には上に書いている話は色々なことが漏れいるかもなあと思った。


 というのはポチポチゲーというのはスタミナ制の仕組みで、ポチポチタップして進捗グラフが進んでいくだけのゲームだとか

敵が攻撃してこないんで負ける可能性がないんだとか言うのは、ポチポチゲーと呼ばれていたゲーム面白さにはカスリもしてないからだ。


 一方でたぶん、スペックゲーム専用機PCに常に劣っているケータイ表現力や当時の通信速度では映像や高品質データ表現力がつかえなかったので

静止画素材をふんだんに使った絵を中心としたカードバトルという仕様が一番表現力があって流行ったというのは

よく言われていることでもある。ガラケー文化が異常に進んでいた日本で特異に進化したジャンルだったのもそういうことだろう。


 ポチポチゲーはそれだけではMMORPGなどと比較されると非常に欠けているものが色々あった為に、そこを埋める仕様ガンガン追加され

PvP(対戦)やGvG(ギルド同士の多人数対戦)、レイボス共闘)なんかが組み込まれ、

そこでの勝負の為により強い、パラメータ特殊効果の良いカード必要になってガチャガチャガチャしまくるという部分にゲーム性があったわけで

クエストポチポチポチってる部分はスタミナの消費しか見ていないクソゲー仕様でも別に問題なかったわけである


 だが今では、そのクソで良かったポチポチ作業だったクエスト部分さえもが、作業ではなくてアクション性やら戦略性やらゲーム性のあるループに変わってきて

ソーシャルゲームオンラインゲームコンソールゲームとは異なるジャンルだと思われていた部分がうまいこと融合して

つのまにやら今までのゲームジャンルの正統進化方向性に発展してるんじゃないかという気がしてきている。

ゲームゲームしたゲームでありながらもスタミナ制の良い部分も使うとか、スマホ独特の操作性やセンサーを活かすとか、

今後も色々なものがでてきそうだし特定ジャンル二番煎じみたいなものばかりが流行る長い時期が終わって色々なジャンルが入り乱れている感じに

なってきていて面白くなっている気がする。


 ゲーム映画を目指してプリレンムービー中心だけになっていくのではなく、セカンドライフみたいな仮想現実だけになっていくのでもなく

まりよりリアルで高精細でありさえすりゃいいって流れだけでなく遊びやゲームの部分も洗練されて行ってほしいなと思う。

でも、決めておいた”正解”(アレ装備してないとレベルMAXでも勝てないとか、この手順でしかフラグ立たないとか、この編成でないとしのげないとか)の

攻略法をお題として隠しておいて、それ以外の方法攻略できないように難易度レベルデザインするってのではなくて

色々な攻略可能性を無限に発掘していけるような自由レベルデザインのほうがうれしい気がする

(だから対人戦やら試合みたいな部分が個人的にはやはり熱い。お題を攻略するだけでは難易度と正解のある試験問題を解いてる偏差値レースみたいになってしまう)。

そんなことを勝手に思ってる。


 ついでにいうと、10年ぐらい前には自分ゲームというのは快感を生じるためのシステムなんだとしか思っていなかった。

いい映像。いいUI、いいエフェクト、いいサウンド。いい音楽。それらを統合するエンジニアリング。デザイン。それは確かに核の部分ではある。

けれども実はそれらは手段なのであって、これら要素すべてが流行によって古ぼけていったりする。

本当の本質の部分は実は「遊び」そのものなんだと思う。その遊びを表現するためにそれらの要素が一つのコンテンツとして融合しているもの。それがゲーム

で、その「遊び」というのは「スポーツ試合」であったり何かの「真似ゴト」であったり「試験」であったり「オシャレ」であったり「貯蓄」であったり「クセ」であったり

ありとあらゆる生活遍在して共通している何かであるような気がする。予行演習的な。うまく言い表せない。命がけの何かではないものがすべて遊びなのかな。

でも命がけの戦争であれ、決闘であれ、それもゲーム重要な題材でもある。

ルールがあって、そのルールの中でできるだけ生き残ろうとする。それはゲームだと言えるかもしれない。

だが法律があって、その中で生活するのはゲームではないようである現実ルールゲームとは異なりまだまだ閉じた完全な仕組みではないからなのか?

ルールがあって、その中での駆け引きゲームであるのだとして、

完全な法律と完全な道徳が実現した社会では、法の順守も逸脱も、良心非道徳も含めてありとあらゆる生存の在り方がゲームとしてとらえることができるようになってしまうだろうか。

そうなってくると、ゲームという言葉はもしかすると「遊び」よりも外側にまで射程距離が届くような

ありとあらゆる動機付け欲望対象全てを主題化できるような概念にまで広がってしまうのかもしれない。

何がゲームではないのかを考えてみるとわかる。何々はゲームではないと言える可能性のあるすべてを、ゲーム主題として表現することができてしまう。

もちろん今そういう広範囲対象までもがゲーム化されているわけではないし、今あるゲームのほとんどはそういうものを扱わないし

扱っても面白くなければどうにもならないから作られないと思う。そういう意味では、可能性がどれだけ無限であるということよりも

そこから面白くないものをどんどん引き算した結果残るものが、ゲームの中に残るものなのかな。

可能性の中のつまらなさをどれだけ引き算して、面白さをどれだけむき出しにできるのか。そしてその面白さが最大限に強調されるための陰影や余韻、前フリのようなもの

ドラクエ5でみんなフローラを選んでいるらしいという話を聞いた

| 04:06 | ドラクエ5でみんなフローラを選んでいるらしいという話を聞いたを含むブックマーク ドラクエ5でみんなフローラを選んでいるらしいという話を聞いたのブックマークコメント


 なんかこの話題最近聞いた気もするしさっきまたそういう記事があったので思い出したことを書いみる。

ドラクエ5はモンスターを集める系のたぶん元祖のような気がする。そこからポケモンが出てきたように思える。

でも、バハムート召喚するという要素とホイミンとがその前からあったんだっけ?


 まあいずれにしても、ドラクエ5は何周もした記憶がある中で一度もフローラを選んだことがない。

だがみんなフローラを選んでいるそうだ。それがどうも不思議だ。逆に自分フローラはどう考えても選べるように思えない。

それが好みの問題ではないように思えた理由を、さっき読んだ記事で腑に落ちた。自分はパッケージにビアンカが描かれているかビアンカを選んだ。

フローラは突然出てきた完全に赤の他人のようであった。それは選べない。物語として成り立たない。

こういう部分に自分はどうも昔からこだわりがあったようだ。


 同じような意味で腹が立っていたのがFF8であった。サイファーイデアも、結局のところ脇役にしかすぎず、

ラスボスは見たこともない別の魔女であった。宇宙に行ったりしていた。確かに先が読めないのだが、ひどいぜと思って未だに根に持っている。

というのは序盤からさんざんムービーサイファーイデアが強調されていた為に、Vガンダムのウッソとカテジナクロノクルのような三角関係

物語の中心に来るのだろうと期待していたからかもしれない。

そういう風に序盤から先読みしていて、イデアの手の平の中でスコールサイファーも弄ばれているような物語を想定していたもの

先読みができないだけでまとまっていない物語へと発散していく展開が期待以上ではなく以下に思えた為に腹が立っていたのだと思う。

 まあでもそういうこじんまりしない物語からこそFF8はむしろ良かったのかもしれない。


 それにしてもフローラを選んだりFF8がいいぞと思う人達はかなり多いようで、

ゲームには色々な趣向やそれぞれ楽しみ方があるんだなと思った。

自分の感じ方がすべてだと言う話はまあありえない話である。パッケージにビアンカが描かれていようが、ムービーサイファーイデアを強調していようが

彼等全員がただの脇役でもいいのだし、どういう風に遊ぶのが自分にとって一番面白いかを誰かに指図される謂れなんかないわけである

色々な楽しみ方をより多く受け入れられるという事がこういうものが偏りなく色々なファンを作ってヒットした要因なんだろうし

そういう多様な好みをはじめから全部想定してるという話を、聞いたこともある。

この部分が売りだという尖がった部分で一発ネタのように勝負しているのではなくて、それぞれ異なるこだわりを持った専門家

自分の得意分野を尖らせたネタを持ち寄って組み合わせてできあがっているコンテンツなのだからまあそうなるんだろうなとも思う。

分業は悪い部分があると昔は思っていたけれど、実は分業だからこそ各自のこだわる別々の専門性を組み合わせてより広い好みに応えられるものができるのだということに最近気づいた。

これを一人で完結させようとした場合、大体、自分の趣向だけで尖らせた一発ネタが出来上がり、自分と似たタイプの人にしか理解されないものになってしまう。

分かりやすく言えば、フローラがいないドラクエ5なり宇宙にもいかアルティミシアがでないFF8ができあがる。

自分場合はどう考えてもそれがいいと思えるのだから

だがほとんどの人はフローラを選んでいるしFF8は今の状態最高傑作だと思っている。自分の考えだけ尊重するのだとしたら現にフローラを選んだりしている彼らにとっては非常につまらないものに仕上がってしまうということは確かだ。

2016-07-24 Cake3でTCPDFを使い、表形式のPDFを生成する

Cake3でTCPDFを使い、表形式のPDFを生成する

| 10:58 | Cake3でTCPDFを使い、表形式のPDFを生成するを含むブックマーク Cake3でTCPDFを使い、表形式のPDFを生成するのブックマークコメント

TCPDFをCakePHP3に導入し、HTML形式ではなくPDFを動的に生成して表示することができるわけだが、

そのPDFデータを表形式で表示するには、下のサイトが参考になった。

https://www.ibm.com/developerworks/jp/opensource/library/os-tcpdf/



    foreach( $this->invoiceData['items'] as $item ) {
        $this->Cell( $indent );
        $this->Cell( $wideCol, $line, $item[0], 1, 0, 'L' );
        $this->Cell( $col, $line, $item[1], 1, 0, 'R' );
        $this->Cell( $col, $line, $item[2], 1, 0, 'R' );
        $this->Cell( $col, $line, $item[3], 1, 0, 'R' );
        $this->Ln();
    }

の部分だけど、Controllerで表示したいデータ普通にArrayに詰めて渡し、

ループで中身をCell()に突っ込んでいくだけだ。

上で$thisとなっている対象はnewされたTCPDFオブジェクト

トラックバック - http://d.hatena.ne.jp/Kow/20160724

2016-07-16 RPGツクールがあってもゲームを作れない人が多かった理由

RPGツクールがあってもゲームを作れない人が多かった理由

| 22:32 | RPGツクールがあってもゲームを作れない人が多かった理由を含むブックマーク RPGツクールがあってもゲームを作れない人が多かった理由のブックマークコメント


RPGツクールは中々優れたツールで、今で言うところのゲームエンジン+素材みたいなツールであった。

だが、それを与えられても、ゲームを完成させられる人は結構限定されてしまっていた。

素材もあり、プログラミングしなくてもいいのだが、それでも作れない理由は、

レベルデザインという要素が実は見落とされていたせいだろう。ゲームゲーム性とは、見た目やユーザビリティシステムルール)以上に

難易度のバランスが重要なのだが、そのデザインの方法論は、全然議論されてきたことがない。


レベルデザインというのは、難易度設計のことである

序盤はサクサク進んだほうがいいし、中盤は歯ごたえがあり、後半はギリギリ勝負になるべきである

だが、それをどうやって作りこめばいいのかは、ひたすら作っては壊し作っては壊しの連続しかないと思われていた。


だが実際は、ゴールとか正解の攻略法の設定からスタートするものなのだと思った。

そのイベントは、何レベルのプレイヤーが、直前で手に入る何々を装備したパラメーターで、何分かけてどんな戦法で戦った時に勝てるイベントなのかというところを決め、

それ以外の攻略法が困難になるようなモンスターなりダンジョンなりを段階的なレベルデザインによって配置することによって

難易度をコントロールしていくものなのだと(正解攻略法の決定からスタートする)。

そもそもそのイベントは最短ルートで何レベルで到達できる場所で起こるイベントなのかをマップデザインで調整し、

平均何歩ごとにエンカウントがあるかそのエリアの平均経験値はいくらなのか、などの設定でそこへの到達レベルをコントロールし、直前の街や宝箱で入手できる装備でパラメータをコントロールし

一番いい条件では勝てる、もしくはギリギリになるようなそれぞれのパラメーターを計算設計する。


序盤であれば力押しが通用するように緩めに作るが、後半はあらかじめ設定した正解の攻略法を激しく複雑化しつつ、その複雑な方法以外の方法では

攻略不能である可能性が高まるようなパラメータ設計を徐々に後半に向かえば向かうほど難しく組んでいくわけだ。

それはまるで、詰め将棋に似てくる。


無駄をなくせば攻略できることが明らかなほど、ギリギリで負ける。

あとほんの一工夫するだけで、勝てるかもしれないが今は負けてしまう。そういうバランスを後半で作りこむ。

そういう事がゲームのデザインなのだが、大抵は見落とされて、魅力的なキャラクターや、シナリオや、BGMや、それっぽいシステムだけで満足してしまう。

簡単すぎでは飽きてしまい、難しすぎては萎える。

工夫したときだけクリアできる難易度を、少しずつ難易度をきびしくしながらも曲線的に設計することのむずかしさみたいなもの

実はゲーム制作心臓部分なのだと思う。


完膚なきまでに叩きのめされ続けたり、あるいは逆に簡単すぎて退屈したりしないような、ギリギリの緊張感になるようなバランスを計算設計していく事が

重要だという事、それをどうやって計算し構築していったらいいかということ。

これが実は、RPGツクールであれなんであれ、ゲームを完成させるために必要でありつつも忘れられがちが核の部分だと思う。

要するに、システムや、シナリオや、絵や、サウンド、映像などの素材が全部そろっただけでは、ゲームにはならないのだ。難易度設計が、その世界意味を活かしも殺しもするのだ。

勝てもしない戦いには挑戦しても無意味なのだし、楽すぎる挑戦は、退屈すぎてつまらない。

歯ごたえのあるチャレンジの連続になるようなレベルデザインは、プレイヤーキャラクターの成長曲線を精密に予測設計した上で表計算的に設計され作りこまれている。

ゲームとはそうやって作りこまれているという事は、実は案外、気づかれていない気がする。

そしてそういうもの必要だということが理解されていないために、RPGツクールがあろうが素材が全部あろうが、ゲームは完成しない事が多いんだろうと思う。

トラックバック - http://d.hatena.ne.jp/Kow/20160716

2016-07-10 CakePHP3でTCPDFを使う

CakePHP3でTCPDFを使う

| 20:50 | CakePHP3でTCPDFを使うを含むブックマーク CakePHP3でTCPDFを使うのブックマークコメント

TCPDFは、PDFを生成するためのPHPライブラリだ。

CakePHP3でこれを呼ぶためには、composer.json

    "require": {
        "tecnickcom/tcpdf": "*"
    }

を追加して、

composer updateをかけるだけである


実際にうまく入ったかどうかは、

TCPDFの簡単サンプルコードを使って確認してみればいい。

HTMLページの代わりに、PDFデータを表示できる。

pChartも、実際は画像を動的に生成しているだけなので、pChartで生成したグラフを表示したりも

普通にできる(TCPDFの画像表示用の作法に従うだけで)。


テキストを渡すこともできるが、html形式の表示を渡してPDFとして表示させることもできる。

サクラエディタのGrep置換

| 21:02 | サクラエディタのGrep置換を含むブックマーク サクラエディタのGrep置換のブックマークコメント

私はもうだいぶ長い間、テキストエディタEmEditorを使っている。理由は保存時の文字コード選択ができるからだ。

が、サクラエディタにある、Grep置換というものを知って少し揺らいでいる。気持ちが。


通常の置換で、ファイル内の文字を一斉に置き換えるということはよくやることである

しかし、それでは大量のファイルに対して同じ操作をやりたいとなったとき

ファイルの数だけ置換を繰り返すなどという、バカげた単純作業が発生してしまいそうに思える。いろいろなバカげたことが起きると、そういう作業も発生する可能性はある。

Linuxハッカーであればパパッと数秒で終わらせる作業なのだろうが、

普通人間には一日がかりの作業になってしまうような類の作業である

天才ハッカーでない我々は、枕を涙で濡らしながら単純作業を人力で行うしかないのだろうか?

そこで登場するのがサクラエディタGrep置換だ。

置換の処理を、選択フォルダ内のすべてのファイルに対して適用するのがサクラエディタGrep置換だ。

作業用のフォルダを作り、そこに置換の必要ファイルをまとめてつっこんで、

Grep置換を1回やるだけで、全ファイル対象文字列が、置換される。オーマイガ、1000件なり10万件なりのファイルが!一気に置換済みになったぞ!

ハレルヤ!(妄想

トラックバック - http://d.hatena.ne.jp/Kow/20160710