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

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

ただいまの
回答率

90.00%

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

解決済

回答 6

投稿

  • 評価
  • クリップ 2
  • VIEW 3,688

applash

score 6

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

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

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

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

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

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 6

+6

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

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/17 19:20

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

    キャンセル

  • 2018/06/17 20:17

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

    キャンセル

  • 2018/06/17 21:31

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

    キャンセル

+5

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

checkベストアンサー

+3

こんにちは。

①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/16 02: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コマンドでコピーするやつですね。

    キャンセル

  • 2018/06/16 10:23

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

    キャンセル

  • 2018/06/17 17:14

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

    キャンセル

+3

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/17 19:25

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

    キャンセル

+1

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

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

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

②C++を身につける

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.00%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる