20210505

方向性について悩む
時間がある今のうちにいろいろと手を出す

  • Linux - LPIC試験
  • emacs 環境整備
  • AI
  • 学びをblogに書いていく
  • 数学

物事の根本的な取り組み方が問題
細部がどうでもよくなる アウトプットが遅くなる
うまくいっているときは仕事が楽しい→細部にも配慮が行き届く→良く触るのでクオリティの高い仕事ができる
不明点が多いと怖い ←→ 不明点が少ないと怖くなくなるのでは?
エディタが不便でイライラする 細かく注文を付けて直す必要がある
お金の面:
副業がうまくいっておらず それが気になって心理的な負荷になっているのかも
外に繋がらないとだめなのかな
https://github.com/conao3 が参考になる emacs は時間がダウンロードかかるので筋トレメニューを考えよう
週4のメニュー
・背中
・胸
・肩、腕
 上腕二頭筋:90度で負荷がかかっている状態の角度が大事
 上腕三頭筋:プッシュダウン
・足

1. 知らない単語、文法を学ぶ 全部
2. 字幕見る 
  文章を読む
   シャドーイング
    スクリプト無し
 字幕なしで発生できれば最高 難易度高
3. 日本語字幕のみで英作文
4. 字幕なしで見る
5. 音声のみのシャドーイング

www.youtube.com

- 3/6(土): unit36 If I do... and If I did...

  • 3/7(日): unit37 If I knew... I wish I knew...
  • 3/8(月): unit38 If I known... I wish I had known...
  • 3/9(火): unit39 Wish
  • 3/10(水): unit40 Passive1(is done/was done)
  • 3/11(木): unit41 Passive2(be done/been done/being done)
  • 3/12(金): unit42 Passive3

次はunit25 Can,could, and (be) able toを。

今週の予定

  • 2/28(日): 1.1 典型的なゲーム開発チームの体制 10分終
  • 3/1(月): 1.2 ゲームとは何か?
  • 3/2(火): 1.3 ゲームエンジンとは
  • 3/3(水): 1.4 ジャンルごとのエンジンの違い ※途中で打ち切り
  • 3/4(木): 1.5 ゲームエンジンの調査
  • 3/5(金): 1.6 ランタイムエンジンアーキテクチャ

結果

1.1 ~1.6(半分)まで終了 1.6後半が残りそれは3/6に終わらせる
遅れた敗因: 1.6だけ長大であったため 改善:ページ数を出して考えてみる


他、ELSA Speak ラジオ英会話、youtube Rupaチャンネル

うまくいくようなら解析入門1を来週からやってみる



次の週の考え

  • 3/7(日): 1.7 ツールとアセットパイプライン 49-56,7
  • 3/8(月): 2.1 バージョン管理 57-64,7
  • 3/9(火): 2.2 コンパイラ,リンカ,IDE 65-81,16
  • 2.2.1 ソースファイル、ヘッダおよび翻訳単位
  • 2.2.2 ライブラリ、実行ファイル、およびダイナミックリンクライブラリ
  • 2.2.3 プロジェクトとソリューション
  • 2.2.4 ビルド構成
  • 2.2.4.1 一般的なビルドオプション
  • 2.2.4.2 局所的最適化と大域的最適化
  • 2.2.4.3 一般的なビルド構成
  • 3/10(水): 2.2 コンパイラ,リンカ,IDE 65-81,16(後半) 72~
  • 2.2.4.4 プロジェクト構成のチュートリアル
  • 2.2.5 コードのデバッグ
  • 2.2.5.1 スタートアッププロジェクト
  • 2.2.5.2 ブレークポイント
  • 2.2.5.3 コードのステップ実行
  • 2.2.5.4 コールスタック
  • 2.2.5.5 ウォッチウィンドウ
  • 2.2.5.6 データブレークポイント
  • 2.2.5.7 条件付きブレークポイント
  • 2.2.5.8 最適化したビルドのデバッグ
  • 3/11(木): 2.3 プロファイリングツール 81-82,1
  • 3/12(金): 2.4 メモリリークとメモリ破壊の検出82-83,1
  • 3/13(土): 2.5 その他のツール83-84,1

来週は長期で休みを取る可能性があり、その間でできるか不明なため

(1) 基盤

1 イントロダクション

1.1 典型的なゲーム開発チームの体制
1.2 ゲームとは何か?
1.4 ジャンルごとのエンジンの違い
1.5 ゲームエンジンの調査
1.6 ランタイムエンジンアーキテクチャ
1.7 ツールとアセットパイプライン

2 仕事用ツール

2.1 バージョン管理
2.2 コンパイラ,リンカ,IDE
2.3 プロファイリングツール
2.4 メモリリークとメモリ破壊の検出
2.5 その他のツール

3 ゲームのためのソフトウェアエンジニアリングの基本

3.1 C++の復習とベストプラクティス
3.2 エラーの補足と処理
3.3 データとコードとメモリ
3.4 コンピュータハードウェアの基本
3.5 メモリアーキテクチャ

4 並列・並行プログラミング

4.1 並行と並列の定義
4.2 暗黙的な並列性
4.3 明示的な並列性
4.5 並行プログラミング入門
4.6 スレッド同期プリミティブ
4.7 ロックベースの並行性における問題点
4.8 並行性の経験則
4.9 ロックフリー並行性
4.10 SIMD/ベクトルプロセッシング
4.11 GPGPU入門

5 ゲームのための3D数学

5.1 2Dで3Dの問題を解決する
5.2 ポイントとベクトル
5.3 行列
5.4 クウォータニオン
5.5 回転表現の比較
5.6 その他の便利な数学オブジェクト
5.7 乱数生成

(2) 低レベルエンジンシステム

6 エンジンサポートシステム

6.1 サブシステムのスタートアップとシャットダウン
6.2 メモリ管理
6.3 コンテナ
6.4 文字列
6.5 エンジンのコンフィグレーション

7 リソースとファイルシステム

7.2 リソースマネージャ

8 ゲームループとリアルタイムシミュレーション

8.1 レンダリングループ
8.2 ゲームループ
8.3 ゲームループのアーキテクチャスタイル
8.4 抽象的な時間軸
8.5 時間の計測と処理
8.6 マルチプロセッサのゲームループ

9 ヒューマンインターフェイスバイス

9.1 ヒューマンインターフェースデバイスの種類
9.2 HIDとのインターフェース
9.3 入力の種類
9.4 出力の種類
9.5 ゲームエンジンのHIDシステム
9.6 ヒューマンインターフェイスバイスの実際

10 デバッグおよび開発のツール

10.1 ロギングとトレース
10.2 デバッグ描画機能
10.3 ゲーム内メニュー
10.4 ゲーム内コンソール
10.5 カメラのデバッグとゲームの一時停止
10.6 チート
10.7 スクリーンショットと動画キャプチャ
10.8 ゲーム内プロファイリング
10.9 ゲーム内メモリ統計とリーク検出

(3) グラフィックス、モーション、サウンド

11 レンダリングエンジン

11.1 深度バッファを利用した三角形のラスタライズの原理
11.2 レンダリングパイプライン
11.3 高度なライティングとグローバルイルミネーション
11.4 視覚効果とオーバーレイ
11.5 参考文献

12 アニメーションシステム

12.1 キャラクターアニメーションの種類
12.2 スケルト
12.3 ポーズ
12.4 クリップ
12.5 スキニングと行列パレットの生成
12.6 アニメーションブレンド
12.7 ポスト処理
12.8 圧縮のテクニック
12.9 アニメーションパイプライン
12.10 アクションステートマシン
12.11 制約(コンストレイン)

13 コリジョンと剛体力学

13.1 あなたのゲームに物理は必要ですか?
13.3 コリジョン検出システム
13.4 剛体力学
13.5 物理エンジンをゲームに組み込む
13.6 高度な物理的要素

14 オーディオ

14.1 音の物理学
14.2 音の数学
14.3 音の技術
14.4 3Dでのオーディオのレンダリング
14.5 オーディオエンジンのアーキテクチャ
14.6 ゲーム固有のオーディオ機能

(4) ゲームプレイ

15 ゲームプレイシステムの概要

15.1 ゲームワールドの構造
15.2 動的要素の実装:ゲームオブジェクト
15.3 データ駆動型
15.4 ゲームワールドエディタ

16 ランタイムのゲームプレイ基盤システム

16.1 ゲームプレイ基盤システムの構成要素
16.2 ランタイムオブジェクトモデルのアーキテクチャ
16.3 ワールドチャンクデータのフォーマット
16.4 ゲームワールドのロードとストリーミング
16.5 オブジェクト参照とワールドクエリー
16.6 ゲームオブジェクトのリアルタイムアップセット
16.7 並行性をゲームオブジェクトのアップデートに適用する
16.8 イベントとメッセージ通信
16.9 スクリプトによる記述
16.10 高レベルのゲームフローゲーム

(5) まとめ

17 まだやることがあるってこと?

17.1 これまでに取り上げた以外のエンジンシステム
17.2 ゲームプレイシステム

参考文献
索引

20210131

Drag&Drop

<Window x:Class="WpfApp1.MainWindow"
        xmlns:dd="urn:gong-wpf-dragdrop"
        .......
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <ListBox x:Name="hogehoge" >
            <dd:DragDrop.DropHandler>
                <Binding></Binding>
            </dd:DragDrop.DropHandler>
            <dd:DragDrop.IsDropTarget>True</dd:DragDrop.IsDropTarget>
            <dd:DragDrop.CanDragWithMouseRightButton>True</dd:DragDrop.CanDragWithMouseRightButton>
            <dd:DragDrop.IsDragSource>True</dd:DragDrop.IsDragSource>
            <dd:DragDrop.UseDefaultEffectDataTemplate>True</dd:DragDrop.UseDefaultEffectDataTemplate>

            <ListBoxItem Content="項目1" />
            <ListBoxItem Content="項目2" />

        </ListBox>
    </Grid>
</Window>

20210127

wpf gongによるDrag&Drop実装

  1. VSを立ち上げ、[ツール] > [NuGet パッケージ マネージャー] > [パッケージ マネージャー コンソール] を選択
  2. www.nuget.orgInstall-Package gong-wpf-dragdrop -Version 2.3.2を実行
<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp1"
        xmlns:dd="urn:gong-wpf-dragdrop"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <ListBox x:Name="ComponentListBox"
            dd:DragDrop.DropHandler="{Binding}"
            dd:DragDrop.CanDragWithMouseRightButton="True"
            dd:DragDrop.IsDragSource="True"
            dd:DragDrop.IsDropTarget="True"
            dd:DragDrop.UseDefaultEffectDataTemplate="True">
            <ListBoxItem Content="項目1" />
            <ListBoxItem Content="項目2" />
        </ListBox>
    </Grid>
</Window>

D&Dを確認できる

DispatcherObject

DependencyObject

DependencyProperty