「翼を手に入れる」のに適したゲームは何ですか?[閉まっている]


305

優れたゲーム開発者になるには、ゲームを作成する必要があると思います。

プログラマの観点、あなたの手が汚れて取得するには、いくつかの良いエントリレベルのゲームは何ですか?これらのゲームはそれぞれどのようなスキルと課題を教えていますか?

回答:


217

起こる

心配する状態があまりないので簡単なゲームです(レンガの値の配列です。レンガの色が1つだけの場合はフラグの配列です)。AIはありません。ボールを正しくバウンスさせるための少しの物理学。

ソリティア

ルールはブレイクアウトよりも少し複雑であり、そのインターフェイスは大きく異なります。ゲームを実装するさまざまな方法について考える必要があります。つまり、あるゲームで機能するものは、必ずしも別のゲームで使用するものとは限りません。

パックマン

これは、少しのAIで作業できるので便利です。ゴーストをプレイヤーに追従させる(ただし、あまり良くない-プレイヤーにチャンスを与えたい)ことはすぐに実装でき、あなたは微調整して友人や家族に見せびらかすことができる楽しいゲームを作ることができます(肯定的なフィードバックは常にあなたが始めているときに良いこと)。

初期のビデオゲームでインスピレーションを探すと、比較的簡単に実装できるアイデアがたくさん見つかることがわかります。さらに、とにかくとてもシンプルなものをコピーしているので、非常にシンプルなアートワークとサウンドで逃げることができます。これにより、最初に基本に集中することができます-ゲームのループを開始して実行し、ピクセルを画面に表示する方法を理解し、サウンドを再生し、スコアを保持し、プレイヤーの入力をゲームに入力します。

どちらのゲームを最初に選択するかはほとんど関係ありません。簡単な結果を得ることができるシンプルなものを選択してください。そうすれば、翌日に移動して別のゲームを作成できます。そしてもう一つ。そして、もう1つ-作れば作るほど、自分自身をプッシュし、最終的には知らないうちに複雑なゲームを作ることになります。


49
ブレイクアウトで+1。多くのPROゲーム開発者に、新しい技術を入手するたびに、最初にBreakoutを作成することでそれを学ぶと教えてくれました。
ジェフ

2
+1 Breakoutは、私が作った最初のゲームでした=)。また、私は初期のビデオゲームを(独自の工夫をして!)再作成しようとすることに同意します。資産ではなく概念に焦点を当てます。
user384918

16
@PhillC、いいえ、それは分割する価値はありません
-Simurr

13
テトリスを忘れてしまった:それは私が高校で実装した2番目のゲームでした:)
エミリアーノ

2
あなたのすべてがあなたのブレイクアウトへのリンクをお願いできますか?私はそのゲームを愛し、すべてのリメイクを試してみたい
fent

256

初心者のプログラマーは、実際に書きたい最も単純なゲームから始めることを強くお勧めします。Matt Rixが述べたように、ゲームの作成とデモの部分は、クレジット、メニュー、プレイテスト、ハイスコア、一時停止、プレイテスト、難易度、クリーンなゲーム状態遷移、プレイを完了させることです。テストなど。これらの処理は、少なくとも半分の時間で実行できますが、面白くありません。そうではありません。ですから、概念を愛し、本当にやる気のある場合を除き、あなたはあきらめますとゲームがある前に移動するゲーム

RPGを作成する場合は、自分でやりたいことを思い付くことができる、最もシンプルで管理しやすいRPGコンセプトを見つけてください。SFシューティングゲーム、ホラーをテーマにしたプラットフォーマーなど、何でもしたい場合は同じです。楽しいことをすべて終えた後でも、仕上げたいと思うものを選びますが、実際に完了するまでに何十時間もの仕事を見続けています。

「翼を手に入れる」ための最高のゲームは?完成したもの。あなたが書いた半分のPONG / Breakout / Galaga / Tetrisのデモの数は気にしません。実際に完成したゲームをリリースするまで、あなたはゲーム開発者ではありません。

さらに、40歳のゲームの別のバージョンをプレイしたい人は誰もいません。少なくともゲームを書くポイントは、人々がプレイすることです。


3
この回答を3倍投票したい!
イアン

2
実際にゲームをリリースすることについてのコメントに対して+1。ゲームを立ち上げて実行するのは、プロセスの約30%、IMOだけです。メカニックを常に繰り返し、見栄えのするようにすべてを磨き、非常に特定のシナリオでのみ発生する厄介なバグを追いかけ、実際に行う必要があることに集中できるのは他の70%です。
デニスマンシー

1
私が言いたいことを言うための+1。私の最初のゲームはpalmgadget.com/palmgo.htmlでした。ゲームGoが大好きで、クラブで自分のゲームを記録するためにそれを本当に使っているからです。最初に「自分のかゆみを掻く」。
ohho

16
このアドバイスは気に入っていますが、危険な場合があります。結局のところ、この考え方こそが、非常に多くの人々がゲーム開発フォーラムに行って「これまでにゲームを作ったことがないので、MMORPGを始めよう」と言っている理由です。良いスタータープロジェクトの限られた選択から楽しむゲームから始めるべきだと思います。ですから、もしあなたが本当にテトリスを嫌うなら、それは大丈夫です。しかし、代わりにブレイクアウトを行います。あなたに訴えるランダムなゲームだけではありません。
-jhocking

185

このラダーを少し前にTIGsourceに投稿しました。非常に基本的なものから非常に複雑なものまでです。

  • 「数字を推測する」/ハングマン(基本的なインターフェイス、データベースからデータを選択)
  • 三目並べ/じゃんけん(ターンベースのゲームプレイ、対戦相手AI)
  • アルカノイド/ポン(衝突、安定したフレームレート、スコア、レベル)
  • テトリス(データ構造とゲームとの関係)
  • 1942 /銃撃戦(敵、弾丸)
  • エンジンがプラットフォーマーを実行する場合の単純なプラットフォーマー/ピンボールゲーム(重力ベースの衝突)
  • ボンバーマン/パックマン(タイルベースの動き、複雑な敵AI)
  • 上記のいずれかのタイプの2プレイヤーゲーム(2プレイヤー入力)
  • ローグライク/ディアブロ(在庫管理、複数の敵AI、複雑なゲーム状態の保存と読み込み)
  • Faceball / Wolfenstein 3D(基本的な3Dの動きとレンダリング)
  • ネットワークターンベースのゲーム(基本的なネットワーク)
  • ギミック3Dサードパーソンプラットフォーマー(物理学、複雑な3D運動)
  • ネットワークリアルタイムゲーム(クライアントとサーバーの同期、遅延)
  • MMORPG(永続的な世界)

7
ここで何を学ぶべきかをよりよく説明できます。簡潔なメモはあまり説明的ではなく、有用ではありません。
SpoonMeiser

57
最後になりましたが、MMORPGはさらに下に行く必要があると思います。素晴らしいリスト。+1
はすると

6
素晴らしいリストですが、私はラダー全体の側面がパックマンの後に崩壊すると思います。その時点で、あらゆる種類のゲームを行って実行するのに十分な知識があります。Wolfensteinを開発する前にDiabloを開発する必要はないと思います。パックマンまではすべて順を追って行う必要があります。
ジョッキング

5
「永続的な世界」は、MMORPGと以前のオプションの違いを過小評価しています。
マラバルバ

1
非永続的な(「ローグライク」など)でも「Persistent World」を処理できます。
ashes999

64

ゲームプログラミングの学習で最も重要なルール:プログラミングの学習は困難です。ゲームデザインを学ぶのは難しいです。優れたゲームアートやオーディオの作り方を学ぶのは難しいです。これらのすべてを同時に実行しようとすると、失敗のレシピになります。一度に一つのことを学びます。

結果:デザイン、アート、サウンドが既に行われているゲームをプログラムします。オリジナルのゲームではなく、クローンを作成します。

私のクラスでは、これらのゲームを次の順序で開始することを常にお勧めします。

1)テトリス。アートは色付きの長方形であり、Microsoftペイントでは合計でさえも描画できます。音は必要ありません。プログラミングは比較的簡単ですが、いくつかの重要な点が依然として必要です。内部のゲームの状態と画面に描かれるものの違いを理解すること。画面にピリオドを描くことができる(おそらくスプライトとブリットを含む); getch()またはscanf()を待つだけでなく、ユーザー入力をリアルタイムで受け入れることができます。

2)ブレイクアウト/アルカノイド。アートはまだ色付きの長方形であり、あなたはまだ音を必要としません。ボールはスムーズに移動およびバウンドする必要があるため、テトリスのすべての基本概念に加えて、いくつかの基本的な衝突検出および2D物理学を使用します。

3)Gradius / R-Type。これを作成するためのフリーウェアタイルセットを見つけることができます。ここでは背景がスクロールしているので、ページフリッピングやダブルバッファリングなどの手法を使用して、グラフィックメモリがどのように機能するかについてもう少し学ぶ必要があります。また、動的な敵と弾丸が発生する傾向があるため、自分の後にクリーンアップすることを学ぶ必要があります(つまり、ゲームがふるいのようにメモリをリークしないように画面から離れる敵と弾丸を取り除きます)。

4)Super Mario Bros.以前のスクロールプロジェクトと同様ですが、スクロールがプレイヤーの制御下にあり、自動ではない点が異なります。また、重力とそれに伴うすべての楽しい衝突物に対処する必要があります(最後のフレームで数ピクセル上にいたからといって床から落ちないで、次のフレームで数ピクセル下に移動したいなど) )。また、重力は条件付きであることに注意してください:プレイヤーと一部の敵に影響を与えますが、通常はプラットフォームや浮遊コインなど、実際の世界とは少し異なります。

これらの4つすべてを実行できる場合は、ほぼすべての2Dゲームを実行できるはずです。すべてのツールがあります。3Dゲームを作りたい場合...最初に2Dを学ぶのは簡単で、数学を深く理解する必要がないので、とにかく2Dのことを理解する必要があります...それに慣れて、いくつかの基本的な3Dツール(TorqueやUnityなどのライブラリ、または元のDoomやQuakeなどのオープンソースゲーム)の使用を開始してください。

幸運を!


39

これは実際に良い質問です。私はあなたがどこにいるか分からないので、私は空のためにスイングし、あなたがあなたの人生でコード行を書いたことがないと仮定します。気分を害するために、鼻のどの部分もあなたを怒らせないようにカットしてください。

私は実際にあなたが尋ねたものとは少し異なる質問に答えるつもりだと思います、そして私はあなたがその場で尋ねた質問を満たすために例を挙げます。私がそうする理由はわずかですが、視点に大きな違いがあると思います。重要なのは特定のゲームではなく、それらのゲームがデザイナーにもたらす考え方です。

あなたは、人々があなたのことをどのように話すかを知っています。彼らの考え方と心と肝臓を食べ、それによって彼らの強力な力を得るために、さまざまなプログラミング言語を学ぶことになっていますか?それには本当の真実があります-最初の純粋またはほぼ純粋なプログラミング言語の後、命令型言語であっても、あなたは非常によく定義されているので、ほとんど副作用のない関数を書くことになりますその形式ではない言語であっても、その方が適しています。haskell、ml / ocaml / smlnj、formulaONE、c ++テンプレートなど、どの言語であるかは特に関係ありません-サイドエフェクト状態に依存せずに、多くのクラスの作業を行う方法を学習します。堅牢で機械に近いプログラミング言語を初めて学ぶときは、サイズ型の抽象化について学びます。宣言型または制約型の言語を初めて学ぶときは、裁量的なツールとしての境界について学びます。バックトラック検索言語を初めて学ぶとき、あなたはIaを祈ることを学ぶでしょう!いや!C'thulhu F'tagn Nagn !、それから私たちは心臓と肝臓を食べることに戻り、人生の輪が満たされました。

ゲームデザインも同じです。特定の言語と並行して特定のゲームを学ぶ必要は必ずしもありませんが、言語特性ファミリーのような、その考え方を処理する象徴的な代表的なゲームを学ぶ必要があります。また、肝臓や心臓を食べることがたくさんあります。ペッパークラッカーを取得します。

ここでのギャグ(少なくとも私が見ているように)は、トピックの大きなリストをカバーしたいということです。それは、キャラクターシートの習熟度を刻むようなものです。特定の状況を処理するためのより多くのメカニズムを利用できるようにしています。はい、それらはレベル調整可能ですが、全体にわたってできる限り多くの点で1つまたは2つあるということは、1つを使用するときが来たら、ゼロから始めず、どの戦術が利用できるかを知っていることを意味しますスケールアップするために。

だから、見て。

まず、歯を切りたいです。これらは、新しいプラットフォームをターゲットにすることを学習しているとき、または健忘症から回復しているときにも役立ちます。これらは高速ではなく、素晴らしいものです。

順番に:

  1. スクリーンコントロール。ブルースクリーンはこれに最適です。なぜなら、あなたはマイクロソフトに向かう途中だと信じる説得力のある理由があるからです。
  2. 入力検証。Fooscreen。fooは上を青、下を赤などです。すべてのキーを確認してください。十分な色があります。または、より重要なもののために深紅色を保存する必要がある場合は、4色マップを使用できます。
  3. テキストとスプライトのレンダリング。入力検証もあるため、タイルメモリゲームは悪い考えではありません。
  4. タイマー。マリオクローンまたはアルカノイドの時間。
  5. 音と音楽。マリオのクローンを改善します。あまりない。

それらを取得したら、プラットフォームをターゲットにする準備が整い、学習を開始できます。

これらは特定の順序ではありません。必要に応じてそれらを再配置できます。それぞれにいくつかの例を示しますが、それらは規範的なものではありません。別のゲームで同じ経験が得られ、一連のレッスンに参加できるほど小さい場合は、気軽に交換してください。実際的な理由から、画面のレンダリングと入力に比較的早く習熟するのは良いことです。あなたはそれらをたくさん使うつもりです。抽象化クラスを作成する前に、いくつかのゲームを待ちます。あなた素朴な抽象化に捕まりたくありません。

  • アニメーション。アニメーションスプライトを呼び出すには、ほとんど何でもできます。プログラマーアートであっても、独立したアニメーションエンジンを手に入れましょう。タイルのドキドキで十分なシンプルなパズルゲームを作成します。
  • 複雑なスコアリング。翼に5人の敵をすべて連れて行きますか?ボーナス。3つのパンチを連続して着地しますか?ボーナス。弾丸を見逃すことなく、レベル全体を通過しますか?巨大なボーナス。
  • 経路探索。多くのゲームでこれが必要ですが、タワーディフェンスゲームは最も簡単です。これまでに一度も行ったことがない場合は、幅優先および深さ優先で始めることができますが、A *をゼロから(コピーされたコードではなく)一度実装するまでは完了しません。
  • 敵の行動。愚かな自動化された動作はマリオでカバーされますが、反応的な動作も重要です。これは、戦術ゲームやローグライクゲームを構築するための良い言い訳です。(警告:残りの人生はローグライクで作業します。)
  • ダイナミック2Dライティング。これは、ローグライクキャラクターを作成する正当な理由でもあります。アークベースのシャドウキャスティングは、バンディングと分離を確認するための重要な方法です。これは、多くのデータ構造にとって重要です。
  • 2D物理学。これは、非常に多くの詳細レベルで、非常に多くのゲームで発生します。プラットフォーマー(マリオっぽい)を試してみてください。同様に単純化できる戦車ゲーム(焦土)そして最終的には、N the Ninjaのようなゲームで、角度、運動量などでの実行に対応できます(軸に沿った境界ボックスの衝突システムを使用すると、非常に簡単に対応できます)。物理と衝突は非常に密接に関連しています。
  • 衝突検出。グリッドアルカノイドやマリオクローンなどのとてつもなくシンプルなケース、N the Ninjaのような中程度に複雑なケース、サンドボックス物理ゲーム(BreakQuestなどの最新のアルカノイドなど)のような本当に複雑なケースがあります。AABBのようなものですが、数学に興味がある場合は、実際に完全なものを実装することが役立つ場合があります。少なくとも、APEやBox2Dなどの完全なライブラリに精通してください。
  • ゲームプレイの満足度におけるリスク/報酬関係。シンプルなサイコロゲーム(50年代の「スカンク」と呼ばれるものを探し回る)とリスキーパス(ライフ、キャンディランド)ボードゲームは、これを行うことで簡単に簡単に習得できる優れた例です。
  • メカニズムの表現力豊かなバリエーション。少数のルールに身を任せてから、ルールから多くのバリエーションを引き出すことを学びます。カスタムデッキカードゲームは、これを扱うのに最適な方法です。ドヴォルザークのデッキ、Mille Bornes、Rage、Unoなどの実世界のゲームを見て、独自のゲームをいくつか作ってください。それらは似たものにはなりません。
  • 生成されたコンテンツ。シンプルなマップベースの戦略ゲーム、ローグライクゲーム、およびある種のパズルゲームは、これを行うための優れた方法です。コンテンツを生成したことで一般に知られていない種類のゲームである場合、ボーナスポイント。
  • スタイル。邪魔しないでください:これは大したことです。ゲームを作成してから、スキンを変更して、4つの完全に異なるゲームにします。 本当に違う。1つは子供向けのゲームです。(考えてみてください:メガマンは、地獄への魔術師の冒険として、またはX-メンからの悪党として、または...)今、あなたのゲームのそれぞれを獲得する4つのグループを取得します。その後、反時計回り、リングの周りなどで次のゲームを採点してもらいます。テーマと事前の期待に基づいて、スコアが大幅に変化することに注目してください。
  • プレイヤーにシーケンスを計画させる。パズルゲームは、これについて最もクリーンな方法の一種です。
  • 資源管理
  • アップグレード
  • 時間のプレッシャーを上げる

...ええ。私は飽きた。


11
素晴らしい答え。本当に残念な結末です。これを再検討し、何らかの形で結び付けて首尾一貫した結末を与えることができれば、素晴らしいことです。
リケット

1
最後に、肝臓の調理の手順はどうですか?giantitp.com/comics/oots0738.html
サイクロプス

4
これは、ゲームプログラミングに関する投稿として偽装された人生のレッスンです。
sdasdadas 14年

30

テトリス

非常に一般的なゲームです。立ち往生した場合、多くのオープンソースクローンがばらばらになります。2Dグラフィックス、入力処理、スコアリングなどの基礎を教えます。

次に、このオリジナルのアイデアを取り入れて、スピンします。大学のコンピューターグラフィックスクラス用にテトリスの3Dバージョンを書くことで、3Dグラフィックス/ openglの基本を学びました。


2
あなたがセガの男なら「コラム」;)
アンドリューラッセル

キューテトリステーマ音楽...
ニックベッドフォード

3
qntm.org/hatetris(テーマ音楽はありませんが、リンクしたかっただけです...)
user384918

1
@blootsすごい、それは悪です
ブライアンデニー


25

GameDev.netには、ゲーム開発について段階的に学習するために、ゲームの進行を推奨する優れた記事があります。リストからの私のお気に入りのアドバイスは、これらのゲームを実際に磨くことです。リリース可能な状態に完全に終了します。

リストは次のとおりです(これらの一部は他の回答で提供されています)。

  1. テトリス
  2. 起こる
  3. サイドスクローラー/プラットフォーマー

リンクした記事からパックマン、ガラガ、ガントレットを逃した
Adam Harte

15

私はすべての人をモノポリーで始めるのが好きです。私は通常、練習の基礎としてBrett SchuchertのMonopoly "code kata"を使用しますが、それに多くを追加します。これが本当に好きな理由はいくつかあります。

  1. 優れたコーディングプラクティス(設計パターン、TDD、SOLID、継続的インテグレーションなど)に深く関心があり、この演習を行う際に開発者に多くの制約を課します。

  2. ほぼ全員がモノポリーのルールを知っており、ゲーム全体を1日で完了することができます。これにより、新しい開発者はすぐに勝ち、エンゲージメントが上がります。

  3. 最初の要件はキーボードコントロールから始まりますが、後でマウスコントロールの要件を追加します。これにより、開発者はいくつかのこと、既存のコードのリファクタリング方法、具体的なクラスの代わりにインターフェースのシステムの変更部分のプログラミング、より良い/適切な抽象化、単体テストの対象、単体テストの対象外、なぜ単体テストの対象、良い単体テストになります。

より洗練されたAIをプラグインすることもあれば、プラグインしないこともあります。時には、CutesやLaddersなどのやや複雑なロジックを持つ他のボードゲームを使用します。ボードゲームを完全にやめて、ポーカーゲームやブラックジャックをすることもあります。

私にとって本当に重要な部分は、人々がすぐに勝つことであり、優れたプログラミング標準に従うと、ソフトウェアをどれだけ柔軟に作成できるかを理解することです。これらの演習は非常に迅速に自信を構築します。時々、より経験豊富な開発者は、より複雑なプロジェクトから休憩をとったり、学んだばかりの新しいテクニックを練習したりするために、自分でこれらを行うことを好みます(デメテルの法則?)。


6
モノポリーを1日でどのように実装しますか?それよりもはるかに大きなプロジェクトのようです。
マイケルクリストフィク

開発者向けのアートアセットを用意し、上記のリンク先のガイドに従えば、非常に簡単です。複数のAI戦略や、アニメーションや音楽のより複雑な側面は含まれていませんが、完全にプレイ可能なゲームであり、1日で簡単に実行できます。それは本当に実行可能であり、本当に楽しいです。
hokiecsgrad

#3は、すでに開始した後に要件を変更するクライアントの実世界の経験を提供します。
ジャレットミラード

悲しいことに、モノポリーリンクは死んでいます:(
ケーシー

ウェイバックマシンにはまだあります。 web.archive.org/web/20090919075257/http://...
hokiecsgrad

15

冒険を選ぶ

ゲームを作成してプログラミングを始めた友人からこのヒントを得ました。これは、冒険の本を選ぶのとよく似ています。基本的には、次のような出力を備えたシンプルなテキストアドベンチャーゲームです。

You are standing in a forest clearing in the middle of the night. You hear
some wolves howl in the distance. Should you:
a) make camp for the night
b) go further north
> _

そのようなゲームを作成することは、ゲームループ、基本的なコンソール入力、および基本的なスクリプト作成を教える必要があります。ゲームを書くのにグラフィックエンジンは必要ないので、実装するのは非常に簡単で、初心者が簡単に飛び込めます。上級者はおそらくスクリプトエンジンを作成するでしょう。


7
+1。ただし、プログラミングを学んでいる場合のみ。既にプログラミングを知っているなら、私はこれから始めません。
ジェフ

1
@ジェフ:はい、あなたが完全な初心者であれば、これは良いプロジェクトです。しばらくプログラミングを行った場合は、言及されている他のプロジェクトに進んで、グラフィックスなどを試してみてください。
スポイケ

8
実際、これはスクリプティングとデータ駆動型開発について学ぶための本当に良い方法です。このための「エンジン」を作成し、残りをスクリプトで記述します。
ニックベッドフォード

1
@Jeff nah、経験豊富なプログラマーであれば、2時間で完了します。だから、彼らはいくつかのアイテム、ドア、ボスの戦いを追加してください
bobobobo

13

初心者プログラマーでの私の経験では、進行は通常次のようになります:

  1. ポン
  2. テトリス
  3. 巨大で驚くほど素晴らしいゲームプレイ3D RPGの50時間(注:ほとんどの人はこのステップの途中でプログラミングを断念します)

4.ファンタジーMMORPG:P
ニックベッドフォード

12

ブレイクアウト、ピンポン、または小惑星。

ゲームゲームのプロトタイプには大きな違いがあります。夢のゲームを終わらせることに真剣に取り組んでいるなら、途中で「エントリーレベル」のゲームを終わらせる必要があります。ゲームのゲームプレイ部分の作成は、戦いの半分に過ぎません。メニューやハイスコアなどの余分なものはすべて見過ごされたり無視されたりすることがよくありますが、誰もが予想するよりもずっと時間がかかります。


4
詳細に言及するための+1は、予想以上に時間がかかります。
mpen

11

他の回答にはいくつかの良い提案がありますが、私は投票に投げ込みたいだけです。まず、扱いにくいと思われるものから始めてください。

卓球は良い例です。

目標は次のとおりです。ゲームデザインとルールセットを非常に頭がおかしくなり、学習している新しいこと(言語、プラットフォーム、API)を常に学習することに集中できます。ゲームの仕組みを理解するために休憩を取る。

あなたが始めたら、ピンポンは実際には最初の赤面よりもわずかに複雑であることがわかります。(私は男のプログラミングを教えており、彼は学習プロジェクトとしてpongを使用しています。いくつかの機能を追加しました。

app#1を他の人に提供/販売する準備ができるまで完了すると、それからもう少し複雑なもの(テトリス、冒険など)を引き受けますが、新しいテクノロジーの学習を始めるには、あなたが簡単に脳死をプログラムすること。

他の例:

  • 数を推測します(1〜1000)
  • 首謀者(高度な推測推測)
  • SimplePaint
  • ヘビ/ワーム/何でもいいです。

しかし、繰り返します-あまりにも簡単なものから始めて、実際に何かを完了し、振り返って何が関係しているのかを確認できるようにします。言語/プラットフォーム/ SDK /エンジンで1つのアプリを記述したことと、ZEROアプリを記述したことの違いは巨大です。1と2、または2と5の違いははるかに小さいので、より大きなステップを取ることができますが、0から1のステップは小さなものにします。あなたが思っているよりも大きくなります!


2
+1「対処するのはあまりにも可愛すぎると思われるものから」と「1つのアプリを書いたこととZEROアプリを書いたことの違いは
大きい

1
2014年の更新:別の優れた「言語/技術を学ぶ」アプリもFlappy Bird似ています。プロのプログラマーとして、それは午後の仕事(まあ、それを「素敵」にする週末)ですが、別のプログラムを教えている間に、実際には多くの小さな複雑さがあることを学びました。繰り返しになりますが、1つゼロよりもはるかに多くの経験があり、1つを手に入れると、どのように前進するかについてのより良いアイデアを得ることができます。
オリー14年

9

このWebサイトをチェックしてください:12コンピューターサイエンスゲームプロジェクトのアイデア

これらのゲームの中には、他の人が言ったことを含むものがあります。

  1. パックマン
  2. テトリス
  3. ポン

ただし、次のような他のゲームについても説明しています。

  1. ○×ゲーム
  2. 誰が億万長者になりたいですか?
  3. そしてマリオのクローン。

また、各ゲームに難易度を感じるため、最初にやるべきことの感覚を与えます(したがって、ゲームに取り組む方法の計画)。

  1. 初心者
  2. 中級
  3. 高度な
  4. ベスト

2
+1、そのリンクが大好きです。「RPG-あなたの人生が嫌いな人(そして明らかにそうな人もいます)、ビデオゲームプログラミングの栄光に対するこの明らかに最後の年の試みはひどく終了する可能性が高いです。など)と「努力の不信心な量を必要とする
サイクロプス

5

多くの人が次の機能を備えているため、ブレイクアウトから始めます。

  • 入力:パドルを前後に動かす
  • 単純衝突:パドル、レンガ、壁から跳ね返るボール
  • 「ゲームの状態」の変更:ボールがレンガに当たったときにスコアを更新し、レンガを削除し、ボールが画面の下部に当たったときにボールの数を減らし、ボールの数== 0のときにゲームに負けます。
  • また、すべて長方形と円であるため、グラフィックスへのかなり穏やかな入門書です。

5

ゲーム(またはソフトウェア)の作成で最も難しい部分は、何をすべきかを考え出すことです。 絶対にスペックが必要です! これは、既存のゲームのクローンを作成することの楽しい部分です。仕様はすでに存在します。あなたの仕様は「製品は他の製品が行うすべてのことをしなければならない」であり、他のゲームのコピーを手元に持っている場合、それを確認するのは非常に簡単です。

あなたがをする必要があるかを理解したら、あなたが有能なプログラマーであれば、それを行う方法を理解することは本当に難しくありません。私は、熟練したまたは経験豊富なプログラマーを意味しません。これは、あなたがしようとしていることの大部分を行う方法を既に知っていることを意味します。ただし、抽象化で考える方法を理解し、プログラミングの基本である問題解決能力と論理的思考力を身に付ける必要があります。それができれば、何でもできます。

そうは言っても、本当に簡単なものを書くことでゲームを書くことを学ぼうとすることについて、ほとんどの人が言うことに同意しません。報酬は、それに費やした努力に直接比例します。本当にシンプルなゲームを書くことでゲームを書くことを学んだ場合、最後にわかるのは本当にシンプルなゲームを書く方法だけです。

一方、あなたが圧倒的な何かで始めるなら、あなたはそれを決して終わらせないでしょう。だから、あなたが深刻な問題に対処できるようにする中程度に挑戦的なものから始めてください。2DコンソールスタイルのRPGまたは横スクロールプラットフォーマーを構築することは、実際のゲームプログラミングの概念を学ぶための非常に良い方法です。


5

それは本当にあなたの現在の能力に依存します。プログラミングに比較的慣れていない場合は、人々が提案した特定のゲームのいずれかを使用してください。それ以外の場合は、どの種類のゲームで経験を有効に活用できるかを検討する必要があります。

最初のゲームを始めたとき、ゲーム開発の経験はゼロでしたが、数年前からエンタープライズ/基幹業務アプリの開発を行っていました。私の最初のゲームプロジェクトはターンベースの戦略ゲームであり、アーキテクチャ的に言えば、エンタープライズアプリケーションとそれほど違いはありませんでした。クライアント/サーバーシステムを使用し、二重WCFサービスチャネルを介して通信が行われました。ほとんどのプレイヤーの操作は「注文」としてキューに入れられ、ターンの終わりにサーバーにディスパッチされました。ターン処理はすべてサーバーで行われ、その後、ゲームユニバースの更新が各クライアントに送信されました。

その最初のプロジェクトは、ゲーム開発への道を歩みながら、馴染みのある領域で私を始めました。プロジェクトが進化するにつれて、私はゲーム開発者のようになり、エンタープライズアプリの開発者のようにはならないことを学びました。最終結果はかなりうまく機能し、戦艦や三目並べよりも少し印象的でした:)。


4

ニブルスペースインベーダー

比較的単純なAI、グラフィックス、ゲームプレイ、コントロール、およびそれらを追加する場合を除き、効果音や音楽は必要ありません。MS-DOS用のQBasicでのプログラミング方法を学ぶときにこれら2つから始めました。素晴らしい最初のゲームです。パックマンは私のもう1つの選択肢です。


Nibblesについて聞いたことがありませんが、Space Invadersへの明確な賛成票です。
ジョッキング

3

ムーンランダースタイルのゲームは素晴らしいです(重力の影響を受けるロケット船がある場合、プレイヤーは方向と推力を制御し、推力を使用する場合は燃料が制限されます)。非常に単純な物理学を実装する経験を積むと、衝突システムは非常に原始的です。心配するAIはなく、最も重要なのはその楽しさと中毒性です:)


2
合意された、Thrust / Lunar Landerスタイルのゲームは初期の素晴らしいプロジェクトです。回転と速度/加速度を処理すると、サイン/コサインの謎が明らかになります(しばらくそれらを処理していない人にとって)。静的またはスクロールタイルマップを使用できます。また、非常に複雑な衝突応答を必要とせずに衝突検出を使用できます(何かに触れる->爆発する)。また、制御システムのチューニングについて考えるのにも適しています。スラスト、重力、回転速度のバランスを適切に
調整

@bluscrnは実に素晴らしいコメントです。人々に私のフラッシュ版をテストさせてプレイした後、私は人々がそれがどのように感じられるべきかについて異なる意見を持っていることに気付きました。これのいくつかは、ユーザーが経験した以前のゲームに起因していました。開発する前に特に考えたことはありませんでした。
アラン

2

Galagaのようなトップダウンスペースシューティングゲームは非常に簡単で、衝突検出を非常によく教えます!また、静止した敵のレベルから、武器がアップグレードしたり、敵が特殊なパターンで移動する複数のレベルまで、難易度が異なる場合があります。


1

エンティティシステム、敵AI、ピックアップ、タイルマップ、衝突検出、スコアリングなどが必要なため、ガントレットのようなものです。すべて揃っていますが、圧倒的な方法ではありません。


経験がほとんどまたはまったくない場合、特にプレイヤーと地面の間の摩擦などを考慮すると、敵のAIとタイルの任意のレイアウトによる衝突検出は圧倒的だと思います。これは良いことかもしれません。しかし、いくつかのゲームの後に挑戦
ショーンジェームス

同意しました。始めたばかりの人には少し圧倒されます。一度に多すぎるコンセプト。スコアリングと入力だけの何かから始めます。次に、衝突検出や敵など、1つまたは2つの新しいことを行うゲームを作成します。知っている概念に基づいて構築するが、そうでないものを紹介するゲームを選び続けてください。わからない場合は、試してはいけません。複雑にしないでおく。
user384918

正直に言って、ガントレットクローンでは「エントリーレベル」ゲームとしてカウントするにはあまりにも多くのことが行われていると思います。
PhillC

Gauntletのコーディングはテトリスよりも簡単だと思います。ブロックが互いに重なり合う方法、行が完全であるかどうか、行を削除する方法を見つけることは非常に難しい抽象的な問題だからです。ガントレットは、最新の2Dプラットフォームで1000行未満でコーディングできます。使用しているプラ​​ットフォームでできない場合は、別のものを見つけることをお勧めします。とにかく、現代のゲームを構成するすべての部分を学ぶ必要があるので、私はそれを正確に提案しました。
イアン

「エルフは食べ物を撃った!」「魔法使いは死ぬところだ!」または私のお気に入り:「あなたは私のTRAY-SURE ROOMを見つけました!」
rtperson

1

ミニゼルダのクローンは優れており、ここではあまり言及されていないいくつかのスキルを行使します。タイルの大きなマップをスクロールすることと、簡単な8方向の移動コントロールを知っておくと便利です。敵にできるならボーナスポイントですが、それについてはあまり心配しません。


1

いくつかのテトリスクローンを作成しました。私はそれをするたびに、私はそれをわずかに異なってやった。最近では、私は通常、ある種の小惑星のクローンを作ります。また、ミサイルコマンドのスピンオフもいくつか行っています。

私は基本的なゲームプレイから始めましたが、それよりも多くのもの、パワーアップなどを追加することに移りました。


1

私はいつも戦車/ゴリラ/ワームのゲームから始めていました。シンプルなグラフィック表示とユーザー入力の読み取りに加えて、発射物に重力を適用して衝突検出のテストを行うゲームループを実行できます。

その後、非常に単純なプラットフォーマーやシューティングゲームのようなゲームが登場します。ゴリラで機能するINPUTステートメントではなく、リアルタイムでユーザー入力を読み取る必要があります。


1

ソリティア(または実際にあらゆるカードゲーム)は、新しいUIシステムで手を汚すのに適したゲームです。使用する必要がある多くのウィジェットとコントローラーの対話フィードバックメカニズムを実行するからです。さらに、そのロジックは単純明快で明確なので、ゲームデザインではなく学習に集中できます。

リアルタイムシミュレーションゲームの場合、Pongを常にシンプルで良い開始点としてお勧めします。これも、設計がシンプルでコントローラーインターフェースであるため、システムの本質である物理シミュレーションに到達できるためです。


1

もしあなたがゲームプログラマーなら、何らかの形でスペースインベーダーを作れるはずだといつも言い続けてきました。ちなみに、ゲームはあなた自身でグラフィックスを行うこともできるほど単純です。

たとえば、新しいプログラミング言語またはフレームワークを学習している場合、ポートフォリオ内の小さなゲームを選択すると、新しいプログラミング言語やフレームワークを学習している場合、新しい方法がどのように使用されるかを確認できます。物事を行うことは、オリジナルが書かれた方法と一致します。


1

それはあなたが既に持っている通常のプログラマーとしてのスキルに本当に依存します。あなたの数学は仕事が必要ですか?グラフィックの知識はありますか?ラップの下に両方ありますか?

一般的には、テトリスとブレイクアウトも私の2つのスターターになると思います。それより簡単なものは十分な刺激を提供しません。テトリスは、データをアルゴリズムにレイアウトする方法の良いテストであり、ブレイクアウトは軽い数学の例です。私は常に人々に高い目標を向けるように言います。目標は行き詰まり、解決策を考え出すことです。

その後、空は限界です。繰り返しますが、高く目指してください。傾斜地、parralaxを備えたプラットフォーマーを試してみると、2d techの便利なバッグが手に入ります。ピンボールを追加して(イライラする準備をしてください)、数学が改善されます。

そこから3番目の次元に進み、コアスキル(アニメーション、レンダリング)を学びます。さまざまなゲームに対処するための比較的十分な準備が必要です。


0

タワーディフェンスのようなゲームは、最初から始めるのに最適な場所だと思います。また、既存のゲーム/エンジン(WarCraft III / HalfLife2 SDK /など)を改造して、必要な全体的なロジックを理解してから、独自のコードベースの使用に進むこともできます。


0

私の最初のゲームはスーパーマリオのようなものでした。

動き回り、障害物を避け、ジャンプします。そして、これらのタスクはすべて、物理計算なしで簡単に実行できます。

特定の実装/フレームワーク/エンジンにあまり依存しないため、単純な2Dのものを使用することが理想的です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.