記事連載の変更について

とりあえず、4回分の「みんなでゲーム作りませんか」シリーズを投稿させて頂いたのですが、改めて見直してみると、結構読みづらいなと思っています。

文章が長いですし、要点が何となく分かりづらいと思います。

また、このような文章を実際に書いてみたところ、結構な負担になることが分かりました。

なので、期待させて申し訳ないのですが、今後は専用ページへの追記とさせていただきたいと思います。
頻度は変更なく、最短1日~最長1週間間隔となります。

専用ページはこのサイトの上部にあるタブから読むことができます。
ご迷惑をお掛け致しますが、今後ともよろしくお願いいたします。


みんなでゲーム作りませんか #4

今回は、前回予告した「自由度の高さ」と、追加で「制作負担を軽減する仕組み」についても説明したいと思います。

前回は、初心者でもゲーム作りに参加しやすい仕様にしたいと説明しましたが、ゲーム開発上級者のことを考えていない訳ではありません。
どうせ作るなら高クオリティなゲームにしたいですよね。

そこで、ゲームを作ることに慣れている方々にも満足していただけるような機能を説明したいと思います。


みんなでゲーム作りませんか #3

今回は、前回の続きで、本ゲームエンジンの特徴の一つ「初心者に優しい仕様」について説明したいと思います。

前回も述べた通り、このゲームエンジンを作っているのは「多くの人にゲーム作りに参加してほしい」からです。

しかし、多くの人はゲームを作ったことなんて無いと思うので、そう簡単に参加してもらえるとは思っていません。
自分も昔は、「ゲームを作るなんて無理」と思っていました。

そのようなゲーム制作未経験者をいかにして参加させるか、そのためにはまず「入門しやすさ」が大切だと思っています。

具体的には、「ゲーム制作初心者でも扱いやすい制作環境」「複雑、面倒な作業の自動化」を重視した設計をしたいと考えています。


みんなでゲーム作りませんか #2

今回からは本題に入りたいと思います。
今回は「ゲームエンジン概要」についてです。

今までも少しだけゲームエンジンについて書いたことがありましたが、原点に戻るという意味で最初から全て説明させていただきたいと思います。

とは言っても、全部書くと長い記事になってしまうので、何回かに分けて書いていきたいと思います。

本ゲームエンジンの最大の特徴は、複数人での共同&分担制作ができる点です。
主に個人を対象とした製品になっていて、利用はもちろん完全無料、またオープンソースにすることを予定しています。

モデリングはモデリングが得意な人が、サウンド系はサウンド系が得意な人が、プログラムはプログラムが得意な人が、
という感じで、全ての人が自分の得意分野だけでゲーム開発に参加できるようにしたいと思ったのがきっかけで、本ゲームエンジンの開発を企画しました。


みんなでゲーム作りませんか #1

数年前からゲームエンジン開発を企画していますが、未だに完成していません。

原因はいくつかありますが、最も大きいを挙げると「仕様変更の多さ」だと思っています。
開発を進めていくと、「この機能も追加したい」「この仕様を改良すればもっと良くなるのでは」となり、何度も何度も仕様変更する羽目になり、いつまでたっても完成しないのです。

このままでは永遠に完成にたどり着けないと考え、解決策を検討してみました。

そもそも、ゲームエンジンを開発しているのは、「自分の技術力を示したいから」ではなく、「ゲームエンジンが欲しいから」です。
最近、このまま一人で開発を続けていてもメリットがないと思うようになってきています。

なので、これからはより本企画を積極的に広めて、少しでも協力者を増やしていきたいと考えています。

そのために、まずは(できるだけ)一日一回、ブログ記事を書いていきたいと考えています。
この先忙しいなどあるかもしれませんが、それでも最低一週間に一回は記事を書くよう努力したいと思います。

今後ともよろしくお願いいたします。


au IDの認証エラーについて

auのAndorid端末を使っている方は「au IDが入力されていません」というエラーを何度も見たことがあると思います。
OKを押しても繰り返し表示され、最終的にはパスワードの再設定を求められるというものです。
しかも、パスワードを再設定しようとしても、行く先の画面は正常に登録済みとなっているau ID設定アプリの画面です。
普通の人はほぼ混乱しますよね。

原因ですが、結論から言いますと、「au Marketアプリのバグ」です。

色々なサイトに対処法が書いてありますが(端末を再起動する、UIMカードを抜き差しする、au Marketアプリを再インストールするなど)、正直あまり効果はありません。
これらの対象を行っても、しばらく使っていたらまたエラーが出るようになります。
また、UIMの抜き差しは何の意味もありません。そもそもUIMに問題があったら電話すらつながらなくなりますから。
UIMの摩耗と端末部品の劣化に繋がるだけなのでやめましょう。

残念ながら、最初に述べた通りアプリのバグなので、我々ユーザが根本的な問題解決をすることはできません。
なので、結局は再起動するなどの暫定的な対象しかできません。

ですが、エラーが出る度に再起動などやっていたら、時間がかかりますし、面倒ですよね。
そこで、現状最も速くこのエラーの暫定対処を行う手順を紹介します。

1.(Android端末の)設定からアプリ一覧の項目を開きます。
2.au Marketを選択します。
おそらく、このような画面になると思います。(画面はAndroid7.0です)

3.「強制終了」を行う。
確認が出るので、OKを押します。

これでしばらくはエラーが出なくなります。
わざわざ再起動をかけなくても、これだけで対処は完了です。
もし可能な機種であれば、この画面へのショートカットをホームに作っておいてもいいかもしれません。

ただ、繰り返しですが暫定的な処置ですので、しばらく使っていたらまたエラーが出ると思います。
根本的な解決をしたいのであれば、皆でauに苦情を言いましょう。
困っているユーザが増えればauも優先的に対象すると思いますので。

ただ、本当に認証エラーになっている場合(au IDのパスワードをPCから変えて再認証が必要になっている場合など)は、この方法では解決しないので、au IDの登録をやり直しましょう。

ちなみにですが、開発者の視点から見ると、この手のバグは非常に修正が難しいです。
原因が見つかれば早いのですが、それを見つけるのがとても大変です。
おそらく、メモリ上にキャッシュされている認証情報が何らかの原因で誤って破壊されているか、何らかの原因で本来自動的に行われるべき認証情報の更新ができずに有効期限切れになっているのだと思われます。
まあ、バグはバグなので早急に修正してもらいたいですが。


ホームページとブログを統合しました

この度、ホームページを管理が容易なWordPressにするため、ブログと統合することになりました。
今後、ブログへのアクセスは全てこの「ホームページ兼ブログ」サイトにリダイレクトされます。
また、ブログについても、今までと変わりなく運用していきますので、これからもよろしくお願いします。


【.NET】アセンブリに関連付けてデータを暗号化するライブラリ

更新情報
2016/09/23 1.0.1を公開

.NETアプリケーションから利用できる暗号化ライブラリを作ってみました。
このライブラリの特徴は、暗号化に使う共通鍵に、ライブラリを呼び出したアセンブリの公開鍵を使うという点です。

アセンブリには電子署名を行うことで「厳密名」を持たせることができます。
その厳密名に含まれる公開鍵を使うことで、データを暗号化してもそれを復号できるのは同じアセンブリのみとなります。

厳密名を付けるには、署名に使う公開鍵と秘密鍵のペアが必要です。
そのうち、秘密鍵は開発者が厳重に管理しているはずですので、秘密鍵は開発者しか分かりません。
アセンブリを読み込む際、そのアセンブリが署名されている場合は付属している公開鍵を使って改ざんの有無を確認し、問題なければアセンブリが読み込まれます。
つまり、データを暗号化したアセンブリを改ざんして暗号化データを抽出しようとしても、秘密鍵を知らないため署名が出来ないので抽出は不可能ということになります。


【C#】リフレクションでの呼び出しを検出・禁止する方法

C#には「リフレクション」という便利な機能があります。
これは、メソッドなどを動的に呼び出したり、インスタンスを動的に生成したりすることができる機能です。

ただ、この機能、実はprivateに設定したメンバも呼び出してしまうことができます。
つまり、他から呼び出されると困るからprivateにしたメソッドがあったとしたら、それを利用者が意図的に呼び出すことが出来てしまう、という訳です。
まあ、利用者がprivateメンバまでクラス構造を理解していないとできませんが。
注意:フィールドおよび構造体の引数なしコンストラクタに対するアクセスを検出する方法はありません。


ブログ・各種サイトの障害について

最近、当ブログやホームページ、E.L.E.M.E.N.Tの公式Wikiにアクセスできない障害が発生していました。
原因は、当該サイトをホスト頂いているレンタルサーバがDDos攻撃(分散型サービス妨害攻撃)を受けて全アクセスが遮断されたためとのことです。
詳しくは、レンタルサーバの管理者様のホームページに記載されています。(詳しくはこちら

DDos攻撃について簡単に説明すると、インターネットに繋がっている脆弱な(セキュリティ対策が不十分な)サーバーやクライアントを複数、不正プログラムなどで乗っ取り、攻撃対象のサーバーに一斉に通信を送らせることで攻撃対象の処理を妨害してサービスを停止させるというものです。

もしかしたら、今後もつながりにくい状況になるかもしれませんが、その際は時間を改めてアクセス頂けると幸いです。
以上、障害情報についてでした。