Gaming Life

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

WindowsでMacのようにキーボードショートカット一発で呼び出せる辞書アプリ「RapidDict」を買った

学生時代、研究室で支給されたmacを使っていた時期がある。その時よく使っていたmacの機能で、Windowsにもほしいなあと思ったのが「spotlightで起動できる辞書検索」機能だ。 spotlightとはmacに標準に搭載されているランチャーアプリのことで、これを使って…

(遅すぎる)今年の目標 2021年版

遅すぎますが今年の目標を簡単に書いておこうと思う。 ブログ毎月更新継続 こんな急ぎ書いたようなのが丸見えな記事でも、3年以上続いているブログの毎月更新は、今年も継続したい。その中で、1、2記事は、10数時間かけた大作の記事が書きたい 今年こそ一人A…

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で鬼滅の刃を見たり、本を読んだり……。…

最近読んだ本・漫画を振り返る 2019/11・12月編

月1更新のノルマをすっかり忘れてたのでFGO特番が始まるまでのこの時間で急いで更新。 IT系 ゲーム制作者になるための3Dグラフィックス技術 ビジネス書 FACT FULLNESS 具体と抽象 理科系の作文技術 その他一般書 桜井政博のゲームについて思うこと 漫画 オレ…

Notionをメモツールとして1ヶ月使い倒したので学生・PG目線でレビューしてみる

弊ブログで何度か紹介しているAsciidoc。markdownより高い表現力に、充実したドキュメント、VSCodeのAsciidoc用拡張機能の使いやすさから、一年近くメモから趣味開発プログラムの仕様書、大学のレポートの執筆に積極的に利用していた。 ai-gaminglife.hatena…

ところでイース9が期待通りに面白かったのでレビューを書く

半年ぶりくらいに発売日にゲームを買ったのですが、案の定めっちゃ面白かったので大学の課題の締め切りが近いにも関わらず1週間ほどでクリアしてしまった。クリアタイムはだいたい40時間くらい。トロコンはしてないです。 イースIX -Monstrum NOX - PS4出版…

最近読んだ本・漫画を振り返る 2019年10月編

読書メモとして、最近読んだ技術書、一般書、漫画で面白かった本をブログに残していこうと思う。一応2~3ヶ月に一度は書くつもりでいる。 技術書 通信・ネットワーク周り マスタリングTCP/IP 入門編 第5版 改訂三版 802.11高速無線LAN教科書 Linuxネットワー…

(Linux) UDPを使って一定時間おきに文字列を送信するプログラム

研究室でUDPを使った無線通信の受信側が受信待ち状態にない時のパケットキャプチャをする必要があったので書いた. 劣化iperfにすぎないとか言ってはいけない. #include <arpa/inet.h> #include <netinet/in.h> #include <stdlib.h> #include <sys/socket.h> #include <sys/types.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h></time.h></string.h></stdlib.h></stdio.h></sys/types.h></sys/socket.h></stdlib.h></netinet/in.h></arpa/inet.h>…

std::bindではデフォルト引数を省略できない

C++

std::bindを使っていたらある問題に遭遇した。 void func(int a){ std::cout << a * 10 << std::endl; } int main(){ using namespace std::placeholders; auto fuction = std::bind(func, _1); function(2); } std::bindを使ってライブラリで用意されている…

VSCodeでAsciidocを書く時相対パス入力補完を働かせる

当ブログで何度か紹介しているAsciidocだが,仕様書を書いたり,レポートを書いたりするのに非常に重宝している. ただ,画像挿入時などで,相対パスの記述をする時に,Path InteliSenceによる入力補完が効かないことがとにかく不便だった. import {} from …

プログラミングに関する調べ物や最新技術のキャッチアップ方法

※注 ポエム要素が高い記事です 最近は研究室で忙しく、ブログに公開できるようなネタになるようなことをやれないでいる。 しかし、月イチ更新は守りたい → じゃあプログラミングを始めた頃の自分が知りたかった情報を書こう → プログラマーってどうやって最…

Dungeon Template LibraryをUE4で利用してLandscapeを自在に操る

@wanotaitei さんが開発しているDungeon Template Library(以後DTL) がUE4で使えそうだったので使ってみた。 DTL(ランダム地形生成ライブラリ)とUE4で遊んでみる会 #UE4 #UE4Study pic.twitter.com/un9FMRTf1e— ai (@ai_9684_dct) May 17, 2019 github.com…