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

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

新規登録して質問してみよう
ただいま回答率
85.37%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

意見交換

6回答

645閲覧

C#で2Dゲームを作る際にunityなどを使うべきか

LunaShoot

総合スコア1

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

1クリップ

投稿2024/11/10 13:21

編集2024/11/10 13:23

テーマ、知りたいこと

現在はvisual studioでwindowsフォームアプリのプロジェクトを作成してゲームを作ってみています。まだ始めたてで、windowsフォームアプリに問題点を感じたわけではないのですが、unityというゲームエンジンはよく耳にするので利用するべきか悩んでいるのでご意見をいただきたいです。

背景、状況

2Dのゲームを作っています。とはいえ、作っていると言うのをためらうほど浅く、学びたての初心者です。マリオのようなゲームからシューティングゲームなどいろいろな種類の2Dゲームを作ってみたいと考えております。

windowsフォームに不満を感じたわけではないにもかかわらずunityに興味を抱いているのは以下の理由があります。

①情報が多い
②ゲームを作るのならゲームに特化したものを利用したほうが良いのではないか

この二つが主な理由です。

このような背景がありながら、すぐに飛びつこうと思えないのは、学習に時間がとられるのではないかという不安があるからです。ゲームのクオリティを上げることより、まずプログラミングの勉強をしたいというのが現在の最大の目標です。ですので、unityでしか活用できないunityのためだけの知識の勉強にあまり時間を割きたくないとも思ってしまいます。しかし、理由①に書いたように、unityは盛んに利用されているため、情報がインターネット上にも本にもたくさん見つかります。unityでのゲーム作成に切り替えることにより、逆にC#の勉強自体も効率的にできるのではないかと想像することもあります。

②については、ゲーム作成の都合上困るが、プログラミングの勉強においては重要ではないところに時間を取られずに済むのではないかと考えます。ゲームに特化しているのでストレスなく勉強できるのではないかと期待しています。

こういった理由で、unityを利用してみるか迷っています。unityを利用してみるべきか、ご意見をいただきたいです。よろしくお願いいたします。

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

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

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

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

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

回答7

#1

mingos

総合スコア4190

投稿2024/11/10 14:41

編集2024/11/11 02:24

Unityで実際にゲームを作っています。
もちろん、Unityを使う場合Unity特有の使い方をする必要があります。
それが嫌だというのも理解できます。自分も最初馴染めなかったです。
とはいえ、ゲームを作るにあたって効率的に作っていくならなんらかのゲームエンジンを使うほうが良い選択肢であると考えます。
今のところ主流なゲームエンジンとしては以下が挙げられると思います。
(他にもあると思いますがきりがないので自分が知っている範囲のメジャーどころという意味です)

  • Unity
  • Unreal Engine
  • GoDot

これらはそれぞれ特有の作り方になりますので、どのエンジンを選んでもそれ特有のお作法を学び、それに従ってゲームを作る必要があります。

①情報が多い
②ゲームを作るのならゲームに特化したものを利用したほうが良いのではないか

という事でいえば、さきほど挙げたゲームエンジンならある程度満たせると思いますが、やはりUnityは日本語の情報も多いと感じます。
日本語の書籍も多いです。

C#を使ってゲームを作る事を通じてプログラミングの技術も上げて行きたいということなら、Unityはまさに良い選択肢だと思います。
現在はWindowsフォームでゲームを作っているということですが、それを続けていても新しい視野は手に入りません。
簡単な入門書を買ってUnityを学んで、今Windowsフォームで作っているゲームをUnityで作ってみる。
それでUnityが気に入らなかったらいつでもWindowフォームに戻れます。
Unityを使うことで新しい知見が得られるかもしれません。
Unityが気になっているなら、チャレンジしてみる価値はあると思います。

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

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

#2

fana

総合スコア11954

投稿2024/11/11 01:29

編集2024/11/12 02:09

まずプログラミングの勉強をしたいというのが現在の最大の目標です

(当方,Unityのことは知りませんが…)
何らかの フレームワーク(?)/エンジン(?) 的な物を用いると,そのフレームワーク的な物が 受け持ってくれる/内側でやっていてこちらには隠されている ような部分については知ることができない,ということはあり得るのかもしれません.

なので,「勉強」という言葉の 目的/対象/etc 次第では,
フレームワーク的な物が面倒を見てくれる範囲というのが広ければ広いほど,「勉強にはならない」という方向に向かい得るのかもしれません.

なんでしょうね,状況というのが

  • プログラミングを勉強するうえでの「お題」としてたまたまゲームというものを持ってきている
  • 何らかのゲームを作るという目的がまず先にあって,そのために必要だからプログラミングを学んでいる

のどちらなのか? みたいな.
前者側なのであれば「Unityなるゲームに特化した(?)ようなものを使うというのは目的に合っているのだろうか?」という話であり,
後者側ならば「目的のゲームを作るためにUnityが近道になるのかどうか?」という話になるかと思います.


ゲーム作成の都合上困るが、プログラミングの勉強においては重要ではないところ

…というのは{どういう意味? 具体的には何を指している?}でしょうか?
そこらへんの事情次第なのかな? という感じもしますが.

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

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

#3

nanashi123

総合スコア89

投稿2024/11/11 11:03

Unityはフレームワークの一種です
Unityに限らず、APIを利用する以上は、それを構成するライブラリの学習は欠かせません

Unityはコンポーネントモデルをベースに構築されています
これはオブジェクトを継承ではなく相互参照によって管理するモデルです

エンジンで管理されるゲームオブジェクトは、多くのコンポーネントクラスに参照されます
エンジンはそれらのコンポーネントをリストアップし、各コンポーネント内で管理されるゲームオブジェクトのIDを基に、ゲームオブジェクト側からのリクエストを処理します

Unityの学習は、このデザインパターンの学習に直結します
また多くのアセットに付属するスクリプトに目を通すことで、ソースコードを読む訓練にもなります

コンポーネントモデルの知見は、Unityに留まらず、多くの分野で汎用的に活かすことができます

興味があれば、Unityそのもののソースコードにも触れてみることをお勧めします

https://github.com/Unity-Technologies/UnityCsReference

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

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

#4

この回答は、運営により削除されました。

#5

umimi

総合スコア504

投稿2024/11/12 05:25

[香車]東上☆Aho(暎帆)☆海美「
最初に。ゲームのプログラミングと言うのは、一般的にプログラミングと言われているモノの中で、かなり特殊です。

C# で Windows Form と言う事は、DirectX すら使用していないと言う事でしょうか ?
Unity は C# なので、C# で Windows Form の経験が、少しはいかせると思います。

unity でしか活用できない unity のためだけの知識の勉強にあまり時間を割きたくないとも思ってしまいます。

『C# で Windows Form』も、一般的にプログラミングと言われているモノの中で、かなり特殊です。『C# で Windows Form』でしか活用できない『C# で Windows Form』のためだけの知識の勉強になっています。

マリオのようなゲームからシューティングゲーム

『シューティングゲーム』より『マリオのようなゲーム』の方が難しいのですが、その辺の認識もできていない程の初級者、と言う事でしょうか ?

一般的にプログラミングと言われているモノの習得が目的ならば、ゲームのプログラミングでなく、もっと一般的なプログラミングを目指した方がいいかもしれません。

ちょっと、厳しい言い方になってしまったかもしれませんが、貴方の書き込みを深読みすると、こうなってしまいました。

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

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

#6

fana

総合スコア11954

投稿2024/11/12 06:50

#5

ゲームのプログラミングと言うのは、一般的にプログラミングと言われているモノの中で、かなり特殊

『シューティングゲーム』より『マリオのようなゲーム』の方が難しい

このあたりの話について,もう少しでも 具体的な(?)/詳細な(?) 話があったりすると,質問者(※)が取り組みの方向性を考える上で より参考にできる意見になるのではないでしょうか.

(※:「意見交換」の場合,「質問者」と呼ぶのは妥当なのだろうか?)

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

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

#7

nururi

総合スコア136

投稿2024/11/14 05:31

趣味でゲームを作るなら別に何を使って作ろうが構わないと思いますが、画像描画、サウンド再生、キー・マウス・ゲームパッド入力受信、アセット管理 etc… ゲーム作りに必要な土台を全部自分で用意するのは結構大変です。
(アーキテクチャ学習のような勉強目的でやるなら無駄にはならないとは思いますが)

・ゲーム以外の部分を作る事に時間をあまり割きたくない
・Windows以外のプラットフォームでも動作させたい
・将来的に仕事や販売目的で作るのを目標にしたい
・ネットでの情報が集めやすい
辺りを考慮すると、自然とUnityのようなゲームエンジンを利用する事になるのではないかと思います。

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

この意見交換はまだ受付中です。

会員登録して回答してみよう

アカウントをお持ちの方は

関連した質問