質問

言語Cを使用して、シンプルなマリオのようなゲームをゼロから書きたいと思いますが、正直なところ、どうすればいいのかわかりません。これは無料の良いチュートリアルを見つけることができません。

しかし、実際の質問として、私はこれまでWinapiプログラムしか書いていないため、すべてのイベント処理とユーザー入力はOSによって最小限の作業で処理されましたが、たとえば非長方形のボタン、アニメーションなどのメニューを使用してゲームを開発するために、私は、Winapi Tahtには、単なる基本的なルーチンであるマウスポインターの場所とキープレス以上のものを私に助けることができるようなことはないと思います。

それで、プレイヤー、敵、さらには自分自身の背景のオブジェクトを操作して、出力にDirectDrawを使用してスクリーニングするだけでなく、ゲームエンジンのドロー部分を書くためにゲームを書く正しい方法ですか?

編集:私は実際にゲームをゼロから書く方法を学びたいと思っています。それは優れたプログラミングエクスペリエンスでなければならないからです。また、DOSにKeen Keenのようなゲームを考慮して、フレームワークやライブラリなしで作成されたが、それでも素晴らしいことです。

役に立ちましたか?

解決

これに対する良いアプローチは、SDLライブラリを見ることです。私はそれが必ずしも2Dゲームに最適なライブラリだと言っているわけではありませんが、それは簡単に始めることができ、WebにはSDLを使用して書かれた単純なHomeBrew 2Dゲームのチュートリアルとオープンソースコードサンプルがあふれています。

他のヒント

私もSDLを推奨していますが、あなたは間違いなく見てください lazyfoo チュートリアル、これは素晴らしいです。

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

私がプログラミングを始めたとき、私は古き良きDOSの時代に、Allegroでそれを始めました。 SVGAライブラリで働いた最初の使用可能なライブラリであり、優れたスプライトサポートがありました。その後、Version3が来て、Windowsのサポートを追加しました(GDIとDirecty Xを使用して、実行時に使用するエンジンを選択できます)。 Linuxポートが実現し、すべてが良いです。

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

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

君たちは何について話しているのか、ウィナピには低レベルの描画ルーチンがあります。

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

次に、すべての描画指示を備えたWhileループを作成し、入力を解釈するだけの問題です。 2Dゲームでは、これはそれほど難しくありません。

要するに、はい - ウィナピにはあなたを大いに助けるものは何もありません。ただし、ゲーム自体を作成することで大量のうなり声をかけることができるゲームエンジンが数十個あります。少しグーグルで役立ちます。

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

編集:私は実際にゲームをゼロから書く方法を学びたいと思っています。それは優れたプログラミングエクスペリエンスでなければならないからです。また、DOSにKeen Keenのようなゲームを考慮して、フレームワークやライブラリなしで作成されたが、それでも素晴らしいことです。

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

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

これをチェックしてください ゲーム開発の開始

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

必要な「インテリジェンス」(ki)の量をクリアします。早期時間の読み込み/保存を検討してください。プロジェクトを完了したい場合は、覚えておく必要があります。ゲームエディターが必要ですか? (また、仕事)サウンド/グラフィックスはどうですか?これらすべてのものを自分で書くには多くの時間がかかります(経験がない場合)。コンテンツを作成することは、あなたがそれを成し遂げるならば、多くの時間を消費することができるもう1つの大きな問題です。

たぶん、それはあなたがいくつかの開発者を見るのに役立つでしょう。このように(時代遅れ) 開発の子供

私は数日前に同様のプロジェクトを始めたばかりです、あなたはそれをでチェックすることができます github.
ゲームがどのように構成されているかについてのアイデアを提供するはずです。衝突付きのスクロール2Dマップの詳細(100%バグを無料で取得したい場合は非常に複雑であることが判明しました)。ああ、ここで多くの人がすでに提案しているように、それはSDLを使用しています。

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

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

できるだけ多くのゲームの状態について考えてみてください。これまでにXYZについて考えていなかったからといって、プレイヤー/マップ/どんなものもゼロから再実装することほど悪いことはありません。

デザインは非常に重要です。もしあなたが最初に目標を持っていなければ、あなたのプロジェクトは私のようにそれが失敗するポイントに到達します タフ また、音楽がなくなったため、敵などをデザインした人のために失敗しました。

グラフィックなどといえば、ゲームは単なるコード以上のもので構成されることに留意してください。グラフィックスが良くない場合は、設計中にそれを考慮してください。画面上の唯一のものが長方形の色である場合、すぐに動機を失うからです。

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

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

スキム第1章から第9章をスキムし、第10章から17章に焦点を当てることをお勧めします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top