[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 09/10 11:21 / Filesize : 163 KB / Number-of Response : 448
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

▼ノベルゲームツールを作っちゃうぞ!Ver4.0



1 名前:名前は開発中のものです。 [2007/01/21(日) 00:29:07 ID:VX21mS5F]
ノベルゲームツールを制作中の人達が集うスレです。
新たなノベルツールを作ってやるというチャレンジャー歓迎。

前スレ
▼ノベルゲームツールを作っちゃうぞ!Ver3.0
pc10.2ch.net/test/read.cgi/gamedev/1059655064/

前々スレ
▼ノベルゲームツールを作っちゃうぞ!Ver2.0
pc2.2ch.net/test/read.cgi/gamedev/1040118471/

前々々スレ
▼ノベルゲームツール作っちゃうぞ!
pc2.2ch.net/test/read.cgi/gamedev/1013170036/

418 名前:167 mailto:sage [2010/08/29(日) 20:23:33 ID:zUSxxtwK]
>417
レスをありがとうございます(´Д`)

>はい先生!
>
>>派生クラスさえ作ればパックファイルからでも何からでもファイルの読み込み・書き込みが行えるようになります。
>
>こういうのは委譲の方がいいと思います。

委譲……ですか?
今現在の実装は、このような感じです。

//クラスA(セーブ/ロードを行うクラス)
class A{
void Save(IIOStream* stream){
Stream->Save(Param1);
Stream->Save(Param2);
}
void Load(IDataReader*
Stream->Load(&Param1);
Stream->Load(&Param2);
}
};

//セーブ/ロードクラス
class IIOStream{

419 名前:167 mailto:sage [2010/08/29(日) 20:25:05 ID:zUSxxtwK]
……途中で切れてしまいました(;´Д`)

//セーブ/ロードクラス
class IIOStream{
public:
~IIOStream(){}
};

class IOStream1 : public IIOStream{
void Save(param p){
fwrite(p);
}
void Load(param* p){
};

420 名前:167 mailto:sage [2010/08/29(日) 20:30:25 ID:zUSxxtwK]
……プログラマの性で、ついつい「Tab→Enter」を使用でこの様です(;´Д`)

void Load(param* p){
fread(p);
}

大体こんな感じで、データ入出力は個々のクラスにパラメータとして渡す形になってます。
確か、機能を別クラスとして作成して処理を委ねるのが委譲でしたっけ?

あ、レスの書き方が悪くて分かりにくいかもしれませんが
「派生クラス」は「データ入出力クラスの派生クラス」のことです。
こんな感じでいいのでしょうか、何かアドバイスありましたらお願いします(´Д`)


421 名前:417 mailto:sage [2010/08/30(月) 07:31:51 ID:pptN1p2m]
>>418
ふむ、そういう実装でしたか。少し想像と違いました。そういう時はBuilderパターンの変化球ですかね。

>機能を別クラスとして作成して処理を委ねるのが委譲
委譲についてはこの通りです。
別クラスにするのでHogeHogeする側がHogeHogeされる側について詳細を知る必要がなくなり、
かつ、継承と委譲は相互に置き換え可能です。
んでBuilderパターンですが組み立てる側と組み立てる流れを管理する側に分けて最終的に"製品"をreturnします。

Builder
getInstance(discriminator):Builder
buildPart1()
...
buildPartN()
...
getProduct():Product

Director
build(builder:Builder):Product

これがBuilderパターンの基本です。
Builder.getInstance(discriminator)はpublic staticなファクトリメソッドです。
これで取得したインスタンスをDirector.build(builder:Builder)にわたしDirectorは結果であるProductを返します。
DirectorはbuildメソッドでBuilderの各メソッドを適切に呼び出します。
それらメソッドのアクセスはBuilder(又はそのサブクラス)とDirectorのみにします。

422 名前:417 mailto:sage [2010/08/30(月) 07:58:28 ID:pptN1p2m]
さらに、Builderは機能ごとに継承するか委譲するかを考えます。
委譲する場合は以下になります。

Builder
getInstance(discriminator):Builder
buildPart1()
...
buildPartN()
...
setProvider(p:BuildProvider)
getProvider():BuildProvider
getProduct():Product

BuildProvider

buildPart1()
...
buildPartN()
...
getProduct():Product

Builderの実装はプロバイダに投げ、getInstance(discriminator)で適切にプロバイダを設定します。
ここから先、今回の件に特殊化した内容で書きます。

423 名前:417 mailto:sage [2010/08/30(月) 08:00:09 ID:pptN1p2m]
BuilderをProcessorとしましょう。
データの読み書きのために入出力とデータをカプセル化したクラスが必要です。

Stream

InputStream->Stream
read(date:Date)

OutputStream->Stream
write(date:Date)

Date

Processor
getInstance(discriminator):Processor
processPart1()
...
processPartN()
...
//以下必要に応じて
getDate():Date
setDate(d:Date)
setStream(s:Stream)
getStream():Stream

Dateはセーブ・ロードを行う実データです。Streamと一緒にProcessorに渡して読み書きします。
これら一連の処理をDirectorに管理させます。
こんなかんじです。Javaだとシリアライザが組み込まれてるのでそれが使えるんですがね。

424 名前:167 mailto:sage [2010/09/08(水) 00:05:32 ID:F8SH4g+3]
●購入記念に、当スレの過去ログを1から追ってみたりしてます。
私が参加したのは前スレからなんですなぁ、そもそも「私」じゃなくて「漏れ」でしたしw
当然というか何と言うか、前スレから参加したので1スレも2スレも見ておらずADVRUNの人がいるとかびっくりですよ。

……閑話休題、現在の進捗状況です。
別のこと(同人ゲームの制作請け負い)を優先に行っており
進捗はあまり捗っておりませんが、一応自分で立てたマイルストーンは達成しました。
ですので、バイナリ・マニュアル・Webサイトの更新を実施後アップロードする予定です。


425 名前:167 mailto:sage [2010/09/08(水) 00:06:14 ID:F8SH4g+3]
で、今後行う予定のこと一覧↓
・特殊演出
 雪は完成済み、あとは雨・桜・蛍を予定。
 あくまでも特殊演出の「サンプル」のつもりで作成予定。こんな演出も組み込めるよ的な感じですね。
・インタプリタ化
 リアルタイムでコンパイルかけてメモリに展開→実行でいいのでしょうか?
 製品にはコンパイル済みのシナリオファイルを添付するものと考えてますので、
 速度面であまり早くなくてもいいのではないかなと考えております。
・他言語での利用
 Luaあたりでスクリプトファイルを書いて、
 それを読んでノベルエンジンを動かせたらなと考えております。
 形式としましては、AbyssLibに追加ではなく外部拡張ライブラリを考えております。
・ジャンル複合サンプルの作成
 ADV+RPGやADV+SLG、ADV+STGなど。
 元々、当システムのメリットは組み込み用途なので……。
・アウトラインプロセッサ、IDE(統合開発環境)の作成
 この辺もまあ作れたらなと、生産性向上に。
 作成時にはC#を勉強しつつさくさくっと作る予定。
 プレイヤーに.NET FrameWork導入強要は厳しいですが、開発者相手なら別にいいですよね?w
・環境依存性を徐々に改善していく
 WindowsAPIを全て関数化して一箇所に集めて置換を容易にする、Unicode対応にするなど。
・ソースコードのリファクタリング
 今回一度行いましたが、次回はdoxygen対応に行いたいです。
 SVNは導入してみましたが、doxygenも導入すると便利そうです。マニュアル書くのはもう嫌ですw
・マクロの用意
 Cの「#define」のようなテキスト置換的マクロを用意する予定。
 あれば色んな命令のエイリアスが作成できるので、多少は入力が楽になる……筈。
・マルチウインドウ
 最近のノベルゲームでは稀によく見ますので。

426 名前:167 mailto:sage [2010/09/08(水) 00:07:03 ID:F8SH4g+3]
とりあえず行う予定のない一覧(過去ログ見つつ)↓
・動画再生
 組み込み用途なので、ゲーム開始時のOP動画ならプログラマさんが再生すればいいかなと。
 ただ、最近のノベルゲームでは合間に動画再生を挟むこともあるので作るかもしれません。基本優先度は最下位ですが。
・低スペックマシン・過去OSの対応
 もうXP以降のOS対応でいいんじゃないでしょうか(一応WindowsAPIの縛りはマクロで入れてますが)
 インターフェースクラスライブラリということで高級アルゴリズム(過去ログ表示)などしかないライブラリですので、
 低スペックマシン対応は個々のプログラマさん(またはフレームワーク)による対応になります。ですので、しないというよりはできません。

大体このような感じですね、何か希望する機能がありましたらレスいただけましたらと(´Д`)



427 名前:167 mailto:sage [2010/09/08(水) 00:22:57 ID:F8SH4g+3]
その他、www5.big.or.jp/~seraph/zero/Playability2002.htmを見て思いついたこと。
・セーブ/ロードでコメント入力を可能にする
・セーブ/ロード命令
・シーンライブラリの提供
 現在のAbyssLibの初期シーンは我ながらしょぼいです。
 なので、いくつかのシーンを収めた外部拡張ライブラリをいずれは作る予定です。

とりあえず、今回のカキコはこんなところで(´Д`)


428 名前:167 mailto:sage [2010/09/08(水) 00:23:39 ID:F8SH4g+3]
そして書き忘れてました、417さん丁寧な説明ありがとうです!参考にします!

429 名前:167 mailto:sage [2010/09/12(日) 09:53:05 ID:MVUJyKep]
現在までのスレを読了、気付けば開発開始から6年ほど経っているのですなぁ(´Д`)
6年も続けてこれたと言うべきか、6年経ってもこの様と言うべきか……(多分後者)
長老って名乗っていいかもしれませんなぁw

まあそんなどうでもいいことはさておいて。
大体のテストは完了し、あとはウェブページやHTMLヘルプを更新すれば
アップロード可能になります。たいした更新ではありませんが、今月末にはまあ上げられるかなと(。。

430 名前:167 mailto:sage [2010/09/13(月) 01:06:06 ID:e+66nL0f]
今月末と言いつつも、何とか今日中に上げられました!……ってもう月曜日やん('A`)
ともあれ、一応一区切りつきました!とりあえず、しばらくは同人ゲーム制作の方に戻ります。
締め切りがっ……!

431 名前:167 mailto:sage [2010/09/13(月) 06:05:28 ID:e+66nL0f]
っと、アドレスを張っておきますね。
abysslib.hp.infoseek.co.jp/index.html

432 名前:167 mailto:sage [2011/01/05(水) 00:25:46 ID:x17xsyhy]
お久しぶりです、すっかり過疎ってますなぁ(´Д`)
同人ゲーム制作の請負が一段落したので、色々と得られたものを元にアップグレードしていこうと思います。
今年度末までには一度上げられたらなぁと……ただ、本業がデスマーチなんですよね。困ったものです(´Д`)

433 名前:名前は開発中のものです。 mailto:sage [2011/03/23(水) 22:23:59.42 ID:6ssi6soF]
>> インフォシークからのお知らせ
>> 「iswebライト」は2010年10月31日をもってサービス提供を終了いたしました。
>> 長年ご愛顧いただきありがとうございました。

いやんばかん



434 名前:名前は開発中のものです。 mailto:sage [2011/03/24(木) 07:57:32.66 ID:1s3ZKAzd]
>>433
うおおっ、そうでしたっ!
ページは移転済みなのに、ここに載せ忘れており……。
近日中にURLを載せますのでっ!

435 名前:167 mailto:sage [2011/03/24(木) 07:59:04.63 ID:1s3ZKAzd]
名前を入れ忘れてますが、167ですか

436 名前:167 mailto:sage [2011/03/28(月) 22:20:53.14 ID:xCKPkIC5]
abysslib.sakuraweb.com/index.html
移転後のページはこちらです。
現在の作業状況は……何もかも未着手な状態です、色々と忙しいので(;´Д`)

何か希望などありましたら伺えれば考慮いたしますよー。



437 名前:名前は開発中のものです。 [2011/03/29(火) 20:22:40.80 ID:4kqLIzs4]
yy

438 名前:167 mailto:sage [2011/06/13(月) 20:37:33.13 ID:HXWa/DbF]
お久しぶりです、すっかり過疎ってますなぁ(´Д`)
(同じ台詞を半年前に、というか6レス前でしてますな)

とりあえず現状をば。
ようやく、AbyssLibのDoxygen対応作業が完了しました。
現在、変更点の再確認やサンプルなどの動作確認を行ってるところです。
サイトも全面改装して、色々とより分かりやすい内容でお送りしていきたいと考えております。
とりあえず、(できたら)今週末には最新バージョンをお見せできるかなと。

439 名前:名前は開発中のものです。 mailto:sage [2011/06/18(土) 07:49:01.56 ID:tjfUjNu2]
のぞいてはいるよ。
サイト改装するのなら、AbyssLib採用の作品を載せて欲しいかも。
見てみたい。

440 名前:名前は開発中のものです。 mailto:sage [2011/06/18(土) 15:53:47.63 ID:+AhyU/E4]
俺も定期的にのぞいてる。
残念ながらゲーム作成の予定はないが、167の人柄は好きだ。
頑張ってください。

441 名前:167 mailto:sage [2011/06/18(土) 23:58:13.93 ID:vd4FH/ii]
お久しぶりです……と言うほどは、まだ経っていませんよね?(´Д`)
アップデートファイルのうpとサイトの改装が終わりましたので、ご報告をと。

abysslib.sakuraweb.com/index.html
【アップデート内容】
・AbyssLib
 NovelPlayer::Resume呼び出し時にテキスト・発言者がクリアされるように変更
  実際にゲームに組み込んでみてのフィードバックです。
  suspendでノベルパート終了→ゲームパート→NovelPlayer::Resumeでノベルパート再開といった流れで、
  上記の変更を行っていない以前のAbyssLibだとsuspend実行時に表示されてたテキスト・発言者名が一瞬見えます。
  格好悪いので変更しましたw
 ソースコードをDoxygenに対応
  ゲームプレイヤーにメリットは全くありませんが、私ならびにAbyssLib利用者にはメリットがいくらかあるかなと。
  私は今後バージョンアップ毎にリファレンスを書き直す必要がなくなりますし、AbyssLib利用者は固定フォーマットのリファレンスを読めます。
 ソースコード上でもコンパイラ対応をVC2005以降に変更
  以前にVC2003を切り捨てましたが、ソースコード上でも切り捨てました。
  いや、まあ一部ソースをコメントアウトすれば普通にVC2003でも使えるかとは思いますが。
・BasicCommands
 駄目文字による不具合を修正
  実際にゲームに組み込んでみてのフィードバックです。
  駄目文字で文字列置換が変になる現象が発生しましたので修正を行いました。
 タグ命令実行時にガードタイムが無視される不具合を修正
 effect命令実行中にスキップが行われるとテキストウインドウが正しく表示されない不具合を修正
・ScriptCompiler
 駄目文字による不具合を修正
・ScriptPlayer2
 ユーザー入力用デバイスでマウスカーソル・マウスホイールの入力のキャプチャを行っていなかった問題を修正
 Altキー押下時にゲームが一時停止してしまう問題を修正
・その他
 公開サイトを改装
  チュートリアルをより分かりやすく、リファレンスをDoxygenドキュメントに、FAQを追加
  特にプログラマ向けリファレンスで抽象クラスの実装例を掲載したのとFAQの追加は大きいかなと。

442 名前:167 mailto:sage [2011/06/19(日) 00:07:07.35 ID:SvacW21g]
とりあえず、今後の予定をメモを元にざっと書き出してみます。

優先度:高
・アニメーションタグ
・描画タスクリストのクリア
・セーブ/ロードを行う命令を追加
・特殊エフェクト(雪・雨・桜・蛍)
・グローバルデータ、環境設定、既読履歴の一本化
・fadein、fadeout、fadeinu、fadeoutuの統廃合
・flash、quakex、quakey、quakey、quakexy命令の統廃合
優先度:中
・進化した既読履歴
・マルチウインドウの導入
・フルパスチェッカーを追加
・マクロ命令(#defineライク)
・セーブ/ロードのコメント対応
・オートセーブ/クイックセーブ
優先度:低
・インタプリタ化
・動的解析・実行
・ジャンル複合サンプル
・特殊命令(動画再生など)
・Luaでの利用(外部拡張ライブラリ)
・アウトラインプロセッサ、IDEの作成
・環境依存性を徐々に改善(OS、文字コード)
・シーンライブラリの提供(外部拡張ライブラリ)
・テキスト命令の拡張(インタプリタに変更することで動的な命令実行を可能にする)

今現に進んでいるのは特殊エフェクトですので、まずはそれを最優先で進められればと。
まあ、同人ゲームの制作請け負いやその他(仕事や勉強や趣味)でてんやわんやではありますが……。

443 名前:167 mailto:sage [2011/06/19(日) 00:11:22.88 ID:SvacW21g]
>>439-440
おお、こんな構ってちゃんな独り言に反応ありがとうございます(´Д`)

>>439
AbyssLib採用の作品は、「日常の終わり方」です。
ただ、上記作品はあくまで「ADVサンプル」なので他ジャンルとの複合も作りたいところではあります。
簡単なRPGチックなものならすぐに作れそうですが、そんなんでいいのでしょうか?(マップ歩いて話しかけたら、ADVパートに以降みたいな)

>>440
ありがとうございます、かなり猫を被ってますのでお恥ずかしいかぎりです(´Д`)

444 名前:167 mailto:sage [2011/08/13(土) 20:25:44.77 ID:Jx+QSm0S]
お久しぶりです、とりあえず現状をば。

……あまり進んでおりません、原因は転勤と夏バテです(;´Д`)
とりあえず、現在行いました改修内容は以下になります。
・画像の回転・拡縮に対応しました
今までは元々がyaneSDK対応ライブラリだったこともあり回転・拡縮はサポートしておりませんでした。
今回、サポートするように変更を加えました(といっても実装はなく、あくまでインターフェース面のサポートですが)
これで、新規にエフェクトなどを追加する際には色々とやり易くなるかなと考えております。
かけている時間に比するとあまり進んでおりませんが、まあぼちぼちと今後も次期バージョンに向け作業を進めていきます。

445 名前:名前は開発中のものです。 [2011/09/08(木) 16:55:47.99 ID:Rn99QBFa]
ノベルデータのXMLで標準タグみたいなものってあるんでしょうか?



446 名前:167 mailto:sage [2011/09/19(月) 13:36:03.75 ID:B1spqzys]
お久しぶりです、現状冬コミ準備で忙しく進んでおりません(;´Д`)

>>445
ノベルデータのXMLと仰られますと?
そもそも標準規格のようなものを聞いたことがないのですが……。



447 名前:167 mailto:sage [2011/11/06(日) 21:13:59.47 ID:BAbg9SN1]
お久しぶりです、現状久々に開発を再開しております(´Д`)
現在、命令の統廃合と特殊演出の開発を進めております。

雪エフェクトが概ね完成となり、あとは命令体系を構築するのみです。
他公開予定エフェクト(雨・桜・蛍)も雪エフェクトのアルゴリズムの流用でいけそうです。
(蛍エフェクトだけは若干難しいかもしれませんが)

何にせよ、次期バージョンは年内か年度内にはお見せできるかなと思われます。
とりあえず、今はまあそんな感じです。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<163KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef