10代のゲームプログラマーに適した開始プラットフォームは何ですか?[閉まっている]


32

私の息子(15)は、ゲームプログラマーとしてのキャリアを追求したいと考えています。私は彼が簡単なゲームで今始めなければならないと言った。彼にはまだプログラミングの経験はありませんが、私はプログラマーです(ゲームではなくビジネスアプリ)ので、プログラミングを教えることができます。最初は、彼の熱意を維持するために、迅速な結果を提供できるものを探しています。

何を提案しますか?


13
閉まっている?冗談だよ!昨年、この質問をしました。少なくとも19の賛成票があり、その賛成の回答には少なくとも86の賛成票があり、5人がお気に入りとしてマークしました。そして答えには、事実、参考文献、または特定の専門知識が含まれます。最後に、それは私にとって非常に有用であり、他の人々も同様に勧めます。この決定に異議を申し立てるにはどうすればよいですか?
gkrogers

1
本当にしたい場合は、メタに関する投稿をすることができます。meta.gamedev.stackexchange.com
Tetrad

回答:


30

XNAは、かなり自信のあるプログラマーに適したソリューションです。将来的に目指すことは良い目標です。

Unrealの開発キットには、はるかに迅速かつ容易に結果を得るための方法であり、開始するには良い場所かもしれません。コメントでは、UDKは実際にはかなり悪い代替手段であることが示されているため、お勧めできません。

Unityは代替手段であり、UDKではできないことを携帯電話で実行します(私の知る限り)。それで、彼が携帯電話用のゲームをプログラミングすることに興味があるなら、おそらく団結が良いでしょうか?


4
これに同意する。UnityはUDKに代わるものですが、理解するのは少し難しいと思います。彼がUnrealScript(Unreal Development Kitのスクリプト言語)を台無しにできるかどうかを確認してください。ただし、XNAは間違いなく最初の真のゼロからのゲームプログラミング言語です。それは最も簡単です(相対的な話です;絶対的な初心者向けではありません)。プロトタイプを作成するのが大好きです。画面上ですぐに絵を描くことができるからです。
リケット

2
XNAの提案については+1。彼はよくそれを学ぶに努めていますし、良いアイデアを持っている場合、彼は簡単にZuneの/ WP7 / XBOX 360用のゲームを販売するいくつかの支出のお金を稼ぐことができます

2
Unityはそのテストに人々のためのゲームを配布し、早期に燃え上がっされることに使用を得るための良い方法で、iPhone上で、ブラウザで動作します
クリスS

4
UDKを避けてください。それは非常に強力ですが、大きな痛みでもあります。それは「落とし穴」と文書化されていない制限でいっぱいです。
ピーターオルステッド

4
私も15歳で、最初に10でパスカルを学び、次にC、次にC ++を学びました。C ++とallegroでいくつかのゲームを12+でプログラミングしようとしましたが、あまり成功しませんでしたが、多くのことをすることができましたが、ゲーム全体を構築する方法は考えられませんでした。それは私を続けた。XNAを使用すると、作業がはるかに簡単になりました。また、デバッグ時に表示されるC#例外の簡単なエラー処理は、どこで間違っているかを知るのに役立ちます。もちろん、他の言語にもありますが、Visual C#には最適なデバッグツールがあると思います。
グスタボマシエル

20

私も15歳ですので、助けになると思いますか?:P

私は最近Pythonを学び始めました(1年ほどC ++をやっています)。C++よりもずっと簡単に学ぶことができます。落とし穴ははるかに少なく、画面上に何かを表示するためのコードはほとんど必要ありません。

また、グラフィックサイドにはSDL / OpenGLを介したPygameやPygletのようなラッパーがあります。

彼がシンプルなゲームを作り始める前に、少なくとも数ヶ月は言語を​​学ぶことをお勧めします。(もちろん、数字を推測するゲームや絞首刑執行人のようなテキストベースのゲームは、この期間中は良い練習です


9
PythonとPygameは、長年Cでゲームを書いた後、私にとって新鮮な空気でした。私は、Pythonの場合、すべてのものに対してより高いレベルの側面があるため、約10%の時間で同じことができると考えました。
ダッシュトムバング

私は同じことを感じています(そして、私は1年間C ++をやっています)。
共産主義のダック

+1。Pythonに少しだけ慣れているにもかかわらず、Pythonを始めるための最初の推奨事項です。これで、Pythonロボットが必要になりました!また、ハングマンなどへの良い提案。=)
スリム

あなたは.net言語を学ぶ必要があります(私はC#のように、F#はあまり好きではありません、vb.netは大丈夫です。ブーイングはビジュアルスタジオでサポートされていません:()。間違っています(非常に良いことです。C++はそれ以上のことをする必要があります。)コールスタックの使用方法、変数、ブレークポイントの監視方法(ブレークポイントはPython IDEで動作すると仮定しますか?) 。これは、不安定な初心者コードを書くときに最適です

13

ここでの非正統的な答えのビット:

Starcraft II Galaxy Editor。

Starcraft 2でほぼすべてのゲームを作成できます。

また、GUI中心の方法で、ループやifステートメントのようなほとんどのプログラミング構成を教えます。

彼が基本に自信がついたら、スクリプトを作成してもらうことができます。

彼はそれが得意で、これが面白いと思うなら、彼は適切なゲームプログラミングが大好きです。


3
私はWarcraft IIIを提案しようとしていました。シンプルなスクリプト言語で始めるのは本当に良い方法です。Warcraft IIIとStarcraft IIの両方には、快適に使用できるGUIと、コードを生のスクリプトとして表示して内部の動作を確認する機能があります。
ウィリアムマリアガー

2
右のトラック。あらゆるレベルのエディターから始めるのが最善の方法です。彼はすべての足場と難易度をスキップし、シナリオを編み、レベルを設計する興味深い部分にすぐに行くことができます。
ボボボボ

この種の質問に対してこれまで見た中で最高の回答の1つである私は、ハイパーリンクを介してMSパワーポイントが非常に小さいときに最初にゲームを作り始め、「ロボットクラブ」と呼ばれるゲームをプレイしました。ゲームプレイで、giantbomb.com / the
ジムジョーンズ

10

私はゲーム開発ツールを大きく3つのカテゴリに分類します。

  1. 簡単に習得して使用できますが、制限されています。ゲームメーカー、ゲームサラダ、RPGメーカー、アドベンチャーゲームスタジオはすべてこのカテゴリに分類されます。
  2. 強力ですが、学習曲線が急です。C ++およびその他の「ハードコア」プログラミング言語がここに適合します。
  3. 通常、Lua、Python、ActionScriptなどのスクリプト言語である中間言語。実際にコードを記述する必要がありますが、メモリ管理などのより曖昧な詳細に注意することで違いを分けます。

プログラミングの経験がない人のために、私は通常、最初のカテゴリーから始めることをお勧めします。与えられたオーサリングツールに満足しているが、制限がメリットを上回っているように感じている場合は、次のカテゴリで何かを学ぶ時が来ました。


9

私はこれがやや時代遅れになることを知っていますが、成長してP-Robotsを本当に楽しんでいました。本当にシンプルな目標(他のロボットに勝つ)、シンプルなAPI、そしてコードの変更から結果を見るまでの短い時間があります。AI、設計パターン、さらには大規模なコード構造にまで分かれています(これらのロボットの一部はかなり大きくなる可能性がありますが、ロボット間でコードを共有するのはどうですか?)。似ているがより新しいものを見つけることができるなら、「プログラミングを始めよう」の部分を手に入れる良い方法でしょう。提案:

それが終わったら、本当にシンプルな2Dスクロールシューティングゲーム、プラットフォーマー、または同様の「アーケードスタイル」ゲームに行くことを検討してください。SDLまたはXNA、または最も馴染みのあるものを使用できます。でもピンポンクローンを取得し、これらの中で実行されていることではありません完全に些細な。これにより、「ゼロから」何かを構築することがどのようなものであるかの小さなエコーが得られます。

この後、探索してください:既存の3Dゲーム(新しいオブジェクト、ボット、または何か)のmodを使用して、より大きなエンジンについて少し洞察してください。

私が見たものから、キーは次のように思われます:

  • 迅速な反復:結果をすばやく表示する機能
  • プロトタイプ:豊富な経験と自信を得るための多くの小さな実験(大丈夫、大理石のゲームはどうですか?宇宙侵略者はどうですか?など)
  • 探索:他の人のゲームがどのように構築されているかを調べたり、微調整したりすることを愛することを学ぶ

2
マインドストームの場合は+1ですが、P-Robotsの代わりにROBOCODE(robocode.sourceforge.net)を使用します。
カラムロジャース

@Callum:華麗は、)=の答えを更新します
リアンダー

NXCでレゴマインドストームを使用します
ジョーザパーソン

6

私のアドバイスは、ウェブベースのゲームを作ることです。どうして?まず第一に、JavaScriptはプログラミングの基本的な概念をすべて教えてくれる美しい言語であり、実際にJavaScriptを使用して優れた有能なクロスプラットフォームゲームを作成できます。ゲームを作るだけでなく、もっと多くのことをする資格が彼に与えられます...何らかの理由で、息子がWeb開発に参加したくない場合は、PyGameと呼ばれるモジュールでPythonを使用することをお勧めします。私もその経験があり、素晴らしいことではありません。私提案しないのは、C / C ++で始めることです。それは私がやったことであり、ひどいものであり、彼がプログラミングのすべてをやる気にならないかもしれません。

別の注意として、あなたはおそらく素晴らしい父親です、おめでとうございます!


1
良い提案。そうは言っても、私はCから始めました(当時は本当の代替手段がなかったわけではありません)。もちろん、より高いレベルの言語があるので、それを使用する理由ではありません。
o0 '。

1
ありがとう!また、私はゲームから始めませんでした。私のポイントは、高レベルの言語を学んだ後、彼は一般的なプログラミングの概念をよりよく理解し、彼のモチベーションを枯渇させないだろうということでした。そしてもちろん-私は少しそこを調べていた;)
jcora

1
その時代、私の作品を友人と簡単に共有できることが動機付けでした。Webゲームはより簡単に共有されます。FacebookにURLを投稿し、友達に試してみてください。Actionscript / FlashまたはJavascript / HTML5は、JavaまたはUnityとすぐに簡単に共有できるようにするための最善策です。
amitp

5

マインドストームロボットは本当にクールです。私たちはNXTを学校に持って行き、先週、ラインに従うなどのプログラミングから始めました。簡単に結果を得ることができます。

また、私は少し前にwww.3dgamestudio.deを見つけました。私はそれ以上は知りませんでしたが、本当に面白かったです。lite-Cでプログラムできます:

Lite-Cはマルチメディアアプリケーションおよびコンピューターゲーム用のプログラミング言語であり、C ++プログラミング言語のいくつかの要素とともにCプログラミング言語の構文サブセットを使用します。

http://tutorial.3dgamestudio.net/あなたはそれに入ります。また、レベル、モデル、地形エディターもあります。

ps:私は16歳で、友人がWebサイトをプログラミングし、プログラムされたゲームサーバーをカスタマイズすることから始めました。だから、これは彼にとっても面白いかもしれません。


+1非常に簡単なドキュメントの作成方法、実際に対処するのは非常に簡単です。
グランプリ

4

私はこれを十分に提案することはできませんが、お気に入りのお気に入りのゲームのために彼自身のレベルを構築しています

その年齢/スキルレベルの人は、好みのゲームエンジンでレベルを構築することから始めなければなりません。

多くの優れたゲームには、多くの自由度を可能にするレベルエディターが付属しています。

RPG黒曜石のNWN 2電子ツールセットシリーズエルダースクロール

RTSウォークラフトIIIのレベルエディタ幻想的なRTSエディタであっても、それ自身のスピンオフゲーム伝説のリーグ newerthの英雄)。

FPS:半減期2のハンマーカウンターストライクはもともと半減期のmodでした。

ここから始めてください。お気に入りのゲームのレベルを構築することは、おそらく開始するのに最適な場所です。



3

ここにあるすべての情報は役に立ちますが、STEM Challenge(ホワイトハウスとESAが推進する全国大会)にはプラットフォームに関するいくつかの提案があります。http://www.stemchallenge.org/about/Default.aspx

Gamestar Mechanic、Gamemaker、Kodu、Scratch、PBS KIDS Ready To Learnストリーム

特に、STEMに関連するこれらのプラットフォームに関するコミュニティリソースがあると感じています。

pythonとpygameについてのこの優れたチュートリアル(オンラインブックでもあります)も参照してください。http://inventwithpython.com/chapters/ ここに、特にpygameについての本の続編のPDFがあります-games-with-python-pygame /

NYTの別の記事http://www.nytimes.com/2011/11/10/technology/personaltech/computer-programming-for-children-minus-cryptic-syntax.html?_r=2&sq=mitchel+resnick&st=cse&adxnnl= 1&scp = 1&adxnnlx = 1322489239-tMp1Wjl9FUcI8rLaJ6cbOw

更新:こちらがスラッシュドットディスカッションです。http://ask.slashdot.org/story/11/12/27/152228/ask-slashdot-tools-for-teaching-high-school-kids-how-to-make-games


2

Game Makerは、プログラミングの経験がない人に最適です。無料版と比較的安価な有料版があります。ドラッグアンドドロップインターフェイスでゲームをすばやく作成できますが、より高度なスクリプトのサポートが含まれています。


5
これを支持するつもりはありませんが、GameMakerとVisual Basicはどちらも悪い構文(VB)を教えるツールであり、GameMakerはあまり優れていません。1つは、VSのような優れたIDEにアクセスできないことです。ドラッグアンドドロップゲームの作成では、実際には何も教えられません。
ジョーの人

1
VBについて言及している理由がわかりません。Game MakerはほぼCベースです。とにかく、Game Makerは、何も知らないことからgame devに必要な種類の思考を理解することまで進歩する良い方法です。イベントへの応答、ゲームループの維持、グラフィカルリソースとコード間の関係の使用、プロジェクトのアイデアから出版まで; これらはすべて、ドラッグアンドドロップ開発で学べることです。GMLは限られた言語であることに同意しますが、システム全体としては良い出発点です。
グレゴリーエイブリーウィアー

1
さらにもう1つの恐ろしいプログラミングツールであるDarkBASICのため、VisualBasicに言及しています。
ジョーの人

Game Makerは間違いなく結果重視の教育に適しています。物理学やレンダリングを学ぶ必要はありません。組み込みの機能を使用するだけです。また、C ++への移行は簡単です。dllを作成してGame Makerで使用し、後でGame Makerを完全に捨てることができるためです。
ウィリアムマリアガー

11歳以上の人にGameMakerを勧めてはいけません。15歳の場合、プログラミングに頭を悩ませるかもしれません。
jcora

2

Martinが言及したように、UDKはおそらくAI、モデル、豊富な本などの非常に多くの既成のものが付属しているため、何かを機能させる最も速い方法です。非常に優れたマップエディターを備えており、言語はJava風(およびECMAスクリプトのような)です。

別の方法は、FlashまたはSilverlightでゲームを試してみることです。簡単な2Dゲームから始めます。彼が好きなゲームのジャンルが何であれ、ツールキットが決まります。


1
いや!UDKではありません!バギー、遅い、エラーが発生しやすい、複雑ななどです。代わりにUnityを使用してください。
ジョーの人

@ firedude67 UDKバギー、エラーが発生しやすいですか?冗談?
クアジイルファン

私の経験では、信じられないほど遅れていて、私が作ったものはどれもBSODを与え、有用なドキュメントを見つけることができませんでした。サンプルプロジェクトでさえ実行されませんでした。
人ジョー

1
UDKのバグを発見したことはありませんが、ゲームプログラマーにはUDKをお勧めしません。アーティスト、はい、プログラマーはいません。「ドキュメント」は冗談であり、サブクラス化する必要があるクラスを見つけるには、実際に親クラスを開く必要があります。これらは、APIリファレンスを提供しないことを決定したためです。また、さまざまな種類のゲームを作成するには多くの作業が必要です。なぜなら、それは本質的にFPSエンジンだからです。
DMan

1

14歳から来るこのアドバイスは役に立つかもしれません。プラットフォームを選択する最良の方法は、目的に最も適したプラットフォームだと思います。私はこれまで何度もこの投稿をしました。

Redditから-

目的に合った言語を選択してください。ほとんどのゲーマーは、ゲームのプログラミング言語を気にしません。ゲームをプレイできるかどうかを気にします。彼らはそれが自分のコンピューター上で高速に動作するかどうか気にします。ゲームのサイズが10ギガバイトではない場合、彼らは気にします。exeでもjarでも構いません。

Minecraftなどのゲームを見てください。確かに、ゲーム開発業界で非常に小さな市場シェアを持つ言語であるJavaで書かれています。消費者は気にしますか?いいえ。彼らは機能性を気にします。

ただし、あなたの息子にはプログラミングの経験がないため、Pythonなどのコーディングが速い言語を習得するか、XNAなどの既存のプラットフォームを使用することをお勧めします。個人的には、Slick2D with Javaが大好きですが、それが私の好みだと思います...


0

私は若い年齢(15歳未満)でプログラミングを紹介され、父はVB(1.0)を使用することにしました。タイマーオブジェクトとGDI描画を使用して、ピンポンのツイストバージョンを作成しました。空白のキャンバスから始めて、何かを楽しくしようとしている間にプログラミング構造の基本を学ぶことができたので、それが好きでした。

今日、私はXNAを選択し、シンプルな2Dゲームを選ぶと思います。C#とXNAはかなり単純であり、十分な成長の余地があり、無料です。


-4

ゲームを作りたいだけの場合は、XNA、Unreal、Unityなどを使用する必要があります。ゲームプログラマになりたい場合は、最初にC / C ++とOpenGL / SDLまたはD3Dを学ぶ必要があります。

XNA、Unreal、Unityなどはゲームの作成には適していますが、あまりにも多くのことを行うのは本当に苦手です。私はこれについて人々が私に反対すると確信していますが、これらは基本的にあなたを怠intoなプログラマに変えます.C ++でポイントのようなことを学ぶときが来ると、より簡単なオプションを最初に使ったのでより難しくなります。

あなたがゲームプログラマーになりたいかどうかを学ぶための最初の言語として、他のC / C ++を提案することはありません。主な理由は、あなたがC#/ XNAを学んでも、ゲーム開発者になることを真剣に考えているなら、誰かがあなたを雇わないので、ある段階でCまたはC ++を知る必要があるからです。ですから、彼らが職業について真剣に考えているなら、あなたはあなたに期待されることを学ぶのを遅らせるだけです。


10
15歳の人がプロとして採用される準備が整う頃には(今から8年後)、誰もがC ++を使用していると考える理由はありません。8年前、C ++はゲームで使用を開始し始め、最初の実際的な実用標準を取得しました。ほとんどの人がCを出荷していました。その8年前、C ++はゲーム開発にとっては不愉快な状態でしたが、 Cとasmでした。8年後、ほとんどのゲームプログラミングは、おそらく現在のC ++ 03よりもXNAのように見えるでしょう。(続き)

8
重要な要素は、個々の言語に依存しない優れたプログラマーになることです。新しいプログラマーの場合、C#はより迅速にモチベーションを高めます。彼らは何か良いものになりたいなら、戻ってより詳細なことを学びますが、その段階に到達するには十分に長くそれらをフックする必要があります。

5
ゲームプログラミングの重要な詳細は、SSEではなくSIMDです。C ++標準レイアウトではなく、キャッシュライン。std :: unordered_mapではなくハッシュ。仮想関数ではなく、ポリモーフィズム。これらの後者は微小であり、偶発的なものであり、基本的なものではありません。前者を知っている場合、後者はつまらない傾向があります。

2
一般に、C ++から始めることは悪い考えです。それは難しい言語であり、さらに最初のものです。
共産主義のダック

4
...私は15でC ++を開始し、私は今の私どこで満足している一方で、何か簡単に、おそらく多くの苦痛が少ないとなって、と私はむしろポインタとセグメンテーション違反よりも、実際のゲームDEVに注力することができただろうから始まります
ライリーアダムス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.