質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

6回答

677閲覧

PC選択とゲーム開発までに学ぶ言語

applash

総合スコア8

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

1グッド

2クリップ

投稿2018/06/14 13:29

プログラミングに手を出し始め、現在入門としてHTMLとCSSを齧っている初心者です。ちなみにですが文系です。

将来的にはPS4やNintendo Switchなどでのコンシューマーゲーム開発に携わることを目標としておりますが、プログラミングが可能なPCを持っていないため、現在は大学のPCで勉強をしている状態です。そのため、PCを購入したいと考えているのですが、MacかWindowsのどちらがよいのかわからないため教えていただきたいです。

また、最終的にC++を扱えるようになりたいのですが、そこに至るまでにどのような言語学習をすべきか(例:Javaを身につけるなど)を教えていただきたいです。

①iOS向けやWindows向けとかではなく将来的に上記のようなコンシューマーゲーム開発を目指すにあたってどちらのPCがおすすめか

②C++を身につけるまでの理想的又は効率的、必要不可欠な学習過程

この2つについて教えていただきたいです。
何分コンピュータの知識に乏しいため用語の誤った使い方があるかもしれませんが、ご了承ください。
文系がゲームのプログラミングを行うことに対する厳しい意見も覚悟はしております。

Originalfairy👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答6

0

①iOS向けやWindows向けとかではなく将来的に上記のようなコンシューマーゲーム開発を目指すにあたってどちらのPCがおすすめか

Windowsですね。お勧めというか、Mac/iOS向けのアプリ以外でMacを使って開発しているところを見たことがありません。おそらくその理由は「同程度の性能ならWindowsの方が圧倒的に安い」のでどの会社もWindowsを使っているからだと思いますが、要するにゲーム開発(というか商用アプリの開発)のプラットフォームとしてはWindowsが一般的です。

②C++を身につけるまでの理想的又は効率的、必要不可欠な学習過程

C++は難易度が非常に高いので、C#から始めるのが良いかもしれません。C#はC++に比べれば難易度は低めです。
しかも、マルチプラットフォーム対応のゲームフレームワークとして幅を利かせている**「Unity」**がC#を採用しているので、ゲーム開発を目指すなら覚えて損はないでしょう。Unityはコンシューマーゲームの開発にも広く使われています。
C#はもともとC++を参考にして作られているので、C#をマスターすればゼロからC++を学ぶよりは難易度が下がると思います。

投稿2018/06/14 16:47

catsforepaw

総合スコア5938

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

applash

2018/06/15 01:11

丁寧な回答ありがとうございます! PCについてはわかりました。 ただ確認したいのですが、おそらくC#を始める前にCから触っておくべきですよね?愚問でしたら申し訳ないです。
catsforepaw

2018/06/15 04:29 編集

C言語は触る必要はありません。プログラミングを理解してからで十分です。というか、私ならいきなりC言語はお勧めしません。というのも、C言語はロジックとは無関係なテクニック的要素が強すぎて、純粋にプログラミングを学ぶには不向きだからです。 もちろん、ゲームにおいてはパフォーマンスの追求などでC/C++が要求される場面が少なからずありますが、まずはプログラミング技術の習得が先決ですからね。 --- ↑ちょっと訂正しました。 プログラミングとは無関係な→ロジックとは無関係な
pepperleaf

2018/06/15 10:33

私もC言語は不要と思います。確かに知っていた方が、色々と良いかもしれませんが、C言語でグラフィックを扱えますか? という事です。無理ではありませんが、手間が掛かりすぎで、次につながるとは思えない。Windowsだったら、C#一択かと思います。(Visual Stdioも最新は、C++は非推奨)
applash

2018/06/17 06:37

御二方ともご意見ありがとうございます。 ただ一点、catsforepaw様の「プログラミングを理解」という部分が抽象的だと感じたので、もう少々具体的に例えばどういったことを理解するのかを教えていただきたいと感じました。
catsforepaw

2018/06/17 07:28

applash さん プログラミングを理解するというのは、プログラミング言語を使ってコンピューターを思い通りに動かす方法を理解する、ということです。私が勧めたのはC#であり、質問者さんはゲームが作りたいとのことなので、「C#を使ってゲームを作れるようになる」に置き換えても良いです。
catsforepaw

2018/06/17 07:31

具体的なことは入門書などを参考にやりながら覚えましょう。
applash

2018/06/17 10:20

お返事ありがとうございます。なるほどです。ただ1つ言わせていただきたいことは、ゲームが作れればいいのではなく、将来自分の作りたい場所で作りたいゲームを作る際にC++が必要になる可能性が高いので、そこまでどのように学んでいきたいかを教えていただきたく今回の質問をさせていただいた次第です。 いずれにせよ丁寧な回答をありがとうございました。とても感謝しております。なんとか頑張ってみようと思います。
catsforepaw

2018/06/17 11:17

回答の最後で答えたつもりだったのですが、うまく伝わっていなかったようです。 挫折する危険すらあるほど難易度の高いC++をいきなり始めるよりも、比較的難易度が低くモチベーションも維持しやすいC#で始めて自力でプログラムが作れるようになるまで上達すれば、後はC#とC++の「差分」を覚えるだけなのでさほど苦労することなくC++も習得できるだろうということを言いたかったのです。
applash

2018/06/17 12:31

そういうことでしたか! 意図が汲み取れずすみません。。 参考になります!ありがとうございました!
guest

0

最初から効率を気にするのはあまり良くないと思いますが。

C++から始めるのは敷居が高いと思われるので、Unityがお勧めです。
ゲームプログラマーを目指す学生さんが、学生時代にしておいたほうが良いこと
書籍だと古いですが「ゲームプログラマになる前に覚えておきたい技術」

モチベーションを維持して、ゲームを作りきるのが一番大事なポイントかと。

投稿2018/06/14 14:53

umyu

総合スコア5846

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

C++が大好きな人間として書いておくと、ゲームを作るならおとなしくC#でUnityを使ったほうがいいということです。

C++を学ぶのにCからやれなんてのは質の悪いデマだと断言できるし、ゲームプログラミングする上でC++はわかっていたほうがいいのは確かだけど、まずC#やるのは間違ってないと思われる。

投稿2018/06/14 18:09

yumetodo

総合スコア5850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

こんにちは。

①iOS向けやWindows向けとかではなく将来的に上記のようなコンシューマーゲーム開発を目指すにあたってどちらのPCがおすすめか

MacとWindowsではプログラム開発のための情報の流通量を考えると圧倒的にWindowsと思います。
ただし、もし、ターゲットのコンシューマゲーム機のSDKがMac上のみにしかないとう事情があった場合は、Macを選んだ方が良いと思いますので、その当たりの情報を調べてみる価値はあると思います。(機密保持契約に縛られている世界なので、意外に情報が乏しいかもしれないですが、皆無ではないと思います。)

②C++を身につけるまでの理想的又は効率的、必要不可欠な学習過程

まずはC言語と思います。その際、C言語の標準ライブラリは使うためのノウハウが多すぎます。そしてそのノウハウの多くはC++を学ぶ際にほとんど役に立ちません(malloc/free除く)ので、標準ライブラリは必要最低限に留めC言語のコア機能に注力すると効率的と思います。

関数は当然としてポインタや構造体をそこそこ使えるようになり、メモリ(静的メモリ、スタック、ヒープ)、malloc/freeとメモリ・リークの概念とそれを避けるにはどうするべきか、分割コンパイル、#includeの意味、プリプロセサとコンパイラの関係などを学ぶと好ましいと思います。これらは全てC言語で学ぶことが可能です。
ここまでを把握できたらC++へ進むとスムーズだろうと思います。

手前味噌ですが、C言語の基本を把握している人向けに上記の多くをC++のC言語互換部分を使って解説した講座を公開しています。もし、よろしかったら参考にされて下さい。

投稿2018/06/14 14:15

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

applash

2018/06/15 01:17

丁寧な回答ありがとうございます! 他の人の意見も踏まえるとPCはやはりWindowsでよさそうですね。 丁寧な回答をしてくださったChironian様に1つお尋ねしたいのですが、C言語を学ぶためのおすすめの参考書か何かありましたら、お時間のある時で構いませんので是非教えていただきたいです。
Chironian

2018/06/15 01:29

う~ん、コンピュータの基本的な構造をプログラミングの視点から学ぶという意味でのC言語の解説書は見たことはないです。普通にC言語の入門なら「C言語 入門」あたりで検索すればそこそこ出てくると思います。
Chironian

2018/06/15 09:18

他の方の回答を見て補足です。(といいますか意外にC言語が嫌われているので) ちょっと偏った意見ですが、↓のような意見があります。(再帰はJavaでも学べますね。) http://local.joelonsoftware.com/wiki/Java%E3%82%B9%E3%82%AF%E3%83%BC%E3%83%AB%E3%81%AE%E5%8D%B1%E9%99%BA ポインタとひとくくりにすると分かりにくいですが、私は要するにメモリとは何だ?という話と考えています。このメモリ上に記録されたデータの特性は日常生活からかけ離れているため、その本質を理解するのはかなり難易度が高いです。物質と異なり簡単にコピーできます。物質と異なり移動することができません。(別のメモリへコピーして元のメモリを0クリアする等で移動っぽいことしかできません。)ポインタで複数の場所から全く同等にアクセスできます。 そして、コピーしないで済む時にコピーしないことは高速なプログラムを開発するために非常に重量です。コピーしないで済ませるためにはポインタを使いますので、高速なプログラムを作るためにはポインタの概念をきっちり理解していることは重要と思います。 このような概念を学ぶためには、他の複雑な概念を持たない、しかし、関数とか変数、構造体という他の言語の極々基本も学べるC言語は適切と考えています。
pepperleaf

2018/06/15 10:37

今、入門用としてのC言語は薦める必要は無いと思います。なんと言っても高級アセンブラ。 まあ、Cだったら、アセンブラが見えるという利点もありますが、それはアセンブラを知っている事が前提。また、C/C++が速いかと言うと、下手な人のCより、上手な人のJava/C#とかの方が速いと思います。
umyu

2018/06/15 10:43

>Chironianさんへ C言語が嫌われているというより、 「ゲームを作りたい」という「初学者」に対してC言語とC++言語は覚える点が多すぎるという点でしょうか。 そして覚えてもすぐにゲームを作れるかというと疑問符を投げないといけないかと。 まず初学者に必要なのはゲームを作るという「モチベーションを維持する方法」なので、 私としてはUnityをお勧めしています。
Chironian

2018/06/15 11:25

pepperleafさん ゲーム機向けのプログラムでクリエイターではなくプログラマとして高いレベルに到達することを目指す場合はJavaやC#はあまり適切な気がしません。applashさんがどこを目指しているのか分かりませんが、上手な人のJava/C#に劣る程度のC++プログラマを目指しているわけではないと思います。 ただし、どちらかというとクリエイターやデザイナー的な付加価値を目指すのなら生産性の高いJava/C#は十分に好ましいと思いますので、C言語が良いかどうかまではわかりません。C言語の特徴も把握した上で選択した方がよいだろうとの思いです。 因みに最近のC++は安全性とともに高速性も追求するために様々な機能を導入しています。(その分、ますます難しくなってきてます)それらの意味を理解するためには、メモリとは何か?について深い理解が必要です。メモリ管理を処理系に任せてしまうJavaやC#でそれらを学ぶのはかなり厳しいと思います。しかし、C言語なら比較的学びやすいと思います。 また、プログラミング上の「習慣」についてもJava/C#で最初に学ぶことに疑問を感じます。これらの言語は、初期化して使って後始末は処理系に任せる言語です。だからこそ生産性が高いのですが「使ったら片付ける」習慣が付くのか?疑問を感じます。メモリ以外の多くのリソースで必要なことですので、この習慣はなるべくならば身についけておくと強みになると思います。(リソース・リークもなかなか嫌なものですから。)
Chironian

2018/06/15 11:32

umyuさん > C言語とC++言語は覚える点が多すぎるという点 C++は全くその通りと思います。本当に機能が豊富で全てを把握するのは夢物語のような気がする程です。 標準ライブラリを除いたC言語は全くそんなことはないと思います。簡単な言語です。 > そして覚えてもすぐにゲームを作れるかというと疑問符を投げないといけないかと。 なるほど。確かにその通りですね。C/C++でゲームを作るのはかなりたいへんです。 最初のテトリスのようなゲームならまだしも、マリオカート的なゲームとなると非現実的です。
catsforepaw

2018/06/15 12:00

Chironian さん 初学者にポインタの話を持ち出しても無意味ですよ。私はC言語が嫌いなわけではなく「最初にプログラミングを学ぶには不向き」と考えているだけです。C/C++は、それが必要だと感じてから学んでも遅くはありません。そう感じるということは、すでに今使っているプログラミング言語を理解し、物足りなさを感じていることの証左でもありますから。 それよりも、初学者にはいかにプログラミングスキルを習得するかに重点を置くべきです。私自身の体験を思い起こせば、最初に覚えた言語は(Visualでない)BASICでしたが、プログラムで絵を描いたり曲を演奏したり、時にはちょっとしたゲームを作ったりと、遊びながら学んだことが上達につながったのだと思います。C言語を習得した理由は、それ(=パフォーマンス)が必要だったからであり、すでにプログラミングの下地があったからこそ苦もなく覚えられたことは間違いありません。 で、C言語で絵を描いたり曲を演奏したりできるかというと……。それができる人はすでに相当の上級者といって良いでしょう。それに至るまでの道のりはとても味気ないものだろうことは、C言語を習得した人なら理解できると思います。仕事で(あるいは単位のために)必要に迫られたのならともかく、そうでないのなら途中で飽きて投げ出してしまう人もいるかと思います。やはり初学者には楽しめるもの・興味を持続できるものを勧めるのが望ましいでしょう。幸い、質問者さんはゲーム開発に興味があるとのことなので、ならばそれに適した言語、すなわちC#を勧めるのがよろしかろうと思う次第であります。ゲーム開発をテーマとしたC#(Unity)の入門書も結構ありますし。
pepperleaf

2018/06/15 12:10

> どちらかというとクリエイターやデザイナー的な付加価値を目指す もう、ゲーム開発は、プログラマとして目指すものでは無いと自分では思っています。クリエイタ、デザイナ要素の方が大きいと思います。 ただ、この辺は質問者の方がどう思うかですが。
Chironian

2018/06/15 13:28

catsforepawさん > 最初に覚えた言語は(Visualでない)BASICでしたが なるほど。N88-BASICとか? 私は6800アセンブラからだったのでC言語の出現で感動した記憶があります。 BASICもそれなりに使って家の設計図から3D画像をプロッタで描くバイトした記憶があります。 チャッカチャッカ動くプロッタは面白かったけど、バイトだったので最後は憂鬱でした。orz 私自身は上記のようにアセンブラから入ったので、若い気力が充実している時期にハードルの高いことにトライするのも有り(むしろその方が力がつく)と考えています。でも、おっしゃる通りモチベの維持が問題ですね。いきなりは無理ですが、ある程度基礎を学んだ後なら曲の演奏はC言語でも現実的かも知れません。 https://qiita.com/MachiaWorx/items/87968666a2baf9fcc493 pepperleafさん それはそれで「有り」と思います。むしろ、その方面の才能があるなら、クリエイターとしての力を入れた方が良いかも知れません。ただ、クリエイターの分野は才能(センス)が結構重要で中々努力で補える範囲が狭い分野と思います。なので、自身の向き不向きを慎重に見極めることが望ましいと思います。
catsforepaw

2018/06/15 15:17

Chironian さん 6800ですか。6809ならよく知っていますが……。 私が主にいじっていたのはBASIC-M25/MSX-BASIC/N88-BASIC(86)です。あとポケコンもいじっていました。当時のパソコンは絵を描いたり曲を演奏したりするプログラムがとても簡単に書けましたから、なかなか楽しかったですね。今だとProcessingがその雰囲気に近いかもしれません。 BASICでいろいろ作っているうちに、速度が満足できなくなってマシン語(アセンブラなどなかった)を覚えたのですが、雑誌でC言語の存在を知ったのが最初のきっかけです。たぶんX68000関連の記事だったと思います。ただ、学生だった当時は本格的なC言語の開発環境などとても手が出なかったので(今のようなネットで何でも手に入る時代ではなかった)、CP/M+α-C(最も安く入手できた環境)で勉強したことを覚えています。本格的な(フルセットの)C言語の入手は社会人になるまでお預けでした。そして手にしたのがTurbo C++です。
catsforepaw

2018/06/15 15:32

> ある程度基礎を学んだ後なら曲の演奏はC言語でも現実的かも知れません。 Windows APIの使用が前提なら、PCMで鳴らすよりもMIDI機能を使った方が簡単で現実的ですね。音階を指定して音を鳴らせますから。楽譜通りに音符を鳴らして所定時間Sleepしたら音を止めて次の音符を鳴らして……、と繰り返せば演奏はできますよ。それを規格化してデータ化したのがMIDIファイルです。
Chironian

2018/06/15 17:34

> 6800ですか。6809ならよく知っていますが……。 8080との覇権争いを始めたCPUですよ。80系と68系の争いも今では懐かしい思い出です。 6809といえばFM-11を持ってました。OS-9(appleとは無関係なmicroware社のOSです)を載せてC言語で開発してましたよ。 うわっOS-9まだ有りました。→ http://www.microware.com/ ユニファイドI/Oの発想が素晴らしかったです。 > CP/M+α-C(最も安く入手できた環境) おお、CP/Mですか! pipコマンドでコピーするやつですね。
catsforepaw

2018/06/16 01:23

私がパソコンに興味を持ち始めた頃はZ-80と6809で覇権争いしてましたね。「総天然ショック」にショックを受けた一人であります。当時の雑誌などでは6809推しが多かったような気がしますが、迷ったあげくに買ったのは同時期に発売された別のパソコン(Z-80搭載)でした。なのでOS-9は知っていましたが、結局触らずじまいでした。
applash

2018/06/17 08:14

皆様たくさんのご意見ありがとうございました。 難易度などからして、C#を推す方が多くはありますが、Cは難しい分Cで学ぶ必要のあることもそれなりにあるという風に感じました。 皆様の議論の中でわからない用語は数多くありましたが、それだけに参考になることも多いと思いますので自分なりにまとめて勉強を進めていこうと思います。 きっとこれからも皆様のお力をお借りすることがあると思いますので、また機会がありましたらその時は宜しくお願い致します。
guest

0

オブジェクト指向ができる言語を学んでおくと後々苦労しません。
個人的にはグローバル変数がない(やろうと思えば擬似的なものは作れるけどバッドノウハウに近い)、かつ型があるJavaとC#のどちらかがおすすめです。
どちらでも良いですが、自然な流れでオブジェクト指向な考え方が身につくようになりますよ。
Cをやっておくと根本的な書き方は学べますが、JavaとかC#ができれば構文とか似たり寄ったりなのでさほど苦労せずC++もできるようになります。
Cの利点はポインタの概念について学べることです。Cでプログラムを書くとポインタを避けて通れないです。
そのため、ポインタについて学びたいならCですが、それ以外ならC#かJavaを学ぶといいですよ。
順序的には、
C#かJava

ポインタについてCで学ぶ

C++
の順番でやると変な癖がつかないきれいなコードを書けるようになると思います。
Cからやるとオブジェクト指向に沿わなくても良いような適当なコードがかけるようになり、とりあえずコンパイル通らないからグローバル変数を使えばいい的な癖が付きかねなく、はじめに手を付けるのはやめたほうが良いです。
WindowsでもMacでもLinuxでも動くJavaならポインタ使わないでコードかけるし、学習のコストはかなり低いですよ。

投稿2018/06/15 08:07

m_yoko

総合スコア156

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

applash

2018/06/17 10:25

回答ありがとうございます。とても納得のできる、説得力のある説明で非常に参考になりました。 なんとか頑張ってみようと思います。 ありがとうございましたm(_ _)m
guest

0

学生という事は、今、PC使っていませんか?
(なぜか、文系の方が、PC必須だったりしてませんか?)
まず、それを有効活用する事から、始めましょう。
少々、非力なPCでもプログラムは作れる筈です。Windowsだったら、Visual Stdioの無償版が使えます。iOSだと、、済みません、詳しくないですが、フリー版はあると思います。(Linuxの方が良いんじゃないかとも思うが、ゲーム業界には詳しくないので)

文系がゲームのプログラミングを行うこと

個人的には、もう理系の仕事では無いと思っています。では文系か? いや、別のセンスと思います。

②C++を身につける

小さなプログラムで良いですから、作ってみましょう。まず、それからです。

投稿2018/06/14 13:41

pepperleaf

総合スコア6383

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問