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

2016-09-24 Ajaxで画面遷移なしで取得したDBレコードをhtmlに反映させる

Ajaxで画面遷移なしで取得したDBレコードをhtmlに反映させる

| 18:49 | Ajaxで画面遷移なしで取得したDBレコードをhtmlに反映させるを含むブックマーク Ajaxで画面遷移なしで取得したDBレコードをhtmlに反映させるのブックマークコメント

	<input type='button' onclick="a()">
	<div id="a"></div>

 仮に上のような記述をしておいて、ボタンが押されたタイミングでid="a"のdivの中に、DBから抽出したレコードがポンポン挿入されるように

したいとする。

 例えばこんなJavascriptでいけるようだ。

<script>
	function a() {
		$.ajax({
		  type: 'GET',
		  url: 'http://localhost/jsonf.php',
		  async: false,
		  success: function(json){
		    var data = JSON.parse(json);
		    var len = data.length;

		    for(var i=0; i < len; i++){
		      $("#a").append(data[i]["a"] + '<br>' + data[i]["b"] + '<br>');
		    }
		  }
		});
	}
</script>

 URLの部分は、DBレコードjsonエンコードしたものをreturnで返すようなphp側のメソッドURL普通指定する。

ちょっと試しておきたかっただけなので、今は仮に別ファイルPHPに下のようなものを書いて読んでテストしてみた。DBからレコードの形っぽくした

arrayをechoしてるだけのPHPボタンクリックするたびに、test1〜test4がリロードなしで追加されていく。

<?php

	$tmp = array(0 =>
                   array("a" => "test1",
                         "b" => "test2",
                   ),
                     1 => 
                   array("a" => "test3",
                         "b" => "test4",
                   ),
           );
	echo json_encode($tmp);

?>

 JSONにすると、

[{"a":"test1","b":"test2"},{"a":"test3","b":"test4"}]

こんな形で多次元連想配列であっても単なる一行の文字列のように渡せる。これをJSON.parse()で配列に戻して利用する。

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

2016-09-18 繰り返し要素が二重になっている画面のデータ構造

繰り返し要素が二重になっている画面のデータ構造

| 13:43 | 繰り返し要素が二重になっている画面のデータ構造を含むブックマーク 繰り返し要素が二重になっている画面のデータ構造のブックマークコメント

ボタンのonclick()でAjaxを呼ぶなどして動的に増減するブロックがあったとする。

そのブロックの中にさらに別のAjax処理によって動的に増減する要素を組み込んでいる場合

データ構造はどのようにしたらよいだろうか。


これは繰り返し要素の中にある繰り返し要素をどう扱えばいいかという問題だ。

二重になっている繰り返し要素の内側の要素を扱うには、紐づけられた外側の繰り返し要素が必要だ。


というわけで二次元配列的なデータ構造を思いつくだろうけれど、

外側の繰り返し要素が含んでいる、内側の繰り返し要素以外の要素を適切に扱えなくなってしまう。


以下のようなデータ構造ならできる。

   $arr = array(0 => 
                array('a_list' => 'aaa',
                      'b_list' => 'bbb',
                      'row_list' => array(
                                    0 => array('c_list' => 'ccc',
                                               'd_list' => 'ddd',
                                               'e_list' => 'eee',
                                         ),
                                    ),
                ),
          );

外側の繰り返し要素の為の配列の中に連想配列を持っている。連想配列の一要素(ここではrow_list)にさらに配列を持たせ、その中身が内側の繰り返し要素になる。

これを例えば以下のように二重のforeachの中で捌けばよさそうだ。

<?php foreach($arr as $tbl) :?>
	<table border="1">
	<tr>
		<td>
			<table border="1">
				<tr>
					<td>
						<?php echo $tbl['a_list'] ?>
					</td>
				<tr>
				<tr>
					<td>
						<?php echo $tbl['b_list'] ?>
					</td>
				</tr>
			</table>
		</td>
		<td>
			<table border="1">
				<?php foreach($tbl['row_list'] as $row) :?>
					<tr>
						<td>
							<?php echo $row['c_list'] ?>
						</td>
						<td>
							<?php echo $row['d_list'] ?>
						</td>
						<td>
							<?php echo $row['e_list'] ?>
						</td>
					</tr>
				<?php endforeach; ?>
			</table>
		</td>
	<table>
<?php endforeach; ?>

ちなみにこのデータ構造は、例えば以下のような形のダンプになる。

array(3) {
  [0]=>
  array(3) {
    ["a_list"]=>
    string(3) "aaa"
    ["b_list"]=>
    string(3) "bbb"
    ["row_list"]=>
    array(1) {
      [0]=>
      array(3) {
        ["c_list"]=>
        string(3) "ccc"
        ["d_list"]=>
        string(3) "ddd"
        ["e_list"]=>
        string(3) "eee"
      }
    }
  }
  [1]=>
  array(3) {
    ["a_list"]=>
    string(3) "ggg"
    ["b_list"]=>
    string(3) "hhh"
    ["row_list"]=>
    array(3) {
      [0]=>
      array(3) {
        ["c_list"]=>
        string(3) "iii"
        ["d_list"]=>
        string(3) "jjj"
        ["e_list"]=>
        string(3) "kkk"
      }
      [1]=>
      array(3) {
        ["c_list"]=>
        string(3) "iii"
        ["d_list"]=>
        string(3) "jjj"
        ["e_list"]=>
        string(3) "kkk"
      }
      [2]=>
      array(3) {
        ["c_list"]=>
        string(3) "iii"
        ["d_list"]=>
        string(3) "lll"
        ["e_list"]=>
        string(3) "mmm"
      }
    }
  }
  [2]=>
  array(3) {
    ["a_list"]=>
    string(3) "ggg"
    ["b_list"]=>
    string(3) "hhh"
    ["row_list"]=>
    array(2) {
      [0]=>
      array(3) {
        ["c_list"]=>
        string(3) "nnn"
        ["d_list"]=>
        string(3) "ooo"
        ["e_list"]=>
        string(3) "ppp"
      }
      [1]=>
      array(3) {
        ["c_list"]=>
        string(3) "qqq"
        ["d_list"]=>
        string(3) "rrr"
        ["e_list"]=>
        string(3) "sss"
      }
    }
  }
}

そこらへんで公開されているAPIの出力をパースした中身とよく似た形だなと思った。

何はともあれ、DBから取ってくるなりリクエストで投げられたなりしたデータをそのままループさせても無理なので、

この形にデータを整形しなおす前処理が必要になると思う。

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

2016-09-03 Ajaxとか非同期通信など。JQueryやJavascriptの話

Ajaxとか非同期通信など。JQueryやJavascriptの話

| 20:42 | Ajaxとか非同期通信など。JQueryやJavascriptの話を含むブックマーク Ajaxとか非同期通信など。JQueryやJavascriptの話のブックマークコメント


今更感があるけれど、最近ようやくAjaxを覚えた。

Ajax無しのウェブは、画面をリロードするなりリンクを遷移しないと表示が更新されない。画面遷移のタイミングで表示を更新するサイトになる。

例えば、昔のチャット掲示板は、リロードで内容を更新していたものである

Ajaxを使えば、ユーザアクションに応じて、画面の一部分だけを更新するみたいなことができる。

リロードのタイミングで、サーバサイドに戻って全体を再描画するのではなく、Javascriptからサーバーサイドのメソッドを呼んでデータを取得し、HTML要素の一部分だけを新しいデータ更新するみたいなことができる。


典型的にはonclick()なりonChange()なりにJavascriptのfunction呼び出しを指定して、そのfunctionの中でAjaxを使い、得られた返り値をdocument.getElementById()とかで指定した特定の箇所に対し$().prepend()などを使って追加していく。

Ajax

function test(){
    $.ajax({
        url: '呼びたいメソッドのurl'
        success: function(response){
            return response;
        },
        error: function(response){
            return response;
        });
}

のような構文で書かれる。urlと同じスコープに色々設定を指定できるので、type:にGETリクエストなりPOSTリクエストなりサーバーサイドへのリクエストの種類をセットし、urlで呼び出すメソッドurl記述し、

dataTypeに返り値のデータの型を指定するなどなど諸々調整できる。

するとこのfunctionのリクエストは画面遷移無しで走って、メソッドから返り値を返してくれる。successの中でresponseに入ってきている返り値を

うまいこと料理して、http://qiita.com/nekoneko-wanwan/items/227ccad5f8cc449e91e9

にあるようなDOM操作の処理に渡してあげると、いちいちリロードしないで画面に更新内容が反映される。

例えばGETリクエストであれば、urlの後ろに?変数名=中身&変数名2=中身みたいなGETパラメータ指定してやれば、

メソッドAjaxで値を渡せるので、その渡された値に基づいてサーバ側はDBへの問い合わせを行い、結果をreturnしてやる。その結果は上のサンプルコードでいうところのresponseに入ってくるので、

responseの中身をDOM操作で表示に反映してやる処理を、successの中に書くという感じである

ただ、非同期通信なので、successに入った時点でまだ結果が返ってきておらず値が反映できない場合もある。

そんな時は、async: falseで同期通信にもできるし、

function test(){
    return $.ajax({
        type: 'GET',
        url: 'http://kitagawa.keiko'
    })
}

test().done(function(result) {
    なんか処理
}).fail(function(result) {
    なんか処理
});

のような形で非同期のまま確実に返り値を取れるようにできるらしい。

脱線するけど、下記に、JQueryプラグインの作り方が解説されている。こういうのを作ってGitHubに公開するのは楽しそうだなと思う。

https://gist.github.com/maepon/4754210

tei223tei223 2016/09/08 11:53 はじめまして。EaseUS SotwareのTeiと申します。
メールアドレスなどのご連絡先をいただけませんでしょうか。
弊社の製品レビューのご執筆をお願いしたいんですが…
恐縮ですが、メルアド:teiisyou@easeus.comまでご連絡いただけますでしょうか。

お手数ですが、ご覧になったら、このコメントを削除していただけませんか。

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

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