4

言語Cを使用して、マリオのような簡単なゲームを最初から作成したいと思います。しかし、正直なところ、その方法がわかりません。また、無料のこのための優れたチュートリアルを見つけることができません。

しかし、実際の質問に対して、私はこれまでWinAPIプログラムのみを作成したので、すべてのイベント処理とユーザー入力は最小限の作業でOSによって処理されました。しかし、ゲームを開発するには、たとえば、非長方形のボタンやアニメーションなどのメニューを使用します。 、私は推測しますが、WinAPIには、いくつかの基本的なルーチンのマウスポインタの位置とキーを押す以外に、これを支援できるものはありません。

それで、プレイヤー、敵、さらには自分自身の背景のオブジェクトを操作することによって、ゲームエンジンの描画部分全体を書き込むためにゲームを作成する正しい方法はありますか?画面への出力にdirectdrawを使用するだけではありませんか?

編集:私は実際にゲームを最初から作成する方法を学びたいと思っています。なぜなら、それは素晴らしいプログラミング経験でなければならないからです。DOSでコマンダーキーンのようなゲームを検討する場合、フレームワークやライブラリなしで作成されますが、それでも素晴らしいです。

4

10 に答える 10

9

これに対する良いアプローチは、SDLライブラリを調べることです。必ずしも2Dゲームに最適なライブラリだとは言えませんが、簡単に使い始めることができ、SDLを使用して作成された簡単な自作2DゲームのチュートリアルやオープンソースコードのサンプルがWebに溢れています。

于 2010-06-29T20:21:58.957 に答える
4

私もSDLをお勧めしますが、lazyfooチュートリアルをぜひご覧ください。これはすばらしいことです。

于 2010-06-29T21:32:05.060 に答える
2

私もSDLを使用しましたが、HGEを見てみてください。アプリケーションはWindowsでのみ動作するため、少なくともDirectX 8.0が必要ですが、そのフォーラムには、OpenGLに移植する方法に関する多くのトピックがあります。私の意見では、SDLは低レベルのライブラリであり、多くのことを自分で処理する方法を学ぶ必要があるため、HGEはSDLよりも習得しやすいでしょう。HGEは、箱から出してすぐに開始する準備ができています。

于 2010-07-04T10:37:13.080 に答える
2

プログラミングを始めたとき、古き良きDOSの時代にAllegroでプログラミングを始めました。これは、SVGAライブラリで動作し、優れたスプライトサポートを備えた最初の使用可能なライブラリでした。その後、バージョン3が登場し、Windowsのサポートが追加されました(GDIとDirecty Xを使用して、実行時に使用するエンジンを選択できます)。Linuxの移植が実現し、すべてが順調です。

これは非常に基本的な2Dライブラリであり、グラフィックスとアニメーションの非常に基本的なことを教えてくれます。今では非常に必要な追加であるオーディオサポートも含まれています(まあ、私はまだV 2.9Xを覚えています...)。それらはバージョン5のベータ版であり、これはあなたが調査するのに興味深いプロジェクトだと思います。

http://www.talula.demon.co.uk/allegro/

于 2010-07-04T10:59:32.027 に答える
1

WinAPIには低レベルの描画ルーチンがあります。

SDLのような確立されたライブラリを使用することはおそらくより良い考えですが、WinAPI描画ルーチンへの独自の抽象化をそれほど困難なく作成することができます。

次に、すべての描画命令と解釈入力を含むwhileループを作成するだけです。2Dゲームの場合、これはそれほど難しくありません。

于 2010-06-29T21:40:24.990 に答える
0

この1つのゲーム開発者をチェックしてください

彼らは本当にゲームプログラミングに関連する大きなリソースとたくさんの初心者のものを持っています。SDLは優れていますが、コーディングを開始する前、さらには使用するapi / libについて考える前に、基本的なゲームテクニックを学ぶことを検討する必要があります。

必要な「インテリジェンス」(Ki)を明確にし、ロード/保存を早期に検討します。プロジェクトを終了する場合は、覚えておく必要のあることがたくさんあります。ゲームエディタが必要ですか?(また..仕事)音/グラフィックはどうですか?これらすべてを自分で書くには、かなりの時間がかかります(経験がない場合)。コンテンツの作成は、作成したとしても多くの時間を費やす可能性のあるもう1つの大きな問題です。

たぶんそれはあなたが彼らのエンジンがどのように機能するかについての考えをあなたに与えるので、あなたが何人かの開発者の子供たちを見るのを助けるでしょう。このように(時代遅れの)Dev kid

于 2010-07-04T10:51:20.090 に答える
0

要するに、そうです-WinAPIにはあなたに大いに役立つものは何もありません。ただし、ゲームを構築できるゲームエンジンは数十あり、ゲーム自体の作成に多大な労力を費やすことになります。グーグルのビットはあなたを助けます。

(個人的な推奨事項:技術的には3Dエンジンですが、 Unityのようなものは2Dゲームを作成するためのチュートリアルを含む優れたエンジンです。UnityはCではありませんがあなたの生活をずっと楽にしてくれます...)

于 2010-06-29T20:21:21.323 に答える
0

編集:私は実際にゲームを最初から作成する方法を学びたいと思っています。なぜなら、それは素晴らしいプログラミング経験でなければならないからです。DOSでコマンダーキーンのようなゲームを検討する場合、フレームワークやライブラリなしで作成されますが、それでも素晴らしいです。

これは実際には完全に正しくありません。コマンダーキーン(およびすべてのDOSゲーム)はライブラリを使用します:DOS、BIOSなどによって提供されるライブラリ。何らかの形式のライブラリがないと、Cで役立つことは何もできません。ゲームプログラミングの場合、実際に使用します。すべての低レベルの詳細を他の誰かに任せたい。

最初のゲームプログラミングライブラリとしてAllegroをお勧めします。

于 2010-06-29T21:29:01.523 に答える
0

数日前に同様のプロジェクトを開始しました。GitHubで確認できます。
それはあなたにゲームがどのように構成されているかについてのいくつかのアイデアを与えるはずです。また、衝突を伴うスクロール2Dマップの詳細(100%バグをなくしたい場合は非常に複雑になります)。ああ、そしてここで多くの人がすでに示唆しているように、それはSDLを使用しています。

私にとって、これは私の最初のCプロジェクトです。しかし、私は以前にJavaとPythonで同様のことをしたことがあることを認めなければならないので、これは私がCをすばやく学ぶための良い方法でした。これにより、タスクはさらに「面白く」なります。

しかし、ゲームに戻ると、コーディングを開始する前にデザインについて考え、紙に書き留める必要があります。または、私のようで、手の届くところに木のようなものがない場合は、擬似コードで書きます。

可能な限り多くのゲームの状態について考えてください。以前は機能XYZについて考えていなかったという理由だけで、プレーヤー全体/マップ/その他のものを最初から再実装する必要があることほど悪いことはありません。

デザインは非常に重要です。最初から目標がない場合、プロジェクトは失敗するポイントに到達します。私のタフと同じように、音楽が不足していることや、敵をデザインした人が原因で失敗したこともあります。 。

グラフィックなどについて言えば、ゲームは単なるコード以上のもので構成されることを覚えておいてください。グラフィックが苦手な場合は、デザイン時にそれを考慮に入れてください。画面上のものが色付きの長方形だけだと、すぐにモチベーションが失われるからです。

于 2010-07-04T11:23:37.977 に答える
0

アクションアーケードアドベンチャーセット(元々は本として出版された)は、おそらく2D横スクロールゲームの書き方に関する最も完全なチュートリアルの1つです。古いリファレンスですが、2Dサイドスクローラーを開発するための多くの基本事項は変更されていません。

完全なソースコードの例とサイドスクローラーを開発するためのいくつかのツールがダウンロードとして提供されています。グラフィックプリミティブの処理に使用される外部ライブラリは1つだけです。これは古いDOSプログラムであるため、DOSBoxなどのDOSエミュレータを使用するか、より新しい環境用に例を変更する必要がある場合があります。

第1章から第9章をざっと読み、第10章から第17章に焦点を当てることをお勧めします。

于 2010-07-10T15:44:46.927 に答える