メニュー
人気記事
このページはNYSDLで公開しています(転載可) 任意に引用したり、コピったりできます。 *めぬー [[おめが・企画厨隔離室]] *マズーはじめに **重要っぽいこと -多様性(量は何事にも勝る) -一意性(秀でた特性は他を圧倒する) -単純/短絡思考(シンプルさは誰にでも伝わる) -アフォード(縛り付けるのではなく、誘導する) -メタファー(共通知識は有効に使う) -そして何よりもバランス すべての情報は正しく、また正しくありません。すべての情報を信じ、疑う必要があります。この文章自体もまた正しくありません。 すべての情報には、0%より大きく100%未満の信頼性が付随します。必ず正しいことはなく、必ず間違っていることもありません。 あなたが信頼してよいことは、あなたが今現在触れているものと、それに対する感情だけです。しかし、これもすぐさま過去となり、信頼性は失われます。 唯一重要なのは現在です。そして、次なる現在となりえる未来です。しかし、過去はただの改ざんされうる記録であり、未来はまだ存在しえぬ夢でしかありません。 この文章は矛盾を含みます。 **良いとか 悪いとか 何かをするときには、「なぜそれをするか」「結果何が起きるか」を考える必要があります。「良い」とは何か考える必要はあります。 結論を言えば、「良い」「悪い」ということは、何らかの突出した特性(癖)を、ある価値観に当てはめた際の評価です。評価=特性×価値観。つまり、価値観または特性が無ければ、良い悪いといった評価は発生しません。 情報の価値は、分散値が高いほど価値がつきます。(後述のパラメータ強度) 突出した特性=分散ですから、特性を消すのは、価値自体を潰すのに等しいといえます。没個性への道です。 対処すべきは価値観です。価値観さえ受け入れてもらえれば、どんな理不尽なルール、システムも、良い特性として理解されます。 **価値観 価値観は思い込みです。 残機つぶしをして常に残機1/0で進まなければならないゲーム「バトルガレッガ」は、生存を第一とするシューティングとして理不尽ですが、「常にギリギリの状態を演出しながら戦うプロレスゲー」と理解すれば問題はありません。 思い込みは見た目から来ます。 同じゲームシステムでも、かわいい小動物のキャラを殺すのと、憎たらしい悪人面を殺すのでは、思い込みは異なります。 **問題解決 問題を解決するには以下の方法があります -問題から発生する不利益を解決する -問題を問題として認識しない -問題が発生する状況を無くす これらの方法は時と状況で選択すべきです。 一般には一番目の手段が「問題解決」とされています。しかし、これは単純な対処であり、突進のような思考停止でもあります。ゲームルールでこれを行う場合、ルールの追加という形になるため、ルールが複雑化します。 二番目の方法は、いわゆる「一番美しいものを作った。有名な建築家が(ry」であり「仕様です」です。こういうとアレな選択に見えますが、使う機会はちゃんとあります。あなたが問題として認識している事柄は、他の人からは問題として認識されていないことがあります。この場合、その問題を解決しても、大して効果はありません。気にするから気になるというヤツです。 三番目の方法は、問題発生原因ごと取り除くという方法です。自動車事故が起こるのは、自動車があるから、という理論です。ゲームルールの場合、ルール削除という手段になるので、ゲームは単純化されます。 問題が発生し解決方法も分からない場合、この手段は非常に有効で、強力です。 **解析/分解 物事を解析するには構造解析の技術があると良いです。これらの解析は普段人間が特に気にせず行っています。 プログラミング、UI設計に応用可能 -ノード -リンク -ツリー構造(木構造) -リスト構造 -ウェブ構造 -カテゴリ -階層 -属性 **過去の英知 必要と思える勉強はしましょう。過去の実例と英知は、あなたが無知であったときにするであろう無駄な時間/作業/コストを大幅に削減してくれます。車輪の再発明を防ぎ、それに費やしたであろう時間をあなたがしたいことに費やすことができます。 時間はとにかく足りません。楽をするためにありとあらゆる努力をしましょう。学習法自体の研究も必要でしょう。すべてのことを知り尽くすには、一人の人間はあまりにも非力です。 可能ならば、完成しているもの、そのものを利用しても良いでしょう。ただし、それを作った人がいることを忘れないでください。あなたが今いるのは、あなたへ続く過去の人がいることを忘れないでください。 そして、過去の英知を未来へ繋ぐことができるのもあなただということを忘れないでください。あなたがその英知を放置すれは、埋もれてしまい、歴史から消えてしまうかもしれません。 ---- *ゲームと作業 ゲームは作業です。特に、楽しい作業をゲームと言います。 一般的に作業は面倒で、苦痛と言われています。ゲームは一歩間違えば、ただの苦痛マシーンです。 ゲームを作ることは、「面倒なことを他人にさせるために面倒なことをする」ことです。あなたの少しの面倒で、他の沢山の人に面倒なことをさせることができます。 あなたは、面倒なことをすることによって、他の沢山の人の生産効率を下げ、堕落させることができます。ゲームはあなたの健康/人生/脳みそを損なう恐れがあります。 Games all bad, and make you mad. (9bit-confusionサイトトップより引用) あなたは、ゲームで世界を堕落させる悪の手先になることができます。さあ、ゲームを作りましょう、同士諸君。 *面白さ ゲームは無駄です。作業です。 それを認めた上で、ゲームは「なぜ面白いのか」ということを常に理論的に考え、それをゲームにフィードバックして行くことが大切です。 *ゲームのボーダー ゲームとは何かというのも考えるべきです。 ゲームであるものとゲームでないものの境界、グレーゾーン。あなたはゲーム以外のものを作ってもなんら問題はありません。ゲームがゲームである必然性はありません。 強いて言うなら、あなたの作品を解析したり、ジャンル分けする人が困惑する程度です。面白いと思うなら、迷うことなくグレーゾーンを踏み荒らしましょう。 ---- *ゲームデザイン ゲームデザインは以下の要素からなります。 -ゲームシステム -ユーザーインターフェイス(UI) ゲームシステムは数字とロジックのやり取りです。入力を受け取り、内部の数字/式と演算し、出力を返す。そういう処理系です。 数字とロジックだけの無機質な存在です。 ユーザーインターフェイス(UI)はゲームシステムとプレーヤーの橋渡しです。ゲームパット、マウス、センサなどの入力系と、モニタ、サウンド、フォースフィードバックといった出力系、その他、マニュアル他から成ります。 これらは無機質なゲーム世界のパラメータ/トークンに、人間世界における意味づけをし、プレーヤーへの情報伝達を行います。 *数字とロジックの世界 **システム、系とも言う 必須事項はこれだけ -フィールド(2Dマップ/3Dマップ他) -トークン(キャラクタ/自機/ユニット) -ルール 系のうち、ルールに「終了条件」と「勝利条件」が含まれる場合、いわゆる古典ゲームになるようです。終了条件はゲームオーバーであり、勝利条件はクリアです。 つまり、初期状態でフィールド/トークン/ルールが満たされる、現実世界は、たった二つの要素を足すだけで、ゲームになりえます。 **ルール ルールは以下の要素からなる対です -一つ以上の「発動条件」 -一つ以上の「効果」 **パラメータ パラメータは数値です。それ自体は一軸の「値」を持ちます。パラメータは演算が可能です。 複数のパラメータをカプセル化することで、より高次のパラメータにすることができます。(例・ベクトル/行列) **パラメータの強度と多様性 パラメータは一軸の「値」です。表現方法が文字でない(コンピュータゲーム/ボードゲーム)場合、値は離散です。つまり、nパターンの値しか保持できません。 ゲーム中、パラメータにはなんらかの意味がつきます。意味の強度は、多様性に反比例します。つまり、値が0/1しか存在しない、ブール値は意味が最大になります。(例・成功/失敗) ですが、ゲームに必要な多様性は2パターンしかないことになります。逆に、十分に大きい範囲で値が取れる場合、意味はゆるくなります。 **ゲーム判定 ゲームにおける最終的な判定は、スレッショルド(閾値)しかありえません。つまり、なんらかのパラメータと、その閾値、その判定結果=成功/失敗です。 このパラメータは単一のパラメータではなく、複数のパラメータやパラメータの合成(関数変換/写像)でもかまいません。 **判定とパラメータの多様性 「判定において、スレッショルドの幅を大きく取る」ということは、前述の「パラメータの多様性をどれだけ許すか」ということです。 多様性を許さないとタイトな、ひたすら平均台の上を走るようなゲームになります。逆に多様性を許すとゆるい、ぬるま湯のようなゲームになります。 **ゲームの深さ ゲームはプレーヤーに多様な状況を提供します。それに対して、プレーヤーはゲームに多様な入力を返します。 プレーヤーに提供する状況がそれぞれがユニークで、尚且つ、プレーヤーが返すべき最適入力(最適解)が状況ごとにユニークであれば、深みがあるゲームとなります。所謂STG的なやりこみです。スコアを上げるために、ギリギリのカスリ点までも狙う。入力最適化までの道のりが長い。それが深みです。 最適入力は状況毎に存在します。そうすると、個々の最適入力までの深み×状況数がゲーム全体の深さになります。 個々の最適入力までの深みは、ゲーム内パラメータを複雑化させればよいだけです。状況数は、単に膨大な量のデータを詰め込むだけです。 プレイ時間は有限ですが、比較的簡単に大きくすることができます。 **スキルと戦略性 スキルは短期的な技能です。大抵の場合、スキルに成功するとリターンがあります。 リスクとリターンは噛合う必要はありません。ローリスク&ハイリターンなら「必須技術」になり(弾を見たら避けるとか)、ハイリスク&ローリターンなら「ネタ技」、ハイリスク&ハイリターンなら「一発逆転/上級者向け」(ガレッガ臨死/ブロッキング)になります。 技術力、慣れなどで、リスクが極端に減っていき、ハイリスク&ハイリターン ⇒ ローリスク&ローリターンになるものを持つゲームは、テクニカルになります。例・近接ショット、ケツイ5箱 この手のものは、リスクとリターンが噛合っていないために発生する仕様です。 一方逆に、完全にリスクとリターンが噛合っているものもあります。長期的なスパンで起きる戦略性です。戦略ゲーにおける資源分配、シューティングにおけるボム分配などの、いわゆるリソースコントロール(資源管理)です。 これらは、可能な限りの組み合わせから、最適解を探すことです。ですから、スキルの様に、慣れていないため失敗する というようなことは発生しません。ただし、資源管理中に含まれる行動がスキルを伴う場合は、この限りではありません。 *スーパープレイの予測、学習過程 ゲームは学習です。一人用ゲームの場合、プレーヤーの学習過程を予測しておくべきです。 少なくとも押さえて置きたいのは、「初回プレイ」と「熟練しまくったスーパープレイ」のイメージです。 「初回プレイ」は導入です。稼ぎプレイなどの熟練プレイに対して簡単(レベルデザイン)で、フィーリングでそれなりにプレイできる(事前知識/特殊な技能を必要としない)と良いでしょう。 「熟練プレイ」は最終的な目的地です。できればカッコよく、直感的に(一般的な価値観で)「上手いプレイ」と思えるスタイルが良いです。が、別に価値観は演出やスコアリングで変更できるので、一般的価値観に引きずられすぎないように。 この二つのプレイが確定し、その間がある程度緩やかに連続的であれば(ある程度の学習/熟練でプレイを上達可能なら)、ゲームプレイはキレイなゲームになるでしょう。 連続的というのは、先がある程度見える、ということです。どうすれば上手くなるかが分からないと、プレーヤーは学習できません。とりあえずの方針を何らかの方法でプレイ中に示すと良いでしょう。 ただし、すべて先が見えてしまうのも、人間にとっては退屈です。たまにはサプライズが必要。 ---- *アフォード/メタファー/UI **事前知識 人間は多くの前提知識を、事前学習によって脳に蓄えています。また、やたらと高度なルールを前提知識として持っています。ゲームをより簡単に理解させるためには、これらを使うべきです。 事前知識とは、常識です。ただし、一般用語の言うところの常識ではありません。 **物理法則と事前知識 ボールを壁に投げつけるとどうなりますか? 当然、ボールは壁でバウンドします。これはルールです。「トークン『ボール』とトークン『壁』が接触する」ことを発動条件とし、「トークン『ボール』の移動ベクトル成分のうち、壁の法線ベクトル成分を反転させる」ことを効果とする「ルール」です。 どうですか、このルールは文章化すると複雑に感じるハズです。しかし、普通に説明する場合はどうですか? 「壁に当たるとバウンドするよ」これだけで、上の複雑なルールが伝わります。 物理法則は非常に難解なゲームシステムを持っていること、その物理法則は大抵の人が常識として知っているという強力な特性を持ちます。 **グラフィックと事前知識 人間キャラクタの前に「食べ物」の絵があったらどう考えますか? 食べ物は実世界で見慣れているので、食べ物に関連した動作を容易に連想することができます。 適切な絵をゲームトークンに貼り付けることにより、そのトークンの役割をより分かりやすくプレーヤーに伝えることができます。 **ゲーオタと事前知識 ゲーオタは沢山のゲームを知ってます。それを利用して、知っているであろうゲームに含まれる名称を利用することで、ルールを分かりやすく伝えるこができます。(例・このシステムはhogehogeってゲームのfoobarってシステムと同じだよ。) ただし、当然ながら、マイナーゲームであったり、相手がゲーオタでないと使えません。 **マジックナンバーとカテゴリ、ボタン 人間がすぐさま覚えられる要素は、一般的に7±2と言われる。これをマジックナンバーと言う。(±は個人差) つまり、このマジックナンバーにゲームの要素(ゲームルール、インターフェイス)が収まるのが望ましい。しかし、要素を削ればそれだけ多様性が奪われ、短期的なプレイ時間の短いゲームになってしまう。 これを解決するのが解析/分解で示したカテゴリ/属性である。 ストIIをベースとする格闘ゲームは一般的な他のゲームに比べ使用するボタンが多い。それでもなんとかなるのは、全て同一のカテゴリに割り振られているからである。つまり、全てのボタンが攻撃だ。 (歴史的にはストIの圧力センサ×2を通常コンパネにしたため6ボタンになったと思われる。) 同様に全てのボタンが攻撃である鉄拳、ギルティギア(イスカ除く)も4、5とボタン数が多めだ。 一方、バーチャファイター系は、ボタンに「ガード」という攻撃でないカテゴリの操作を加えてしまった。それ故、ボタン数を3に絞らなければ無理であった。 アーケードゲームではコンパネは水平で、全てのボタンが同一に扱われるような配置になっている。一方家庭用ゲーム、特にSFC以降はL/RボタンやZボタンという特殊な配置を持つボタンが登場した。 これはボタンの配置自体が、ボタンをカテゴリ分けしている。このカテゴリ分けに会うよう、ボタン配置することで理解しやすいゲームになる。 関連 [[ねここ]] **究極的なUI UIはゲーム評価において減点効果の比率が圧倒的に大きい。これは、UIがクソでけなされるゲームの数と、UIが優れて評価されるゲームの数からも見て分かります。 究極的なUIは、現実の空気や水や安全のように、誰からも気にされないものだと思います。独創的な部分が極端になく、余りにも単純で、快適だから誰も気付かない。そして、どこにでもある ---- *開発 **言語 使ったことのあるやつ -Logo へんじがない ただの こてん のようだ -VisualC++ + DirectX はやい。つおい。ポインタのじごく。ぬるぽ -HSP おそい。らくちん。グローバル変数のあくむ -JavaApplet ブラウザできらく。OOLでキレイ。GC。しかしぬるぽ プログラミング言語に慣れていない人はHSPがいいんじゃね?インスコも言語仕様も楽に使えるように小さく手軽。逆を言うと、難しいけど使えるものも削られてるので、その辺はできない。 JavaはC++の影響を強く受けたOOL(オブジェクト指向言語)です。ガベージコレクタがあるので、メモリ管理のような面倒なことをする必要がありません。ただし、内部ではバリバリのポインタ仕様なので、ポインタに関する知識が必要です。 OOLとしては洗練されているので、OOを学ぶにはJavaが良いと思います。コンパイラ/ドキュメントがフルパッケージで配布されているのも魅力です。 C/C++は現行最速最強最凶の低レベル言語です。言語としての汎用性と下位互換、最新技術への対応、政治的ないざこざとありとあらゆるモノにさらされ続けているため、既に何がなんだか分からない状態になっています。MSとか独自拡張してるし。 拡張もいたるところで、各自ばらばらにやってるので、何を選択するか幅がありすぎ。開発環境/コンパイラも同様。もう何がなんだか。 言語としては、C言語の拡張/上位互換としてC++という形になっています。まとめてC/C++。動的メモリ確保、ポインタ、OOL、アセンブラの組み込みと、やりたいことはすべてできますが、逆に言うと何をするにもすべて自力でやる必要があります。それか、ライブラリの利用。高級言語なのに、バイト/ビット単位の演算とかもう(ry。これが低レベルといわれる所以。 それでも、速度的にも対応範囲にしても現最強の言語であることは事実。 **プログラミング プログラミングは、文章を書くことに似ています。言語だし。 同様に「良いプログラムを書くこと」は、「良い文章を書くこと」に当てはまります。プログラムが書けることは、良いプログラムが書けることとは同一ではありません。 **オブジェクト指向(OO) ソフトウエアを部品化して、レゴのように組み立てようとする考え方。共通部分を、スーパークラスとして定義するため、ソースサイズも小さくなります。 多用される設計法は、抽象化されデザインパターンと呼ばれています。この辺はプログラミングに慣れてきたら勉強しておくと吉。ただし、抽象化されたデザインをちゃんと応用できないなら、後回しにすれ。 ---- *精神 **エンターテイナーとして ゲーム製作者はエンターテイナーです。エンターテイナーとは芸人です。我々は芸人たるべきです。人々を笑わせるために、悲しませるために、怒らせるために、でっち上げの情報を流す。そういう道化師であるべきです。 いたずら心とゆるい思考を大切に。 ---- - Logoナツカシス。この頃からゲームしか作ってなかった -- るーと雨 (2006-01-17 00:38:46) - なんか不思議な箇所に投稿されてしまいましたよ -- るーと雨 (2006-01-17 00:40:02) - 強引に修正してみた -- ( ゜ワ゜)ノ (2006-01-18 22:01:41) #comment_num2 #comment_num2(size=30,vsize=3,num=20)
51日前
1608日前
3391日前
4054日前
4086日前
4251日前
4267日前
4335日前
4474日前
atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!
最近アクセスの多かったページランキングです。話題のページを見に行こう!