« 2014年2月 | トップページ | 2014年4月 »

2014.03.30

デバッグ機能の充実化

| |コメント (0)|トラックバック (0)

 このエントリーをはてなブックマークに追加

先日作ったコンソール出力を始めとして
デバッグ機能の充実化を図っている。

おかげで今までデバッグメインファイルの行数が14→44と大幅に増えた。

ゲーム中で使う構造体の中身を確認したかったので
各構造体の表示オプションを追加し、
さらに表示先を選べるようにした。

例えば、敵の弾構造体は、コンソール出力
敵の情報はリアルタイムで見たいので画面外領域に出力
1度しか見なくて良い情報とか
処理時間を確認したいものはログ出力を選ぶ感じ。

一応、デバッグ出力関数の出力先のパラメータだけ切り替えれば
出力先を変更できて、書式文字列にも対応させたので
出力内容の編集もしやすくなっている。

タイマー関連の情報は、毎フレーム表示しなくても良いからコンソール表示、
リアルタイムに見たい情報は、画面領域外への表示が良さそうな気がしている。

現状は、配列で持っているデータは配列番号を1つしか指定できないが
ある程度動くことが確認できたら、
配列の出力数指定とかもできるようにするつもり。

後付で情報を増やしている関係で
関連項目同士が離れた行になったりしていて
手作業でデバッグメインファイルを修正するのがやりづらかったので
前から作っていたデバッグファイル設定ツールで
その問題を解消するようにした。

例によって、このツールは
かげさんがお手軽に作れるようにC#で作っている。

numericUpDownコントロールを使うと数字のみ入力で
範囲チェック付きとかが簡単に作れる。
(範囲チェックが付いているので配列のアンダーフローやオーバーフローの指定を防げる)

このツールでセーブするとデバッグメインファイルを書き換えた後、
初音ミク冒険記本体へWindowsメッセージを送信して
初音ミク冒険記本体側でデバッグメインファイルを
自動再読込するようになっている。

初音ミク冒険記本体側でもデバッグメインファイルを書き換える処理があるので
初音ミク冒険記本体側からこのツールへWindowsメッセージを送信し
それを受信したらツール側でもデバッグメインファイルを自動再読込するようにすると
良いかもしれない。

また、これまでスクリーンショットはゲーム画面しか取得できなかったが
機能を強化し、デバッグメインファイルで指定したサイズに従い
ゲーム画面の外領域もハードコピーを撮れるようにした。

tracを利用するようになってから、作業チケットにスクリーンショットを貼ることで
状況を確認することが増えてきたので
デバッグファイルで指定した増加幅を考慮したスクリーンショットが必要になってきたので。

ただ、pritnfDxの使用上、printfDxのスクリーンショットが撮れないので
printfDxやコンソール出力のハードコピーは、従来通りのWindowsのハードコピーとか
WinShotのハードコピーを使うとか、使い分けは必要そうな気がしている。

これらの機能を強化したおかげで
当初予想していた原因の対処では対処できなかった
タイマー系の問題の解決のヒントが見えてきた。

ゲームのデバッグでもやっぱり視認できない情報が絡む不具合は
解決が難しいと思う。

もっとも視認できるバグでも解決方法が分かんないのも結構ある。
かげさんのtracではグラフィカルエラーという分類にしているのがソレで
ななしあさんたちが報告してくれたものを中心に7件存在している。

これらが少しでも解決してくれると良いんだけどなぁ。

 このエントリーをはてなブックマークに追加

| |コメント (0)|トラックバック (0)

本当は毎月公開にしたかったんだけど

| |コメント (0)|トラックバック (0)

 このエントリーをはてなブックマークに追加

今年の密かな目標として毎月最新版の「初音ミク冒険記」を公開する
というのがあったんだけど、予想はしてたんだけど無理っぽい。

3月中旬くらいまでは
今週末、公開しようと思っていたんだけど
体調不良とか、仕事帰りが遅いのもあって
3月後半は、思ったほど作業が進んでいなかったりする。

一応、バグ修正しているのがいくつかあって
それを公開しようと思っていたんだけどねぇ。

前に記事にしたメッセージ表示モードも
普通にアイコン起動とかだとうまくいくんだけど
タスクスケジューラーからの起動でも
Jenkinsからの起動も上手く動かなくて
追加の記事も書きにくいと来たもんだ。

うーむ。

デバッグしやすくするためのツールとか機能が
少しずつ充実してきたので、今後はデバッグしやすくなるといいなぁ。

特にタイマー関連の残っているバグは、早めにやっつけたいなと思う。

ウータウの森のマップを増やす構想はしているんだけど
マップを増やす前にやっておいた方が良さそうな作業があるんで
しばらくマップも増えなさそう。

なんか、ゲーム制作関連の本を読んでいると
あんな開発ツールがあったらいいな、とか
こんな開発ツールがあったらいいなって発想が先に来て
ゲーム本編の制作が進まないという、本末転倒な展開になっていまして・・・

ただ、作業順序とか、後々の作業効率とかを考えると
今やっている作業も大事だったりするのだ。

開発ツールに頼らず、力技でどうにかするって方法もあるんだけど
かげさんは、性格上、力技の作業を延々と続けるのが苦手なんで
途中でうまく行かなくなる気配が濃厚なのだ。

うまく行かなくなってから、どうにかするんでも良さそうに思う人もいるだろうけど
予め予想されることの回避策も練らないってのは性に合わなくて・・・

もっとも回避策が思いつけず、ただ時間を浪費するってことも多々あるし
自分でもやっかいな性格だと思う。

まぁ、今のところ制作を打ち切ろうという気はサラサラ無いので
地道に続けていこうとは思ってます。

書いてることも、グデグデになってきてるな。
そろそろ寝るか・・・

 このエントリーをはてなブックマークに追加

| |コメント (0)|トラックバック (0)

2014.03.21

早速脱線してデバッグ用コンソールを表示してみた

| |コメント (0)|トラックバック (0)

 このエントリーをはてなブックマークに追加

ええと、今日はバグをやっつけるという記事を
寝る前に書いたはずなんだが、早速、脱線して
デバッグ用コンソールを表示するデバッグ機能を作ってみた。

DXライブラリにはprintfDxというデバッグ用の関数がある。
これは、一通りの画面描画処理の後に
描画処理が実行されるので、最前面に情報が表示される便利な関数だ。

使用例
Screenshot0120

が、一通りの画面描画処理の後に描画されるため
出力場所によっては、文字が見づらいという難点がある。

AppLogAdd関数を使ってLog.txtに出力するって手もあるが
これだとテキストエディタをアクティブにしないと
ログファイルの再読み込みをしないので、使い勝手が悪い。

まぁ、VisualStudioの「出力ウィンドウ」を表示しておけば良い
という話もあるんだけどね。

そこでデバッグ用の機能として
デバッグ用コンソール画面を使う機能を実装してみた。

新しく作った関数は、以下の3つ


//*******************************************************
// デバッグ用のコンソールの初期処理(メインループ前に呼ぶ)
//*******************************************************
void initDebugConsole(){
// デバッグ用コンソール画面表示フラグが表示しない設定の場合、処理終了
if(debugInfo.debugConsoleDisplayFlg == FALSE){
return;
}
//デバッグ用にコンソールを呼び出す
AllocConsole();
freopen("CONOUT$", "w", stdout);
freopen("CONIN$", "r", stdin);
// デバッグコンソールがアクティブウィンドウになるので
// ゲーム本体のウィンドウをアクティブにする
SetForegroundWindow(GetMainWindowHandle());
}
//*******************************************************
// デバッグ用のコンソールのクリア処理
//*******************************************************
void clearDebugConsole(){
// デバッグ用コンソール画面表示フラグが表示しない設定の場合、処理終了
if(debugInfo.debugConsoleDisplayFlg == FALSE){
return;
}
system("cls");
}
//*******************************************************
// デバッグ用のコンソールの終了処理(メインループ後に呼ぶ)
//*******************************************************
void endDebugConsole(){
// デバッグ用コンソール画面表示フラグが表示しない設定の場合、処理終了
if(debugInfo.debugConsoleDisplayFlg == FALSE){
return;
}
//コンソール解放
FreeConsole();
}

<処理の流れ>
1.DXライブラリのメインループの前の処理
debugInfo.debugConsoleDisplayFlgにTRUEかFALSEを設定することで
デバッグ用コンソールの表示有無を設定し、
initDebugConsole();
debugInfo.debugConsoleDisplayFlgがTRUEの場合、
デバッグ用コンソールウィンドウが表示される。

※debugInfo構造体は、かげさんが初音ミク冒険記の開発に使っている
 デバッグ情報を格納する構造体。
 debugInfo.debugConsoleDisplayFlg自体はintの変数で
 デバッグ用情報ファイルが存在しない場合、FALSEで初期化される。
 デバッグ用情報ファイルが存在する場合は、ファイルの値が設定される
 という仕組みにしている。

2.メインループでの処理
通常通りprintfを使う。(printfDxではない)
これでデバッグ用コンソールウィンドウにprintfで出力した内容が表示される。
必要に応じてclearDebugConsole();で
デバッグ用コンソールウィンドウをクリアする

3.メインループを抜けた後の処理
endDebugConsole();
を呼び出すだけ。


するとこんなことができる。
Screenshot0121

ね、簡単でしょ。

 このエントリーをはてなブックマークに追加

| |コメント (0)|トラックバック (0)

3連休を活用して初音ミク冒険記の作業をしよう

| |コメント (0)|トラックバック (0)

 このエントリーをはてなブックマークに追加

さてさて、月曜は朝起きてから寝るまで一日中頭痛がヒドイ
って状態で、火曜日は仕事を休んでしまった分
水曜は遅くまで仕事してて、木曜も少し残業してました。

結局、昨日は、Traclightning関連のこととかを調べてたので
月曜以降、全然、初音ミク冒険記の制作が進んでいない・・・

月曜のブログ記事は、実際日曜に書き始めたのに日が変わっただけなんで・・・

このままだと、3月に予定していた作業チケットの大半が
4月に持ち越しになってしまいそうなんで
今回の3連休は、本気を出す!

まぁ、上の一文自体が、どこまで本気なのか分からんけど
できるだけレベルデザインの本を読むのと
3月対応予定の3つのバグを何とかしたい。

3つのバグの内、1つは時間がかかるかもしれないけど
解決方法の目処が立っているので、そこからやっていこうかな?

 このエントリーをはてなブックマークに追加

| |コメント (0)|トラックバック (0)

2014.03.17

はよ、本編を作らんかい! と思いつつ、どうでも良いツールを作ってしまった

| |コメント (0)|トラックバック (0)

 このエントリーをはてなブックマークに追加

当初予定では、今日は初音ミク冒険記本編のバグ修正をしているはずなのに
なんか、気分が乗らず、でも何かプログラムは組みたくて
前から作りたいなぁと思っていたツールを作ってみた。

ちなみに「初音ミク冒険記」本体に組み込んだので
次のプログラム公開からは、みなさんも使えます。

と言っても、かげさん以外には、
使いづらいし、きっと役に立たないツールなんだけどね・・・

■初音ミク冒険記 メッセージ表示ツール
簡単に言うと、初音ミク冒険記の機能を使ってメッセージを表示するってツールです。

起動する、こんな感じ。
Msgtool1

メッセージ送りボタンで次のメッセージを表示もできる。
Msgtool2

文字には、行単位で色を付けられます。
BGM(MP3かWav限定)を鳴らすこともできます。


■起動方法

HatsuneMikuBoukenki.exe Msg luaファイル名

Luaファイルは、初音ミク冒険記本体のフォルダにある
SCENARIOフォルダの下にMsgフォルダを作って格納します。

ファイル名の指定をミスるとこんな感じ。
Msgtool3


■BGMの指定
Luaファイルの以下の部分を変更する
playMP3LoopとplayWaveLoopは、MP3を鳴らすか、WAVを鳴らすかの違いで
MP3を鳴らす場合、playWaveLoopの先頭に--を付ける
WAVを鳴らす場合、playMP3Loopの先頭に--を付ける

function Map99_21Opening()
playMP3Loop("拡張子なしのmp3ファイル名");
playWaveLoop("拡張子なしのwavファイル名");
return 0
end

■表示するメッセージの指定
基本的に
setStringNext("メッセージ", メッセージ表示行の色指定);
で設定する。

メッセージのページは0から始まり
メッセージを複数ページ指定する時は

if msgFlg == 1 then

の1のif文のブロック部分をコピーして1の数字を増やしていく。

			-- 次のメッセージ処理
if msgFlg == 1 then

最後のnnの値と

		if msgFlg == nn then

次のnnの値を一致させる


-- 次のメッセージ処理
if msgFlg == nn then

ちなみにPSP版を持っている人だとKAO_GRA_MIKUのところを
KAO_GRA_RUKAにするとルカの顔グラにできたり
KAO_GRA_MIKUのすぐ後ろの数字を0~11にすると
ミクやルカの表情を変更できたりもします。
(かげさんのところだと、リンやネルとか他のキャラの顔グラにもできます)


--***************************************************************
-- メッセージ設定
--***************************************************************
initMessageString();
if msgFlg == 0 then
msgWakuHight = dispTalkMessagePreparation4(KAO_GRA_TOP, KAO_GRA_MIKU, 7, KAO_GRA_EFFECT_NOTHING, FALSE);
setMsgOption(MSG_OPTION_MESSAGE_TOOL_DEFALUT);
-- ■■■■■■■■■■■■■■■■■■■■■■■■■
-- 全体で8行までOK
setStringNext("ミク", LUA_SKYBLUE);
setStringNext("メッセージは、1度に8行まで表示できます。", LUA_WHITE);
setStringNext("", LUA_WHITE);
setStringNext("次のメッセージを表示するには、", LUA_WHITE);
setStringNext("初音ミク冒険記のメッセージ送りボタンを押します。", LUA_WHITE);
setStringNext("次のメッセージが無い時は、プログラムを終了します。", LUA_WHITE);
setStringNext("", LUA_WHITE);
setStringNext("ちなみにBGMも指定できますよ♪", LUA_WHITE);
-- 操作禁止フラグの設定
setNoOperationFlg(TRUE);
end
if msgFlg == 1 then
msgWakuHight = dispTalkMessagePreparation4(KAO_GRA_TOP, KAO_GRA_MIKU, 7, KAO_GRA_EFFECT_NOTHING, FALSE);
setMsgOption(MSG_OPTION_MESSAGE_TOOL_DEFALUT);
-- ■■■■■■■■■■■■■■■■■■■■■■■■■
-- 全体で8行までOK
setStringNext("ミク", LUA_SKYBLUE);
setStringNext("これは2ページ目です。", LUA_WHITE);
setStringNext("次のメッセージは無いので、", LUA_WHITE);
setStringNext("メッセージ送りボタンでプログラムを終了します。", LUA_WHITE);
setStringNext("", LUA_WHITE);
setStringNext("じゃあね~♪", LUA_WHITE);
end
--***************************************************************
-- メッセージ描画
--***************************************************************
local iRet = dispTalkMessage(msgWakuHight);
if iRet == 1 and isCtrlCircle() then
-- メッセージ終了処理
endMessageString();
-- 次のメッセージ処理
if msgFlg == 1 then
-- 操作禁止フラグの解除
setNoOperationFlg(FALSE);
-- メッセージの終了
msgFlg = 0;
setEventFlg(2047, 1);
fadeOutSetGameMode(GAME_MODE_EXIT, 8)
else
msgFlg = msgFlg + 1
end
end

■ね、かげさん以外だと、使いづらいツールでしょ?
なんで、こんなのを作ったかというと
指定の時間にメッセージを表示したかったからです。

このプログラムには、指定時間に起動する仕様は無いんですが
Windowsのタスクスケジューラや
Jenkinsの時間指定起動
といった別のツールから起動するつもりなので気にしてない。

どちらかというと、Jenkinsからの起動を想定していたりするんだけど
Jenkinsを使っていない人でもタスクスケジューラから起動はできるよね
ってイメージです。

また、バッチファイルから起動するってこともできるんで
何か使い道があるかもしれない。

普通に、携帯のアラームとか
リマインダーメールとかで良いという話もあるんですが
作りたかったのだから、しょうがない。

実は、結構前から構想はしてて
今日、数時間で作りました。

ちなみにLuaをいじる部分は、後日、別のツールで自動生成する予定。

たぶん、そのツールが、初音ミク冒険記のLuaスクリプトの生成支援ツールの
大本になると思っている。

今回のツール化で
起動パラメータによって、動作を変えるって仕掛けというか
作業手順を作れたので、
そのうち他でも役に立つんじゃないかな?

例えば、将来スキルメニューを改造する予定があるんだけど
起動時に最初からスキルメニューで起動するようにしたりとか
デバッグルームみたいなマップを作って、いきなりそれを起動するとかね。

なんか、最近、初音ミク冒険記用の開発ツールとか
デバッグ機能や、このツールみたいな
公開できる初音ミク冒険記の機能やマップ追加には
直接つながらないようなことばかりを考えている気がする。

作りたいシーンとか、マップの構想はあって
作業の優先順位としては、ソッチのほうを高くした方が
遊ぶ人にとっては良いはずなのになぁ・・・

 このエントリーをはてなブックマークに追加

| |コメント (0)|トラックバック (0)

2014.03.05

初音ミク冒険記の第1章のプレイにおける素朴な疑問

| |コメント (0)|トラックバック (0)

 このエントリーをはてなブックマークに追加

現在、レベルデザインの本を読んでいて
「ナビゲーションの欠如」というところを読んだので
ふと気になったんだけど、
初音ミク冒険記の第1章の宝物庫で
マップ上に設置されている「10コイン」(銀のコイン)3つと
「コレクターズ・アイテム」って
見つけられた人は、どのくらいいるんだろうか?

10コイン×3は、見つけづらい位置に配置しているし
「コレクターズ・アイテム」は、そもそも秘密の条件を満たさないと宝箱自体が出現しない。

コインについては、ボカロタウンでの買い物を考えると
100コインにするとか、もう少し10コインの配置を多くするのが良いかなぁ
とか思ったりしているんだが・・・

「コレクターズ・アイテム」もボカロタウンで買うと300コインするので
一応、第1章の中でヒントは出しているんだが
気づきにくいヒントだったかなぁと思ったりしたので
実際の所は、みんな見つけられたのかなぁと思って。

プレイした方で覚えている方は、
どっちも取った、どっちも取っていない、コインは取ったなど
コメントをいただけると嬉しいです。

 このエントリーをはてなブックマークに追加

| |コメント (0)|トラックバック (0)

2014.03.01

Jenkinsの設定をいろいろと変更してみた、が、あと一歩が分かんない

| |コメント (0)|トラックバック (0)

 このエントリーをはてなブックマークに追加

現在モヤモヤしていること

Jenkinsのビルド・トリガで「リモートからビルド」というのができるらしく
ネットで調べると、認証トークンというのが必要っぽい。

が、そもそも、ビルド・トリガで「リモートからビルド」というのが無い。
なぜだ?

これができれば、10分毎のSVNのポーリングとかしなくて良いのに・・・

2019/11/14追記
本屋でJenkinsの本を立ち読みしてたら古い本には
「リモートからビルド」の選択肢が無かった。
古いバージョンのJenkinsだと「リモートからビルド」の選択肢がなく
直接ビルドURLを指定する方式だったようだ。

追加でできるようにしたことをまとめてみた

Jenkins Sounds pluginの利用

10分おきのSVNポーリングでビルドが動くので
若干タイムラグがあるから、ビルド結果が音でわかるようにした。

ビルドが成功すると、初音ミク冒険記の「レベルアップ」の効果音
ビルドが失敗すると、初音ミク冒険記の「ゲームオーバー」の効果音
が鳴るようにしている。

<事前準備>

なお、ファイル形式はwavで2つのwavファイルを同じフォルダにおいてZipファイルにする。
ポイントはフォルダごと固めちゃダメってところ。
格納フォルダを開いて、上記の2ファイルを選択した状態でZIPにする必要がある。

<プラグインのインストール>

「Jenkinsの管理」-「プラグインの管理」から
「Jenkins Sounds plugin」をインストール

<プラグインの設定>

インストール後「Jenkinsの管理」-「システムの設定」で「Jenkins Sounds」のところの設定を行う。
file://プロトコルで事前準備したzipファイルを指定して、「適用」ボタンをクリック。

※左側のサイドメニューの「Sounds」が目立つのでそっちで指定するのかと思ったら
 指定したファイル名を保存するボタンがなくて、一時困ったのだが、「システム設定」だったのね。

<ビルド後の処理の設定>
「Jenkins Sounds」を追加し
On BUild result:Success、チェックボックスはSuのみ、サウンドは前述のものを設定
同様にOn BUild resultがAbort、Failure、Unstableには、
対応するチェックボックスにチェックしてゲームオーバーの効果音を設定

これで音が鳴るので結構いいかも!

Jenkins Persona Pluginの利用

<事前準備>

もともとTraclightningに入っていた
C:\TracLight\projects\hudson\.hudson\persona\hudmi
を参考にし
C:\TracLight\projects\hudson\.hudson\persona\Miku
に以下のようなファイルを用意する。
Jenkinspersona0

<プラグインのインストール>

「Jenkinsの管理」-「プラグインの管理」から
「Jenkins Persona Plugin」をインストール

<ビルド後の処理の設定>

「Associate Persona」を追加し、
Persona:ミクさん
Location:Right-Side(Not background)
を指定する。

これで、ビルド結果画面で、こんな画像が表示される。
Jenkinspersona

Luaスクリプトの文法チェック

これは特にプラグインは使わずにJenkinsとLuaコンパイラを使う。

「ソースコード管理」の「Subversion」のリポジトリURLを以下のように設定
file:///F:/Visual Studio 2008/SVNrep/trunk/SCENARIO

※Cppcheckと違って、SCENARIOフォルダがチェック対象なのでパスが違う。

「ビルド・トリガ」で「SCMをポーリング」を選択
「スケジュール」はCppcheckの時と同じく「0-59/10 * * * *」

「ビルド」は「Windowsバッチコマンドの実行」を選択
コマンドに以下の内容を記述
F:
cd "F:\Visual Studio 2008\Projects\HatsuneMikuBoukenki\SCENARIO\"
"F:\Visual Studio 2008\Projects\lua5.1\bin\luac5.1.exe" -p *.lua

「ビルド後の処理」では、PersonaとSoundsプラグインの指定を行う

なお、エラー発生時の文法エラーの内容は
ビルドの履歴を選択し、「コンソール出力」を選択すると
F:\Visual Studio 2008\Projects\lua5.1\bin\luac5.1.exe: SearchBase.lua:1: '=' expected near '
といったエラーの内容を確認できる。

※基本的にSVNにはテストしたものしかコミットしないので
 文法エラーが残っていることはないのだが
 複数の修正をしていてコミット漏れを見つけた時に
 勢いで未テストのLuaをコミットしてしまった時に
 早期に問題を見つけるための保険みたいなもの

StepCounter Pluginの追加

*.cpp, *.h, *.luaの拡張子のファイルのステップ数を数える。

<事前準備>

https://github.com/jenkinsci/stepcounter-plugin/tree/57da29cfa10a2f0f4cd62c544353044e343391d7
の右側にある「Download.zip」ボタンをクリックして
プラグインファイルをダウンロード。

ダウンロードしたファイルを展開しておく。

<プラグインのインストール>

「Jenkinsの管理」-「プラグインの管理」から「高度な設定」タブを開く

プラグインのアップロードにある「ファイルを選択」ボタンで
展開後フォルダのtargetにあるstepcounter.hpiを選択し、アップロードする。

<ビルド後の処理の設定>

CppcheckのビルドだとLuaのフォルダも含めてSVNのリポジトリを見るので
Cppcheckのビルドに組み込む。

「Step Counter」を選択する(拡張子ごとに設定が必要なので3回やる)
カウント対象のファイルパターンリスト:CPP(2つ目の設定:H、3つ目の設定:Lua)
解析するファイルパターンを指定:*.cpp(2つ目の設定:*.h、3つ目の設定:*.lua)
解析するファイルのエンコーディングを指定:MS932

これでCppcheckのビルドの都度、実行行数合計、コメント行数合計、空行数合計、総計を確認できる。
各拡張子ごとのタブで指定した拡張子のファイル一覧よりソース1本ごとの値も確認できるので便利。

Trac Publisher Pluginの追加

Traclightningからは、Jenkinsに来るリンクがあるのに
JenkinsからTracに戻るリンクがないのが使いづらかったので追加

<プラグインのインストール>

「Jenkinsの管理」-「プラグインの管理」から
「Trac Publisher Plugin」をインストール

<各ビルドのTrac Websiteの設定>

初音ミク冒険記TracのURLを入力する

これでJenkinsの各ビルドの左側に表示されるメニューにTracが増えてクリックすると
Tracへ飛ぶことができる。

最終的にどうなったの?

ということで、これで、いろいろと便利になったと思う。
SVNのコミットをトリガーとして10分以内に
CppheckやLuaの文法チェック、さらにステップ数集計も自動実行し
ステップ数は表にまとめてくれる。

成功と失敗は音でも分かるし、後からでもビルドを確認すると
ミクの絵により、成功失敗が分かる。

TracからJenkinsへ飛んで
ビルドの手動実行してからTracに戻ることもできる。

本当の意味でJenkinsを使いこなすには
テストの自動化やカバレッジ率の取得が必要だが
正直、DXライブラリを使った開発で
テストの自動実行がどこまで出来るものかもわからないので
現時点では、これでも結構良いんじゃないだろうか?

まぁ、C#で作る開発ツール辺りだと、自動実行することがあるかもしれないけどね。

 このエントリーをはてなブックマークに追加

| |コメント (0)|トラックバック (0)

« 2014年2月 | トップページ | 2014年4月 »