今日は、C言語を使ってコンソールアプリを作ってました。あえて、C言語・・・。

で、こんなゲームを作ったんだ

 

僕は、現実世界でも役に立つ学習が期待できるゲームが好きでね、

最近はそれもあって「Illust Chainer」というオンラインで絵しりとりができるゲームにはまっていたりします。やればやるほど絵が上手くなるからね。

そういうゲームって、「やめなきゃ」っていう気にならないんですよ。ただ時間を浪費するだけのゲームだと、「あぁ、何してるんだ俺」ってなっちゃうんだけど。

で、これも暗算の練習になるので、暇つぶしには遊べそうなものができたなーって自画自賛してたりします。

 

 

 

それはさておいて、

UnityやRPGツクールのようなツールを使わないでちゃんとゲームを作ったのはこれが最初ですね。

で、本題というか、今日は別に大した記事でもないのですが、

このゲームを作ってみて気づいたこと、苦労したことをこの下に書き残していきます。


・いわゆるゲームループ(?)の部分を自作する必要があった。「入力→ゲーム処理→描画→待つ→・・・」みたいなやつです。
・60fpsにしたいなら、1フレーム約0.016秒。
・乱数のシードを自分で設定しないと毎回同じ結果になってしまう。今回は「システム起動開始からの経過時間」を使ったけど、今の時刻を使うとか、他にもやりようはあるみたい。
・効果音はビープ音でなんとかした。ビープ音を鳴らすための「Beep関数」というのがあるんですが、そこで周波数を指定する必要があるので、その辺を調べる必要があった。例えば、440Hzは「ファ」の音だとか。

・コンソールアプリ(コマンドプロンプトで動く文字だけのアプリ)で、リアルタイムで動くゲームを作るのは無理があるみたい。

 というのも、毎フレーム「system("cls");」という命令を与えてコンソール画面の文字を全て消してるんですが、それってかなり重い処理みたいです。そもそも、コマンドプロンプトってそういうものじゃないですし、当然ですよね。

 

補足:このサイトを見てる限りでは、コンソールアプリでリアルタイムのゲームを作るのは無理じゃなさそうですね。

http://vivi.dyndns.org/tech/cpp/console.html

 

 

とにかく、ゲームループの自作はいい経験でした。

Unityが裏でどのように動いてるのかが、よりイメージできるようになった気がします。

 

それではノシ