2011年12月28日水曜日

ゲーム開発初心者の「何で作るのが一番いいですか?」に対するベストな回答

このエントリーをはてなブックマークに追加
このエントリーは、ゲーム開発初心者がよく質問する「最初は何で作るのがいいですか?」に対する回答に関する考察についての話です。

この手の質問自体は、過去に質問サイトや2chなどで頻繁に目にした記憶があります。そしてそれに対する回答は、質問毎によって変容し定まっていません。例えば、

  • 「C言語がいいんじゃないでしょうか?基礎が身につきます」
  • 「Pythonが手軽でいいです。コンパイルの必要も無いですし」
  • 「コンパイル無しでいいなら、PerlもRubyも手軽です。書いてて楽しいRubyがいいんじゃないでしょうか」
  • 「JavaScriptはもっと手軽ですよ。結果がすぐ見れますし」
  • 「VisualC++とDxLibの使用をおすすめします」
  • 「業界を目指すんであればC++」
  • 「HSPからやって、そのあとC言語に行くのがいいと思います」
  • 「RPGツクールとか、そういうツールとかからでいいと思う」
  • 「Unityがいいと思います」

毎度こんな感じで回答が溢れ、質問者は「どれが一番いいんだよ!」と心のなかで嘆きつつも「教えてくれたやつを色々調べてみます。ありがとうございました」で閉めちゃいます。中には実際に「どれが一番いいんだよ!」と直接訴えるケースもありますが、その場合「結局は、どれでも好きなのでいいんじゃない?」「要は、やりやすいと思ったやつで作ればいいんじゃないの?」と、あたかも正論かのように腐臭のする結論を吐き出し、万事解決したかのような笑みを浮かべているのではないでしょうか。どのケースにおいても、質問者が路頭に迷っているという状況は変わっていません。こんな質問と回答の繰り返しが、もう何年も幾度と無く繰り返されているのです。どうしてでしょうか。

まず、回答者の回答内容が定まらない質問者側の原因として考えられるのは、

  • 質問の条件を提示していない
  • 質問者が質問の条件について決定すべき情報を持ちえていない
があります。

よくPC関連の質問では、PCスペックやOSなどの環境の情報な無ければ回答が難しい質問があったりします。環境情報が記述されていないPC関連の質問に対しては、そもそも情報不足のためピンポイントな回答ができません。

同様に「最初、ゲームは何で作るのがいいのか?」という質問も、回答の内容が条件に左右されます。例えば、動作させたい環境が決定している場合、
  • iPhoneアプリ作りたいです。→MacでXcode使って下さい
  • Flashゲーム作りたいです。→Adobe Flash を買うか、Flex SDK を使って下さい
などのように、回答がほぼ固定します。複雑な議論に発展することも少ないでしょう。しかし、もしそれが固定していれば、質問者側もその情報を提供する可能性が高いですが、それが無いケースが多いです。わざと教えないのでしょうか?いいえ、質問者もそれがわからなくて迷っているのです。例えば、以下のようなケースです。
  • 漠然とゲームを作ってみたいけど、どうしていいのかわからない
  • 将来、ゲームプログラマになりたいけど、何を勉強していいのかわからない
このケースの場合であっても、はじめの回答例のような「○○を使うのがいいですよ」という具体的な開発環境の推薦が根拠無しに並びます。回答している本人は確固たる根拠を持っているように感じていると思うのですが、もし本当にそうであれば、質問毎/回答毎に別のものが推薦されるという惨状が繰り返されることは無いはずです。この時の回答内容定まらない回答者側の原因は、おそらくは、回答者が個人的にたまたま知っている環境、よく知っている/使っている環境、好きな環境から推薦するものが選ばれるから、というのが伺えます。

「では結局のところ、漠然とした思いからゲームを作りたいと思っている人は、何で作るのが一番いいのか?」という質問に対する一番いい答えは何か?まず「そんなものは無い」と、きちんと本当のことを教えてあげて下さい。そして「進むべき道筋のパターンも多く存在し、どういう時どういうパターンのどういう順序で何をどう学び作っていけば良いのか、という情報が必要である」ということを教え「その道筋の例となるような情報探したり、聞いたりしてください」と伝えて下さい。

決してあなたの「おきにの環境」を闇雲に推薦しないでください。迷っていた質問者が、より迷うことになるだけです。どうしても進めたいのであれば、あくまで「自分の場合はこうでした」と、ひとつのケースとして提示するに留めて下さい。

「ゲームを作りたいのですが、何をしたらいいんでしょうか」という質問を文字通り受け取らず、その奥にある「ゲームを作りたい」という思いを成就させるための後先の長い将来的な構想を提供してくだださい。それは、とても一言では説明しきれない長い長い説明で、それは、常に様々な新しい考えが反映され頻繁に更新されるようなものになるでしょう。「C言語がおすすめです」じゃ済まされないんです。

「進むべき道筋のパターン」の1つとして、とても参考になるのが Abars さんの「ゲーム制作講座」です。個人的にはこのページはとても好きです。もし、迷える子羊を見かけたら、このページを1つの道筋の例の参考として薦めてあげて下さい。

2011年12月27日火曜日

「悪徳ゲーム」に対する投稿まとめ

このエントリーをはてなブックマークに追加
過去に自分が「悪徳ゲーム」についてGoogle+に投稿/コメントした内容を転載します。

"ソーシャルゲームの本来のソーシャル的な友達とのやり取り的楽しみを根ざした比較的ヘルシーなソーシャルゲームは、それはそれで良しとして、そうではない催眠商法まがいの"それ"は、悪徳ゲームと呼ぶべき。いや「ゲーム」という神聖な言葉も汚したくないので、ただの「悪徳商法」と呼ぶべき。"

"ゲーム的な純粋な"楽しさ"を提供しているものはヘルシーな経済だと思っていますが、その"楽しさ"的なものや射幸心をあおるような形で銭を"際限なく"巻き上げるというスタイルを"悪"だと言っているのです。そんなものは経済でも富でも愛でも何でもないです。"

"悪徳商法に限らず、すべての経済活動や商取引は、何らかの人間の欲や習性に、ある種"つけこんで"いるわけなので、その主張によって「悪徳ゲーム」も「一般ゲーム」も双方とも悪、もしくは悪ではない、という判断は出来ません。また、裁判にて罪の重さが決められるとき、被告の犯行の意図や、どういう意思に基づいて行った行動なのかということが、罪の重さを左右することがよくあると思います。これと同様に「同じ「ゲーム」という体裁したそれが「どういう意思によって作られているか」」という基準で私はそれに愛を感じたり、悪を感じたりします。「悪徳ゲーム」からは「銭を巻き上げる」という意思がひしひしと感じ取れるので嫌悪感と共に"悪"を感じます。"

"金が回ること自体が"善"だとすれば、ヤクザも詐欺師もお金を回しているという点で"善"ということになってしまう。経済の本質はお金が動くことなんかじゃなくて「誰が誰のためにどう動いて何を生むか」だ。つまり「愛」。いわゆる「悪徳ゲーム」は、愛のかけらも感じられない。"

"「ソーシャルゲーム」っていう名前自体は、もともとは「非同期オンライン的に他人にちょっとした干渉が可能なゲーム」というような意味合いで使われていたので、フリーミアム的悪徳催眠商法的ゲームに対して使って欲しくない。悪徳の方は悪徳ゲームって呼んで欲しい。"

2011年11月30日水曜日

ゲーム作品を発表する魅力的な場が必要という話

このエントリーをはてなブックマークに追加
自分のGoogle+の過去から転載。
https://plus.google.com/102285522680170563800/posts/5i9k9UQXbvz?hl=ja

フリーゲームには、作り手も遊び手も知っている発表の「場」が必要なんじゃないかな - 平凡なエンジニアの独り言

ーマガは「場」として魅力的だった。それは、自身がベーマガを読み、その中身から「他にベーマガを読んでいる人」「他のプログラム投稿をしている人」「編集者/記事を執筆の人」などの多くの人が投稿したものを見るという意識が強く感じられるからである。

Web時代が拓けてからは、そういった「場」の提供が盛んになり、確かに「場」は増えた。しかし「場」が分散してしまったために、そこに参加している人ももちろん分散してしまっている。

参加している人数以外にも、その「場」自体に、たくさん人があつまっているということが意識できる仕組みがあるかどうかも「場」としての魅力に関わってくる。ニコニコ動画が流行ったのも、あの画面中に流れるコメントによって「ここに投稿すればみんな見てくれる」という意識が芽生えたからこそ(実際に多くの人が見てくれるかどうかは別として)、そこで作品を発表する意欲が増す。結果、良質な作品が集まる。

時代はソーシャル時代になり「おもしろいコンテンツ」の情報はソーシャルな仕組みを通じて広まり、その作品がどこで発表されたものなのかということはあまり意識されなくなった。これまで発表の場という縦軸に対して人が群がっていたのに対して、今はソーシャルという横軸が串刺しになっているのである。

もはや、作品がどこに投稿されたかというのは重要ではなくなった。どこの動画サイトに投稿されたものであろうが、おもしろい動画は人気が出る。ゲームであっても、個人Webページに何気なく置いたものであっても、今ではソーシャルの仕組みによって広まる可能性は充分にある。

しかし、作品を作ってきた人がこれまで目標としてきたような魅力的な「場」という存在はどうなってしまったのか。ソーシャルという仕組みは「作品発表者にとって魅力的な場」になりえているのか。個人的な感想から言うと、なっていない。

「場」には、発表の形式/フォーマットが存在している。今現在、ソーシャルの仕組みを使ったゲームの発表についてはフォーマットは存在しない。Twitterであれば「○○ゲーム作りました。遊んでください→URL」と書くだろうか。それに100人以上群がるか

ソーシャルの仕組みによってあふれた情報を、さらに分類/集計などしてまとめたサイトが増えてきている。これだ。これこそ新しい軸。奥行き方向の新しい軸だ。縦軸の「場」によって発表された作品が、横軸のソーシャルによって情報が串刺しになり、それが奥行き軸よってまとめあげられる。

そういうことだ。誰か縦軸/横軸によって発表されたゲーム作品の情報を、美しいフォーマットによって奥行き軸でまとめあげるサービスを作ってくれ。それが作品発表者としての魅力的な作品発表の「場」となり、良質なゲームを創出する意欲へとつながる。魅力的な「場」は、魅力的な作品を生み出す。

詐欺と搾取のクソ擬似ゲームコンテンツ社会をぶっつぶしてくれ!!!

2011年9月12日月曜日

Googleの新プログラミング言語、構造化ウェブプログラミング向け「Dart」

このエントリーをはてなブックマークに追加
Google、新プログラミング言語 " Dart " を来月発表、「構造化ウェブプログラミング」向け
http://japanese.engadget.com/2011/09/09/google-dart/

「構造化ウェブプログラミング」というのは聞いたことが無いので想像するしかないけど、JavaScriptよりも少し硬く、かつ柔軟性を持っているような言語を期待している。

ちょうど、JavaScriptでゲームを作るのは、ちょっと柔らかすぎるんじゃないかと思っていたところなので、期待は高まっている。

次世代JavaScriptを試せるGoogleの「Traceur」というものが頭をよぎったけど、これは一応ECMAScriptの先々の仕様を試せるというものだったから、これとは別路線ということだろう。

2011年9月10日土曜日

JavaScriptのArrayから特定の要素を削除する方法

このエントリーをはてなブックマークに追加
JavaScriptのArrayから特定の要素を削除する方法。

var array = [1, 2, 3, 4, 5];
array.splice( array.indexOf(3), 1 );

2011年9月8日木曜日

JavaScript+HTML5(Canvas2D)によるゲーム開発でしっくりこないところ

このエントリーをはてなブックマークに追加

JavaScript+HTML5(Canvas2D)によるゲーム開発で、今のところしっくりこないところを特別に紹介!

  • 操作にゲームパッドが使えない
  • ゲーム画面をフルスクリーンにする手段は無いことはないが、一部プレイヤー手動(キャンバスサイズをクライアント領域内いっぱいにし、プレイヤーに手動でブラウザフルスクリーン化してもらう)
  • ファイルパッキング周りがサクっとできない
  • 音声再生でAudioElementだと再生のレイテンシがでかく1インスタンスで同時再生できない(→WebAudioAPIのほうがいい感じだけど、まだ標準で使えない)
  • ChromeでローカルテストするときにXHRでローカルファイルにアクセスできない(起動オプションをつければできるけど、誰かにローカルでのテストお願いする時に「オプションつけて起動して~」って頼まないといけない)

とまあ、こんな感じで不満な点はあるものの、今後改善されていくものもあるだろうし、プラットフォームとしてのHTML5(Canvas2D)はかなり期待できるものがある。

あとはHTML5製のコンテンツが充実して「俺もHTML5でゲーム作る!」っていう風に人口が増えていけば、制作手法的な情報も増えていくと思うので、こちらも期待。

2011年8月20日土曜日

ゲームプログラミング勉強会 札幌 1.0 に参加してきました

このエントリーをはてなブックマークに追加
ゲームプログラミング勉強会 札幌 1.0 に参加してきました。
楽しかったです。
Unity、 Lua など、ゲームエンジン周りの話が多かったです。

講演内容以外としては、Kawazメンバーが見れたというのと、
何人かと名刺交換ができた、というのが大きかったです。

次回、2.0があったらまた参加したいです。
JavaScript/HTML5/WebGLまわりで話したいけど、
本業が忙しいので厳しそうだ…。

2011年6月23日木曜日

BoundingBallArt

このエントリーをはてなブックマークに追加
jsdo.it の埋め込みテスト。