こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

C言語でゲーム作り

ゲームを作りたいと思っています。Cを勉強しているのですがC++も覚えた方が良いのでしょうか?

また、(CとC++を覚えたとして)CとC++「だけ」でゲームを作ることはできるでしょうか?できるのならその方法がのっている本を、できないのであれば知っておくべきこととそれについて書かれた本を教えてください。
将来は本職のゲームプログラマーになりたいので実際にプロが使っている方法を教えていただきたいと思います。

よろしくお願いいたします。

投稿日時 - 2008-11-24 22:22:38

QNo.4504695

困ってます

質問者が選んだベストアンサー

>ゲームを作りたいと思っています。
>実際にプロが使っている方法を教えて

本職のゲームクリエイターは、言語を選びません。

まず「こういう表現を、この機械で実現するには、何が必要か?」を考え、それを実現するに一番合った開発環境を考えます。

必要な開発環境を想定したら、その開発環境を用意します。「開発環境」とは「ゲームを仕上げるのに必要なハードやソフト」の事です。

そして「これを使えば出来る」と判ったら、それ用の言語を使えるメンバーを集め、集めたメンバーに書かせます。

もちろん、プログラムを自分で書いたりもしますが、プログラミングする暇があったらゲームのアイデアを搾り出すのが、ゲームクリエイターの本業です。キーボード叩いてるのがディレクターに見付かったら怒られます(笑)

もちろん、本人も「それ用の言語」を熟知してないといけないです。じゃないと「最適メンバー」を集める事は出来ませんから。

なので、クリエイターに最低限必要なのは「すべての言語が自在に扱える事」です。

例えば「これを実現するには、カリカリにチューンナップして高速化したプログラムが要る。人間がアセンブラで書かないと無理だろう」って事があったとしたら、クリエイターには、アセンブラを駆使できる能力が要求されます。

クリエイターは、アセンブラはもちろん、そのマシンで使ってるCPUについて、熟知していないとならないでしょう。

このように、クリエイターには「すべての言語が使えて、しかも、ゲームを面白くするアイデアがポンポン湧いて出る」と言う才能が要求されます。

>本職のゲームプログラマーになりたい

「ゲームプログラマー」と「ゲームクリエイター」は「まったく別の職業」です。

「ゲームプログラマー」とは、前述の「それ用の言語を使えるメンバー」の事です。なので「クリエイターに言われた通りに、プログラムを書くだけ」の仕事です。

「ゲームプログラマーに必要な才能」とは「こうこうこういう事をやってくれと頼まれたら、与えられた環境の中で、最短で最適なプログラムを書ける才能」です。創造的な作業はカケラもありません。

一方「ゲームクリエイター」とは、前述の通りかなり創造的な職業で、ゲームを面白くするアイデアがポンポン湧いて来ないと、仕事になりません。

質問者さんがなりたいのは「ゲームプログラマー」でしょうか?それとも「ゲームクリエイター」でしょうか?

投稿日時 - 2008-11-25 16:29:57

補足

>なりたいのは~

欲を言えば、会社ではプログラマーをやって、副業として自分で企画・プログラム・サウンド・絵をやってしまうような同人ゲーム作成をやりたいと思っています。(ご存じかは知りませんがZUNさんのようになりたいです。)


会社ではプログラマーはプログラミングしかすることはできないのであれば決めあぐねますがどちらか1つといわれたらプログラマーです。

投稿日時 - 2008-11-25 21:01:18

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.6

zun氏が「ゲームを作るにはどうしたらいいですか?」という質問を受けた時、No5氏と同じような事を言ってました。言語は関係ないと。
専門出身は使えねー、普通の大学いって見識を深めろ(勿論こんな言い方ではありませんが)とも。
これはNo1~No4氏が仰った内容と無関係ではありません。

ゲームが作りたいだけなら、RPGツクールでもNスクリプトでも豆乳でも何でもいいんじゃないですか?


あとプログラマーって、コミュニケーションが一番重要だと聞いた事があります。
貴方もプロを目指すのなら、自分の求める事と違う回答でも、ちゃんとコメントを返した方がいいんじゃないですかねー。

投稿日時 - 2008-11-25 23:49:29

お礼

回答ありがとうございます。
おっしゃる通り、コメントを返すというのは常識だと思います。申し訳ありませんでした。コミュニケ―ションも普段の生活の中で身につけようと思います。

投稿日時 - 2008-11-26 01:57:18

ANo.4

「どんな」ゲームを「どの媒体」で作成するかにかかっていると思います。
一昔前のコンシューマーゲーム機(PS初代やサターン)はC++コンパイラがそもそも存在しませんでしたから、C++はいらなかったかもしれません。
その代わりアセンブラは必須でしたでしょう。
逆にXBox360などでゲームを製作する場合は開発環境がそもそもXNAなので、CやC++は利用できず、C#などの習熟が必要になってきます。

ソートを始めとするアルゴリズム系は当然として、透明を表現するための演算方法やら、入力デバイスのチェックの仕方やFPSを一定に保つためのテクニックなどこまごまとしたテクニックも知っていなければいけません。
このあたりは既存のゲームフレームワークを利用すればそれでいいかもしれませんが、最近のゲームは3Dグラフィックが必須となっていますから、行列演算やクォータニオンなどの3D技術についても学ばなければいけません。
ネットゲームでしたら、当然ですがソケットやTCPについても知らなければ作成できないでしょう。

とりあえず、参考図書として以下のものをお勧めします。
http://www.amazon.co.jp/exec/obidos/ASIN/4798021180

参考URL:http://www.amazon.co.jp/exec/obidos/ASIN/4798021180

投稿日時 - 2008-11-25 11:58:25

お礼

回答の投稿・図書の推薦ありがとうございます。
本や実践で細かいテクニックを身につけるよう心がけます。

投稿日時 - 2008-11-26 01:48:56

ANo.3

実際にプロが使っている方法といいますと、いわゆるコンシューマーゲーム機のゲームプログラマであれば、会社あるいはプロジェクトごとの独自ライブラリやサードパーティーが開発販売しているクロスプラットフォームライブラリの上でゲームを実装していたり、独自のスクリプトコンパイラ/インタプリタのような仕組みを用いていたりと、実際に現場に出てみないと分からないような環境で開発しています。

いずれにしても、使える言語が C だけで C++ は分かりません、と言っていては、(ゲーム業界に限らず一般的に)いっぱしのプログラマとしては通用しないと思ったほうがいいです。最低限、必要があれば C++ でも組めます、というレベルには達してください。

また、C/C++ はあくまでプログラミング言語ですので、標準規格で定められている標準ライブラリだけでは画像一枚の表示すらできません。プログラミング言語、OS、OS が提供するグラフィックスフレームワーク、開発環境(VC++ など)付属あるいは一般に公開されているグラフィックス/ゲームのフレームワークなどの区別を付けた上で、これらを使いこなせる力を付けてください。

まずは、比較的詳細な C++ の入門書(少なくとも STL まで解説しているもの)と DirectX の入門書を自分で探してみるとよいでしょう。とりあえず Windows 上で簡単なゲームが作れるようになってからコンシューマーゲーム機のことを心配してもまったく遅くありません。

以上は、あくまでスタートラインです。他の方もおっしゃっているとおり、同僚に差を付けられるゲームプログラマになるには多少の英語や数学の知識もほぼ必須と言えます。

投稿日時 - 2008-11-25 00:33:18

お礼

回答ありがとうございます。
大学に入るまでにスタートラインに立てるように頑張ります。

投稿日時 - 2008-11-26 01:34:04

ANo.2

>Cを勉強しているのですがC++も覚えた方が良いのでしょうか?
C++の方がSTLなどのライブラリが充実しているので、短いコードで保守のしやすいコードを書くことができます。
またオブジェクト指向でプログラムを作成することができるので(しないこともできる)、コードの再利用もしやすいです。

>また、(CとC++を覚えたとして)CとC++「だけ」でゲームを作ることはできるでしょうか?
コマンドラインインターフェースを使ったゲームならできますが、一般的にゲームと呼ばれるものを作成するには、Win32APIやDirectX、MFCが.Net Frameworkなどの知識が必要です。
これらは、ゲームを作成するための本などに書いてあると思いますが自分で調べることも多いです。
かなりの資料は英語なので、英語が読めることも必須でしょう。

投稿日時 - 2008-11-24 23:41:36

お礼

回答ありがとうございます。
覚えることは多いですね・・。がんばります。

投稿日時 - 2008-11-26 01:24:32

ANo.1

>Cを勉強しているのですがC++も覚えた方が良いのでしょうか?

引き出しの数は多いに越したことはないと思います。

>CとC++「だけ」でゲームを作ることはできるでしょうか?

Windows上で動かすゲームなら、Windows APIに関する知識が必要でしょう。
物体の動きを表現する必要があるゲームなら、数学や物理学に関する知識が必要であるかもしれません。
いずれにしても、いくつかのプログラミング言語「だけ」を覚えても、
ゲーム業界に限らず、IT関連の職に就くには足りないと思います。

投稿日時 - 2008-11-24 22:38:14

お礼

回答ありがとうございます。
いろいろな方面の知識を深めたいと思います。

投稿日時 - 2008-11-26 01:07:55

あなたにオススメの質問