記事一覧


はじめまして

投稿日:2024-03-19

最終更新日:2024-03-24

はじめまして
はじめまして、ムムノアと申します。この記事では、私自身や当ブログについて紹介します。
自己紹介
趣味でプログラミングをやっていて、特にゲームプログラミングに興味があります。大部分が独学でして、躓いては調べて何とか解決するということを繰り返しています。当ブログでは、そんな私が勉強したことをまとめ直して記事にしようと思っています。なのでゲームプログラミング関連の記事が多くなると思います。本当は公開するつもりが全く無かったのですが、周りの人から「発信してみては?」と言われたのでブログを作ることにしました。ゲーム制作については2Dのミニゲームをいくつか作ったことがあるくらいです。これらのミニゲームは諸事情により、あまり見ている人は多くないでしょうが不特定多数に晒したことがあるため、こちらでは紹介しません。
更新頻度について

【C++で3Dゲーム】1.序文

投稿日:2024-03-20

最終更新日:2024-03-24

【C++で3Dゲーム】1.序文
【C++で3Dゲーム】シリーズの目標や形式について説明します。
本シリーズの目標
本シリーズの目標はC++で3Dゲームを作るための本(後述)が理解できるようになることです。注釈書のような立ち位置を想定しています。
C++を始めた動機と本シリーズ立ち上げの経緯
3Dゲームを作りたいだけならUnreal EngineやUnityなどのゲームエンジンを使ってあまりコーディングを意識しないで作ることは可能です。しかし、私はこれらのゲームエンジンがなぜ3Dゲームを作れるのか、ひいては3Dゲームがどのように作られているのかということが気になりました。Unreal Engineについて調べるとC++という言語を使って作られているそうなので、C++で3Dゲームを作れるのだろうと考えて、C++でのゲームプログラミングについて調べたのですが、あまりその類の情報は出てきませんでした。私が見つけられた書籍は「ゲームプログラミング C++」(2018, Sanjay Madhav 著, 吉川 邦夫 訳, 今給黎 隆 監修)の一冊のみでした。(以下、この書籍を参考書籍と呼びます)

【C++で3Dゲーム】2.Visual StudioでSDLを使う方法

投稿日:2024-03-22

最終更新日:2024-03-24

【C++で3Dゲーム】2.Visual StudioでSDLを使う方法
唐突にSDLなるものを使うとだけ言われ、インストールできたものとして話を進められた経験はないでしょうか?本記事では、前半でVisual StudioでのSDLの使い方、後半でどうしてそのようなことをするのかを説明していきます。
はじめに
この記事は「ゲームプログラミング C++」(2018, Sanjay Madhav 著, 吉川 邦夫 訳, 今給黎 隆 監修)のChapter1に関連します。
方法
SDLの公式サイトから「SDL2-devel-2.24.0-VC.zip」というようなフォルダをダウンロードしてきます。バージョンによって「2.24.0」の部分が異なるかもしれません。その場合は以下の操作でも文字列を置き換えてください。zipファイルを解凍して、その中に「SDL2-2.24.0」というフォルダがあることを確認してください。「SDL2-2.24.0」フォルダをCドライブ直下に置きます。Visual Studioを起動し、適当に新規プロジェクトを作成します。画面上部の「プロジェクト」→「(プロジェクト名)のプロパティ」をクリックします。

【C++で3Dゲーム】3.コンストラクタの後ろのコロン(初期化)

投稿日:2024-03-27

最終更新日:2024-03-30

【C++で3Dゲーム】3.コンストラクタの後ろのコロン(初期化)
本記事では、コンストラクタの後ろについた謎のコロンについて解説します。また、初心者がクラスのデータメンバ(メンバ変数)を初期化する時に書きがちなコードとの差も2つ紹介します。
はじめに
まずは以下のソースコードをご覧ください。引数なしのコンストラクタを定義しているのかと思いきや、1行目の後ろに「:num(5), fl(2.0f)」というよくわからないものが付いています。私は最初に見た時に「放っておいても動くけど、ナニコレ?」ってなりました。また、タイトルからは反れますが、「2.0f」についても最後に補足があります。ひとまず2だと思ってください。この記事は「ゲームプログラミング C++」(2018, Sanjay Madhav 著, 吉川 邦夫 訳, 今給黎 隆 監修)のChapter1に関連します。
本日使うソースコード
example.cppの実行結果は次のようになります。