Cのみでのゲーム開発。出来ますか?[閉まっている]


18

私はインドの1年生で、この学期のプロジェクトとして小さなゲームを作りたいと思っています。

私はCが得意で、すぐに習得できますが、完全にC(C ++またはC#なし)でゲームを開発するかどうかを尋ねたいと思いましたが、大学のプロジェクトではCのみを使用するという厳しい要件があります。

私が探しているのは、シンプルなトップビュードライビングゲームです。派手なものは何もありませんし、視覚的なものでさえ単純なキャラクターによって動かされます。たとえば、ユーザーが制御する車はbyで表され、道路の端は一連の|で表されます。どう思いますか?



8
SDLはCで記述されています。OpenGLはCです。さらに必要なものは何ですか?
共産主義のダック

2
また、地震は全てCで行われている
ダック共産

あなた自身に感謝し
o0 '。

1
RollerCoaster Tycoonはほとんど純粋なアセンブリで行われましたが、なぜですか?
ラモンザラスアB.

回答:


23

Cでゲームを書くことが可能です。たとえば、Quake IIは純粋にCで記述されているため、Cで他のゲームを記述しても問題はありません。C ++よりもCに習熟していて快適な場合は、より良い選択かもしれません。


2
@Ishan Sharma:実際、多くのゲーム(エンジン)開発はまだCで行われているか、少なくともC:ish C ++で行われています。C ++だからといって、C ++のゲームが良くなる(またはより良く書かれた)とは何も言えません。
無効

6
@void:問題のプログラマーがC ++を効果的に使用する方法を知らない場合にのみ、それは真実です。ライターがオブジェクト指向の基本的な理解を持っているところで書かれたC ++プログラムは、同等のCプログラムよりもはるかに安全で信頼性があります。
-DeadMG

8
@DeadMG [要出典]
ボブ・サマーズ

6
@Bob Somers:簡単。と比較std::stringしてくださいchar*std::stringどんな状況でも常に自身のメモリをクリーンアップし、毎回適切な量を割り当てます。char*、解放を忘れたり、二重に解放したり、十分なメモリを割り当てなかったりする場合があります。おっと。基本的なロジックでは、C ++プログラム Cプログラムよりも安全性高いとされています。
-DeadMG

12
@DeadMG優れたプログラマーは、あらゆる言語で優れた安全なコードを書くことができます。逆に、悪いプログラマーは、どの言語でもひどい、安全でないコードを書くことができます。貧しい大工は彼の道具を非難します。
ボブ・ソマーズ

11

私は純粋なCであるAAA MMORPGコードベースで作業しているので、そうです。


5
私はそれがCrypticにあなたを置くと思います。あらゆる種類のスクリプト言語を使用していますか?
ダン・オルソン

3
デザイナーが基本的にすべてに使用する内部式言語があり、いくつかのもの(オフライン処理、ゲームDBSでの統計のためのmap-reduce)にPythonとLuaの混合を使用していますが、ゲーム自体にはReal Scripting Languageはありません。
-coderanger

6

はい、それは完全に可能です。POSIXやWindows、DirectX、OpenGLなどの多くのOSレベルのAPIには、すべてC互換のインターフェイスがあります。


6

Fabien SanglardはCでの彼の3dエンジンに関する記事を書いています。redditで、この記事は興味深い議論を生み出しました。

言語は単なるツールです...だから、それらを賢く使用してください。優れたゲームを作成するには、XNAまたはUnity3Dを使用するほうが簡単です。Cをマスターすることは良い最初のステップですが、C ++、D、python、luaを学ぶ必要があります。C++は非常に難しい言語です。慎重に使用してください。


3

Cはゲーム開発に最適です。

私は3Dプラットフォーマーに取り組んでおり、言語に問題はありませんでした。唯一の問題は衝突の検出とシェーディングであり、それらについては何も知りません。それらは他の言語でも発生します。

実際、C#やJavaなどの言語よりもはるかに簡単です。私は常にポインタ(使用してエンティティに反復私のコードの例を)、およびfreadマップのローダーを作り、多くの時間を保存しました。

オブジェクト指向とモジュール性が必要な場合、関数ポインターの構造を作成できます。


1

間違いなく。ゲーム開発に役立つ多くのライブラリ(SDL、PhysFSなど)にはC APIがあり、これは非常に役立ちます。

拡張可能な高レベルのプログラミングを行う場合は、luaなどのスクリプト言語の埋め込みを検討してください。多くの人々は、AI、イベントなどのようなものにluaを使用するCフレームワークのプログラミングに魅力を感じ始めています...

幸運を。


1

この質問に対する簡単な答えは、次のとおりです。すべてのプログラミング言語で、このようなシンプルなテキストベースのゲームを実行できます。パスカル、ベーシック、またはx86アセンブラーでも:]

(そして、他に何も必要ありません)


0

はい、可能ですが、それは最も望ましい行動ではないかもしれません。多くの人々は最近、CとC ++の両方が多くのタスクに理想的ではなく、高レベルのゲームロジックがそのカテゴリに分類されることを認識しています。

C ++の代わりにCを主張する場合(私には意味がありませんが、それぞれに意味があります)、Cと組み合わせてLuaを使用することをお勧めします。

Cを必要とする大学のプロジェクトではこれは選択肢になりませんが、空き時間のプロジェクトでは学習するのに良い方法です。


Luaは開発時には優れていますが、リリース前にすべてをネイティブ言語に移植してパフォーマンスを向上させる必要があります。
Triang3l

@ Triang3l私はまったく同意しません。あなたが説明するのは時期尚早な最適化です。ネイティブ言語を使用しても、コードが高速になることは保証されません。これを行う正しい方法は、コードをプロファイルし、ボトルネックを見つけてそのコードを改善することです。開発者がJavaコードを置き換えるために独自のCコードを記述しようとしてCコードが大幅に遅くなった例や、開発者がCコードを大幅に遅いAssemblyコードで置き換えようとした例がたくさんあります。高レベル言語の開発者とそのランタイム環境を過小評価しないでください。
user1657170

0

もちろんできます。多くのゲームがCでプログラムされています(DOOMが思い浮かびます)。SDLは、Cで記述されたゲームプログラミングライブラリです。

もちろん、大きなプロジェクトでC ++を使用するよりも少し難しいかもしれませんが、可能です。


0

完全なcゲームを作ることは可能だと思います。ターボcコンパイラーを使用して、2学期プロジェクトでゲームを作成しました(これはnokia 1110 mobileの「スペースインパクト」に似ています)。他の人を知らなくても、この方法で(1年生のように)試すことができると思います。

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