不撓不屈

戦国史同盟管理人・蛛賢(Shuken)のブログです。 サイト運営情報、技術情報、備忘録、作品公開等について投稿しています。

戦国史

 こんばんは、蛛賢です。
 戦国史レーダー(※)にランキング機能を追加しましたので報告します。
 ※戦国史に関するハッシュタグのTweetを収集するシステム

▼戦国史レーダーの記事


①ランキング
 投稿数、いいね数、RT数でランキングを表示する機能を追加しました。
 管理人のアカウントは表示から除外しています。

②Tweetの再収集

 ①に伴い、いいね数とRT数の最新化のため、定期的にTweet情報の再収集を行うようにしました。
 再収集対象となるTweetは、APIの仕様上1週間です。1時間に1回再収集します。

 また、APIの負荷を考慮し、収集1回あたりの上限を100件としました。
 今後、再収集漏れが出てこない限りはこのままとします。


■今後の予定
 現時点ではTweetがほぼないため要らないと考えていますが、需要が出てくれば人気のワードをピックアップする機能を作ってみようかなとは思っています。

 今回もまた、色々な方にご助言いただけたおかげで実装することができました。
 この場を借りてお礼申し上げます。

 なお、本システムは現在戦国史専用で動かしていますが、Bot用のTwitterアカウントやAPIキーさえ取れれば、別の話題も収集できるため、何らか需要があれば応用していきたいとは考えているところです。


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

こんばんは。
繁忙期に入りそうなので、本件取り急ぎ発信します。

これまで掲示板ベースで進められていた「サンプルシナリオ改造プロジェクト」について、
試案ですが「Gitlabで運用してみてはどうか」ということで環境を準備してみました。



当該プロジェクトは、私が運営していた掲示板で行われていたものですが、
ホスティングサービス障害、掲示板システムバグ等で度々中断、大変ご迷惑をお掛けしました。
(活発だった有志の皆さんの活動に痛恨の水差しだったと思います……)

2021年現在、戦国史本体に同梱されているバージョンは最新版でないため、
掲示板ログを掘り起こし、残課題を今度は私自身で解決した上で、同梱を奏上しようと思っています。

Gitlabということで当初から複数人の作業を想定しているのか、というとそういうわけでなく、
単純に差分管理システム・外部記憶として利用し、まずは私だけで進めていこうと思っています。
(とりあえず掲示板終盤で指摘されていた誤字と、本体同梱版に合わせた文言訂正をしています。)

以上、Gitlab初心者の私が、突貫で始めたものですが、
知見はその他のプロジェクトにも活かしたいと考えておりますので、
純粋に皆さんからのご意見、アドバイスをいただけると幸いです。


以下検討内容。
おそらく参加しやすいように手引きを用意すべきなんだろうとは思います…が……。


≪運用≫
①修正点や課題を「イシュー」ページに入力していく。
②参加者は、「イシュー」ページに入力された内容の中から、自ら着手するものを表明する。
③現行developブランチの最新シナリオをベースに作業を行う。
④完了次第、リポジトリのdevelopブランチにプッシュする。
⑤ある程度まとまったらdevelopブランチの内容をmasterブランチに反映する。(管理者)
 ※必要に応じて参加者からマージリクエストを管理者に行う。
⑥masterに統合された時点で、完了している「イシュー」をクローズする。

・参加希望者は「Owner」「Maintainers」が承認する。
 ※参加者:「Developers」又は「Maintainers」のユーザ

・準備中の段階で、現時点でサンプルシナリオ改造プロジェクト用の掲示板等はありません。
・強いて言えば、Discordの戦国史サーバにそういった部屋は作りました。(蛛賢の独り言状態)

・masterファイルは別の場所での公開を検討します。(より一般的に目に留まりやすいところに)


以下備忘録。

≪プロジェクトの立ち上げ手順≫
グループの作成
プロジェクトの作成
masterブランチの作成(README.md、ベースとするリポジトリ等)
developブランチの作成(masterブランチからのコピー)
デフォルトブランチの設定(master→develop)
ブランチの保護(masterは管理者のみ、developは「Developers」Merge・Push可)
プロジェクトの公開
メンバーの募集

≪公開権限≫
プロジェクトの可視性:「公開」

イシュー:「アクセスできる人すべて」 … どんな課題があるかは公開していいと思うため。

リポジトリ:「アクセスできる人すべて」、それ以下は「プロジェクトメンバーのみ」
 … ダウンロード用ファイル置き場。それ以外は公開しない方が良いと思うため。

Analytics:「プロジェクトメンバーのみ」 … 公開する必要性を感じないため。

Requirements:「プロジェクトメンバーのみ」 … 公開する必要性を感じないため。

Wiki:「アクセスできる人すべて」 … 公開しても良いと思う。

スニペット:「プロジェクトメンバーのみ」 … 公開する必要性を感じないため。

ページ:「アクセスできる人すべて」 … 公開しても良いと思う。

Operations:「プロジェクトメンバーのみ」 … 公開する必要性を感じないため。

----

2021.1.31 awakさんの御助言を反映させました。ありがとうございます。
ちなみにawakさんが参加されているNMIHプロジェクトは、
構成ファイルが複数あるため、それぞれ作業を進めやすいようです。

戦国史は基本的に「シナリオ」と「マップ」のみですからね…
分業にはあまり向いていないかもしれません。
このエントリーをはてなブックマークに追加 mixiチェック

備忘録になります。

以前サンプルシナリオ改造掲示板の方で、CPUの思考時間の話題がありました。

毎ターンサクサク動く方が望ましく、大名家・城・武将の中で、
一番影響が出るのは「城」であることから、これ以上城を増やすのはよくない。

といったものです。

その後、大名家? 武将? と色々な説が出てもいました。

これについて、戦国史作者のasakaさんにお尋ねしたところ、
その中であれば、確かに「城」が一番処理時間に影響させてしまう、とのことでした。


城以外の要素は単純に比例した時間が増えるようですが、
城だけは経路で接する城を一つ一つ思考するため指数関数的に時間が増えるようです。

当時は、プレーに支障が出る、ストレスを感じる、という意見も出ていました。


マシンパワーも向上し、今ではそこまで考慮しなくても良いのかもしれませんが、一つの視点として大事なことだと思います。

これらの要素以外にも、条件イベントにより複雑なシステムに組むことができるようになっていますが、
ループ等について、より処理時間が少ない方法で実装するように検討されるのも良いかもしれません。

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

備忘のため、改めて投稿します。
戦国史シナリオで使用可能な関数一覧表。

関数名 用途
#Random 実数で0~1.0の間の乱数を返す
#Year 現在の年を返す
#Month 現在の月を返す
#Edition 戦国史FEなら0、戦国史SEなら1を返す
#生存大名家数 生存している大名家数を返す
#生存独立大名家数 生存している独立大名家数を返す
#石高順大名(順位) 臣従込み石高が指定の順位(1番から指定)の大名家番号を返す
(注:指定の順位の大名がいない場合はエラーになる)
#石高順独立大名(順位) 臣従込み石高が指定の順位(1番から指定)の独立大名家番号を返す
(注:指定の順位の大名がいない場合はエラーになる)
#直轄石高順位大名(順位) 直轄石高が指定の順位(1番から指定)の大名家番号を返す
(注:指定の順位の大名がいない場合はエラーになる)
#ランダム大名 生存する大名家番号をランダムに返す
#ランダム独立大名 生存する独立大名家番号をランダムに返す
#ランダム上位大名(順位) 臣従込み石高が指定の順位以内の大名家番号をランダムに返す
#ランダム上位独立大名(順位) 臣従込み石高が指定の順位以内の独立大名家番号をランダムに返す
#プレイヤー大名 プレイヤー大名の大名家番号を返す
#大名番号(大名家ID) 指定した大名家IDの大名家番号を返す
#城番号(城ID) 指定した城IDの城番号を返す
#城支配大名(城IDor番号) 城を支配する大名家番号を返す
#城包囲大名(城IDor番号) 城を包囲する大名家番号を返す(非包囲なら0を返す)
#城武将数(城IDor番号) 城内に居る武将数を返す
#城包囲武将数(城IDpr番号) 城を包囲する武将数を返す
#主家大名(大名家IDor番号) 主家(独立大名なら自分自身)の大名家を返す
#大名家武将数(大名家IDor番号) 大名家(臣従大名含む)の武将数を返す
(捕虜は含まない)
※人質も含まない(2021/1/22 弩爐豚さん感謝)
#大名家直属武将数(大名家IDor番号) 大名家(臣従大名含まない)の武将数を返す
(捕虜は含まない)
※人質も含まない(2021/1/22 弩爐豚さん感謝)
#城数(大名家IDor番号) 大名家(臣従大名含む)の城数を返す
#直轄城数(大名家IDor番号) 大名家(臣従大名含まない)の城数を返す
#石高(大名家IDor番号) 大名家(臣従大名含む)の石高を返す
#直轄石高(大名家IDor番号) 大名家(臣従大名含まない)の石高を返す
#経済(大名家IDor番号) 大名家(臣従大名含む)の経済を返す
#直轄経済(大名家IDor番号) 大名家(臣従大名含まない)の経済を返す
#足軽兵数(大名家IDor番号) 大名家(臣従大名含む)の足軽兵数を返す
#直轄足軽兵数(大名家IDor番号) 大名家(臣従大名含まない)の足軽兵数を返す
#騎馬兵数(大名家IDor番号) 大名家(臣従大名含む)の騎馬兵数を返す
#直轄騎馬兵数(大名家IDor番号) 大名家(臣従大名含まない)の騎馬兵数を返す
#鉄砲数(大名家IDor番号) 大名家(臣従大名含む)の鉄砲数を返す
#直轄鉄砲数(大名家IDor番号) 大名家(臣従大名含まない)の鉄砲数を返す
#従属大名家数(大名家IDor番号) 大名家の従属大名家数を返す
#臣従大名家数(大名家IDor番号) 大名家の臣従大名家数を返す
#資金(大名家IDor番号) 大名家の資金を返す
#航海技術(大名家IDor番号) 大名家の航海技術を返す
#鉱山技術(大名家IDor番号) 大名家の鉱山技術を返す
#城(武将IDor番号) 武将の居る(または包囲している)城番号を返す
(注:死亡している場合は最後に居た城番号を返す)
#包囲中(武将IDor番号) 武将が包囲中なら1を、それ以外なら0を返す
#所属大名(武将IDor番号) 武将の所属大名家番号を返す
(注:死亡している場合は0を返す。)
#当主城(大名家IDor番号) 大名家の当主の居る(または包囲している)城番号を返す
#捕虜大名(武将IDor番号) 武将が捕虜ならば拘束している大名家番号を返す(捕虜でなければ0を返す)
#人質大名(武将IDor番号) 武将が人質ならば拘束している大名家番号を返す(捕虜でなければ0を返す)
#武将足軽兵数(武将IDor番号) 武将の足軽兵数を返す
#武将騎馬兵数(武将IDor番号) 武将の騎馬兵数を返す
#武将鉄砲兵数(武将IDor番号) 武将の鉄砲数を返す
#統一成立 統一が成立したら1を、それ以外なら0を返す
#Round(数値) 小数点以下を四捨五入
#Floor(数値) 小数点以下を切捨て
#Ceil(数値) 小数点以下を切り上げ
このエントリーをはてなブックマークに追加 mixiチェック

戦国史シナリオの備忘録です。
サンプルシナリオ改造プロジェクト内でも話題に挙がっていましたが、
戦死や謀殺された武将の没年をどのように設定するか。

病死はその没年設定が妥当かと思いますが、戦死等は何もなければ生き永らえそう。
サンプルシナリオにはそういった意図を汲んで、史実より長めに設定している武将もいるようです。

公式マニュアルをもう一度読んでみます。

---ここから---

■生年
 生年を設定します。 

■生年タイプ
 生年タイプを、「確実」・「不詳」・「非表示」の中から選択します。
 「不詳」に設定すると、ゲーム中では年齢に?が付きます。
 「非表示」に設定すると、ゲーム中では年齢は表示されません。 

■没年
 没年を設定します。 

■没年タイプ
 没年タイプを、史実に沿って「病死」・「戦死」・「処刑」・「不詳」の中から選択します。
 ゲーム中では、以下のような扱いになります。

①病死
 没年設定の±1年の範囲で武将は病死します。 

②戦死
 没年の年齢が標準寿命以下ならば標準寿命の±1年の範囲で病死しますが、没年設定の年齢が標準寿命以上ならば没年設定のの±1年の範囲で病死します。 

③処刑
 「戦死」と同じ扱いです。 

④不詳
 没年設定は無視され、標準寿命の±1年の範囲で病死します。 

標準寿命の設定は、「各種パラメータ設定」の項目を参照してください。
なお、どの設定にした場合でも、ゲーム中で武将は合戦時に戦死する可能性があります。 

---ここまで---

病死以外で設定すれば、ちゃんと考慮されて退場するようですね。

例:標準寿命を60歳とした場合

「70歳で病死と設定した武将」→「69~71歳で病死する」
「50歳で病死と設定した武将」→「49~51歳で病死する」

「70歳で戦死と設定した武将」→「69~71歳で病死する」
「50歳で戦死と設定した武将」→「59~61歳で病死する」(没年設定無関係)

「70歳で処刑と設定した武将」→「69~71歳で病死する」
「50歳で処刑と設定した武将」→「59~61歳で病死する」(没年設定無関係)

「70歳で不詳と設定した武将」→「59~61歳で病死する」(没年設定無関係)
「50歳で不詳と設定した武将」→「59~61歳で病死する」(没年設定無関係)

戦死は合戦時のパラメータによるもので、年齢とは関係しない。

つまり冒頭の「史実では早くに謀殺されたけど、生き永らえたら…」みたいな武将も、
没年をいじらず、史実どおりに設定していても、タイプを処刑や不詳にしていれば良さそうです。

サンプルシナリオを改めて見る機会があれば、その点も訂正できればと思います。

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

↑このページのトップヘ