▼ノベルゲームツールを作っちゃうぞ!Ver3.0at GAMEDEV
▼ノベルゲームツールを作っちゃうぞ!Ver3.0 - 暇つぶし2ch632:616
06/05/29 03:25:07 IGQydurO
今こんな構文を考えてます。どうだと思いますか?

<?
$name="太郎君";
function age($low)
{
$ret=rand($low,30);
$age=$ret;
if($ret==30)
{
return "三十路";
}
else
{
return $ret;
}
}
?>


633:616 続き
06/05/29 03:26:32 IGQydurO
こんにちは。私の名前は$nameです。年齢は@age(16)です。

<?
if($age<20)
{
?>
こう見えてもまだ10代なんです。

<?
}
else
{
?>
こう暇だと、もう人生後半なんて思ってしまいます。

<?
}
?>

634:616
06/05/29 03:29:02 IGQydurO
基本的にはテキストを打てば表示されて、
アットマークでエンター待ち、
そしてスクリプトを書きたい時は<?と?>で囲む。
まぁ、早い話がPHPそのまんまなのですが。


635:名前は開発中のものです。
06/05/29 08:37:19 ihm67nO1
>>616
お疲れさまです。
いろいろ出来そうで面白そうなツールですね。

縦横比4:3以外の画面で、フルスクリーンにも対応しているのは嬉しいです。
サイズは可変になるんでしょうか。
だとすると、デザインの幅か広がるので楽しみです。

描画は自分の環境では50fps出ました。
前バージョンでは44fpsぐらいだったから、軽くなりましたね。
ウィンドウ←→フルスクリーンの切り替えも快適です。

終了時、escかreturnを長めに押す必要がありました。

自分はPHPを使ったことがなかったのですが、
このツール使うために覚えたい感じです。

636:616
06/05/29 09:16:39 IGQydurO
>>635
評価ありがとうございます。
ずーっと前からエロゲーとかもワイドの方が雰囲気出でいいやん!
と思ってて、その思いをこのツールに託しました。
画面サイズは8px単位で自由に決める事ができます。
フルスクリーン時にはそのサイズが合う解像度に変更し、必要に応じて
上下もしくは左右を黒くします。

>>描画は自分の環境では50fps出ました。
それは嬉しい報告ですね!
あのサンプルは3フレーム毎にαブレンディングをしているので
なかなかの出来かもしれません。

>>終了時、escかreturnを長めに押す必要がありました。
恐らくDirectInputを使っているせいですね。
バッファリングをするかWinメッセージへの変更を検討します。

>>自分はPHPを使ったことがなかったのですが、
>>このツール使うために覚えたい感じです。
どうもですm(__)m
今現時点で目指しているのは、「クラスのないPHP」ですんで、
文字列処理関数や配列処理関数は可能な限りマネマネしようと思ってます。

さて、出勤するか。

637:616
06/05/30 13:23:22 +ZC0u2Rb
えーっと、只今ユーザー関数の実装をしています。
事前構文確認機能はできあがったので、山場のユーザー関数の実装をしています。
globalとstaticがなかなかくせ者でして。
とりあえず、こいつと、あとスクリプトタグの実装が完了したら、
簡単なノベルを付けて公開します。
今はごちゃごちゃしたスクリプトですが、結構シンプルになる予定です。

それ以降は
・サウンド関連
・自動アニメーション
・多次元配列&配列処理コマンド
・文字列処理コマンド
・禁則処理
ってな感じかと思われます。

三次元配列使えないって話を記憶していたのですが、
PHPって配列の次元に制限がないんですね(汗)
ってか四次元配列とかって何につかうんやろ


638:名前は開発中のものです。
06/06/01 17:09:47 O0AFqF5u
>>632
ノベルはどうしても文字主体になるから
この構文はいいと思うよ ガンガレ

639:616
06/06/02 12:35:20 LkUh0i8v
>638
どうもです。
ユーザー関数の基本的な部分の実装が終了し、スクリプトタグの実装も完了しました。
こまかい最適化が完了したら公開します。

あと、ぼちぼち他のソフトを意識しようと思いますので、
NScripterと吉里吉里/KAGとのベンチマークも行ってみようかと思っています。
両方とも使った事がないのですが、NScripterが早いという噂なので、
とりあえずはNScripterよりも早く動く事を目指します。


640:名前は開発中のものです。
06/06/02 12:51:37 P/9tZRJZ
>>639
URLリンク(gamdev.org)
ドゾ

641:616
06/06/02 15:20:50 LkUh0i8v
>640
どうもです。今試してみました。

えーっと、
1/8200倍なんすけど。orz
変数の保持&検索がかなりお粗末なので、ここを修正したとしても、
「吉里吉里TJS 1580ms 1/7.9倍」
には間違いなく勝てないな。
ここまで差があると勝気にもなれん。


642:616
06/06/02 16:07:27 LkUh0i8v
修正です。
Debugになってたので、Releaseでビルドし直したら
1/2880倍
でした。

まぁ、ぼちぼちかな。

643:616
06/06/03 18:34:01 sKvGtuWC
只今、可変長引数と戦っています。
更に一部パフォーマンス向上の為に作り直しをしています。
恐らく3日ほどかかるかと。
まぁ、どうがんばっても、解析と実行を同時に行っている仕組み上、
それほど早くはならないと思いますけど。

一応中間コード化は考えており、解析&処理部分も考慮して作成していますが、
めんどくさいので、ずーっと先の話になると思います。


644:名前は開発中のものです。
06/06/03 20:45:24 GvphIaF0
>>616
うぉぉ燃えてますね。
頑張ってください!

645:616
06/06/04 08:16:15 SntmuNLp
>644
どうもです。
もちろん仕事をしながらなので、開発速度も遅いですが、ぼちぼちがんばります。

バリバリのGUI付けるから、IPAの未踏ソフトウェアに採用されてくれんかなぁ。


646:167
06/06/04 09:21:16 G61hUNNh
>616
頑張って下さい!
俺も頑張りますよ(´Д`)

とりあえず、UIを簡単に作れる様に現在はVBでいうコントロール系のクラスを作成中。
何時になったら、次期バージョンを公開出来るのやら………。

647:616
06/06/04 12:21:48 SntmuNLp
>646
どうもです。おひさです。
167さんもがんばって下さい。

実はPCゲームは3Dしかした事ないので、構築の参考にさせてもらいます。
こっちもGUIは別プログラムとして提供する予定ですが、
年内には無理でしょうね(汗)


648:名前は開発中のものです。
06/06/09 02:24:58 0Ck7i5yh
>>632-633あたりを見ていたら面白そうなんで
今の内にphpを勉強しておこうと思うんだけど、
参考書でオススメがあったら教えてくらさい。





649:616
06/06/10 07:13:20 Fx9J/386
>648
どうもです。
僕はPHPの本を持っていないのですが、
通称「赤マンモス本」と言われる本が良いと聞きます。(かなり古い情報ですが・・・)

ここから内容の全てをDLできるようですね。
URLリンク(www.sra.co.jp)

あと、PHPはApacheと組で使うのが一般的ですが、
コマンドラインでOKなら、Windows版のPHPはDLして展開するだけで使えますよ。


650:616
06/06/10 07:23:39 Fx9J/386
どうもです。
ちょっと仕事でバタバタしててなかなか更新ができてません(汗)
早朝から深夜まで本職でPCを触っていると、少しの合間を見て趣味でPCを触る気が起きないってのが本音かもしれませんが・・・。

15日ぐらいには暇になるので、遅くとも今月末にはまともな状態になっていると思います。
ただ、サウンドの処理方法をまだ模索している状態なので、音が鳴らないかもしれません。

もうしばしお待ち下さい。m(__)m

651:名前は開発中のものです。
06/06/10 15:15:56 ymU9FsZP
>>616さん
648です。

解説書をまるまるネットで見られるとは!
ありがとうございます。
頑張って勉強します(^^)

お忙しそうですが、ツールの更新、がんばってください。


652:名前は開発中のものです。
06/06/10 19:50:17 KzbJDQpz
Mac 関係 ない?

653:616
06/06/11 17:22:15 2i8J0flh
>652
えーっと、僕に対する質問ですかね?
他のスクリプトプログラムは知りませんが、
僕のやつはMACでは動きませんし、今の所は動かす予定もないです。

MAC MINIを道ばたで拾えれば考えてもいいんですが(笑)


654:vvmの人
06/06/22 01:37:55 gwgYmfG5
ぜんぜん製作とは関係ないけど。
あまりに酷かった月夜の立ち画を更新しといた。

でもやっぱりだめぽ。
全員だめぽ。


えーと、あと、対応表も更新しときました。
URLリンク(f58.aaa.livedoor.jp)

製作自体はほぼ止まってます。
スタイルの不具合を修正したくらい。

655:167
06/06/22 20:42:31 2JxKbps5
御久し振りです、色々と在った課題も終わったので復帰します。
恐らく、今週末で基本インターフェースの実装が完了するかと…出来たらいいなぁ(´Д`)

656:616
06/06/23 09:15:21 okE/rtU3
皆さんごぶさたです。
なんかいきなり相棒のubuntuさんが動かなくなってしまって、とりあえず復旧が完了。
ああ、納品まであと6時間・・・。
とりあえずこいつを終わらせれば開発に戻れると思うので、月末までにはなんとかなるかと。

消えたと思われそうなのでカキコ。


657:名前は開発中のものです。
06/06/24 02:45:08 F3qNjD4C
>>654-656
皆様お疲れさまです。
ここはマッタリペースなんで、大丈夫だいじょーぶ。
お仕事とか研究とか大変ですが、ガンガッてください。


658:616
06/07/01 10:25:50 QC8Murvy
XPから2Kに移行したら、DirectXSDKが動かない・・・。
うーん、我ながら馬鹿な事をしてしまった。
どっか、8.1aだっけ?落ちてないかなぁ。


659:名前は開発中のものです。
06/07/01 13:19:05 ACe0Rxfq
>>658
616さん、お疲れさまです。

探してみたら

・8.0a for Win2000
 DX80NTjpn.exe 7,067KB

・8.1 for Win2000
 DX81NTjpn.exe 7,632KB

これらが見つかりましたが、容量的に見ておそらくSDKじゃなくてランタイムですよね。
役に立てなくてスミマセン……。


660:616
06/07/02 02:01:31 jT7MX+mi
いえいえ。
わざわざどうもです。

できれば2000で開発したかったのですが、
とりあえず、XPのノートがあるので、そっちで開発する事にします。


661:616
06/07/02 02:19:11 jT7MX+mi
ってか、この際、DirectXを使わないってのもありかも。
と、酔っぱらいは考えております。

今からじゃ大変だけど、勉強もふまえてSDL使ってオプソにしてやろうかなぁ。
いやいや、恥をさらすだけになるかぁ。
うーん・・・。


662:名前は開発中のものです。
06/07/02 10:25:26 vMNjbmZv
>>658
調べてみました。

■Old&New年表
 URLリンク(www.sofarts.com) によりますと

 ●2001年
  DirectX 8.0a SDK(1月)
  DirectX 8.0b SDK(4月)
  DirectX 8.1 SDK(11月)

 ●2002年
  DirectX 9.0 SDK(12月)

 となっていますので、8.1aは無く、8.1になるのかもしれません。


この8.1SDKですが、

■C MAGAZINE 2002年1月号
 URLリンク(www.cmagazine.jp) の「特別付録CD-ROM」に
 入っていたようです。
 版元には、残念ながら在庫はないようです。
 
 

663:名前は開発中のものです。
06/07/02 12:12:29 J3rm3a1t
別にわざわざ8.1なんぞ入れる必要は無い。
Windows2000が(December 2004)までしか対応して無いってだけだから
(December 2004)を入れれば良いよ。

664:167
06/07/03 16:53:47 k84d22nz
御久し振りです、とりあえず慌ててうpしてみました
URLリンク(abyss-21.hp.infoseek.co.jp)
まだ分類とかはしてません、まあ数日中にはするかと思います(´Д`)


665:名前は開発中のものです。
06/07/04 12:38:10 3i9La5CA
>>664
167さん、お疲れさまです。
早速、拝見しようとしたのですが、
exeやシナリオデータが無いっぽいです。
ご確認、よろしくお願いします。

666:616@携帯
06/07/07 21:00:41 novb6yRr
皆さんどうもです。
レス付けれなくってごめんなさい。

結局はノートで開発する事にしました。
これなら合間見て開発ができるので。

とりあえず、なんだかんだと、忙しくってあまり進んでませんが、
開発が嫌にならない程度に進めていきます。

667:167
06/07/08 15:49:22 9orDCRSQ
URLリンク(abyss-21.hp.infoseek.co.jp)
またまた遅れましたが、分類も完了させましたorz
見目は全然変わってませんが、内部的には全然変わっています(´Д`)

>665
有難う御座います、宜しければまた見てやって頂ければ(礼

668:VVMの人
06/07/09 20:38:36 EuaC5kUj
Safariの対応をもちょっとマシにした。

動作速度が終わっているが、
メッセージスキップ(メッセージ流れ中に キーダウンorマウスクリック)を使えば何とか読める。

多分アンチェリが遅いんだとおもう。

669:167
06/07/20 18:53:12 AwJzD0Ue
保守



試験(の所為で開発が)休みデース(;´Д`)

670:名前は開発中のものです。
06/07/25 23:00:07 X/7X5uN6
キリキリはゲーム起動する時の魚のアイコンがなんか嫌だ。

671:名前は開発中のものです。
06/07/31 17:02:52 ZQUgq7Gz
魚のアイコンはいくらでもかえられるが、やはり動作が重くてイヤンヌ

672:名前は開発中のものです。
06/07/31 17:22:27 mUvZX0vm
そんな重いか?

673:167
06/08/14 02:13:36 S40zD8c3
保守兼ねて、近日中にアップする予定です(´Д`)

674:名前は開発中のものです。
06/08/23 09:59:07 wVnLNfiV
ほしゅ
お疲れ様です

675:167
06/08/24 00:03:14 /eXlzFQI
近日中とのたまいながらも、ちょっとした改造に手を付けてたら止まらなく(;´Д`)
24~25と旅行に行くので、それまでには間に合わせられたら………いいですねorz

676:名前は開発中のものです。
06/08/24 00:19:38 hl8UeJSy
>24~25と旅行に行くので、それまでには
出発まであと何時間?

677:167
06/08/24 00:51:06 /eXlzFQI
36時間………orz

678:名前は開発中のものです。
06/08/24 04:47:31 hl8UeJSy
>24~25と旅行に行くので
って書いてあるから24日出発かと思った。明日25日の昼出発か。

679:名前は開発中のものです。
06/08/24 13:14:21 buswa0FX
マターリ待ってますので旅行楽しんできてくださいな

680:名前は開発中のものです。
06/08/24 13:40:43 /eXlzFQI
>678
25~26の間違いでしたorz

基本的なコーディングは終了したので、後はデバッグを残すのみ…間に合うかなぁ(´Д`)

681:167
06/08/25 09:38:02 jrxmWGLu
何か半ば一人でスレ回しているような、いいのかなぁ?(´Д`)
出発まで二時間弱、サンプルを後一つテストしたらうpします('='

682:名前は開発中のものです。
06/08/25 10:13:57 jrxmWGLu
終わったぁっヽ!(;´Д`)ノ

URLリンク(abyss-21.hp.infoseek.co.jp)

やはり、見目は以前とは変わっておりません(;´Д`)
変更点としては、
・命令を1種類追加した
・一部の命令に修正を加えた
・ボタン・選択肢の挙動に修正を加えた
・小規模なリファクタリング(主にプラグイン実装に向けて)
といった感じです、次回こそはコンフィグ/セーブ/ロードのUIを実装します(´Д`)

683:167
06/08/25 10:15:34 jrxmWGLu
682=167です、って手が千切れてるっ!?Σ(;´Д`)
それじゃあ旅行に行ってきます、初東京、HEYが私を待っているっヽ(´―`)ノ

684:名前は開発中のものです。
06/08/25 13:18:18 Dk+d8Pjf
いてらさーい&乙!
東京かwwwwすれ違ったら声かけてwwwwwwww

685:名前は開発中のものです。
06/08/30 03:01:44 NaGlz63p
167氏のツールに密かに期待してます
有名所以外の殆どのノベルツールは途中放棄か開発中止
なんで頑張って下さい(´・∀・`)

686:167
06/09/01 23:36:04 rkfXRnHT
>685
有難う御座います、かなり遅々とした進行ですが見守って頂ければと(´Д`)
ゲーム製作と平行して作っていますので、ゲーム製作が崩壊しない限りは多分続きます(笑



しかし、次は何をしたらいいのやら…とりあえず暫定的なUI付けて、.1.0化してしまおうか(´Д`)

687:名前は開発中のものです。
06/09/02 10:20:13 eWKt0lWh
普通委託だろ

688:167
06/09/02 16:28:38 Fd1liBPp
>687
すみませんが、もうちょっとくやしく(´Д`)

689:名前は開発中のものです。
06/09/02 16:37:20 z39240xp
普通委託だろ!!(# ゚Д゚) ムッキー
( `Д´)フォオオオオオオオオオ!


690:167
06/09/02 19:55:54 Fd1liBPp
>689
そのネタ分かる人が居るとはw

でも、全くもって>687の意味が分からないのですが(´Д`)

691:名前は開発中のものです。
06/09/02 20:03:36 oesB5Kxd
おれも作ってみようかな

692:167
06/09/03 02:06:45 66Tm+XR+
>691
是非、宜しければ参加してみては如何でしょうか?(´Д`)















一人ぼっちはいやぁぁぁぁぁぁぁぁぁ!!!(゜Д゜)

693:名前は開発中のものです。
06/09/03 18:51:02 eey2yLha
がんがれw

694:691
06/09/03 21:11:21 cU2iM9bL
>>167
おー
おれ仕事の関係で今日からやっと夏休みなんだよね(´д`)
どこまで出来るか分からんがやってみるか

じつは何度か作ったことはあるけど、途中で飽きたりソース間違えて消しちゃったりで
完成したことないんだ

695:名前は開発中のものです。
06/09/04 13:40:50 bi9qwFDh
あるあるwwwwwww
コンパイラだの構文解析のとこだけ作って満足してしまって
実際に動作する部分は画像処理とか分からなくて丸投げ

696:691
06/09/04 17:08:07 LrSgxQcd
directx初期化とウィンドウ周り、あとアイドリングループを書いた
ゲームは久しぶりなんで牛歩すぐる。。。

どうせ自分で使うんだし、カチカチに構文解析したりしなくてもいいんだよな
むしろスクリプトに不都合があったらフリーズするくらいの勢いでおkと開き直るぜ

697:167
06/09/04 22:42:18 /CCmq6NR
>695
画像処理とかはyaneSDKとかライブラリに任せてしまうのもアリかと(´Д`)
何から何まで作ってたら、それこそOSも自作しなければなりませんし(´Д`)

>691
はじめましたか、頑張ってくださいませ(´Д`)

698:691
06/09/05 23:03:17 gvw63Bma
URLリンク(members3.jcom.home.ne.jp)

・タイトル画面
・BGMとSE

のみ!
タイトル画面もスクリプトで定義しようかと思ったけど結局専用クラス作った
スクリプトは HTML のタグっぽくしてみようかな

699:167
06/09/05 23:35:14 wZ6FAlYi
>691
早速見させてもらいました。
おお、Delphi+QuadrupleD使いさんですか。私も使ってた事があるので凄く親近感(´Д`)
お互い、また~りと頑張っていきましょう(´Д`)

700:167
06/09/08 00:35:53 UgywsUje
意外にプラグイン仕様って面倒なんですね、ほぼ全部作り直しです…orz
やるべき事は分かっているとはいえ、凄く面倒臭いです…安西先生…。

701:691
06/09/08 16:58:34 1VBGugvG
ボタンとかスクロールバーなどのインターフェイスをコーディング中。
単調で楽しい作業じゃないので遅々として進まない。
あと終了画面作った。
URLリンク(members3.jcom.home.ne.jp)

ところで OGG のデコードに時間が掛かるのか、曲再生と画面が同期しないぜ。
こういう問題ってファイル先読みで簡単に回避できるんだろうけど、
今後スクリプトで曲再生することを考えると、先読みを前提にした
スクリプトってのもどうなのかなって思う(´д`)
たとえば、

 //スクリプト開始時など余裕のあるときに読まなくちゃだめ
 SoundLoad 0, "Hoge.ogg";

 ~色々な処理

 //画像表示と同時にさっき読んでおいた曲を再生
 ImageLoad 0, "Hoge.bmp";
 ImageShow 0;
 SoundPlay 0;

ってやるよりは、

 //バッファにロード
 SoundLoad 0, "Hoge.ogg";
 //バッファに読み込んだ直後に再生できる
 SoundPlay 0;

のほうがわかりやすいよね。
どうしよう・・・
とりあえずゲームの進行上問題があるわけじゃないから後回しにするか。

702:691
06/09/08 17:02:43 1VBGugvG
>>167
ノベルツールでプラグインって珍しいでつね
どういう機能をもたせるのですか?
画面演出とかかな

703:名前は開発中のものです。
06/09/08 23:15:14 on10xxCb
いや、むしろそこじゃなくて
ノベルライブラリでプラグインとは珍しいと小一時間(ry

704:167
06/09/09 02:32:07 BEgS0IlO
>691
拡張命令・画面効果・画面更新等を拡張可能にしようかなぁと(´Д`)
>703
いや、まあ、そうですが…機能は多いに越した事は無いでしょうし(´Д`)

705:691
06/09/10 01:30:35 v/7m/wWm
なかなかすすまん・・・

・終了確認画面
・環境設定画面の一部
・BGMの再生ライブラリを変更

URLリンク(members3.jcom.home.ne.jp)

706:691
06/09/12 22:46:00 oVDOT1SQ
チクショー
やっぱり文字描画周りの最適化がうまくいかん・・・
GetGlyphOutline+縁取り文字のコストが大きすぎて描画のたびにループが引っかかる
フォントキャッシュも使ってるのにどうしたらいいのか

縁取りするときって
1:描画したい文字をテクスチャに描き出す
2:まず上下左右斜めの8方向に少しづつずらしながら影となる部分を転送
3:最後に真ん中の文字を転送
ってするのがいいのか、それとも文字を描き出すときにいっしょに影の部分も描いちゃうのか
どっちがいいんだろう
後者はテクスチャ作成のコストは掛かるけど画面転送は一度で済むよな・・・
うーん、キリキリとかってどうやってるんだろう

707:167
06/09/14 22:47:04 Mu0alcRU
両方試してみて、良い方を選べば良いのでは?と駄レス(´Д`)

URLリンク(abyss-21.hp.infoseek.co.jp)
プラグイン実装に向けて内部の処理を大幅に変えました…つ、疲れたorz
とりあえず、ソースコードの一括置換機能は慎重に使うべきですね………それだけで、約10日分の作業がロールバックorz

708:691
06/09/16 01:02:54 NN0IE0OR
おk
ノベル部のおおよその青写真は見えてきた

>>707
両方だめな場合はどうしたらいいんだー!!
というわけで第三の可能性に期待

709:名前は開発中のものです。
06/09/16 12:11:28 jovjB3vC
>GetGlyphOutline+縁取り文字のコストが大きすぎて描画のたびにループが引っかかる 
気になったんだが、描画の度にGetGlyphOutline使ってるのか?
画像バッファを別に用意してバッファに縁取り文字を描いた後、描画時には画像を転送してるんじゃ無いのか?

710:691
06/09/16 13:27:01 NN0IE0OR
みなさんこんにちは
無駄に速かったフレームレートを60から30に下げたぜ

>>709
うんにゃ
テクスチャに書き出してるのは一回だけです
その書き出す作業が重いみたい

縁取りの方法でいま試してるのは、
 ペンを太くして、
 StrokeAndFillPathで作業用ビットマップに文字描いて、
 オーバーサンプリングしてアンチエイリアスかけて、
 テクスチャのαチェンネルにコピーして、
 真中にもう一回普通のペンで文字を書く

あんまり綺麗じゃないけど代わりに結構速くなったかも
文字の端が切れてるけどとりあえずキニシナイ
URLリンク(members3.jcom.home.ne.jp)

711:691
06/09/18 02:45:01 iMJQ2DE5
ああ、休みが終わってしまう
URLリンク(members3.jcom.home.ne.jp)

とりあえず形にはなった…かな?
暇をみて手直ししようっと

712:167
06/09/21 21:38:12 EwmQaT2V
>691
私もそろそろ休みが終わりに近付いて参りました(´Д`)

プラグインに対応可能にしておこうと、悪戦苦闘中………STLが使えなくなるのは辛いorz

713:691
06/09/23 00:46:18 GaUh6ZuC
URLリンク(members3.jcom.home.ne.jp)

・文字を一文字づつ表示させる
・コンフィグで文字表示速度変更可能にした(効果薄)
・その他いろいろ最適化?

相変わらず文字描画が遅くてぶちきれそうですよ
キーボードのボタン押しっぱなしにして効果をスキップさせるとよく分かる
異常な遅さだ
これ以上はもうおれの手に負えない予感がする
どうしたらいいのか見当もつかん

キリキリなんか文章を早送りしても全然引っかからないのに
ほんと一体どうやってるんだ?????

714:名前は開発中のものです。
06/09/25 23:42:47 mUEtTpI8
ざっと見ただけだけど、Enterキーを押してから縁付き文字を描画してるよな?
画面切り替わり時とかに画像バッファにできるがぎり縁付き文字を描画しておいて後は転送するだけってのはどう?

715:名前は開発中のものです。
06/09/26 01:48:00 uC9Pmxg/
>713
パスカルだからソースは読んでないけど、毎フレーム完全更新してるだろ。
キー待ちで30%、文字が増えるとだんだん増えるとかアリエネー。

Direct3Dでハードウェア使ってるんならともかく、
自前で処理するなら更新量の少ないノベル系は差分更新が基本。

って、Direct3D使ってるのか。
毎フレーム、システムメモリ→ビデオメモリ転送をやってる臭い。

後バックバッファが初期化されてなくて、電脳戦士ポリゴン状態。

716:691
06/09/26 23:02:19 5GK4Zf+o
URLリンク(members3.jcom.home.ne.jp)

・ループ内ループを少なくして速度アップ&負荷軽減?
・クリック待ちマーク表示

>>714
うん、こんな感じ
 0: 文字描画先用にでかいテクスチャを用意する
 1: 文字ごとに転送先矩形とα値を持ってて、ループが回るごとにα値を足していく
 2: α値が0以上の文字を全て表示
 3: 表示中の文字のα値が一定に達すると次の文字を作成する(ここが重い)
 4: 文字を全部描画し終わったら一文字づつ表示するのを止めて、でかいテクスチャを一枚表示

> 画面切り替わり時とかにできるがぎり縁付き文字を描画
メインループと文字作成処理を別にするってことだろうか
これをやるとなるとシナリオの先読みが出来なくちゃいけないよな
排他処理とかやった事ないんだけど・・・ちょっと考えてみる


>>715
うーん、確かに画面全体更新してるけど、転送は気になるほどにはコスト掛かってないんだよな
それよりも「文字を作る部分」が致命的に重い
>>714の言うみたいに文字を作るタイミングをどうにかすればどうにかなりそうなんだけど

> 後バックバッファが初期化されてなくて
ええー、D3DDevice.Clearってやつでしょ
入れてるのに・・・
あ、あとCPU占有は直ってると思ふ

長文超スマソ

717:名前は開発中のものです。
06/09/27 01:47:02 Lg5LzC0m
>716
初期色じゃないのか。
でもPresent毎に、画像が表示されていない部分がピンクと緑に交互に点滅する。
Clearの引数が変なのか?

あと文字送り時と待ち時で文字の影が微妙に変化してるのが気になる。

718:691
06/09/27 05:45:03 OT3HMnk+
おはよーう

>>717
> 画像が表示されていない部分がピンクと緑に交互に点滅する。
うーん、もしかしてロゴとタイトルのところかな?
フルスクリーン時に確認できたぴょん。
Zバッファが作成されてないのにクリアしようとした?のでうまくいかなかったのかも

> あと文字送り時と待ち時で文字の影が微妙に変化してるのが気になる
テスト用の画像を読み込んでみたところ、画面描画が斜めに歪んでいるのを確認(´д`;)
テクスチャ座標の指定方法がまずかったみたいだ。
丸め誤差かな~とも思ったけど、座標をそれぞれ-0.5したら直った・・・ような気がする
URLリンク(bbx.hp.infoseek.co.jp)

言われたところを手直ししてみた。
直ってるといいなぁ。
URLリンク(members3.jcom.home.ne.jp)

みんなありがとう
PCは一つしか持ってないので試してくれるとめちゃくちゃ助かる!

719:名前は開発中のものです。
06/09/27 14:57:45 Lg5LzC0m
>718
直リン出来たっけ?直ってない
URLリンク(gamdev.org)

720:691
06/09/29 05:50:49 QV+p/gWm
URLリンク(members3.jcom.home.ne.jp)

・シナリオファイルにコメントを仕込めるようになった
・ラベルジャンプ実装
・軽めの禁則処理
・環境設定を保存/読み込み
・エフェクトスキップ(ただしシステムエフェクト以外。今のところ背景のクロスフェイドのみ。。)
・文字描画をさらに高速化

>>719
(T∀T)
なんでClearがうまくいかないんだろう?
ポケモソ色になる理由もわからん。。。
普通に
D3DDevice.Clear(1, nil, D3DCLEAR_TARGET, $FFFFFFFF, 1.0, 0);
ってしてるだけなんだけどなぁ
Zバッファもステンシルも作ってないのに何でこれじゃ駄目なんだ?

原因がわからないんで、画面クリアする方法として白いテクスチャを貼るようにした
環境設定の「ソフトウェアクリア」で適用できる
かなりの力技だ・・・

721:167
06/09/29 08:10:48 7dA9h7AY
DLL対応として、黙々とソースコードを書き換え中。
対した成果にもならないのに、御苦労様と自分を褒めてみやがります(;´Д`)

>691
>ポケモソ色になる理由もわからん。。。
一昔前のゲームによく発生した現象ですなぁ、確か同様にDelphi+QuaDで作られたGeoってゲームも発生した筈。
案外、QuaD側の何らかのバグかもしれません。あるいは、ハードウェアとの相性か。

722:名前は開発中のものです。
06/09/29 18:06:46 bhyX8J2r
>720
>D3DDevice.Clear(1,?nil,?D3DCLEAR_TARGET,?$FFFFFFFF,?.0,?);
第一引数が0でないなら、
第二引数には正しいD3DRECT配列をセットする必要が。

環境設定を選択したり呼び出そうとしたりすると、強制終了する。

723:691
06/09/29 21:55:49 QV+p/gWm
>>721
ライブラリってハード等の内部を知らなくても使えるんだけど、
何か問題があったとき何がいけないのかすら分からず困るって今回実感したっす・・・
これまで報告された不具合は、自分の環境では何ともないのもあるんだけどなぁ
ともあれDll対応がんがってください!

>>722
> 第二引数には正しいD3DRECT配列をセットする必要が
おーそうだったのか早速やってみたよ

強制終了については、恐らく文字描画部分においてロックした範囲外に描きこんでいるか、
もしくは画面転送時のテクスチャ座標の不正だと思う。ここじゃないかと思われるところに手を入れてみた。

もしこれでも駄目なら、アプリケーションのログ(AppLog.txt)が出力されるようになってるので、
そのログに「■ TConfiguration を作成し終わりました」って一文があるかどうか確認お願い致します(´д`;)
この一文がなければコンフィグクラスが作成すらされてないようだから問題は文字描画だと思われる。

(テスト用なので余計なファイルを含んでおらず軽いです)
URLリンク(members3.jcom.home.ne.jp)

724:名前は開発中のものです。
06/09/29 22:05:02 bhyX8J2r
>723
00013: TConfiguration を作成します
00014: ■ TConfiguration が TTitle に割り込みました ■
00015: 環境設定背景テクスチャ をパターンNo.7に登録しました
00016: TTitle を削除しました
00017: TConfiguration を削除しました
00018: ■■■ アプリケーションは正常に終了しました ■■■

725:691
06/09/29 22:24:50 QV+p/gWm
>>724
thx
不具合の該当個所が分かったので見直してみる

726:167
06/09/30 01:54:31 CWRN1laE
>691
そこでオススメ、ライブラリの改良ですよ。
ある程度言語に精通していれば、少し位の改良なら可能な筈です。
不具合と思うのなら見つけて修正しちゃいましょう、私もyaneSDKをホイール対応に書き換えましたし。
ただ、注意すべき事としてはライブラリの改良に夢中になって制作が進まなくなってしまうかもしれません。
経験者は語る、ですよ。アハハハハハ('A`)………orz

727:691
06/10/01 04:52:48 dnondVMz
わっかんねー
クリッピングは適正に行われている。不正な範囲への描画はしてないはずなんだ。
そもそもそれが強制終了の理由ならおれのマシンでも落ちてるだろうしなー
そうすると文字描画以前の問題、「そもそもテクスチャが作成できていない」ことも考えられる
もしくは・・・何らかの理由で画像が失われているとか?

>>724さんへ
誠に申し訳ないのですが、さらに詳細なログを吐くものを用意しました
根本的に直ってないと思われますので ”必ず” 落ちると思いますが、試してみてはいただけないでしょうか?
前回のログを見る限り、メモリにゴミは残していないと思われますので、その点では安心ですね(ぉ
URLリンク(members3.jcom.home.ne.jp)

728:691
06/10/01 05:03:16 dnondVMz
>>726
ウヘヘ
QDいろいろ書き換えてますよ

デフォルトだと起動時に自動的にウィンドウモードで起動してしまい、
その後、再度適正なサイズでフォームを初期化しなおさなければならないのでフォームがちらつくんですよね
それがイヤなんで、強制初期化をしないようにしてあります

ともあれライブラリ無しじゃおれのような日曜プログラマがゲーム作るなんて考えられませんね
こんなものがタダで手に入るんですからスバらしい世の中になったものです(しみじみ

729:名前は開発中のものです。
06/10/02 01:29:09 UlsNOh/C
00013: TConfiguration を作成します
00014: ■ TConfiguration が TTitle に割り込みました ■
00015: 環境設定背景テクスチャ をパターンNo.7に登録しました
00016: 文字属性をセットしました
00017: 数字用のをテクスチャを作成しました (256, 32)
00018: 文字0の描画を行います
00019: LockedRect(6, 0, 19, 23)
00020: 文字0の描画が終わりました
00021: 数字テクスチャ をパターンNo.8に登録しました
(略
00056: 文字9の描画が終わりました
00057: 数字テクスチャ をパターンNo.17に登録しました
00058: ボタン ■ゲームに戻る をセットしました
00059: ■タイトルに戻るテクスチャを作成しました (256, 32)
00060: TTitle を削除しました
00061: TConfiguration を削除しました
00062: ■■■ アプリケーションは正常に終了しました ■■■

730:691
06/10/02 06:52:30 SjsAmGkd
>>729
うおおおおおお
超ありがとう
おかげで原因を特定できたと思う!!

選択肢も実装できたんで今夜にでもあぷするね

731:691
06/10/03 06:32:43 VF5p6dxQ
ohayo-

URLリンク(members3.jcom.home.ne.jp)

・リターンキーの押しっぱなしを禁止にした
・スキップはコントロールキーで行うようにした
・選択肢を作れるようにした
・ファイル間のラベルジャンプを可能にした
・フレームレートを60に戻した(描画処理は2フレームに一回)
・ゲーム中にF2を押すとタイトルに戻れるようにした
・文字のオーバーサンプリング品質を2x2から4x4にした

強制終了の原因は文字描画じゃなくて、テクスチャをクリアする部分だった
そこで範囲エラーが出てたみたい
見当違いのところを見直してたんだから見つからないわけだ(´Д`;)
これで駄目だったらおれは首を吊ってお詫びするしかないだぜ?

732:名前は開発中のものです。
06/10/03 23:33:39 o1GE8YJf
>731
ソフトウェアクリアにチェックが入っていると、
ロゴからタイトル、タイトルからスタート、の画面切り替わりの一瞬、ピンク(or緑)が出る。
チェックを外してあると問題ない。

733:691
06/10/04 23:14:32 kQAZxApl
>>732
おk、サクッと直したぜ
つか>>722で教えてもらったClearがしっかり機能してるみたいだから、
もうソフトウェアクリアは要らないな

バックログ用のスクロールバーを作ってるんだけど、
ログのページ数によってツマミの大きさが変化するようにしたいなぁ
そうすると、ただツマミの画像を用意するだけじゃ駄目だから、結構骨が折れる・・・

ちょっと商用ゲームの体験版行脚してくる ≡┌| ∵|┘

734:167
06/10/05 00:48:01 GiAiv8xj
>691
進んでいるようで羨ましい限りです、頑張って下さい(´Д`)
こっちは、string→char[]→mystr(自作文字列コンテナ)………全然、進んでる気がしませんorz
STLがDLL←→EXE間で使えればこんな苦労もせずに済むのですがorz

735:名前は開発中のものです。
06/10/05 01:09:37 Rdmm7845
自作文字列コンテナとか作ってないでDLL、EXE間は普通にchar*で受け渡しすればいいんじゃないの?

736:167
06/10/05 08:08:52 GiAiv8xj
>735
関数間のやりとりは勿論それで構わないのですが、
問題は構造体としてデータをやりとりする時なのです(´Д`)
そういう時にはchar[]では足りず、とはいえ互換性やメモリ関係でSTLは使えずorz
という事で、急遽stringと関数名で互換性を持つ自作文字コンテナを作っていたりします。
(c_strとsize、コピーコンストラクタと代入演算子程度なので難しくはありませんが)
で、その変更に伴ってコードのあちこちを弄繰り回しているワケで…どちらかというと、そっちの方に時間がかかっているワケです。

737:名前は開発中のものです。
06/10/05 10:10:15 XYVQ+Y1d
えーと、それはコンパイラが替わるとすぐ使えなくなる糞プラグイン仕様ですか?

738:167
06/10/05 18:00:25 GiAiv8xj
>737
どうでしょう、あるいはそうかもしれません(´Д`)
現状ではSTLをDLL←→EXE間で使わず、データの受け渡しは関数あるいは構造体で行うようにしています。
そしてその構造体は私が定義したもの以外はほとんど使っていません(今調べてみたら、HWNDとRECT位です)
また、アラインメントもソースコード側で設定するようにしています。
しかし、クラスや構造体のメモリ配置が異なるコンパイラ間で一致しているという保証は無いっぽいです。
よって、現状では異なるコンパイラでプラグインが作成できるという保証はありません(´Д`)
(ただ、COMとかの事を考えるとWindowsの標準的なコンパイラ(VC、BCC)はメモリ配置が一致してるっぽいです)
(実際のところ、テストしてみなければ真偽は分からないのですが)

つまるところ、あらゆるコンパイラに対応といった形式は取らない可能性が高いです。
BCCとVCだけに対応してたら良いかな~、といういい加減かつお気楽思考で。
というか、構造体のメモリ配置すら一致していなければハンドルの受け渡しも出来ないんですが…。
という事で、現状は糞一歩手前プラグイン仕様(仮)です(´Д`)

739:名前は開発中のものです。
06/10/05 18:31:29 WFfOZN/r
吉里吉里のプラグイン機構がなかなか無理矢理で参考になるかもしれない

740:167
06/10/05 19:02:45 GiAiv8xj
>739
めっちゃソースコード多いですね、全部読んでたら人生終わりそうです(´Д`)
とりあえず、プラグイン関係を見させてもらいます。情報提供、ありがとうです(´Д`)

741:691
06/10/07 08:59:03 wJ08v4YK
URLリンク(members3.jcom.home.ne.jp)

・バックログできたかも(詳しくはRead Me参照
・文字表示速度がいんちき臭かったので見直した
・ソフトウェアクリア廃止
・一部のシステム用画像を常に保持するようにした

というわけで以前に比べてメモリ喰います。
といってもビビるほど占有したりしないですが・・・。

バックログの文字描画スピードが気がかりだったんだけど、
最適化を繰り返したおかげか、何とか実用に耐えるぐらいにはなってると思ふ。
CPUパワーによっては重く感じるかもしれないんで、ちょっと試してみてくれませんか。

742:名前は開発中のものです。
06/10/10 01:14:00 VVRIseRt
Youその調子でスクリプトじゃなくてGUI化汁!

743:691
06/10/11 00:29:21 szAi/qJj
---------ここからチラ裏

現状報告および開発メモとか愚痴とか

1:ずっと気になっていた文字列の左端が切れる原因がわかった!
縁の幅を考慮してなかったからみたいだぜ
URLリンク(members3.jcom.home.ne.jp)

2:MMXによるピクセル操作について
8バイトづつ処理しようとしたらループ内の命令が多くなって逆に遅くなった(´Д`;)

3:LockRect市ね
今までテクスチャ全体をロックしてたんだけど、それよりも必要な矩形だけを
ロックしたほうが速くなるんじゃなかろうかと考えて実践してみた
つまりちょっとした描画ついてもその都度LockRectを呼ぶ事になるわけだが、これがまた逆に重い…
なるべくLockRectを呼ぶ回数を減らすようにしたほうが速いのかも

4:ビットマップのパレットがわかんないんです(><)

ここまでチラ裏--------------

>>742
すみませんよくわかんないです(><)

744:167
06/10/11 12:58:19 v5NKuri3
URLリンク(abyss-21.hp.infoseek.co.jp)

アップデートしました、し か し 変 更 点 は あ り ま せ ん ( ; ´ Д ` )
内部仕様を大幅に変更しただけです、しかしこの変更のおかげでプラグインが実装できたかも?
二三日以内に、サンプルのプラグインを作成してうp出来るかもしれません(´・ω・`)

745:167
06/10/11 13:04:40 v5NKuri3
追記
>743
GUI化は専用のエディタを作らなければなりなせんよ、よってスクリプトを先に作るべきかと。

たとえば、Text "発言者名", "内容";という命令があった場合、
Text→発言者名と内容を入力→スクリプトをアプリケーション側が記述といった感じでしょうか。
簡単に言えばホームページ作成ソフトと同じですね、HTMLを弄らなくてもノベルゲームが作れるというか。

746:名前は開発中のものです。
06/10/11 13:09:20 9Q/4jY+z
高機能版Yuuki!を目指しちゃいなYO!

747:691
06/10/12 00:23:32 m2DwlIiA
URLリンク(members3.jcom.home.ne.jp) (音なし)

・文字色・フチ色を自由に変更できるようにした
・ホイールの回転で読み進められるようにした
・文字キャッシュの検索方法を変更して高速化?

速度アップのためにいろいろやってみたけど、速くなったんだかなってないんだか・・・
特にメッセージスキップはもっと速くなって欲すぃなぁ
現状を文字で表すなら「ぅおおおおおお・・・・!」だとして、
希望としては「ぅふぬぉおおおおおぉぉぉぉぉお・・・・・!!」ぐらいにはなって欲しい

>>745
エディタかぁ
ゲームよりそういうのを作るほうが好き( ´,_ゝ`)

>>746
同じDelphi製ということで、実は密かに目標・・・というか参考にしてたりして
エディタがユニークだと思う

748:691
06/10/12 04:29:15 m2DwlIiA
URLリンク(members3.jcom.home.ne.jp)

すまん、高速化のいい方法を思いついたので上げなおしだ
メッセージスキップがスーパー速くなったかも試練
あと句読点ウェイト入れてみたよ

つーか寝てねーんだよ! 今日も仕事あqswでrftgyふじこlpあzsxdcf
うわあああああああああああああああああああああ

749:名前は開発中のものです。
06/10/12 22:55:03 4adqTnrf
大学生の俺は暇組み、更に学祭中という神イベント発生中。

750:名前は開発中のものです。
06/10/12 22:56:06 4adqTnrf
はい日本語おかしいですね orz
こんな俺は地方駅弁orzorz

751:名前は開発中のものです。
06/10/13 19:50:48 DxADPv/2
時代は私大だ、国立なんて話にならん。

752:691
06/10/13 20:39:29 YV5yxr+U
流れに逆らってすまんが

ゲーム部分に構造的欠陥がみっかったので一部作り直すことにした。
結果として実行速度を落とさず、且つ処理量を大幅に削減することができた。
超すごいぜおれ!

こんな感じ
URLリンク(members3.jcom.home.ne.jp)
フチを太くしてみたり
URLリンク(members3.jcom.home.ne.jp)
文字間隔を変えてみたり
URLリンク(members3.jcom.home.ne.jp)

そんな超すごいおれからみんなに質問があるんだけど・・
吉里吉里にルール画像を使ったトランジションってあるけど、あれどういうふうにやってるんだろう?
ルール画像を参考にして単純にα値を加算していくのかと思ったんだけど、ルール画像を調べてみると
RGB(0, 0, 0)のピクセルがあるんだよぅ このピクセルは加算していっても意味ないよねぇ

753:167
06/10/13 22:20:01 0R6SaG7C
>691
おめでとうございます!…とも言ってられませんなぁorz
私も頑張りませんと(´・ω・`)

下記の話ですが、私もよく分かりません(´Д`)
ただ、トランジションの種類にもよるかと思われます。

・最終的に、「完全」に入れ替わる場合
・一部混合された状態が、「完全」である場合

恐らく上がトランジションの効果だと思われますが、その場合は誤魔化しているのではないかと。
具体的には、α(α値)×a(比例定数)+1みたいな。いや、想像なので答えにならないかもしれませんが。

754:名前は開発中のものです。
06/10/13 23:36:08 XAQthbNe
ソース見てないから判らないけど

alpha = min(max(a + t,0),255)
a : ルールアルファ
t : -255 → 255

こんな感じじゃないの。
Direct3Dでやるのは難しかったような気がする。

755:名前は開発中のものです。
06/10/14 02:49:19 QHMCKQ0j
普通にPixelshaderかな

756:名前は開発中のものです。
06/10/14 08:38:07 wDIV82eQ
>755
ノベルの動作環境にピクセルシェーダを要求なんて、今現在のところギャグじゃね?

マルチテクスチャでSetTextureStageStateを弄ればなんとかなりそう?
もしくはRenderTargetなテクスチャを使ったマルチパスでも可能なのかな?

757:名前は開発中のものです。
06/10/14 09:59:35 Tkny+AqF
URLリンク(www.nhk.or.jp)

このくらいはやってくれよ

758:691
06/10/14 13:23:33 7hCa6/d9
おおーすげーレスついてる

>>753-754
> α(α値)×a(比例定数)+1
> alpha = min(max(a + t,0),255)

ふーむなるほど
こんなのよく思いつくなぁ

>>755-756
初めて目にする単語ばかりで頭がクラクラしたけど、最期の力を振り絞って調べてみたよ
ピクセルシェーダって、また別にスクリプト書かなくちゃいけないのか・・・
アセンブラみたいだけどこれまた難しそうだなあ
あと実行環境に縛りがあるみたいだね

マルチテクスチャについては、特にここを読んでみた URLリンク(platz.jp)
ああ、えーと? 何が書いてあるのかすら分からないんですが日本語の再勉強からはじめた方がいいでしょうか

うー、この両者はおれにとってはまだ敷居が高そうです
とりあえずPascal+MMXでゴリゴリ書いてみて、それで速度が出ないようなら試してみますー
フレーム毎に全画面書き換えするのが怖くもあるけど、操作するのはαだけだから
それほどクリティカルな速度遅延にはならないはず、と勝手に楽観してます

>>757
URLリンク(gedo-style.net)

759:名前は開発中のものです。
06/10/14 14:31:31 tsJdaQzl
>>754
>Direct3Dでやるのは難しかったような気がする。
これはギャグのつもりか?
普通にalphaテストで出来るよ。

760:691
06/10/14 16:47:20 7hCa6/d9
URLリンク(members3.jcom.home.ne.jp)

うーんできちゃったかもしれん
テクスチャのαチャンネルをクリアあるいは$FFにするためにMMX使ったけど、それ以外はPascal直打ちー
それでも"そこそこ"速度は出てるみたいだ
最適化したらもう少しだけ速くなるかも?

ゲーム中、4回トランジションを行っており、
効果終了までそれぞれ 100, 60, 120, 140 フレームを要するようになってる
命令について詳細は Scenarioフォルダ参照のこと
コントロールキーでメッセージスキップさせちゃうと効果もスキップしちゃうので注意だぜ

ところでZソートがおかしいらしく、文字の描画順がヘンな事に気付いた
まったく、次から次へと問題が見つかるなぁ

761:691
06/10/14 17:36:27 7hCa6/d9
ゲェェーッ文字のα値の計算がおかしい!

一日に何回もすまん、ちょっと修正した
上のリンクに上げ直したよ

762:名前は開発中のものです。
06/10/14 20:59:33 NApT4IfZ
alphatestじゃ滑らかじゃないからヤダヤダ

763:名前は開発中のものです。
06/10/15 00:20:45 H7M4nsmQ
>759
これの一番下こと?
URLリンク(www.platz.or.jp)
アルファテストだと描くか描かないかの二択だから、
クロスフェード的な切り替えは出来ないんじゃ?
って意味か>762 書いてて解った。

>760
例によって強制終了。
最初の
_BgDraw Transition

_BgDraw CrossFade
にかえると、
最初のBGを表示するところまで延命するけど文字が出る前に死。

ついでに環境設定も死。

764:名前は開発中のものです。
06/10/15 00:35:43 H7M4nsmQ
>760
ついでに思いつき。
毎回書き換えなくても、
一度ルールアルファを絵に書き込んだのなら、
あとはD3DTSS_ALPHAOPのD3DTOP_ADDとD3DTOP_SUBTRACTで、
頂点カラーの操作だけで出来そうな。

765:691
06/10/15 01:06:29 ZmNwMkpc
一撃死キタ───(゚皿゚)────!!!!

もしかしたら LockRect の D3DLOCK_DISCARD が悪さをしてるのかもしれん!
いやきっとそうに違いない!そうだったらいいな
しかし該当する部分で書き換えたのはそこぐらいだものな

D3DLOCK_DISCARD フラグを0にしたテスト版です
例によってログを吐きつつ実行しているので、動作がもっさりするかもしれません
うごけ~うごぉけぇえ~
URLリンク(members3.jcom.home.ne.jp)

> D3DTSS_ALPHAOPのD3DTOP_ADDとD3DTOP_SUBTRACT
さっそく調べてみます

766:691
06/10/15 02:35:05 ZmNwMkpc
>>764
SetTextureStageState(0, d3d8.D3DTSS_ALPHAARG1, Dword(D3DTA_TEXTURE));
SetTextureStageState(0, d3d8.D3DTSS_ALPHAARG2, Dword(D3DTA_DIFFUSE));
SetTextureStageState(0, d3d8.D3DTSS_ALPHAOP,   Dword(D3DTOP_ADD));
を設定しつつ頂点色を 0x0~0xFF へインクリメントしてみた。実行速度は確かに速い!
でも最初にルールのα値をそのまま書き込んじゃうと、白いところが最初から白くなっちゃう(´д`;)
(当たり前だ!)

でもこれ、なんかすごくおしいような気がするぜ
もうちょっと研究してみるか

767:名前は開発中のものです。
06/10/15 02:37:25 H7M4nsmQ
環境設定とトラジ未使用で生存。

1: C:\Work\novel_test\imgs\Bg1.bmp を読み込みました
2: ルール画像 C:\Work\novel_test\imgs\左回り.bmp を読み込みました
3: 背景の描画方法はルール画像によるトランジションが選択されました
4: テクスチャのαチャンネルを塗り潰します...

768:名前は開発中のものです。
06/10/15 02:41:11 H7M4nsmQ
>766
前半はSUBTRACTの255->0で

769:691
06/10/15 03:54:36 ZmNwMkpc
URLリンク(members3.jcom.home.ne.jp)

>>768
でけたー!さいこー
トランジションは直ったかもしれない
ループ内でアンロックしてた・・・
なんでおれのPCはこれで動くんだ? おまえどれだけ頑強なのかと問い詰めたわけだが

環境設定は何がいけないのかわからん・・・
もうちょっと見直しが必要だ

770:691
06/10/15 09:18:55 ZmNwMkpc
みんな落ち着いて聞いてほしい
おれもだいぶ落ち着いてきた

さっき友達からグラボ借りてきてドライバ入れたらWindowsがおかしくなった
そしてOS再起動したら

作 業 し て い た H D D が ぶ っ 壊 れ た

BIOSでも認識しないし電源を入れるとカラカラ音がしてシュゥウウウ・・・っていう
OS入れなおしてみたけどだめだった。なぜかDVD-ROMまで応答しなくなった
なんだこれ
おれがなにをしたっていうんだよ最悪だ
なんでよりによってこのタイミングでこのドライブなんだよ
各種パスワードも2chのログも全部消えたのか
眠くなってきたよパトラッシュ・・・

771:名前は開発中のものです。
06/10/15 09:53:53 yU568J+m
今は、おやすみ

772:名前は開発中のものです。
06/10/15 10:19:33 TsWQJW5K
766,768のやり方は軽くていいんだけどその代わり吉里吉里でいうvague値が使えないから
トランジション用のテクスチャをUSAGE_DYNAMICで作って
CPUでアルファ値を書き換えるってやり方もそのうち試してみてもいいと思うよ

と流れを読まずに下記子

773:名前は開発中のものです。
06/10/15 10:51:53 TsWQJW5K
ついでにSUBTRACTは古いグラボで対応してないのがあった気がするんで
機会があったら調べてみるのもいいかもね

と流r

774:691
06/10/15 13:25:52 ZmNwMkpc
あーもうあったまきた
見てろよこうなったらサーバに残ってたソース使って絶対完成させてやるからな!

ただし明日からな!

>>773
実はおれもその話が気になってた
D3DTSS_ALPHAOPを使ったものと、環境依存のないPascalを使ったものの二種類を用意しておけば問題ないかもな

775:名前は開発中のものです。
06/10/15 19:31:36 H7M4nsmQ
ご愁傷様です。
これに懲りずに頑張れ。

ついでに、これに懲りてバックアップ多めに。

>773
SUBTRACTが駄目でも、MODULATEを使えばそれなりに見せられないかな。

>772
これか。
URLリンク(devdoc.kikyou.info)
確かに今のやり方だとvagueが最大?で固定されてしまうのかな。
うーん思いつかない。

776:691
06/10/17 21:43:49 HTib+2UI
おいすー

およそ>>760程度にまで復旧できたぜ!
高速スキップ、トランジション、文字色変更、バックログ、ホイール操作、文字キャッシュ検索高速化など。
つーかカスタマイズしたライブラリまで消えちゃって、これを作り直すのに時間を割いたわけだが(´д`;)
まったくおれの集中力と粘り強さには毎度まいど驚嘆させられるよな

とはいえメッセージスキップから復帰すると100%落ちる(!)のでまだうpできねーです・・・
一回作ったんだから何とかなりそうなものだけどなかなかうまくいかないなぁ

>>775
そのページ読んでみたけどvagueって面白いパラメータだね
αを計算するとき、しきい値を考慮すればできるかな?
うーむ、境界がガクガクになりそうな予感・・・

777:691
06/10/21 04:53:57 D3IMVVB2
URLリンク(members3.jcom.home.ne.jp)

・ウィンドウ位置を保存できるようにした
・トランジションの実行方法をPascalとDirect3Dの二種類から選べるようにした
・ループ内ループをさらに減らして最適化

負荷ちょっとだけ減りました。スキップ速度はこのくらいあればいいよね?
あー、次は変数と条件分岐か・・・

778:名前は開発中のものです。
06/10/21 08:49:29 5+bS6DmJ
>>691
「指定されたファイルが見つかりません。」ですた……

779:691
06/10/21 12:47:23 D3IMVVB2
>>778
(; ・`д・´)
檄スマソ拡張子間違ってた!
なんかJ-COM垢の機嫌が悪いみたいであっぷろーどできなくなっちゃたから、
ゲムデブにご協力いただくことにしますた
URLリンク(gamdev.org)

ついでといっちゃあなんだが
タイトルに戻るとき、音を全部消すようにできてなかったので直しといた

780:167
06/10/21 20:24:51 veRCNjBt
御久し振りで御座います(´Д`)
私は現在、プログラマが死後に堕ちるであろうリファクタリング地獄の三丁目に居りますorz
何時終わるのやら………誰かボスケテ(;´Д`)

一応、次回更新時には
・自動改行
・Z座標の実装
・プラグイン仕様の完全実装
を目標に出来たら良いなとか思ってみたりもしないでもないです。

781:名前は開発中のものです。
06/10/22 05:29:18 0GnJFT5M
良スレage

782:名前は開発中のものです。
06/10/23 23:15:09 phivSpR5
>>779
いいですな~。
軽快に動いてます。
トランジションも良い感じ。
作ってみたいという気になりますた。

783:691
06/10/24 06:22:55 z/n6rwSL
>>782
おお~ありがとう
感想をいただけると張り合いが出るなぁ
このところ仕事が大変でなかなか進まないけど、今後ともこのスレともどもよろしく願いますよ(←偉そう

if文のオペランドのとり方に少し迷ってるよ
これまでの命令文の書式を踏まえるなら
  _if (Hoge=0), *labelname
ってな感じだろうけど、分岐でラベルジャンプしかできないのはなんかかっこわるいよな
条件式のあとに好きな命令を複数入れられたらいいんだろうけど…
  _if (Hoge=0) then
    _Color $FFFFFF
    _Goto *labelname
  _endif;
とか。
でもこれじゃパーサかコンパイラ作るのと同じじゃねとか思ったりして
あくまで「ノベルツール」の本分を忘れないようにしないといけないよな

784:名前は開発中のものです。
06/10/27 10:41:03 c6GTcHI3
どっちが見やすい・理解しやすいかは
プログラマーとプログラマーでない人では感覚が全然違うかんね
難しいところだね ガンガレ

785:691
06/10/29 21:14:45 uPpqMaj3
あんま進んでねぇーーー

URLリンク(members3.jcom.home.ne.jp)

・リンカ(選択肢)のの色を動的に変更できるようにした( !LinkerColor !LinkerEdgeColor )
・タイムウェイト( !TW )の挙動を直した

以前からタイムウェイトの挙動が気になってたんでこの際直しといた
ちなみに0~255までの数値を指定できるぜよ
今回もエラーチェックは甘めなので、添付のソース書き換えるにしても
変な座標とか数値とか指定すると簡単に落ちると思ふ


条件分岐? なにそれ( ´∀`)
条件式で凝ったことやろうと思うとけっこう大変なんだこれが

786:名前は開発中のものです。
06/10/31 22:38:08 sRR/DbRF
空気読まずスマソm(__)m

スキャナー選びでもの凄い悩んでんだけどお勧めのスキャナーない?

787:名前は開発中のものです。
06/11/01 18:27:31 VwaCyLKm
スキャナはA4までだと辛いよ

788:名前は開発中のものです。
06/11/01 18:59:30 hxUT5DqW
ってことは結構高め?

789:名前は開発中のものです。
06/11/01 22:07:04 p3enbp+j
>>785
おまえ元クロヒツジもとい元マグロ漁船のぬだろwwwwwwwwwwwwwwwww

790:691
06/11/01 22:16:11 xDE8tosI
いまのとこ
・ゲーム中、テキストの表示・非表示を切り替えることができるようにした
・文字列型 と 32bit符号付数値型 、真偽値型の変数を使えるようにした

うpはもう少し煮詰めてからにしよう。

変数の宣言・代入について。
現状、代入は即値のみ・オペランドによって変数の型を自動的に判断するようになってる。
例えば
  !var hoge, 255 //これは数値型
  !var hoge, -255 //これも数値型
  !var hoge, 'UNKO' //これは文字列型
  !var hoge, True //これは真偽値型
とか。今後都合が悪くなるようなら仕様変更もありえるな。(←無計画すぎ!
ちなみに数値型はオーバーフロー・アンダーフローが起きないように注意して使うのが必須条件さね。
考えることが多くてそこまで面倒見切れん。

if文の条件式、即値ならすぐできるんだけどなぁ
  !if (Hoge<255) //これなら簡単
  !if (Hoge<255) and ((not Hage) or Unko) xor (Hige='ABCDE') //こんなのどうやったらいのか・・・
逆ポーランド法とか応用したらできるかなぁ

以上、現状報告でした!

791:691
06/11/01 22:24:45 xDE8tosI
>>789
( `∀´)ケケケなんのことやら
おいらはただの数字コテですぜ

792:名前は開発中のものです。
06/11/01 23:27:39 3J8+zwro
>790
!if( Foo<>0 ) and ( 1000/Foo

793:名前は開発中のものです。
06/11/01 23:28:49 3J8+zwro
書きかけで送ってしまった。

>790
!if( Foo<>0 ) and ( 1000/Foo > 5 ) then...
とかだとRPNだとアカンよ、

794:691
06/11/02 22:13:42 Dhql3Jxs
>>793
むむ? なんでなんで? kwsk
divide by 0 とかは関係ないよね

795:名前は開発中のものです。
06/11/02 23:08:39 C7j+kj57
そのとおり、0除算が出るから。
常識的にはFooが0の時には( Foo<>0 )が成立しないので後が何であろうとも全体として不成立になるはず。
しかし、RPN処理の場合は正格評価になるので( 1000/Foo > 5 )を必ず評価してしまうことになる。
(Foo 0 <> 1000 Foo / 5 > and あたりになるかな?)
これは望ましい状態とは言いがたい。
なお、notとxorは正格評価で問題ない。


796:167
06/11/03 10:28:34 MzOzsI/Z
>795
横レスですが、成る程、参考になります(´Д`)
とはいえ、RPNの便利さは捨てられませんが………orz

797:名前は開発中のものです。
06/11/03 11:49:55 GIcTFPfW
おまけ:いくつかのスクリプト/プログラミング言語でのANDの評価(ORも同様)。

C/C++   &&    短絡 *1
java    &&    短絡
VB     And    正格
       AndAlso  短絡
delphi   and    短絡
scheme  and    短絡
perl    &&,and  短絡
TJS2     &&    短絡
NScripter *2

*1 C++で演算子オーバロードした時は正格
*2 なし:式を扱えない

798:691
06/11/03 20:02:48 LiNNIOVd
>>795
すごくよくわかった。795タンは物知りだなぁ(*´∀`*)
それと>>797を見る限り、短絡評価のほうが誤解がなくてよさそうだね
うーん、どうしたらいいんだろう

  (a) Foo 0 <> 1000 Foo / 5 > and
  (a-1) Foo 0 <>
  (a-2) 1000 Foo / 5 >
  (a-3) <a-1> <a-2> and

(a)をこういうブロックに大別して…、普通に上から順に式を評価していくだろ?
評価の過程で divide by 0 が出そうだと判明したら、
実際の計算はせず、「そのままだとエラーが出そうだ」という情報だけを記憶しておく。
んで(a-3)にきたら、まず<a-1>をみて、偽なら<a-2>の評価は無視して全体の評価として「偽」を返す。
<a-1>が真の場合、続いて<a-2>の評価を見るわけだが、「エラーが出そうだ情報」を記憶しているときは
これ以上続けるわけにもいかんので、これまでの作業をすべて放擲して if 文を抜ける、とか。

なんだ・・・おれは何を書いているんだ?わけわかんなくなってきt


ここまで↓作ってはしゃいでたら(-2*-5)とかの単項演算子が使えないことに気づいたorz
URLリンク(members3.jcom.home.ne.jp)
付け足していくより最初からやり直したほうがはやそうだ…
また明日か…

799:名前は開発中のものです。
06/11/03 20:44:41 GIcTFPfW
>798
こんなんはどう? RPN作る/処理するのが面倒になるけど。

A and B
 A #dup not #ifskip<N> #pop B #marker<N>
A or B
 A #dup #ifskip<N> #pop B #marker<N>

#dup スタックの一番上を複製する
#pop スタックの一番上を捨てる
#ifskip<N> スタックの一番上を取り出し、
trueなら#marker<N>まで読み飛ばす
 falseならそのまま続行
#marker<N> 読み飛ばされる
※入れ子になる場合があるのでNが重複しないよう気をつけること。

A and B and C
 A #dup not #ifskip<N1> #pop B #dup not #ifskip<N2> #pop C #marker<N2> #marker<N1>
( Foo<>0 ) and ( 1000/Foo > 5 )
 Foo 0 <> #dup not #ifskip<0> #pop 1000 Foo / 5 > #marker<0>

三項演算子もできるかな
A?B:C
A #ifskip<N1> C #ifskip<N2> #marker<N1> B #marker<N2>

800:名前は開発中のものです。
06/11/03 22:23:23 GIcTFPfW
>798
> URLリンク(members3.jcom.home.ne.jp)
(25*Hage/24)が 25 Hage 24 / *、つまり/が*より優先になってる(or 右結合になってる)けどOKなの?

801:167
06/11/03 23:12:17 MzOzsI/Z
複雑なRPNですね一度基盤を(自力で)作り上げたのに、今から組み直すのはぞっとします(;´Д`)
とりあえず、今はVer1.0を目指して頑張っていこうかなと。作業が八割方終了したので、近々新Ver出せそうです(´Д`)

802:名前は開発中のものです。
06/11/03 23:15:24 LErpqGYA
【スクリプトをちょっと紹介させてください】
アドベンチャーゲーム用スクリプトシステム「MICoスクリプト」を開発しました。
軽いこと&商用ゲームでの使用可能な高性能を目指して設計しており
複雑な演出も簡単に作れるシステムです。
詳しい紹介は公開サイトにありますので、よろしければ使ってみてください。

公開サイト
URLリンク(mico.x0.com)


803:名前は開発中のものです。
06/11/03 23:37:17 pcqCA54V
ダウンロードできません

804:名前は開発中のものです。
06/11/04 00:20:08 s0zwtZjj
URLに¥をつけるなんて、相当●●だなぁ。大丈夫か?>>802

URLリンク(mico.x0.com)
URLリンク(mico.x0.com)


805:名前は開発中のものです。
06/11/04 12:59:51 zX4Hlg4d
ぬはDelphiなんだよな。のらだいこさんとこのやつは見たのか?

806:名前は開発中のものです。
06/11/04 14:03:18 uWIJc3Ba
のらだいこ本人乙。

807:名前は開発中のものです。
06/11/04 20:39:01 zX4Hlg4d
俺は違うぜwwwwwww通りすがりのVIPPERwwwwwwwww

808:名前は開発中のものです。
06/11/05 14:24:28 bBy3ooVM
再び空気読まずスマソ

ペンタって何インチぐらいがいい?

809:691
06/11/06 06:03:55 /PkNNPJx
オハヨー

URLリンク(members3.jcom.home.ne.jp)

ここ↓のを参考にして、Delphi に移植してみた。これはすごい!
URLリンク(www.h4.dion.ne.jp)

実際の計算は行わず、中置記法を逆ポーランド記法に返還するだけのものだ。
↑に倣って、式が変だったりするとエラーを出力するようになってるはず。
ちなみに演算子の優先順位は以下の通り。Delphi と一緒やね。
優先順位は括弧を使って変更できるよ。

1 位(最高)   not,-(単項演算子、RPN 上では neg に変換される)
2 位             *,/,mod,and
3 位             +,-,or,xor
4 位(最低)   =,<>,<,>,<=,>=

しかし式が複雑になるほど変換するコストが気になるなぁ
果たしてループ内でストレスなく機能してくれるだろうか?
インタプリタの限界はどこだ。

810:691
06/11/06 06:47:54 /PkNNPJx
>>799
んー、難しい! 
これ、not はどこに掛かってるの?
だめだ、仕事終わってからまた考えよう。
>>800
あと右結合、直ってると思いますぜよ

>>801
ガンガレ。超ガンガレ

>>805
情報thxですよ。こんな便利なものがあるとは知らなかった。
んでも、今やってることってそれほど難しいことじゃないから、まずは自分で作ってみたいんだよね。
などと大見栄を切ってみるテスト。もう後には引けないぜ?

>>808
わかんないけど33インチぐらいでいいんじゃね
URLリンク(www.pentaputter.com)

811:名前は開発中のものです。
06/11/06 07:07:41 WD4G+Tat
>810
A and B → A #dup not #ifskip<N> #pop B #marker<N>
を例にする(A,Bは真偽値を返すRPN式)。
[]はスタック状態(左がスタックトップ)、
//以降はコメント。

●Aがtrueの時
[]
 A #dup not #ifskip<N> #pop B #marker<N>
[true]
 #dup not #ifskip<N> #pop B #marker<N>
[true,true]
 not #ifskip<N> #pop B #marker<N>
[false,true]
 #ifskip<N> #pop B #marker<N> //偽だったので読み飛ばしは無し
[true]
 #pop B #marker<N> //結果はBのみで決まるのでAは要らない
[]
 B #marker<N>
[B]
 #marker<N> //マーカは読み飛ばす
[B]
 (END)

812:続き
06/11/06 07:08:58 WD4G+Tat
●Aがfalseの時
[]
 A #dup not #ifskip<N> #pop B #marker<N>
[false]
 #dup not #ifskip<N> #pop B #marker<N>
[false,false]
 not #ifskip<N> #pop B #marker<N>
[true,false]
 #ifskip<N> #pop B #marker<N> //真なので対応するマーカまで読み飛ばす
[false]
 (END)

813:167
06/11/09 10:39:11 FF84JFMS
ほしゅ(´Д`)
ソースコードの変更は既に終わったのですが、パフォーマンスが極端に落ちてますorz
なので、プロファイラを入れてあっちこっちを弄る日々………誰かボスケテorz

814:167
06/11/09 13:36:01 FF84JFMS
誰か見ている事を期待しつつ。何とか、パフォーマンスが極度に落ちている部分を発見しました(´Д`)
ですが、何故落ちているのかが理解出来ず………誰か説明出来ますか?orz

if((m_Log_Text.at(m_It)>=(char)0x81 && m_Log_Text.at(m_It)<=(char)0x9F) || (m_Log_Text.at(m_It)>=(char)0xE0 && m_Log_Text.at(m_It)<=(char)0xFF)){
m_It += 2;
}




if((m_Log_Text.at(m_It)>=0x81 && m_Log_Text.at(m_It)<=0x9F) || (m_Log_Text.at(m_It)>=0xE0 && m_Log_Text.at(m_It)<=0xFF)){
m_It += 2;
}

と変えるとパフォーマンスが急激に悪化します、ただのキャストの有無だけなのに何故なのでしょう(´Д`)

815:名前は開発中のものです。
06/11/09 14:38:01 zlLv3Pnq
みてるよノシ
けどサパーリワカラン

816:名前は開発中のものです。
06/11/09 14:53:50 +EWAYAdH
>814 increase warning level of your compiler!

817:名前は開発中のものです。
06/11/09 15:17:42 z1ieNEFL
パフォーマンスはさておき、一時変数作れよ
比較式を見直せよ

unsigned char hoge = static_cast<unsigned char>(m_Log_Text.at(m_It));
if( !(hoge < 0xA0 && hoge > 0xDF) ){}

818:167
06/11/09 20:25:13 FF84JFMS
基本的に、そこでしか.atは使っていないのでたった4つの命令で一時変数を作るのもどうかと思い(´Д`)
あと、直感的ではない比較式は極力使わないようにしています。オープンソースを前提に制作していますので('='

819:名前は開発中のものです。
06/11/09 20:37:44 +EWAYAdH
多分そのif文には
 else ++m_It;
が続くと思うけど、テーブル作っておけばいいんじゃね。
 m_It += TABLE[m_Log_Text.at(m_It)+OFFSET];

 m_It += TABLE[m_Log_Text.at(m_It)&MASK];
みたいな感じで。

820:167
06/11/09 21:10:31 FF84JFMS
>816
何か、警告が出るという事でしょうか?
>817
呼び出し頻度が高くない部分なので、テーブルにするまでもないかと。
三角関数みたいな複雑かつ演算に時間を要するものでしたらテーブルを作った方が良いかもしれませんが、
上記のは比較的単純な比較式で出来ますし。テーブルを作る分だけ、余計にキャッシュを圧迫しそうです(´Д`)

821:名前は開発中のものです。
06/11/09 21:53:59 +EWAYAdH
適当に補ってその部分だけコンパイルしたら
 a.cc:14: warning: comparison is always false due to limited range of data type
 a.cc:14: warning: comparison is always true due to limited range of data type
 a.cc:15: warning: comparison is always false due to limited range of data type
 a.cc:15: warning: comparison is always true due to limited range of data type
とか。


> 呼び出し頻度が高くない部分なので、
ならそもそもボトルネックにならないはず。

> テーブルを作る分だけ、余計にキャッシュを圧迫しそうです
が、分岐は排除できるぞ。

822:167
06/11/09 22:37:42 FF84JFMS
>821
う~ん、適当に補ったからだと思われますです。
/Src/AbyssLib/Command/Cmd_text.cpp内に、具体的なソースはあります(´Д`)

全体としての呼び出し頻度は高くないのですよ、ぶっちゃけスクリプトのtext命令が実行されている間にしか使われません。
だからこそ、何でこんなところが重くなるのか疑問なワケで………(;´Д`)

あと、単純な分岐条件なだけにテーブル作るまでも無いかなと。

823:名前は開発中のものです。
06/11/09 23:07:47 oeKHxQcL
/Src/AbyssLib/Command/Cmd_text.cpp内、とか言われても、そのソースはどこだよ

824:167
06/11/09 23:30:24 FF84JFMS
URLリンク(abyss-21.hp.infoseek.co.jp)です、すっかり貼り忘れてました(´Д`)
最新Verではなく、ひとつ手前ではありますが………。

825:名前は開発中のものです。
06/11/09 23:35:47 oeKHxQcL
落とせないし、そもそもURLリンク(abyss-21.hp.infoseek.co.jp)にもアクセスできないが?

826:167
06/11/09 23:37:39 FF84JFMS
確認しました、どうやらinfoseekが落ちている様ですね。
先日も落ちてましたし、落ち易いのかもしれません(´Д`)

827:名前は開発中のものです。
06/11/10 13:48:20 n/BNIL0m
>基本的に、そこでしか.atは使っていないのでたった4つの命令で一時変数を作るのもどうかと思い(´Д`)
>あと、直感的ではない比較式は極力使わないようにしています。オープンソースを前提に制作していますので('='

>三角関数みたいな複雑かつ演算に時間を要するものでしたらテーブルを作った方が良いかもしれませんが、
>上記のは比較的単純な比較式で出来ますし。テーブルを作る分だけ、余計にキャッシュを圧迫しそうです(´Д`)

>あと、単純な分岐条件なだけにテーブル作るまでも無いかなと。

やれやれ
こんな調子じゃ>>814の疑問に回答したとしても理解できるとは思えんな

828:167
06/11/10 18:55:58 5S9vD1uX
>827
理解出来るかどうかは分かりませんが、回答出来るのでしたらお願い出来ればと('='

829:名前は開発中のものです。
06/11/10 19:55:35 jEDzoqtR
if((m_Log_Text.at(m_It)>=(char)0x81 && m_Log_Text.at(m_It)<=(char)0x9F) || (m_Log_Text.at(m_It)>=(char)0xE0 && m_Log_Text.at(m_It)<=(char)0xFF)){
m_It += 2;
}




if((m_Log_Text.at(m_It)>=0x81 && m_Log_Text.at(m_It)<=0x9F) || (m_Log_Text.at(m_It)>=0xE0 && m_Log_Text.at(m_It)<=0xFF)){
m_It += 2;
}

は、意味が、結果が異なってるってのは分かってる?

830:名前は開発中のものです。
06/11/10 20:30:11 5S9vD1uX
上は右辺がchar型にキャストされるので比較時に左辺の返り値はそのまま、
下は右辺がint型なので比較時に左辺の返り値がintにキャストされる、でしょうか?
多分そうだとは思うのですが、確証は持てません(汗

831:167
06/11/10 20:37:23 5S9vD1uX
↑は167でした(汗

832:名前は開発中のものです。
06/11/10 20:41:34 jEDzoqtR
何言ってるのかよくわからんが、違う。
char + charはint型を返す。そんなことじゃない。

0x81は正の整数で、(char)0x81は負の整数だ。
WindowsのVCはcharは符号付の型だからな。

でm_Log_Textはstring型で、at()の戻り値はchar型だ。つまり下の
>m_Log_Text.at(m_It)>=0x81
は必ずfalseになる。charは128以上を表せない。

よって、中途半端なマルチバイトが出来上がるわけだ。
これが表示されなかったり、生成が遅かったりすると、処理落ちしたように見える。

つまり、その式が遅いわけではない。

何がプロファイルとった、だよ。嘘付くな。取ってないだろ。

833:167
06/11/10 21:08:21 5S9vD1uX
成る程、理解出来ました。有難う御座いますm(_ _)m

>何がプロファイルとった、だよ。嘘付くな。取ってないだろ。
嘘じゃあないですよ、実際とりましたがプロファイラでは分からなかったので、
原因が上記の部分だと断定するのに変更前と変更後のソースを比較してチェックしていました。
プロファイラの結果を役立てて断定したのかと問われれば、確かにそうではありませんが(´Д`)

ともあれ、重ね重ね有難う御座います。

834:名前は開発中のものです。
06/11/10 21:40:30 nTN0QHiT
なぜか科学者とノミのジョークを思い出した

835:名前は開発中のものです。
06/11/11 02:03:37 fPVPryGm
なんだかんだ言っても、やることをやる>>832に漢気を感じた。
ガンガレ!!>>167

836:691
06/11/11 22:58:51 Y1RZBpHm
おっすおら>>691
ほぼ一週間ぶりのプログラミング。
なんで人間は好きなことだけをして生きていけないんだぜ?


ごちゃごちゃやってみた結果、ようやく変数への式の代入ができるようになった( ゜д゜)
これで if 文に取り掛かれるぜ
懸念してたパーサの動作速度はあんまり気にならなさそうなので安心した

>>811-812
ありがとう!超よくわかっただぜ
このPRNを作るのはそんなに手間じゃなさそうなので近近にはできると思うよ

837:691
06/11/14 05:58:13 CtgyW8K3
URLリンク(members3.jcom.home.ne.jp)

・ゲーム中、右ボタンクリックやスペース押下でテキストの表示・非表示を切り替えることができるようにした
・スクリプト記述でインデントできるようになった(半角スペースまたはTAB)
・変数を使えるようになった
・命令の引数に変数を仕込めるようになった
・システム定数を定義した(True/Falseやトランジションとかに使うやつなどなど)
・!if、 !else、 !endif の実装

これまでのように変数名や命令名は大文字小文字を判断しません。

>>790で書いた通り、変数の型は第二引数によって自動的に判断されます。
  !var hoge, 255 //これは数値型 
  !var hige, 'UNKO' //これは文字列型 
  !var hage, True //これは真偽値型 
  !var UNKO, hoge+100 //これは「数値型変数+数値」なので数値型

なお演算は型が同じもの同士でないと行えません。
こんなのはだめ。
  !var hige, 'UNKO' //higeは文字列型 
  !var hage, True //hage真偽値型 
  !var hoge, hige+hage //「文字列型+真偽値型 」なのでシンタックスエラー。この行は無かったことに

いろいろ考えたのですが、数値に対しては論理演算は行えないようにしました。
  !var hoge, "$0000FFFF or $FFFF0000" //こんなのはだめ
こんなのあっても使わんと思うし。

838:691
06/11/14 06:03:12 CtgyW8K3
んで、今回の更新分でこんなことができるようになった。

!var Hoge, true
!var hige, true
//スペースを含む式はダブルクォートで囲んでやってくだちぃ
//そのうち、そんなことしなくていいように直すと思うだぜ
!if "hoge and hige"
    あいうえお
    !TextDraw
    !cw
    //if文をネストさせてみる
    !if False
        かきくけこ
        !TextDraw
        !cw
    !else
        さしすせそ
        !TextDraw
        !cw
    !endif
!else
    たちつてと
    !TextDraw
    !cw
!endif

これを実行すると
「あいうえお(クリック)さしすせそ(クリック)」
と表示される…、はず。

839:691
06/11/14 06:12:43 CtgyW8K3
っと
今ふと思いついたが、!if 文の中で !goto とか !Linker が呼ばれたらifのネストが無茶苦茶になるな
うわどうしよう、これは困ったぞ

840:名前は開発中のものです。
06/11/14 09:52:42 Gp2dNbIi
>837
*start

!if "1/0=2"
ほにゃらら
!else
ふにょらら
!endif
!TextDraw
!cw

!if "false and ( true and 1/0 )"
へにゃらら
!else
ひにょらら
!endif
!TextDraw
!cw

841:名前は開発中のものです。
06/11/14 09:57:23 Gp2dNbIi
おっと、true/falseは先頭大文字。結果は変わらんけど。

842:691
06/11/14 13:57:56 CtgyW8K3
( ゚д゚) <ムシャムシャ

>>840
テストしてくれてありがとう!

!if "1/0=2" //ここで0除算エラーでてます。この行は無かったことにされる・・・
    ほにゃらら 
!else 
    ふにょらら 
!endif 
!TextDraw 
!cw 

!if "false and ( true and 1/0 )" //げ本当だ
    へにゃらら 
!else 
    ひにょらら 
!endif 
!TextDraw 
!cw 

二番目のほうは問答無用でFalseを返さなくちゃいけないのにな。
マーカーの挿入方法がおかしいのかも。帰ったら見直してみる。
つーかこの程度の不具合、開発段階で気づけよって話ですが。やはりおれは一度首吊る必要があると思う。

あと、評価の途中でなんらかのエラーが出たら、対応する !endif までジャンプさせないとだめだな。
っていうか、これもできていて当然の動作なんだよなー(;´Д`)

843:691
06/11/14 23:03:53 CtgyW8K3
おっす

> 評価の途中でなんらかのエラーが出たら、対応する !endif までジャンプ
> マーカーの挿入方法がおかしい

ってのを2秒で直した。2秒で直した。
あとスクリプトの1行目が空行だとエラーが出てたのでそれも直した。
今後のうpは、もっとしっかりデバッグしてからするようにします(;´Д`)

844:691
06/11/16 00:04:27 nP5t6MYc
改めて

URLリンク(members3.jcom.home.ne.jp)

・and や or を使った if の評価式の結果がおかしかったので修正
・if の評価式の文法がおかしかったりしたとき!endifまでジャンプするようにした
・スクリプトの最初のほうがが空行だとエラーが出てたので修正
(・Read Meにこのスレのことを書き忘れてたので追加テヘッ)

問題のif文だけど、いろいろなパターンを試したし、耐久テストもやったからもう大丈夫だぜ!(たぶん)
とはいえ、まだ>>839の問題を含んでいるので、if 領域内でラベルジャンプしないようにしてくだちい
あー、どうすっかなこれ…。

845:691
06/11/18 07:30:59 MpWhpoQC
URLリンク(members3.jcom.home.ne.jp)

・変数を展開してテキストとして出力できるようにした( !Text )
・数値型変数の計算簡略化のための !inc !dec 命令を実装した
・タイムウェイトの引数に式が使えてなかったので修正
・二重起動を禁止した
・命令検索の順番を変更してちょっと高速化?

変数の展開は
  !var Hoge, 5
  !var Hage, True
  !var Hige, 'あいうえお'
  !Text "Hoge+Hage+Hige"
これを実行すると「5Trueあいうえお」と出力される。
普通のテキスト出力は今までどおり命令名なしでいけるぜ
なんでこんなこと(専用の命令を用意したか)になったかというと

  1.変数を含まないテキストのほうが圧倒的に多いだろうということ
  2.なるべくなら計算式を展開するコストを抑えたいという欲求

を考慮した結果である。もふもふ。
どうしても気になるなら !Text を、変数を含まないテキストでも使えばよろし。

!inc !decはDelphi互換です。数値型引数も渡せます。知らん人はこの際Delphiを勉強してみよう。
最後に、Read Me に高慢ちきな利用規約を書いてみたので読んでみてね。
うあわああーーこんなじかんだもういかなくてはあ

846:名前は開発中のものです。
06/11/18 12:24:46 aH09oUml
*start
!var Foo 3
!inc Foo
!Text Foo
!TextDraw
!cw
Foo/
!TextDraw
!cw
!Text Bar
!TextDraw
!cw
Bar/
!TextDraw
!cw
!inc 4

--End.
!TextDraw
*end
!goto *end

847:名前は開発中のものです。
06/11/18 12:27:27 aH09oUml
っと、!inc 4は要らなかった。

848:691
06/11/18 22:02:24 MpWhpoQC
ありゃ、>>845は不具合があったやつの修正前のをうpしてたみたい!
inc/decで明示的に引数渡さないとだめになってるね。

こっちが本命でつ。失礼しまつた。
URLリンク(members3.jcom.home.ne.jp)

(* !inc/!decの使い方講座 *)
  1. 整数型変数を宣言します
  2. !inc/!decの第一引数に整数型変数を渡します
 (3. このとき第二引数に整数式を渡すと、その数だけ加算/減算されます)
  4. ヤター

なお、第一引数の整数式に宣言されていない変数が記述されていると
エラーが発生し、その命令がある行をスキップします。
第二引数が整数型でない場合も同様にスキップします。
以下インクリメントのテスト。

//整数型変数の宣言
!var 変数, 0
*label1
  //変数の値を文字列に展開します
  !text "'変数の値は' +変数 +'です'"
  //5だけ加算します
  !inc 変数, 5
  !TextDraw
  !cw
  !@@
!goto *label1

849:691
06/11/18 22:08:34 MpWhpoQC
>>846
thx!

> !inc Foo
文法は正しいですがアプリケーション側の不具合で動作してませんでした。(´・ω・`)ゴメソ

> !Text Bar
ここで定義されていない変数Barが参照されているので構文エラー発生。スキップ。

> !inc 4
4は変数ではないのでエラー。スキップ。

> *end
> !goto *end
無限ループに突入してます。大ピンチ。

850:846
06/11/18 22:20:38 aH09oUml
URLリンク(gamdev.org)
・★のとこで一回余分に(つまり3回)クリックが要る
・何故かBか消える
・さらに何故かその後字が黒くなる

851:691
06/11/18 22:48:06 MpWhpoQC
>>850
y=ー( ゚д゚)・∵. ターン
毎度毎度すまん!
!Text のエラーが出たときの処理がまずかったようだ!
    ∧∧
   (  ,,)
   /  |
 ~(__)
URLリンク(members3.jcom.home.ne.jp) (差分のみ)

852:691
06/11/18 22:50:47 MpWhpoQC
後ろに余計なものをつけたおかげでURLが変だな
URLリンク(members3.jcom.home.ne.jp)

853:691
06/11/20 23:09:13 TCoOZXSp
コンフィグ画面が手狭になってきたので改築してみた
もうなんか自由すぎる
URLリンク(members3.jcom.home.ne.jp)

854:名前は開発中のものです。
06/11/21 06:01:22 xZAgq/Gk
どうせならエフェクトの時間を半分にするもつけてくれ

855:名前は開発中のものです。
06/11/22 04:20:28 ay/jEsPR
エフェクトのヘルプ画像を、多少追加してみました
キャプチャーしてペイントで保存していくだけでも
時間けっこうかかった。これでヘルプ3割ぐらい終わったかな
システム用のダミー画像の差し替え中で絵そのものが入っていないため
exeは、スクリプトを動かす部分以外は正しく動作しない部分があります

SYSTEM-NNN
URLリンク(www2s.biglobe.ne.jp)




856:691
06/11/23 21:46:47 2iFawqr+
今日は中華街でイチャイチャした。
肉まん1個500円とか超高くね?

URLリンク(members3.jcom.home.ne.jp)

・コンフィグ画面からスクリーンモードの変更をできるようにした
>>854の機能
・「スキップ中はSEを再生しない」って項目

とりあえず動くバージョンなので最適化してない。
今日のソースの汚さは異常。

コンフィグ画面改造にあたっていろいろいじってたら、新たな問題が発覚した。
現在再生中の SE に対して音量を 0 にすると何故だか知らんが音量が MAX になる。
あとBGM/SEともにフェードアウト中に音量を変更するとこれまたおかしくなる。
いつでもコンフィグ画面を出せるのが原因なんだけど、なるべくならこの機能は残したい。。。
なんだよもうめんどうくせえな

つか、もう DDSD 使いたくないなぁ…。BASS に慣れると使いづらいかも。
音量はいちいちデシベルに変換せないかんし。

857:名前は開発中のものです。
06/11/24 10:56:25 GqXnQfEk
>>855
トップの真っ赤な背景にビビリました

858:名前は開発中のものです。
06/11/25 16:50:50 CHSI80wS
>>855
誤爆の誤爆?
選考スレに書き込んでなかったっけ?
>>857
HPのことなら、こっちでは深緑を薄めたような、明るめの緑色に見える。

859:名前は開発中のものです。
06/11/26 19:36:59 AAKyS3Pm
また手狭になった。
スクロールバーも小さくしてみたんだけどなぁ。
URLリンク(members3.jcom.home.ne.jp)

けっきょく、音再生ライブラリを全部作り直した。
> 現在再生中の SE に対して音量を 0 にすると何故だか知らんが音量が MAX になる。 
> あとBGM/SEともにフェードアウト中に音量を変更するとこれまたおかしくなる。 
も直ったですよ。
1フレームあたりの計算量(しかも少数の計算)は増えたけど、このくらいならまぁいいかって感じ。
固定小数使ったら負荷軽減したりするかな。

リファクタリングとかバグ取りもいい加減飽きてきたし、そろそろ自由スプライト表示でも作ってみっかー

>>855
それ破片エフェクトってどうやってるんだろう
一枚の画像をバラバラに切り分ける方法が思いつかん

860:名前は開発中のものです。
06/11/26 20:24:42 DQKfrVBZ
ぱっと見、ボロノイ図っぽく見えるけどどうかな。

861:名前は開発中のものです。
06/11/27 11:23:31 wQG9Jm5U
>>857
おまえそれブラックTAINYANじゃね?
おめでとう。かなり運が良かったぞ

862:vvm-man
06/11/28 07:40:05 aGW5KWsL
URLリンク(f58.aaa.livedoor.jp)

や、お久す。

まぁ、黙って色々更新はしてたんですけどね。
とりあえず、大分前の話だけど、ページの読み込みをAjax的にやってみました。
ちょっと読み込みが早くなったかも。

で、最近、System.jsの中を調整してMacサファリで結構まともに動くようになったす。

それに加えIE7に正式対応。
Opera、不具合ありだが、動作自体は可能。

あと、ツールとは関係ないけど、サンプルの人物紹介、月夜の立ち絵を更新しました。
ノートPCのタッチパネルで描いたわりには綺麗に描けたと思います。


863:名前は開発中のものです。
06/11/28 08:12:08 yrb7qqAX
クリック待ちと改ページのアイコンは逆の方がいいんじゃね?
セーブできないなら予想プレイ時間を書いておく。
ネクロマンサーってタイトルを書くんじゃなくて「ゲームスタート」とか「はじめから」と書く。

864:名前は開発中のものです。
06/11/28 22:09:16 B8ch4/XT
真っ黒
何も表示されないまま2分が過ぎた
あと1分したらこのカップラーメンが出来上がるだろう

865:vvm-man
06/11/29 02:36:40 Kyo0fD77
>863
そうね。

>864
ブラウザとか言ってくんねぇとわかんねってば。


ただ、あんまし安定して動作してくれない兆候はありそう。

866:名前は開発中のものです。
06/11/29 02:58:39 GrMuZBJF
>>865
スレイプニル2.49とIE6
ノートンの馬鹿が邪魔してた
両方動いた

ブラウザでここまでできるとは驚きだ

867:名前は開発中のものです。
06/11/29 17:11:37 J2RQ6icy
>>ノートンの馬鹿が邪魔してた
これはなんとかしんと…

868:vvm-man
06/11/29 18:23:08 Kyo0fD77
(‘・ω・`)ノートン先生はなんて言ってブロックするの?

869:名前は開発中のものです。
06/11/29 19:13:51 GrMuZBJF
>>868
単に.jsの実行結果をポップアップ広告と誤検知するみたい
「広告ブロック」と「ポップアップ遮断」を無効にすると実行できるようになった
JSはよくわからんので技術的なことはアドバイスできない(´・ω・`)ゴメンネ

870:名前は開発中のものです。
06/11/30 05:57:02 8fYVUZ8f
URLリンク(members3.jcom.home.ne.jp)

・サウンドライブラリを書き直した
・選んだ選択肢をログに記録するようにした
・その他覚えてないほどいろいろ最適化

主にリファクタリング。1フレームの計算量はかなり減ったと思う。
一通り試験はしたつもりだけど、もしかしたら何か問題あるかも。
それにしても更新速度が前に比べて落ちてるなぁ。
これから忙しくなるからもっと落ちるかも試練…。年内には完成できると思ってたんだけどな。

ここからチラ裏────
ところで、そろそろサーバ容量が圧迫されてきたので、以前のバージョソは消そうと思いまつ。
現在サーバ上に置いてあるのは novel14~ です。
これよりマイナーのバージョソ(novel1~)をご所望の方は個人的にでも連絡ください。
思いつく限りの種種の方法でアーカイブを送りつけまつ(`・ω・´)b
ここまでの変遷をみてると結構感慨深いものがあるだぜ。
─────ここまでチラ裏

>>860
調べてみたけど全然理解できなかった(;´Д`)
でもたしかにそんな感じだね。

871:名前は開発中のものです。
06/11/30 06:02:11 6MmDDvnh
エラー出るんだけど。

872:名前は開発中のものです。
06/11/30 06:02:38 8fYVUZ8f
ああそうだ、いつかお知らせしなきゃと思ってたんだけど、
「しねきゃぷしょん」っていうフォントがあるとおれと同じ環境(>>752参照)になります。
今のところ使うフォントをこれに指定してるので使ってみるといいかも。
もしこのフォントが入ってないと「MS Pゴシック」になると思う。

873:名前は開発中のものです。
06/11/30 06:09:13 8fYVUZ8f
>>871
工 エ エ ェ ェ (゚Д゚; ) ェ ェ エ エ 工
ぜひ詳細きぼん!

つーかレスはやっ!

874:名前は開発中のものです。
06/11/30 06:20:30 6MmDDvnh
あ、直ってる。さっきはクリックしてもダウンロードできなかっただけ。

875:名前は開発中のものです。
06/11/30 23:29:49 8fYVUZ8f
サブルーチン機能を組み込んでみた。案外簡単にできたなぁ。
サブルーチンに飛んだ先でさらにサブルーチンに飛ぶこともできる。
実質2億回のネストが可能。

ラベルジャンプには、その名のとおり目的地となるラベルが必要だけど、
このラベルを検索するコストが気になってきた。上から一行づつラベルを探しているのが問題だ。
添付のサンプルシナリオぐらいの規模ならまだしも、これが5000行、あるいは1万行クラスの
規模になったとき、今のやり方ではかなりの検索コストを支払う可能性がある。

解決方法として、
 1: ラベルの行番号をプロトタイプのようにあらかじめ宣言しておく
 2: そもそもラベルを廃止して、行番号のみでジャンプ先を指定するようにする
 3: 一度通ったラベルは記憶しておく。二回目からの検索は高速になる
とか考えてみた。

1,2 はともに強力だろうけど、シナリオに不備があったときの修正で、
行番号がずれる可能性を考えるとイマイチかなとも思う。
3 は根本的な解決になってないので駄目。

どうしたらいんだー!
とりあえず後回しにしておこう。

876:名前は開発中のものです。
06/12/01 16:54:57 7vJA/jaU
起動時に全シナリオを走査して、ラベル位置を内部的に把握しておく
もしくはシナリオを暗号化するときラベル位置を把握しておき、それをどっかに紛れ込ませるとか?
どっちも「手軽さ」からはちょっと離れてしまうが

877:名前は開発中のものです。
06/12/01 20:34:51 cfQDTSNd
シナリオファイルを複数に分ける

878:名前は開発中のものです。
06/12/01 23:52:23 3ltBEf8r
画像キャッシュを有効にするかどうか選べるようにした。
いまのところキャッシュを有効にすると、最大でVRAMを22MBぐらい占有するようになる…。
ノベルゲームで22MBも使うってのはどうなの?(;´д`)
おれ普段ゲームしないからよくわかんないや。これって高スペックなんだろうか。

>>876
ん、結局のところ、そのあたりに落ち着くんだろうな。
あとはどうやって実装するかの技術的な話になるってだけで。

>>877
現状でシーンごとの管理や、単にファイルサイズの肥大化を防ぐ目的としてシナリオの分割はできるように作ってあるけど、
これをさらに発展させて行数制限するってのもひとつの手かもなぁ。
ただ、サンプル程度の内容ですでに200行越えだから、簡単に5000行とか超えてしまいそうな気もする。
シナリオを書くとき、常に分割を念頭においておかなきゃいけないのが手間になるんじゃねとか思ったり。
行数制限ってのは結構厳しい縛りになるんじゃないかと。
これはプレイヤーではなくて製作者側の都合だけどね。

879:vvm-man
06/12/02 06:07:38 reS/o3fC
テキストをそのまま読み込むんでなく、中間ファイルでテーブル構造をしたものを作れば?
>>876
が提案した起動時に、ってんだと起動が遅くなるじゃん。


んで、こっちの開発の話。
人物紹介画面でキャラを背景の前に立たせて見ました。

IE6,Opera,FireFoxでは不具合はなし。
何かあったら教えてください。

>>869
ポップ……それは心当たりないけど、広告はなんか分かるかも。
報告39th。

この板じゃあJavaScript分かる人って少ないよねー。

880:名前は開発中のものです。
06/12/02 08:19:43 ZjHXEGS3
>879
> >>876 が提案した起動時に、ってんだと起動が遅くなるじゃん。

測ってみた?
手元のマシンで以下の条件でラベルスキャンの有無で約40msecしか違わなかったが。
条件が変わったとしても1000倍遅くなると言うことはまあ無かろう。
# 40msecを起動が遅くなるとして問題があるというなら止めはしないが。

[計測条件]
対象スクリプト:ランダム生成したスクリプト10万行、内ラベル10001行(10%)
PC:AthlonX23800,メモリ4G,FreeBSD6.0R
プログラム言語:Perl5
計測方法 timeコマンド、4回実行で最初の1回を捨てた3回の平均値

881:vvm-man
06/12/02 08:56:26 reS/o3fC
>>880
いや、測ってない。
その程度か。

普段扱ってる相手がJavaScriptなんで過剰に高速化を意識してしまったよ。

882:名前は開発中のものです。
06/12/02 11:06:34 4YZh1zne
> PC:AthlonX23800,メモリ4G,FreeBSD6.0R
(;^ω^)

883:名前は開発中のものです。
06/12/02 17:10:41 346dJ8KD
つーか、Perlで測ってどうすんだよボケ。
まるで意味が無いベンチマークだ。

884:vvm-man
06/12/02 17:37:57 reS/o3fC
何だ。
実際のツールで測ってねぇ上に、そんな怪物マシンかよ。
朝だったんでよく読んでなかった。

885:名前は開発中のものです。
06/12/02 17:39:24 ZjHXEGS3
>883
阿呆はおまえだ。言語が違ったところで高々プラスマイナス2桁ほどしか違わん。
"起動が遅くなる" といえるほど遅いわけでないことを立証する程度にオーダーが
わかれば充分なのだから問題は無い。

886:名前は開発中のものです。
06/12/02 18:11:32 ZjHXEGS3
あ、そうそう補足。
スクリプト読み込み時スキャンが問題となるほどのことは無い、と言うだけで
中間言語化が悪であるとは言ってないので念のため。

# ネットワーク越しなら通信速度がおそらくボトルネックになるだろうから
# 圧縮可能なら中間言語化してその際ついでにラベル解析るのは
# むしろ妥当と思われます。

887:名前は開発中のものです。
06/12/02 20:05:11 8NIJ4z5J
>言語が違ったところで高々プラスマイナス2桁ほどしか違わん。
2桁って事は40msec→4000msecだな。大きく違うように思えるんだが。

せっかく計ってくれたんだが、やっぱり実際のツールでないと意味が無いぞ。


888:名前は開発中のものです。
06/12/02 22:35:44 346dJ8KD
>>885
ドアホかお前。知能0だな。

どんなPerlのプログラムで測ったのかも示さない糞が。
それでベンチマークとったつもりなんだから笑える。

お前のような糞は黙って死ね。

889:名前は開発中のものです。
06/12/02 22:53:47 zKHoHUMu
ID:ZjHXEGS3さん、薄い知識をフルに使っても…^^;

890:名前は開発中のものです。
06/12/02 22:59:15 ZjHXEGS3
>887 と言うわけでDelphiで書いて謀ってみた。
入力データは880と同じ内容だが、改行コードはCRLFに変換したものを使用した。
以下の条件で約480msec差。

[計測条件]
対象スクリプト:ランダム生成したスクリプト10万行、内ラベル10001行(10%)
PC:PIII866x2,メモリ2G,W2K
プログラム言語:Delphi
計測方法 GetTickCount、4回実行で最初の1回を捨てた3回の平均値

>888 論破されたら別理由でっちあげか。必死だな。


891:計測部(スキャンなし)
06/12/02 23:00:05 ZjHXEGS3
procedure TOKBottomDlg.NoScanBtnClick(Sender: TObject);
var
list:TStringList;
start,stop:Cardinal;
begin
list := TStringList.Create;
start := nowmsec;

list.LoadFromFile( FileNameLabel.Caption);

stop := nowmsec;
list.Free;
TimeLabelS.Caption := IntToStr(stop - start);
end;

892:計測部(スキャンあり)
06/12/02 23:00:49 ZjHXEGS3
procedure TOKBottomDlg.ScanBtnClick(Sender: TObject);
var
list,labels:TStringList;
start,stop:Cardinal;
line: String;
i: integer;
begin
list := TStringList.Create;
labels := TStringList.Create;

start := nowmsec;
list.LoadFromFile( FileNameLabel.Caption);
for i:=0 to list.Count-1 do begin
line := Trim(list.strings[i]);
if( length( line ) = 0 ) then continue;
if( line[1] = '*' ) then begin
delete( line, 1, 1 );
labels.Add( Concat( line, '=', IntToStr( i )));
end;
end;

stop := nowmsec;
list.free;
labels.free;
TimeLabelN.Caption := IntToStr(stop - start);
end;


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch