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

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

新規登録して質問してみよう
ただいま回答率
85.31%
プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

意見交換

クローズ

13回答

3156閲覧

ゲームプログラミングでおすすめの言語

suicchi

総合スコア1

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

0グッド

4クリップ

投稿2023/06/23 12:16

編集2023/06/24 01:05

0

4

テーマ、知りたいこと

どのようなプログラミング言語を学べば良いか意見を頂きたいです。

状況、目標

現在は学生で、趣味としてゲームプログラミングの言語を学びたいと考えています。
ゲームの種類はブラウザゲーム、pcゲームを考えています。
ジャンルは2DアクションやRPGなどを考えていて、これらのゲームを作ることを目標にしようと思います。

そこで、どんな言語を選択して学ぶべきでしょうか?
調べてみた感じとしては、C#とC言語を現在の段階では考えています。
しかし、調べた情報だけでは、どの言語を学ぶかの判断が難しかったので、皆さんに自分におすすめの言語を教えていただきたいです。

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

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

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

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

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

回答13

#1

bboydaisuke

総合スコア5339

投稿2023/06/23 13:48

編集2023/06/24 03:29

javascript ですかね。

アクションゲームはアクションゲームツクールMV、RPGはRPGツクールMVで作る。どちらも設定だけで実現できないことはjavascriptを書いて実行できます。
アクションゲームツクールMVはブラウザゲーム(WebGL)非対応(要望次第で機能追加みたいな話もありましたが)ですが、RPGツクールMVはWebGLに対応しています。
アクションゲームをWebGLで作ることだけできませんが、それ以外はすべてできます。

RPGツクールMVは体験版もあります。
https://rpgmakerofficial.com/product/mv/special/tkool-mv-trial.html

WebGL対応のアクションゲームを作りたくなったら、PlayCanvasを検討すればいいと思います。こちらもプログラミング言語はjavascriptです。ただしPlayCanvasはエンジンが3Dに対応しているので、2Dしか使わないとしても覚える事が多くなります。

私自身はUnityとUEをメインとして仕事で使っていますし人に教えたりもしていますが、Unity/UEはプロ向けのツールで、一人で始めてもゲームやプログラミングの前に覚えることが多すぎて趣味としては勧められないですね。Unityは初心者には意味不明であろう挙動やエラーが多くて、趣味として続けるには乗り越えなければならないストレスがとても大きいです。無料なのでとりあえず始めてみるのはいいかもしれませんが、これはダメだと思ったら撤退してツクールに移った方が良いと思います。教えてくれる人がいて、一緒にゲームを作る仲間がいるならいいかもしれません。UEは多分プログラミングをしなくなるし、ゲームを作っている感じがあまりしないと思います。

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

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

#2

mingos

総合スコア4267

投稿2023/06/23 14:37

ゲームを作るなら情報が多いに越したことはないので、UnityかUnreal Engineを使うのがおすすめです。
言語はそれぞれのゲームエンジンの言語になります。
個人的にはUnity(C#)がおすすめです。

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

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

#3

logres_Fan

総合スコア176

投稿2023/06/23 14:37

 プログラム言語を学びたいのであればゲームに限らず色々試してみればいいし、そうじゃなくて、ゲームを作りたいのであればゼロから全てをプログラムしなくても完成出来る製品を探してみればいい。

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

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

#4

Zuishin

総合スコア28673

投稿2023/06/24 05:25

とりあえず RPG ツクールを触ってみたらいいと思います。
これは Unity を使用するので C# です。
Unity なのでアクションを混ぜることもできるでしょうし、複数の OS で動くでしょう。

その先はそこから考えていいのでは?

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

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

#5

tmp

総合スコア331

投稿2023/06/24 05:30

周りで、すぐに聞ける人が使っている言語がおすすめです。聞かれる人は気の毒ですが…

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

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

#6

Zuishin

総合スコア28673

投稿2023/06/24 05:35

編集2023/06/24 05:36

まさに気の毒なことになるので人間関係を壊します。
聞くという一方的な関係ではなく何かを一緒に作る関係、持ちつ持たれつの関係を作る方が良いと思います。

(特に今は、初心者は親切に教えてもらって当たり前という驚きの感性を持っている人が多いので)

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

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

#7

bboydaisuke

総合スコア5339

投稿2023/06/24 05:39

#4

とりあえず RPG ツクールを触ってみたらいいと思います。

RPG ツクールはいろんなバージョンが出ているのですが、指しているのは RPG Maker Unite のことですね。ただこれは私の意見としてはおすすめできません。前バージョンの MV と同じように現在リリース直後でまともに動かず、レビューの評価もかなり低いです。
それから、RPG Maker Unite は Unity の見た目を変えたり、Unity の機能を使えないようにしてくるので、逆に厄介です。

今のところ、RPG を作りたいなら前バージョンの MV を使った方がよく、Unity でゲームを作りたいなら別の方法を考えた方がいい、という状況と私は理解しています。RPG Maker Unite のロードマップ を見た限りでは、来年くらいまで様子を見た方が良いと思います。

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

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

#8

soda346

総合スコア18

投稿2023/06/25 07:41

Scheme ですね
Racket というフロントエンドがあるので、それで色んなゲームが学べます
それを学ぶと JavaScript も出来るようになります
あなたのやりたいことを全て叶えてくれる

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

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

#9

umimi

総合スコア557

投稿2023/06/25 18:52

[香車]東上☆あらし☆海美「
Windows で、Game 向け API の DirectX を生でいじるなら、C++ 一択みみ。
Mac なら、Game 向け API の Metal を生でいじるなら C++ や Swift ?

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

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

#10

bboydaisuke

総合スコア5339

投稿2023/06/25 19:27

調べてみた感じとしては、C#とC言語を現在の段階では考えています。

なぜそのような結論になりましたか?

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

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

#11

suicchi

総合スコア1

投稿2023/06/26 02:37

#10

C#は、作りたいゲームの種類やジャンルが自分に合っていると思ったので考えています。C言語は、単体では自分の作りたいゲームを作れないかもしれませんが、使えるようになると他のC++やPHPなどの言語も学びやすくなると聞いて考えました。

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

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

#12

work.yuin

総合スコア7

投稿2023/06/27 00:02

Processingはいかがでしょう
以前、中学生向けのイベントで、シューティングゲームを作ってもらったことがあります
統合開発環境として提供されていますので、他にはテキストくらいしか用意する必要がなく、zipを解凍すれば使用できるようになるので、インストール作業もいりません。
また、モードを変更することで、Androidアプリなども作成することが可能です。
言語はJavaをベースにしていて、規模の大きなゲームを開発したくなったときには、ProcessingをライブラリとしてJavaに開発を切替えることも可能です。
フリーで一式手に入りますので、とりあえず始めてみるのに良いのではと思います。

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

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

#13

tae256

総合スコア58

投稿2023/06/27 08:09

編集2023/06/29 18:05

Cは遠回りだと思います

C(次手にC++)にゲーム開発目的で手を出すのは、結果が出るまですごく遠回りでモチベーションの管理等が大変と思われる為お勧めしません。
Cはコンピュータの理解には繋がる部分はあるものの、ゲーム開発初心者がそこからはじめるのは個人的には悪手に思えます。
ゲームプログラマーとして就職を考えている学徒が教師ありきでなら兎も角として、教師なき個人が独学でCを学んでも、それが「ゲームの完成」に至る為に有効かというと疑問なのです。
ましてブラウザゲームなら。
あなたがそういう大学や専門の一年生だったならば、一週間くらいで教師に教わるのはいいと思うのだけれどね。

Unreal Engineは簡単かつ難解

Unreal Engineはブループリントという実装方法があり、GUI上で処理や値を線で繋ぐようにゲームを作れます。
簡単にそれっぽいものを作れるので入口は広い様に感じます。
ですが既に書かれている通り、「プログラミングをしている」という実感は得づらいでしょうね。
また、入口が広い反面奥行きは狭く深く深淵のようでもあります。
エンジン自体にバグが多く、凝って本格的なことをしようとすれば内部のコードをいじれるくらいにはC++等の理解が必要だと認識しております。

Unity、私は挫折しました

UnityはC#を使いUnreal Engineに比べればプログラミングをしている実感を得られるかもしれません。(追記:2021年にビジュアルスクリプティングというブループリントみたいな実装手段が追加されたそうなので結局同じかも。)
しかし初心者にはつらいという情報を私も支持します。
何故ならわたしが初心者の頃挫折したからです。
「それを乗り越えてこそ」「お前がザコなだけ」例えばそのように思われても大いに結構なのですが(自分がそう思って自責していた)、そんなこと言ってるのが「ゲームの完成」に至る道ですか?

「こうあるべき」みたいなのは避け、目指すのは「ゲームの完成」ではないか

一般的なこと、誰かが言ってること、あらゆる事を鵜呑みにす「べき」ではないと思います。
「あなたのゲームの完成」に何が必要なのかを第一指針にしてみてはいかがでしょう。
「ゲームの完成」ではなく「ゲームを作ること」が目的であるならば別にどこから手を出してもいいしこのような質問をするまでもないと思われますので、私はあなたが「ゲームの完成」を前提としているという体で話を進めます。

言語を決めるよりゲームエンジンを決める方がゲームの完成に近そう

いずれにせよ、誰かに売ったり満足してもらうゲームを作るにはどんな言語でもそれ単体では力不足であるように思えます。
ゲームエンジン等を使う方が手っ取り早くより高度なことや目的に即した事ができてモチベーション的に良いかと。
ゲームを作るのが、いえゲームを完成させるのが目的ならば、言語を決めるよりゲームエンジンを決めた方が近道かなと。
そう思います。
ただゲームプログラミングがしたいならそうでもないですけれど。
それにしたって、メンター、教師のようなものがいない場合は、間違ってもゲームエンジンから作ろうとしてはいけません、と、私は声を大にして言いたいですね。
時間がいくらあっても足りないと思います。
言語で悩むと言う事や、Cを考えるという事は低レイヤからゲームを構築したいのかなと感じました。
しかしそれはゲーム開発が、ゲームの完成が困難になる最初の大きな分岐点であるように思えます。
結局はあなたの好きにやればいいのですが、その道で苦労した者としては同じ轍を踏んで欲しくないとこのようなことを書きました。

ここで出た単語とかを検索してみる等

あなたの環境であなたが作りたいものをより良く作れるゲームエンジンを探すこともゲーム開発の一環だと思います。言うまでもなく実行されている事でしょうが、ここで知った情報をフィードバックしてよりよい情報に出会えたらいいですね。

例えば「ブラウザゲーム ゲームエンジン」と素朴に検索しても私の環境ではそれなりにここに出てないような情報が出てくるように見受けられました。

このサイトに「ブラウザゲームの開発完了経験者」がいるか?

このサイトはエンジニアでなくても、ましてプログラマーでなくても回答できます。
そしてゲームデベロッパー、その中でもブラウザゲーム経験者、その中で完成まで漕ぎ着けたもの、となると、経験者から回答を得るのは困難であると私には思えます。

実際、白状すると、少なくとも私はブラウザゲームは作ったことがありません。
なので、今時どんな環境で作るのかの実情を私は知りません。
それどころか、既に挙げたUnreal EngineやUnity、ましてやCやC++やC#でブラウザゲームを作る方法も私は知りません。
(仮説、というか、こんな感じかな、という予想はある)

また、これは私の推察(妄想)でしかありませんが、ここに回答されていらっしゃる殆どの方は「ブラウザゲームを完成させたことはない」と思われます。
なので恐らく一般的に広く知られている情報が多く寄せられると思われます。
そうでもなさそうなのものもあるかもしれませんが。

多様な情報収集は如何

あなたにそんなつもりはないかもしれませんが、余計なお世話な老婆心で言うと、ここや検索結果だけにとらわれず、多様な情報収集をなされては如何でしょうか。

例えば、(あなたにとってそれが極めて苦痛とかでなければ)Twitterなどにはゲーム開発をしていると喧伝しているアカウントが無数にありますし、ネット上のゲームデベロッパーのコミュニティに参加されてはいかがでしょう。

コミュニケーション能力

ここの回答に知り合いに突撃するのが人間関係の破壊だという意見がありました。
私はその限りではないのではないかと思います。
関係次第、やり様次第かな、と思います。
それが例え知り合いでなくても、ネット上の人に対しても同じことではないかと。
礼儀と愛想を以て一般的な感じで関わっていけば多分仲良くなれると思います。
なれないかもしれませんが次に生かせばいいでしょう。
相手に迷惑をかけてしまう可能性はありますが、そんなこと言ってたら「何もしてはいけないという極論」に繋がっていきそうな予感もあります。
存在するだけで誰かにとっては迷惑だったりするものだと思うので、その上でアクションを起こすことをとりたてて悪だとは私は考えません。

昔からゲーム開発に必要なのはコミュニケーション能力といいます。
これはどちらかと言うと個人制作よりチーム制作、特に雇用されてゲーム開発をする場合に強く当てはまることでしょうが、個人制作であってもコミュニケーション能力があれば情報を得やすいと思われます。

うまくいかないことも多々あると思いますが、失敗しないと学べないのであれば失敗するしかないのではないかとも思います。
他人にはなれませんし自分は自分として自己実現していかなければならないのでないでしょうか。
勿論他人を尊重し礼節を保った上で、ですが。
まあ私にはこれまでできなかったことなんですが。

使えるものはなんでも使おう!

言語選択で悩む初心者らしい気持ちも察しはしますが、多分重要なのは言語ではないです。
ゲームエンジンなり、アセットなり、使えるものは使いましょう。
例えば「個人で趣味でだから好きにやるんだ」というのは自由なものの、そういったものに頼らず、しかも孤独な状況でゲームを完成させることは恐ろしく難しいことですよ。

質問に答えていないじゃないかという素朴な感情に対しての予防線

この回答はあなたの疑問に「とりあえず答える」という形でないかもしれません。
既に述べたように私はその情報を持っていないのでそれはできないのです。
ブラウザゲームと見た瞬間「Javascript」という名詞が湧いたものの、それを学ぶことが実情としてどれだけゲーム開発に繋がるかの一次情報の持ち合わせがないので、私がJavascriptと答えるのは無責任に思えました。

今更、結論(最初に書けよ)

よって、繰り返しになりますが、私から言えることは下記となります。

  • 言語を選ぶという感覚より、ゲームエンジンを選ぶ方が現実的と思う
  • 「ブラウザゲーム ゲームエンジン」などで検索してみては如何か
  • Twitter等でネット上のゲーム開発者に接触、コミュニティに参加する

これらがあなたのゲーム開発に益すると考えます。
勿論これは私見なので、あなたがどう受け取ろうが自由です。

今できること

まず「ブラウザゲーム ゲームエンジン」などで検索してみては如何でしょう。
私の環境ではそれだけで、ここに出てないゲームエンジンの名が幾つか出ましたよ。

ゲームの完成よりゲームを作ることがしたいなら

低レイヤは、いいぞ

追記 : ゲーム開発と、ゲーム完成と、プログラミング学習は全部分けて考えた方がいいかも

めちゃくちゃ蛇足です…といったら全部蛇足だろとつっこまれる予感がありますが、書きます。
ゲームを開発することと、ゲームを完成させることと、プログラミング学習というものは全部分けて考えた方がいいかと思われます。
ゲームを完成させたいのにゲーム開発やプログラミング学習に夢中になってるといつまでも完成しない可能性があります。
質問者様が仰ってる言語学習はわたしの中ではプログラミング学習の一環でしかありません。
自分がそれでいいなら構いませんが、ゲームを完成させたいのであれば、それは分けて考えるべきかと存じます。
プログラミング学習というのもめちゃくちゃ曖昧な言葉であり、言語やライブラリやモジュールやフレームワークの仕様を覚えたからと言って直ちにゲームひいてはソフトウェアが開発完了できるかというと私には疑問です。
素養も関わってくる部分であり正直多くの人間にとってそれは厳しいのではないかと感じます。
(未完成な実装なら誰でもできると思います)
個人であっても、要件定義や分析や設計やテストや開発手法やソフトウェアアーキテクチャや進捗管理等を学ぶことができ、学ぶ利があり、学ぶコストがあります。
他にもコンピュータサイエンスや数学や英語などの基礎、ネットワークやサーバーやセキュリティ、挙げたらキリがありません。
昔であればいざ知らず、あと何年かすればゲームをAIが作れるようになるのではないかと、AI畑ではない私には思えてなりません。
あなたがゲームを完成させ、それを多くの人に遊んでもらいたいとか、お金を得ることに重きを置いている場合はあまり学習に時間をかけている暇はないのではないかと感じます。
AI云々がなくてもプログラミング必修化で学習機会のあった子供たちが続々成長と共に参入してもいるでしょう。
ライバルはどんどん増え続けているように思えます。

ゲーム開発したい
かつ
プログラミングできるようになりたい

みたいな考えで二兎を追うと、一兎も獲れないなんてことになるのも考えられるので、私はあなたにゲームエンジンを勧めます。ゲームの完成、多くのプレイを望む、それにより収益を得る、などが目的であるならば。

まあ全部私見です。

とは言え

わたしはあなたの人生の責任はとれないので、自分にとって何が本当に重要なのか等も含め、結局はやはりあなた次第ですけれど。

ただゲームを作りたいのであれば言語からやるのは「楽しい」と思います。「苦痛」も含まれていると思います。この場合向き不向きとかは考える必要はありません。ただプログラミングを苦しみ、楽しめばいいだけです。
繰り返しになりますが、その場合でもやはりSNSなどを活用し転生すればいいやとかじゃないちゃんとしたアカウント活用で交流を持つ方が情報は得られそうで問題解決は早そう。
関わるのがハードルが高ければただ見に行くのも手。
例えば#1の方の他の回答を見るだけでも参考になるかもしれないし楽しいかもしれない。

話が長くて失礼しました。
校長先生みたいだぁ

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

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

最新の回答から1ヶ月経過したため この意見交換はクローズされました

意見をやりとりしたい話題がある場合は質問してみましょう!

質問する

関連した質問