s-kurokiが書いたよ

s-kuroki
GUI畑から来たプログラマーが思うことなど。

元GUIプログラマーがコンシューマゲームのプログラムを組んでて考えたこと

by  s-kuroki s-kuroki   2008-04-02 11:29

はじめまして。エンジニアの黒木と申します。 まだCommunity Engineに入って半年そこらの新人です。 よろしくお願いします。

私の前職は業務用Windowsアプリの開発でした。 RAD使って、Windowsフォームにボタンとかをペタペタ貼り付けて、 呼び出されるイベントの部分にビジネスロジックを記述して…、 と、そういうプログラミングの世界にいたわけです。

そんな私が、今年からコンシューマゲーム開発のプロジェクトに配属になり、 今は3Dゲームのプログラムを組んでいます。 同じプログラミングとはいえ、今までとは大きく違う作業に 日々苦闘しております。

とはいえ今までの経験が全く役に立たないわけではないです。 イベントドリブンの考え方とかは共通なので。

それで、自分なりに業務用Windowsアプリ開発とゲーム開発の 共通点と相違点についてまとめてみました。

* * *

共通点

・「入力に対して応答を返す」ように作ること

Windowsアプリでは、「このボタンが押されたら~、そのボタンが押されたら~」という感じに、「基本は待ちで、何か入力(or変化)があったら対応して処理を行う」という組み方をします。これは、ゲームでも基本的には同じでした。

・UI(ユーザ・インターフェース)について考える機会があること

業務用アプリを組んでいたときはボタンや入力欄の配置、画面の遷移の仕方など、「どうであればユーザが使いやすいか」「どうであれば使い方がわかりやすいか」を考えて組んでいました。ゲームにもUIはあるので、同じ考え方で組めると思います。

相違点

・ゲームは、製品においてプログラムが占める割合が低い

業務用アプリは、プログラムとドキュメントで製品のほぼ全てです。一方、ゲームは総合芸術で、3Dモデル、キャラ絵、音楽、シナリオ、ゲームデザインなどとプログラムが組み合わさっているものです。そのため、作り方が大分違っていて、業務用アプリは設計が決まったら自分でガシガシ組み上げていくのですが、ゲームはもらったいろんな素材を元に編み上げていくような組み方になります。

・コンシューマゲームにはバージョンアップがない

これはものによると思いますが、前職で業務用アプリを組んでいたときは、頻繁にバージョンアップがあったので常に将来のバージョンアップを見越して組んでいました。不具合の対応も次期バージョンでの対応という選択肢を含めて考えていました。一方、コンシューマゲームは1度リリースしてしまうと修正が効きません。(最近はそうでもないですが)

・処理のスピードを競うフィールドが違う

どこの世界でもプログラムの動作は速いほうが良いのは共通です。しかしどこで速さを競うかが違います。業務用アプリでは画面の遷移の時や、データの処理の時など、ピンポイントで重い処理があり、そこでの速さが使用感を大きく左右していたように思います。一方ゲームは見た目のクォリティと処理能力のせめぎ合いであり、常に、毎フレーム、処理時間と戦わなければいけません。 どこか1ヶ所でも負けてしまうと、そこで処理落ちになってしまい、ユーザをがっかりさせてしまいます。

* * *

以上、あくまで一個人の印象としてですが、まとめてみました。 どちらが大変とかシビアとか言う話ではなく、 鍵となるポイントの違いとして読んでいただけると幸いです。

苦闘していると書きましたが、新しい刺激が多く、 なかなかエキサイティングな日々です。 これを読んでいる業務用アプリエンジニアの皆さん(あまりいないと思いますが)、 ゲームプログラマーへの転身などいかがでしょうか? Community Engineでもエンジニアを募集しております。;)

ライブコーディングっていったい何ですか?

by  s-kuroki s-kuroki   2008-05-08 16:38

こんにちは。マスター黒木です。

いきなりマスターとかって何の話だよとお思いでしょう。
マスターというのは、6月に東京・大阪・福岡で開催される
Game Tools & Middleware Forum 2008
セミナー講演を行うときの私の肩書きです。

マスターの肩書きが決まるまで

きっかけは、社内Twitterでの私のつぶやきでした。

私は普段の業務ではエンジニアとしてコードを書いたりしています。
今回のセミナーは、発表者は社内で募集がかかっていて(うちの会社は、手を挙げると比較的いろいろやらせてくれます)、私は自分で希望して発表者となりました。
最初は普段の肩書き通りエンジニアとして発表するつもりでした。
ところが、実際にイベントがプレスリリースされ、他社の方のセミナー内容を見ると、
~マネージャ、チーフ~、などなど、錚々たる肩書きが並んでいました。
「こんな中、一介のエンジニアである私がしゃべって大丈夫なのだろうか…」
「じゃあ、肩書きがあれば良いんじゃないの?」
そう言った私の同僚は、社内Wikiにて私の肩書きの募集を冗談交じりに始めてしまいました。
あれよあれよという間に集まったその数約30。

一部を抜粋してご紹介します。

  • フィールドサーフィンエンジニア
  • メイズ・エクスプロレーション・コーディネーター
  • スマイリング・エンジニア
  • はぐれエンジニア純情派
  • コード侍

評価は読者の方にお任せいたします。
いろいろと案が集まる中、ある人が言った「部を作ってそこのリーダーにすれば良いじゃない」というアイデアがふくらみ、今の「先端技術広報部 マスター」という肩書きが決まりました。

ライブコーディングとは

セミナーでの発表内容は、弊社の製品であるリアルタイム通信ミドルウェア「VCE」を使った、コーディングの実演です。
このコーディングの実演の事をライブコーディング(Live Coding)と呼ぶことがあります。
弊社が毎週水曜日の昼に開催しているお気楽持ち寄り発表会「BBL」でもたまに行われます。

上のライブコーディングのリンク先を見てもらうとわかるのですが、
弊社社長の中嶋謙互の名前が載っています。
中嶋は日本有数のライブコーダーで、
今までにいろんな場所でその技を披露したことがあるそうです。
私はライブコーディングの経験はありませんが、そのような熟練のライブコーダーの監修のもと、
目下ライブコーディングの訓練中です。
イベントでは、直伝の技をとくとお見せしたいと思いますので、ご期待ください!

GTMF2008でのセミナー講演・全3会場を終えました!

by  s-kuroki s-kuroki   2008-06-24 14:49

こんにちは。
マスターだった黒木です。

この+streamでも何度かお伝えしていましたが、
コミュニティーエンジンは、さる6/4(東京),13(福岡),17(大阪)に行われた、
Game Tool & Middleware Forum 2008」にて、出展&セミナー講演を行いました。
セミナー講演では、「30分で作るネットワークゲーム」(20分で…から改題)と題しまして、
私、先端技術広報部マスター(ほとんど肩書きだけで、普段は普通のエンジニアです)黒木 慎介が
VCEを使ったプログラムの実演を行いました。
セミナーに来ていただいた皆さん(3会場併せて約140人!!)、ありがとうございました。

実際のセミナーを撮影した映像をyoutubeにupしました!
当日来ていただけなかった方も是非ご覧いただければと思います。
全6本中の1本目(実演前のスライド)↓

2本目(元プログラム紹介~genツール使用)
3本目(サーバのコーディング前半)
4本目(サーバのコーディング後半)
5本目(クライアントのコーディング)
6本目(完成~補足説明)

今回のセミナーで使用したVCEの試用版パッケージは、ダウンロードページからダウンロードしていただけます。
セミナーを見て興味を持っていただけた方は是非実際に触ってみてください。
また、セミナーで作成したプログラムスライドもダウンロードできます。

モンハンのはなし

by  s-kuroki s-kuroki   2008-09-25 11:57

こんにちは。エンジニアの黒木です。

カプコンが発売している、モンスターハンター(以下モンハン)というゲームがあります。今大ブームを起こしているゲームなので、ご存じの方が多いかと思います。今日はそのゲームに関する話をしたいと思います。

CEモンハン部

CEにはモンハンの最新作(Monster Hunter Portable 2ndG、以下MHP2G)をプレーしている人が、広報のikumiと私を含めて4人います。昼休みの時間に、それぞれの都合が合えば、「モンハン部・部活動」と称して狩りに出かけています。もしかしたらそのうち、茶袋の会でCEモンハン部が登場するかもしれません。

実は4人の中では私がMHP2Gを買ったのは1番遅く、まだ始めてから3ヶ月も経っていません。しかもモンハンはMHP2Gが初めてです。早くからMHP2Gをやってたikumiの猛プッシュに負けて買った(しかもPSPごと)、というのが発端だったりします。これだけ人気のゲームなのでどんなゲームなのかやってみたかった、という気持ちもありました。しかし今やすっかりはまってしまい、プレー時間は既に180時間に近づいています(これでも短い方、ですよね?)。ちなみにハンターランクは6です。

モンハンの面白さ

私はアクションゲームはかなり苦手で(例:スーパーマリオブラザーズを全面クリアしたことがない)、遊ぶゲームはRPGがほとんどなのですが、そんな私でもモンハンはすごく面白いです。強敵を倒して、手に入れた素材で強い装備を作って、さらに強い敵に挑む…というサイクルがすごく気持ちよく感じます。モンスターの行動パターンを戦ううちに学習できて、だんだん隙を突いて攻撃できるようになってくるプロセスも気持ちいいです(これはアクションゲームには共通の気持ちよさだと思いますが)。そしてアクション苦手の私も、考えることは好きで、モンスターとの戦い方の自由度が高く(武器は大別して11種類、防具のバリエーションも多彩で、罠なども使える)、考える余地、選択肢の量がものすごく沢山あるというのも、面白さの決め手となっていると思います。

そして、1人では倒せそうにない強敵を、みんなと協力して倒したり、普段苦戦している敵を、みんなで行って手数で圧倒したりと、複数人で遊ぶとまた違う味が出てくるのが、モンハンのすごいところだと思います。普通、複数人で協力型のゲームをやるとき、人数が増えるほど1人あたりのリターンは少なくなるものだと思うのですが、モンハンはあまりそうなっておらず、協力プレイを積極的にやりたくなるように仕向けてあるのがうまいなと思います。

モンハンのこれから

そんなこんなでモンハンにドはまりの私ですが、MHP2Gをやっていて、「モンハン、既にここに極まれり」という印象も受けます。

MHP2Gはものすごいボリュームのゲームです。隅から隅まで遊ぼうと思ったら300~400時間(人によってはもっと)は必要なゲームだと思います。アイテムの数もモンスターの数も豊富で、1つのゲームのこれ以上いたらボリューム過多なんじゃないかと思えるほどです。一方、初代モンスターハンターから、基本的なシステムは変わっていないようで、新しいモンスター/武器等の追加という路線では、今の時点でもう限界に近いように思えました。なので私は、次のモンハンがどういう風なものになるのか、非常に興味がありました。

そんな中、先日、Monster Hunter 3の情報が公開されました。ファミ通に掲載されていたインタビューを読む限り、かなり新しい要素が入ってくるようで、今から期待できる内容でした。Portableシリーズと違って、持ち寄って遊ぶというプレースタイルがとれないため、本数を売るのが難しそうにも思えますが、その点をどのように解決してくるのかも含めて、注目しようと思います。10月9日~12日に開催される東京ゲームショウにプレイアブル出展されるようなので、皆さんも足を運んでみてはいかがでしょうか。もちろん、私も行こうと思っています!