Gaming Life

一日24時間、ゲームは10時間

2020-01-01から1年間の記事一覧

windowsのリモートデスクトップで複数画面を使う&画面上部の接続バーを消す方法

本記事はai_9684_dctソロ Advent Calendar 2020 10日目の記事です。 「Windowsリモートデスクトップ接続」に関する機能の紹介。 コロナ禍の中、4月の入社以来、数回の出社を除いてリモートワークが続いている。弊社の場合、自宅にある会社から貸与されたPCか…

WindowsのC++でウィンドウアプリケーションを書く際にWinMain()を隠匿する方法の一例

序文 OpenSiv3Dなど、ユーザーが使いやすいように考えて作られたC++製Windowsアプリケーション開発用フレームワークは、複雑なシグネチャを持つ WinMain() を隠してくれる。 # include <Siv3D.hpp> // WinMain()を書く必要がない // int WINAPI WinMain(HINSTANCE hInst</siv3d.hpp>…

PIXでシェーダデバッグする際はwindowsの開発者モードを有効にしなければならない

この記事は、ai_9684_dctソロ Advent Calendar 2020 7日目 の記事です。 PIX on Windowsとは PIXとは、Microsoftが開発したDirectX12製ゲームのパフォーマンス測定及びシェーダデバッグのための、プロファイラである。DirectX12を使った開発をする際は、ぜひ…

UE4のコンソール変数の命名規則とsgコマンドの役割

この記事は、ai_9684_dctソロ Advent Calendar 2020 5日目 の記事です。 UE4には r.ScreenPercentage や、 r.Streaming.PoolSize だったり、多くの便利なコンソール変数が用意されている。こういったコンソール変数には、命名規則がある。 ConsoleManager.cp…

Pythonのデコレータ(風)をC++で実装してみる

本記事はai_9684_dctソロ Advent Calendar 2020 3日目の記事です。 Pythonには「デコレータ」という、関数に追加の機能を修飾するシンタックスシュガーが存在する。 def decorator_sample(func): def wrapper(*args, **kwargs): print(f'Arguments: {args}')…

私的ゲーム開発技術情報集め ver. 2020年12月

本記事はai_9684_dctソロ Advent Calendar 2020 1日目の記事です。 まだ大学生だった1年前、下記の記事のような、私流の技術情報収集の手段をまとめた記事を書いた。今年、ゲームエンジニアとして就職して以降、当時の情報収集手段とは少し変わってきたので…

VS 16.7以前では一時オブジェクトのアドレスを&演算子で取得してもエラーが出なかったらしい

C++

Visual Studio 2019のバージョンを16.8に上げてから、DirectX12のコードをビルドしてみたら、これまでコンパイルできていたものができなくなっていた。そのコードがこれ。 hr = m_device->CreateCommittedResource( &CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYP…

UE4でNVIDIA NSight Graphicsを使ったGPUプロファイリングをしてみる

UE4

本記事は、「Online Game-Tech LT 2020」のLT発表の補足資料として用意しました。登壇一日前で時間がない中で本記事を執筆しているため、必要最低限の説明だけにとどまっていることをご容赦ください。時間があればそのうち修正します。 connpass.com NVIDIA …

【C++20】constメンバ関数の実装を要求するconcept

C++

C++20から導入されるコンセプトは、requires節を使用して、型に対してあるメンバ関数の実装を要求することが出来る。 そのメンバ関数に対して、const関数であることを要求できないかと考え、実装してみた。 #include <type_traits> template <typename T> concept Drawable = requires</typename></type_traits>…

Visual Studioのコードスニペットのshortcut名にはハイフンは使えない

Visual Studioのコードスニペットを自作していたら、表題の件にハマったのでメモがてら共有。 qiita.com 上記の記事で紹介されている Visual Studio Snippet Generatorで、スニペットを作ったのだが、Shortcutにハイフン(-)を入れると、コードスニペットが…

WPF勉強中(1)最初に参考にした資料とか疑問点とか

前回の記事以来、時間を見つけてはWPFの学習を進めている。しかし、ただ黙々と一人学習していてもモチベが続かないので、定期的にブログで進捗や参考にしている資料、疑問点を文章化していこうと思う。 参考にしている資料 WPF 入門 » WPF 学習用ドキュメン…

DirectX12の魔導書を読んだ

『DirectX12の魔導書』を大体読み終わったので感想。 DirectX 12の魔導書 3Dレンダリングの基礎からMMDモデルを踊らせるまで作者:川野 竜一発売日: 2020/02/13メディア: Kindle版 自分はDirectXやOpenGLなどのグラフィックスAPIをほぼ触ったことがなかったの…

GUIフレームワーク探しの旅の果てにWPFにチャレンジしている

GUIフレームワークを探して三千里 数年前から使い勝手の良いGUIツール作成用のフレームワークを探している。 今自分は、ゲームを作るならUE4かOpenSiv3D(それとUnity)を使い、CLIツールや少し込み入ったスクリプトの実装にはPythonを使っている。たまにPro…

Visual Studio 2019でプロジェクトを複製して別名をつける方法

DirectXの入門本を進めている際、Visual Studio 2019において、いま作っているプロジェクトをコピーして、それに別名をつけた上でソリューションに追加したくなったのでそのメモ。 ようはこういう事↓。 手順 エクスプローラーを開き、コピーしたいプロジェク…

C++のRange-based for文(範囲for文)で逆順に走査するイテレータを自作した

C++

モチベーション Pythonのfor文は、C++でいうところのRange-based for文、C#で言うところのforeachと同等の動作をする。つまり、 for (int i = 0; i < 10; i++) {} のようなforが存在しない。 Pythonのfor文において、iterable objectをenumerate メソッドに…

Visual Studio 2019でCatchを使ったC++単体テストを実現する

C++

Cppmap で紹介されていたC++用単体テストフレームワークであるCatchをVisual Studio 2019で使ってみたので、その導入に関するメモ。 github.com はじめに 説明のために、Visual Studio 2019 (以下VS2019) で、空のプロジェクトを作成。整数を受け取り2倍の値…

あなたの話はなぜ「通じない」のかを読んだ

ある記事で「あなたの話はなぜ通じないか」(ちくま文庫)が絶賛されてた。ここしばらく、卒論の執筆等で「伝わる日本語」を書く・話すことの難しさに悩んでいたこともあり記事を読み終わった後即購入(kindle版がおよそ500円と破格の安さで買えたというのも…

最近読んだ本・漫画を振り返る 2020/1・2月編

3回目となった読書振り返りシリーズ。年明け以降、海外に出張したり、学会発表したり、引っ越しの準備をしたり、卒論を書いたり……と忙しい日々が続いていたため、ここ2ヶ月はあまり読書できていない。そのため、もう一ヶ月読み溜めてから本記事を投稿しよう…

私は大学院に進まないけど理系は基本大学院進んだほうがいいよって話

最近は大学卒業間近で引っ越し準備を進めなければならない&来週学会発表が控えていることもあり、非常に忙しい日々が続いている。ただ、大学の仕事に追われ続け苦しい日々が続いているというわけではない。Prime Videoで鬼滅の刃を見たり、本を読んだり……。…