複数のオブジェクトを扱う場合の識別子として、自分でIDを付けることはよくあると思います。一意の数値を生成する方法をネットで検索すると、大抵は GUIDを生成して使用しろみたいな記述が見つかります。{46D50EED-E7F2-4428-8DFC-BD89733FEEA1} みたいな文字列がよくある形 ...
Visual Studio 2022を導入してみた(1)
2021/12/09 追記その後の使用で下記指摘事項は全て解消しました。詳細はこちらをご覧ください。 本当はまだ更新するつもりはなかったのですが、某事情により私の個人開発環境を Visual Studio 2019 Community から Visual Studio 2022 Community(以下VS2022と略す)に更新 ...
PC-8001開発環境整備/ソフトウェア編
前回のハードウェア編からの続きとなります。PC-8001の開発は実機では行わず、Windows上で行います。所謂クロス開発環境です。大凡以下のような手順で行います。※ 最初の英字は主なファイル拡張子です。z80 テキストエディタでZ80のプログラムを記述する。bin アセンブルす ...
PC-8001開発環境整備/ハードウェア編
PC-6001の開発環境整備はこちらで紹介しています。レトロPCである NEC PC-8001で新たにプログラム開発をする場合は、いろいろ準備が必要です。私が開発の際に揃えた機材やソフトウェアなどを紹介してみます。なお、最初に言っておきますが全て自己責任です。映らない、動かな ...
C# 二次元配列のアクセス速度
二次元配列の格納状態を予想できる人なら分るかと思いますが、二重ループの記述の仕方で実行速度が全然変わってしまいます。X軸の走査をループ内側に入れた場合は… Random r = new Random(); var test = new int[10000, 10000]; for (int y = 0; y < tes ...
C# 二次元配列の範囲チェック
配列範囲外チェックはどうしていますでしょうか。普通に記述すると… public int[,] array = new int[100, 100]; private bool IsArrayRange(int x, int y) { return true && x >= 0 && y >= 0 ...
ME テンプレートによる新規作成
マップエディタですが、汎用と名前を付ける予定でいるため、かなり柔軟な編集が出来るように設計しています。その中でも、最初の新規作成時で、様々な機種や環境に対応できるようにと、解像度やドット形状、はては色数まで指定できるようにしてみました。また、いちいち設定 ...
Z80 アライメントによる高速化
Z80アセンブラでは、1つの命令の置き換えだけで実行速度が明確に変化することが多いです。特に多用するのはインクリメントやデクリメントといった、アドレスを±1する命令だと思います。また、アドレス演算では ADD HL,DE のような16bitの加減算命令を用いる事も多いかと思い ...
C# ループ処理の並列化について
C# では並列化の実装が簡単に出来るようにと、便利な下記のステートメント(クラス)が用意されています。Parallel.For()Parallel.ForEach()Parallel.Invoke()なるほどぉと for や foreach で記述されている箇所を単純に置き換えると、割と高確率で例外で落ちます。これは、 ...
ME 汎用マップエディタ開発中です
実は半年ほど前から汎用マップエディタの開発に着手しています。画面サイズ、色数、配置方法等出来る範囲で全て自由に設定できる、本格的なエディターを目指しています。主な機能は以下の通り(予定)。複数レイヤー編集地形配置(BG)オブジェクト配置属性配置ワイヤー配置テ ...
はじめの一歩
ども内藤です。知ってる人は知ってる程度のゲーム業界人です。18年ぶりにブログを再開します。以前割と有効だった記事の再掲載であるとか、ツールの公開であるとか、日々の雑談であるとか(きっとこちらのほうが多い気がしますが)、なんとなく不定期に更新していきたいと思 ...