かげさんの111から始まるHistory » 初音ミク冒険記 » デバッグ出力をもう少し改良しようかな?

« そして、グラボには異常がなかった | トップページ | コメントから始まる一筋の光明、BIOSアップデートができた! »

デバッグ出力をもう少し改良しようかな?


ゲームエンジン・アーキテクチャ 第2版

実は最初から読んでいたんだけど、
単純にデバッグしていて気になることがあったので
第9章の「デバッグおよび開発のツール」を読んでみた。

実はログ出力していて気になることがあったのだ。

ゲーム開発じゃなくて、かげさんが仕事でやっている業務システム開発でも
ログは出力するんだけど、ログ出力はファイルアクセスをするので
開発中と実際にユーザ提供時では、出力するログのレベルを分けて
ユーザ環境ではログ出力を減らして性能アップを図るってわけ。

で、今回デバッグしてた時にログを埋め込んだんだけど
うまく動いたから、調査用に埋め込んだログを消した翌日に
処理の順序というかマップによっては、解決しているものの
別のマップでは解決していない、といったものが出てきて
うぉ~、前の日にログ消さなきゃ良かった!となったのだ。

普段ならコメントアウトとかで残しているのだが、
コメントアウトしていると逆にソースが追いづらいことが多くて
バッサリ消すこともあるわけ。

で、調査の時はログを埋め込み過ぎてて
ちょっと削除しないと最終ロジックを読みにくいなぁと思って消したんだよね・・・

つーこって、ゲーム開発でもログレベルとかの管理ってするのかなぁと思い
その辺りを読んだのだが、やっぱりするみたいね。

で、ここまでは予想してたから良いんだけど、
次にチャンネルに分類というのが書かれていた。

Playstation 3のようなプラットフォームだと14個とか、
デバッグ出力のウィンドウを使えるらしい。

早速脱線してデバッグ用コンソールを表示してみた
で書いたデバッグ用コンソールは1つしか起動できないんだけど
出力の色を変えたり、フィルタをかけたりするといった工夫はできる。

色を変えるのは、割りと簡単に実装できそう。
フィルタは、ちょっと面倒だけどできなくはない。

この本だとチャンネルという言葉を使っているが
かげさんとしては、ログカテゴリとかの方が言葉としては、しっくりくる感じ。

実は、初音ミク冒険記をtracで管理するにあたって
キーワードとかコンポーネントの欄を使って
関連する作業チケットのフィルタリングをしているので
ログでも、こういうのを考えた方が良いのかなぁ
と思っていたところに出てきた内容だったので
実現できた方が後々良さそうな気がする。

5月に入ってからサウンド関連の処理を
いろいろ修正しようかなぁと思っていたこともあって
先にこの辺りのデバッグ出力を作っておけば
ロジック修正時にログを埋め込んでいくこともできるはずだ。

出力をファイルにミラーするのも、簡単なのでやっちゃおうと思う。

この辺りでちょっと気になったのが
「Redisを使ってTTYチャンネルを管理する」という8行くらいの部分。

RedisがKey-Valueストアなのは知っているけど、
逆にそこまでしか知らないので、便利なのかなぁと気になり
ちょこっとamazonで本を調べてみた。

1冊、解説してそうな本があったので
今日の帰宅時にその本を立ち読みしてみたんだが
その本のサンプルってPythonらしい。

PythonってTracの開発言語になっているものだってことは知っているが
かげさんは、Pythonを使ったシステムを組んだことはない・・・

が、近くにPythonの入門書籍があったので
そっちをチラ見して、基本文法くらいは分かったので
その気になれば行けそうな気がする。

Key-Valueストアの概念は分かるんだけど
どうも実際に使ったことがない分、良い使い方のイメージが湧かないのだ。

で、その本だと、実際にインストールして
Pythonで実行してとかやっていくみたいなので
実際に触りながらだとイメージが湧きそうな気がした。

が、Redisはforkを使っている関係でWindows環境には不向きらしい。

なのでLinux環境にインストールすると良いらしい。
となると、今、遊休資産と化しているRaspberryPIとかを使うといいかもしれない。

たしかRaspberryPIのデフォルトOSとして作ったSDカードは
debiann系だったと思うので、Red Hat系を中心に使ってたかげさんには
ちょっと使いにくいんだけど、
まぁ、OSインストールからする必要はないってのが便利かもしれない。

つーこって、GW明けあたりにでも、
この本を購入して軽く勉強してみようかなって思ってる。
経験的に、この手のものは、短期集中で実際に触って覚えると身につくと思うんだ。

Luaの時だって7日である程度は使えるようになったしね。
といっても、まだテーブルだの、コルーチンあたりは微妙だが・・・

この章の最後にあったクラッシュレポートに含めることができる例ってのも
参考になった。

実はそこに書かれているものの4つは、
先日作った操作不能時のセーフメニューで実装済みだったりする。
残りの内容も、いくつかはすぐに実装できそうなので、それも対応していこうと思う。

面白かったら押すべし。→ へぇ~
ランキング [] [] [] [] [] [↑50] [かげさんの111から始まるHistory内]

|

このエントリーへのリンク

このエントリーのリンクを入れるHTML:

トラックバァ~ック!


★アディダスやニューバランス関連のトラックバックスパムが多すぎて★
★超迷惑なので、トラックバックは承認制としました。★
★このため、トラックバックが記事に表示されるまで
★時間がかかることがあります★

この記事にトラバ~る為のURL:

この記事へのトラックバックの一覧です: デバッグ出力をもう少し改良しようかな?:

コメント

このブログの新着コメントをRSSリーダに登録する為のxml




←名前とメールアドレスは必須です。URLも記入すれば、URLのみが公開されます。メールアドレスのみですと、メールアドレスが公開されてしまいますので、御注意ください。

メールアドレスは書きたくないって人は、掲示板に書き込むって方法もあります。掲示板はメールアドレスなしでもOKです!

↓コメント本文では、「a href」「b」「i」「br/」「p」「strong」「em」「ul」「ol」「li」「blockquote」「pre」のタグが使えます。絵文字をクリックすると、本文にタグを挿入できます。


絵文字を挿入