プログラミング指南 - Code Knowledge

ゲーム制作に関するプログラミング等を主に書き溜めていきます。ただ、どちらかと言えば日記的な書き方が続くと思いますが、そこは温かい目で見て頂ければ。あと、ちょっとしたサンプルやツールのダウンロードも出来るようにしておきます。

カテゴリ:Programming > C#

シリアライズとは、データ保存のための手法で、なんらかのフォーマットに変換して様々なデータをまとめて保存するための技法です。厳密には違うんですが、まあ、ここではそういう事にしておいてください。各種データをひとつにまとめる事が出来るため、データの入出力によく ...

現在私が開発中のマップエディタでは、外部ライブラリとして唯一 MessagePack を採用していました。これは大変優秀なシリアライザーで、このライブラリのおかげで高速実行と省メモリを両立できていました。ところが先日、なんとなくネットをぶらついていたら、同じ作者による ...

現在作成進行中のマップエディタで、実行速度が遅い箇所がありました。それが以下のプログラム部分です。 for (int x = 0; x < w; ++x) { for (int y = 0; y < h; ++y) { var id = rscGrd.Areas[x + rcChr.X, y + rcChr.Y]; ...

ラベルなどのコントロールで Text を設定した際、コントロールのクライアントサイズより長い文字列を指定すると、入りきらない表示部分が消えて表示されます。後方が消えている事を示す ... を表示するには、AutoSize = false; とした上で、AutoEllipsis = true; とします。 ...

マップエディタの機能拡張で、連続貼り付けに対応したところ、この処理が存外に重たかったので、その調査と改善を行いました。どこが重くて、どのように調査して、どう対応していったのか、実際の対応手順を元に追い込み方について説明したいと思います。最初の状態少し長い ...

前回の C# リソースを使い回すの時に、処理が遅い例としてマップの配置データの順番で表示する処理を紹介しました。この遅い理由がループの途中で Bitmapリソースの作成と解放をしているためでした。この遅い処理を事前に処理しておくとどうなるのかというプログラム例です。 ...

Unity等で描画の高速化をする際によく言われるのが、ドローコールを減らすという対応です。これは描画処理を呼び出す回数を減らすという意味です。実際にはそれぞれのケースで全く対応方法は異なりますが、ここではリソースの使い回しを例として、実際にどのような内容で、ど ...

今まで Jsonのシリアライズといえば、Newtonsoft.Json を使用していました。かつての事実上のデファクトスタンダードです。使いやすい反面、やはりサードパーティ製という事で、ビジネスアプリでは採用しづらかったのは否めません。そのため、自作パーサーを使うという人も少 ...

現在作成を進めているマップエディタのワイヤ機能で、ワイヤが編集範囲に入っているかどうかを正しく判定する必要がありました。ワイヤは連続線と面積の指定があります。連続線の場合は、ラインがひとつでも編集範囲に触っていれば、面積の場合はそのままで、重なっているか ...

マップエディタを作り始めて15ヶ月。ようやく地形、属性、オブジェクト、ワイヤに続いて最後のレイヤであるテキスト配置がほぼ完成しました。この記事を書くために画像を撮る過程でいくつかバグが見つかっていますので、それを修正していけば、近いうちにα2としてサンプル公 ...

↑このページのトップヘ