ゲームプログラマになるには(3)

昔は文字だけのコンピュータゲームがありました。ポケコンを買ったときに,ポーカーとか月軟着陸ゲームとかサンプルであった記憶があります。(オリジナルの)ローグのようにテキストでかなりのことも可能です。が,やはりグラフィックが必須です。

簡単に言うと一枚の板に絵を貼り付けたものがスプライトで,そのスプライトを一定時間ごとに表示するというのが2Dゲームの基本です。1枚スプライトを表示することを覚える。その表示位置の変え方を覚える。貼り付ける絵の変え方を覚える。ここまでいくとかなりのことができます。私はネットやろうぜ!の授業を担当したときは,ここまでできたら,スプライトを4×4個並べて15パズルを作りました。コマの移動はコマでなく空きを移動すると考えればよく,アガリの状態をチェックするのはそれほど難しいことではありません。コマが移動するアニメーションは後につけられるようになりましたが,瞬間的に絵柄が変わるだけでもゲームとして成立します。

簡単な15パズルができたら,見かけが似たゲームを作ることが出来ます。私は,マインスイーパー(もどき)や,リバーシを作りました。だんだんアルゴリズムが難しくなります。もちろん,リバーシはプレイヤー2人で交代でやるAIなしのものですが…。(簡単化した)テトリスも作りました。

もし2Dグラフィックの基礎をおぼえたら,ぜひ15パズル,マインスイーパー,リバーシ,テトリスを作ってみてください。

comments

ゲームプログラマになるには(2)

ゲームのプログラマになるのに,とりあえずC++の勉強をします。C++そのものは入力も出力もテキストのみのコンソールプログラムを対象としています。したがって,ゲームとは程遠い感じがするかもしれませんが,グラフィックにかかわらない本質的な部分を学ぶことはできます。

結局,コンピュータゲームは見えるもの見えないものすべて数値化されています。例えば,ジャンケンを作るとするとしましょう。グー・チョキ・パーを数値化しなければなりません。グーを1,チョキを2,パーを3などのように。そしてコンピュータの手を変数comに格納し,プレイヤーの手を変数playerに格納するとします。とにかくこのように決めれば,勝ち負けあるいは引き分けが決まります。comの値が1で,playerの値が2ならコンピュータがグーを出し,プレイヤーがチョキを出したことになり,コンピュータが勝ちということになります。コンピュータについて3通り,プレイヤーについても3通りですから,3×3=9の組み合わせについて勝ち・負け・引き分けがきまります。このように決めれば,コンピュータは例えば一様乱数発生で1から3で手を決め,プレイヤーはキーボード入力で1から3のまでの数の入力をして手を決めるとすれば,ゲームができます。

ここまで準備してプログラミング言語の基本を知っていれば,例えば,次のような見かけの,格好悪いかもしれませんが,次のような文字だけのジャンケンゲームのプログラムができます。

ジャンケンしましょう。
あなたの手を入力してください(1:グー, 2:チョキ,3:パー):2
あなたはチョキ,私はパー。あなたの勝ちです。

本質的には,ゲームに必要なデータを数で表してルールを規定できれば,コンピュータゲームになるのです。

AW

comments

ゲームプログラマになるには

 ゲームプログラマをめざすなら,まずは,コンピュータプログラミング言語を習得する必要があります。ゲームを作るのにさまざまなプログラミング言語が使われますが,C言語かC++言語から始めるのが普通です。CはもともとUNIXというOSのためのプログラミング言語でコンパクトでハードウェアを直接扱うようなプログラムでよく使われます。ゲーム開発では昔はCが使われていましたが最近はオブジェクト指向をとりいれたC++言語の方が良く使われています。京都コンピュータ学院のゲーム系の学科では,まず,C++言語を学びます。一つの言語でなんでもできればよいのですが,実際はC#やJavacなど様々な言語を使うことがあります。CまたはC++から派生した言語がほとんどなのでまずはC++からはじめるわけです。

古いし,難しいので有名ですが,本格的なプログラマを目指すならば,ぜひCの原典の本を読んでもらいたいと思います。

プログラミング言語C 第2版 ANSI規格準拠

プログラミング言語C 第2版 ANSI規格準拠 [書籍]

著者: B.W. カーニハン, D.M. リッチー

クリエーター: 石田 晴久

出版社: 共立出版

出版日: 1989-06-15

商品カテゴリー: 単行本

ページ数: 360

ISBN: 4320026926

Supported by amazon Product Advertising API

 

comments

ネットやろうぜ!

 私が京都コンピュータ学院に来たのは1998年で,ゲーム開発科(2年制)で開講された科目を主に担当していました。私はプログラムはあまりというかほとんどできなかったのですが,まず,ビジュアルベーシックで,ビデオゲームのプログラムの基礎,つまり,キーボードの状態を調べ,画面を構成するオブジェクトの配置を計算し,描画を指示するという流れを知りました。その後,ネットやろうぜ!(黒いPlayStationを使った開発キット)で,クロス開発の仕方,3Dオブジェクトの扱い,メモリカードの扱いなどを勉強して,関連する授業で教えました。現在からするとPSは非常に非力なマシンですが,ゲーム開発の基本は今でも変わりません。私がゲーム開発を指導できるのはこのネットやろうぜ!のおかげですし,黒PSはとても思い出深いマシンです。
※現在,ネットやろうぜ!は授業で使われていません。念のため。

PS PS_books

AW

comments

RX-7

京都コンピュータ学院の自動車制御学科にあるマツダRX-7です。

rx7

自動車は排気ガス規制やオイルショックに対する燃費向上ということを契機にしてマイコンが導入されたのでした。エンジン内で燃料を適切なタイミングで適切な量を与えるために,それまでは機械的な仕掛けで実現していのを,センサーから得られる様々なデータを元にマイコンが計算して燃料の噴射を制御するようになったのでした。他にも様々な箇所でマイコンが活用され,最近では自動車では内部に多数のコンピュータがあって,ネットワークで繋がれています。

このRX-7はもちろんマイコンは使用されていますが,現在の自動車に比べると単純で,実習ではセンサ信号を取り出してオシロスコープで観察し,データロガーで記録したりします。

 

comments

MC-1

京都コンピュータ学院には自動車制御学科という学科があります。mc-2

そこで使われているのがこの光岡自動車のマイクロカーMC-1です。
コンピュータが使われていない非常に原始的な自動車ですが,公道も走れる立派な自動車で,分解すると構造がきわめてわかりやすいので教材として使われています。

AW

 

comments

JMOOC

JMOOCとはJapan Massive Open Online Courseの略でジェイムークと読みます。JMOOCはアメリカで立ち上がったMOOCの日本版です。MOOCはオンラインで公開された無料の講座を受講して修了条件を満たすと修了証が取得できるものです。

京都情報大学院大学はこの3月23日よりJMOOCで「応用情報学への招待」を開講しました。毎週,一コマ90分程度の長さの字幕付きビデオの授業を4週にわたり配信しております。情報学の応用をさまざま切り口でやさしく解説します。各回は
・生活基盤の情報学
・企業経営の情報学
・アニメの情報学
・人材開発の情報学
となっています。

4/1現在二週目の内容を公開中ですが,今から申込んで受講することができます。全部の講義を合わせて4コマ分程度ですので十分間に合います。興味のある方は,ぜひ,受講してください。

JMOOC 京都情報大学院大学 応用情報学への招待

P1080970

AW

comments

P1000004

プログレッシブ・ロックの好きな京都情報大学院大学のAWです。
これからブログを書いていくつもりですのでよろしくお願いします。

暖かくなりましたね。
京都情報大学院大学京都駅前サテライトの桜です。
明日は新入生を迎えます。

AW

comments