前書き
ひとえにこうした贅沢な苦労ができるのは、統合失調症が酷かった時に心配とケアを施してくれ、生活を支えてくれた父と母、二人の姉と兄に祖母を始め、叱咤激励してくれた学生時代からの友人、この国の福祉制度や、そこに携わっておられる方々、お世話になった福祉施設の職員の方々の多大なるご支援に社会保障、SNS上で知り合った先達のエンジニアの方々の応援やアドバイス、学習の助けになった書籍をはじめ、本当に多数の方々が今日まで私を支えてくださったからこそです。
また、前職で多大なるご迷惑をおかけした先輩方からも、学生気分のなまっちょろい根性を叩き直していただき、現在につながる経験を学ばせていただきました。
このいずれかが欠けていたら、誇張抜きで人として再起不能の身になっていました。
本当に感謝してもしきれません。この経験を無駄にしないように、これからも励んでいく所存です
教訓(本文とはあまり関係ない)
基礎を少しずつ学ぼう(アルゴリズム・物理学・数学)
3DCGはレイトレーサーとラスタライザの原理を学ぼう
DirectXのプログラミングから入ると辛い
そもそもDirectXより先にゲームエンジンのドキュメントを読もう
学んだことはスライドや文章にしよう
AIはありがたいけど銀の弾丸でもない
ちょっとした苦労話をします…
DirectXは11から入りましたが、最初の1年は
バッファってなんだよ…とか座標変換ってなんだよ…
という、今思うと実にくだらないことで悩んでました。中でも悩んだのが定数バッファです
恥ずかしながらこの頃はラスタライザやレイトレーサーと言った3DCGの基礎を知らず、
Dxlibで2Dゲームを必死こいて作って、そこから
DirectXに無理やり挑戦しました
…なんでDirectXに挑んだの?
そのきっかけ
当時新卒の仕事に、仕事への認識が甘すぎたのも相まって馴染めず精神疾患を発症、体を壊してしまい休職(のちに退職)、その最中に、学生の頃Unityでクソゲーを作ったのが面白かったことを思い出しゲーム会社に転職しようと体に鞭を打ち、PCを購入、Dxlibでゲームプログラミング中心にゲーム制作をしていたのです。
ある日、ふと専門学校でお話を伺った時に
「ゲームプログラマーになりたいならC++とDirectXはできたほうがいいですね…」と言われたので、
あぁそうなのか….と本の購入に奔走し始めました
(結局その専門学校はお金の問題ですぐに諦めました)
いわゆる平山本(ゲームプログラマーになる前に覚えておきたい技術)
https://amzn.asia/d/08adwAOh
をや様々なゲームプログラミング本を読み、リンカエラーやビルドエラーのわかりにくさに悪戦苦闘しつつ気合と根性でWindowsでのゲームプログラミングの知識をつけていきました
そのままYoutubeでDirectX11のチュートリアルを視聴してコピペしてプログラムを動かしたり
https://www.youtube.com/watch?v=gQIG77PfLgo&list=PLcacUGyBsOIBlGyQQWzp6D1Xn6ZENx9Y2
しかし何もわからないままソースコードをコピペしてはバグらせる不毛なことをし続けて、そのままDirectX12の魔導書が出るまで迷走していた覚えがあります(今もそうですが)
https://amzn.asia/d/03OhnN0i
この本が出版されるなりすぐに池袋のジュンク堂で買い、何を言ってるか分かってないまま必死に写経しました。
悪戦苦闘再び。挫折
この本が出た当時はChatGPTが存在せず
仕様書やドキュメントを参照する習慣もなく、エラーメッセージや描画されないエラーには非常に苦しめられました
一応エラーを潰したかのように見えても、
ポリゴンが描画されないということを繰り返して足踏みしていたり、
当時はコロナ禍もあって家に引きこもってGithubに存在するDirectX関連のソースコード
を読み続けたり、DirectXTK12というラッパーライブラリで遊んだりソースコードを読んだり、
何を思ったのかDirectX12のコーディングチュートリアルを書き続ける
日々が続いてました。僕は一体何をしたかったんでしょうね・・・(今思うと、相当危うい精神状態だったかと思います…昼夜は逆転し、体臭が酷くなり、体重は2,30kg、いや40kg?増えてしまって大変でした)
この時2021年でした。その時以下の二冊の本を買って、途中まで写経した覚えがあります
https://amzn.asia/d/00g6n5i2
今でも(DirectX12の魔導書をはじめ)お世話になるいい本です。
一旦ここで振り返りを止めておきます。
次回は何を書こうか・・・