よくある質問 のバックアップの現在との差分(No.14) - Polaris Engine Wiki

Wikiトップ   編集   新規作成   複製   名称変更   アップロード   添付ファイル一覧   バックアップ  

 

  • 追加された行はこの色です。
  • 削除された行はこの色です。
#author("2024-02-23T21:51:17+09:00","default:discord","discord")
#author("2024-05-13T18:06:13+09:00","default:discord","discord")
目次
#contents

* 実績を教えてください [#kfff21df]
- [[利用作品紹介>https://suika2.com/works/]]をご覧ください
- 把握している限りでは下記の通りです (2023年11月2日現在)
~

|サイト名|審査|採用作品数|有料作品数|
|[[ふりーむ!>https://freem.ne.jp/]] 様 |ストアと同水準の審査あり|51作品、Windows版とブラウザ版の重複あり|-|
|[[PLiCy>https://plicy.net]] 様|NGワードによる自動チェックがあるが、Suika2のパッケージには機能しない|10作品|-|
|[[フリーゲーム夢現>https://freegame-mugen.jp]] 様|緩やかな審査あり|11作品|-|
|Google Play ストア 様|動作不良についての審査あり|5作品|1作品|
|Apple App Store 様|表現内容についての審査あり|3作品|1作品|
|Valve Steam 様|動作不良についての審査あり|1作品|1作品|
|DLsite 様|動作不良についての審査あり|3作品|3作品|
|BOOTH 様|審査なし|8作品|0作品|
* 他のゲームエンジンとの比較 [#o75fb25e]

* Suika2は発展途上で機能不足が目立ち、移行する価値がないというイメージがあります [#vc8ad24d]
- [[こちらのページ>ティラノからSuika2への移行について]] をよくお読みいただいた上でご判断ください
** Polaris Engineにはどんな特徴がありますか [#ndb413a9]
- Polaris EngineはiOSやAndroidのアプリをワンクリックで出力できる世界で唯一のノベルエンジンです
- Polaris EngineはUnityプロジェクトを出力できるので家庭用ゲーム機への移植が簡単である世界で唯一のOSSノベルエンジンです
- 免責: 2024年5月13日に著者の知る限り

* 既存ゲームを最新のインストール版Suika2で編集するにはどうすればいいですか? [#g7287433]
- [[インストール版Suika2への移行]] をご覧ください(とても簡単です!)
** 他のエンジンからPolaris Engineに移行したいです [#ne5d11a4]
- 他のエンジンからPolaris Engineへ移行するのは、iPhone, iPad, Android, 家庭用ゲーム機で公開する可能性がある場合にしていただければと思います
- PCやWebでの公開しか考えない場合、無理に学習コストをかけて移行していただかなくてもよいと思います
- 新たにノベルへ参入される方はウェルカムです

* デスクトップ版|ゲームの配布はどうすればいいですか? [#h82503a8]
** Windows版 [#i163c481]
- Suika2からWindows向けにエクスポートして、ZIP圧縮したファイルを配布できます
** Mac版 [#hb3fbfb3]
- 「デスクトップゲームのエクスポート」をクリックします
- ZIPファイルにする前にReadme.txtには以下の手順書を記載してください。理由は後述します。
- 
 ---- ここから ----
 ■ゲームを遊ぶための手順書
 1.suika-mac.dmgを開く
 2.開いたファイルの中にある .app(アプリファイル)をdata01.arcと同じフォルダにコピーします
 3. 【場所】から取り出します
 4.コピーしたアプリを開きます
 ---- ここまで ----
画像:
&ref(https://cldup.com/lCzEbxODvI.jpg,150x100,);
&ref(https://cldup.com/90XJ_sBjV7.png,150x100,);
** 公開場所はどうすればいいですか? [#u1bd6d06]
- Windows / Webブラウザ
-- まずは「ふりーむ!」様での公開を目標とされることをおすすめします
-- 公開場所へのリスペクトがあれば審査をクリアできると信じています
- iPhone / iPad / Vision Pro
-- まず、ご自身のApple IDのデバイスにアプリをインストールするのは自由に行えます (Apple Developmentと呼ばれるインストール)
-- 次に、あらかじめデバイスIDを登録しておけば、100台までならAirDropでアプリをインストールできます(Ad Hocと呼ばれるインストール)
-- 最後に、App Storeでの公開にはアプリの内容を元にAppleによる総合的な審査を受ける必要があります (App Store Connectと呼ばれるインストール)
- Android
-- Google Driveなどの適当な場所にAPKファイルをアップロードして、野良アプリという形でゲーム公開することが可能です
-- Google Playストアでの個人公開の場合、アプリのテスターを20人集める必要があり、法人公開ならまだこの制限はないようです
- 家庭用ゲーム機
-- 各社のWebサイトで開発者登録を行います
-- 作品の申請を行います
-- 申請にあたっては「ミドルウェア」や「ゲームエンジン」の欄に「Polaris Engine(Unityバックエンド)」と記述してください
--- 「Polaris Engineとは何か」と聞かれた場合には、ただのUnityだと答えればOKです
-- ゲーム機専用のUnityを入手したら、Polaris EngineからUnity用にエクスポートしたゲームをビルドしてください

■追記
- suika-mac.dmgから取り出したアプリは直接配布できません。理由は下記です。
- アプリであるSuika.appにはktabataのサインがしてあり、Appleに毎回提出して内容を承認してもらっている
- dmgにもktabataのサインがしてあり、アプリのサインと一致する
- dmgから取り出したアプリをZIPにしてしまうと、ZIPにはサインがないので、不一致が発生する
- ZIPを作った人のMacでは実行できてしまうが、Webからダウンロードした人のMacではエラーとなる
- ブラウザでダウンロードした際に、検疫フラグがファイルについてしまうことが原因
** 他のエンジンではできる○○という機能がないので実装してくれますか? [#z8037e20]
- Polaris Engineの機能不足であれば、ほぼ例外なくご要望の機能を実装しております
- 一方で、スマートフォンはPCの1/100くらいの性能しかないため、移植を考えてあえて実装しない場合もあります(たとえば福笑い方式や衣装差分など)
- 提案者を尊重していないということは一切なく、既存エンジンの手法がスマホでは利用できないだけです

* キーボード操作を教えてください [#i83b6262]
- [[キーボード操作]]をご覧ください
~

* suika.exe のファイル名を変更できますか? [#sf64cae9]
- 自由に変更できます
- ファイル名はアルファベットがおすすめです
- 日本語にした場合は文字コードの問題がありWindows/Mac両対応のZIPファイルの作成が非常に大変です
* インストール関連 [#m077614b]

* suika.exe のアイコンを変えられますか? [#p0574171]
- 自由に変更できます
- アイコン画像(512x512)をktabataに送っていただければアイコン変更済みの実行ファイルを送り返しています
- ご自分でアイコンを変更したい方は、
-- Microsoftの提供するsigntool.exeを使ってsuika.exeの署名を削除する(これをやらないと改ざんされた実行ファイルと見なされてWindowsセキュリティに削除される)
-- Resource Hackerでアイコンを変更する
-- signtool.exeでご自身の署名を付加する(オプション)
- 署名が入っていないと実行時に警告が出てしまうので、できればアイコンを送っていただき、署名済みexeを提供させていただきたいです
** Polaris Engineをダウンロードしましたが実行ができません [#n9126a0e]

* Mac版のアイコンを変えられますか? [#v4742cc5]
- エンジニアにおまかせしたい方
--  [[LUXION SOFT LLC.>https://luxion.co.jp]] に相談すればMac App Storeへの公開まで代行してもらえます(無料サービス)
- ご自身でやりたい方
-- 個人か法人でApple Developer Programに加入します(年額13,000円程度)
-- Suika2とは別なアプリとしてAppleに登録申請します
-- MacでXcodeを使ってSuika2のソースコードをビルドします
-- ちなみに個人だとアプリに本名が埋め込まれ、初回起動時に表示されてしまいますので、LUXION SOFT LLC.にご依頼いただくのをおすすめします
- 実行ファイルがウイルス対策ソフトによってウイルスと誤判定されている可能性があります
- 対策として、
-- Windowsアップデートを行う
-- ウィルス定義ファイルを最新にする
-- リアルタイムスキャンを一時的に無効にする
-- ウィルス対策ソフトの設定で隔離済みファイルを確認し、ウィルスではないとマークする
-- ゲームのフォルダを変えてみる
-- Polaris Engineのインストール先を変えてみる
- 難しい場合は [[Discord>https://discord.com/invite/Xh9mFwr4E8]] やXでお気軽にお尋ねください

* キャラクタ変更中にメッセージボックスを表示したままにするには? [#h9e073cd]
** 自動アップデート機能がうまく動作しません [#y72cc05e]

- ウィルス対策ソフトがブロックしている可能性があります
- ダウンロード後に実行できない場合と同じ手順で解決できる可能性があります

~

* ゲーム制作関連 [#ue870580]

** 複数のキャラクタをまとめて表示できますか? [#mefbb1f8]
- 17系列以降では [[Ciel]] というYU-RIS風の演出システムがあり、これの活用をご検討ください
- それより前からある機能ですと、
-- [[@all>コマンドリファレンス#y4c04486]] というコマンドがあります
-- キャラクタと背景のうち、好きなものを変更したり、消去したり(none)、そのままにしたり(stay)できます

** キャラクタ変更中にメッセージボックスを表示したままにするには? [#h9e073cd]
- conf/config.txt ファイルの最後の方にある、下記の箇所を書き換えて、=0 を =1 に変更してください
 msgbox.show.on.ch=1

* フォントが変更できません [#vb5a8c46]
- Suika2を終了した状態で、セーブデータのフォルダ sav を削除し、Suika2を再度起動してください
- セーブデータにフォントファイル名が記録されたままだからです
** メッセージボックスの横にキャラクタの顔を表示したいです [#pced3fba]
- キャラクタ画像として特殊な位置(face)に表示します
 @ch face ファイル名.png
- face の位置に表示する画像は、フェードイン・フェードアウトの時間指定が無視されます

* 複数のキャラクタをまとめて表示できますか? [#mefbb1f8]
- [[@chsx>コマンドリファレンス#y4c04486]] というコマンドをご利用ください
- キャラクタと背景のうち、好きなものを変更したり、消去したり(none)、そのままにしたり(stay)できます
** メッセージボックスにセーブなどのボタンを配置できますか? [#oe90560c]
- サンプルゲームでは、画面の小さなスマホでの操作を考慮して、右上のシステムメニューを使っています
- 一方、Windows向けゲームでよくある、メッセージボックスにボタンを作るスタイルも可能です
- この場合、右上のシステムメニューは無効にすることができます
- スマホ対応を考えると積極的におすすめはしませんが、一応機能としてはあるということです

* タイトル画面の作り方がわかりません [#of9c94af]
** 表情の差分を顔のパーツだけで実現したいです [#z457e224]
- 個人的な考えでは、この機能は他のエンジンの「負の遺産」だと思います
- たしかに制作が楽になる面はあるのですが、読み込み時間、メモリ使用量、合成時間を考えると、スマホには荷が重いと考えます
- よって、技術的な詳細は省きますがSuika2では実装しないことに決めました

** フォントが変更できません [#vb5a8c46]
- セーブデータにフォントファイル名が記録されていることで、フォントを変更できない、指定していないはずのフォントファイルが開けないと言われる、といった問題が発生します
- Polaris Engineを終了した状態で、セーブデータのフォルダ sav を削除し、Polaris Engineを再度起動することで解決します

** タイトル画面の作り方がわかりません [#of9c94af]
- [[タイトル画面の作り方]] で解説しております

* 主人公の名前を入力できますか? [#o9f7d8ea]
** 主人公の名前を入力できますか? [#o9f7d8ea]
- 最大26個の名前を入力できます(aからzまで)
- この機能の開発にあたってはDiscordサーバ上のみなさまに助けていただきました。ありがとうございます!
- この機能の開発にあたってはDiscordサーバー上のみなさまに助けていただきました。ありがとうございます!

* メッセージボックスの横にキャラクタの顔を表示したい [#pced3fba]
- キャラクタ画像として特殊な位置(face)に表示します
 @ch face ファイル名.png
- face の位置に表示する画像は、時間指定でフェードインできません
** 目パチ画像の作り方を教えてください [#q0d1b90b]
- [[目パチの使用方法]] を参照ください

* 日付や好感度を表示したいです [#f0a3b62e]
- テキストレイヤと [[@pencil コマンド>コマンドリファレンス#db5f68f1]]をお使いください。
** 日付や好感度を表示したいです [#f0a3b62e]
- テキストレイヤと [[@pencil コマンド>コマンドリファレンス#db5f68f1]]をお使いください
- Polaris Engineはノベル特化であるため、あまり複雑なゲームシステムの構築を意識していません
- 気合いの入ったSLGを作りたい方は、素直にUnityを使っていただくことをおすすめしています

* 画面全体にフィルターをかけたいです [#oc58358f]
** 画面全体にフィルターをかけたいです [#oc58358f]
- エフェクトレイヤーを使います [[背景に色味をつける]]
- 一番廉価な水準のAndroidスマートフォンだと描画性能的にギリギリになりますので、できるだけエフェクト適用済みの画像を作成してください
- 一番廉価な水準のAndroidスマートフォンだと描画性能的にギリギリになるため、積極的にはおすすめしていません
- できるだけカラーフィルター適用済みの画像を作成して対処をお願いします

* 表情の差分を顔のパーツだけで実現したいです [#z457e224]
- 今のところサポートしていないですが、表情・服装・ポーズなどの差分レイヤグループの実装を予定しています
- 基本的には差分ではなく個々のキャラクタファイルへの書き出しをお願いしております
-- 他のエンジンではサポートされている機能であっても、Suika2ではそぎ落としてシンプルにしています
-- 表情のバリエーションは作品のおもしろさの本質ではなく、付加価値的な要素だと考えています
-- WebP画像を使えば画像サイズの問題は解決します
-- エンジンごとにワークフローは異なるので、慣れていただくようお願いいたします

* マクロ機能はありますか? [#w010cfee]
** マクロ機能はありますか? [#w010cfee]
- あります。[[@gosub>コマンドリファレンス#tdc94466]] と [[@return>コマンドリファレンス#g3c671e9]] が利用できます
- マクロを外部ファイルにまとめるには、[[using>コマンドリファレンス#r3c95140]] 文を使います
- サンプルとしては [[こちら>https://suika2.com/dl/sample/macro-demo.zip]] に用意してあります
- 呼出元のファイルとマクロファイルでラベル名が重複したときに問題が発生するため、 マクロ内で分岐するには拡張ifブロックを使うと、ラベル名を不要にできます。
- マクロ呼び出しは &マクロ名 と省略して記述できます (例: &my_macro)
- マクロの引数は、マクロ内では &1 のように引数番号で記述できます (例: @ch c &1 1.0)
- 呼出元のファイルとマクロファイルでラベル名が重複したときに問題が発生するのを避けるため、 マクロ内で分岐するには拡張ifブロックを使ってラベル名を不要にできます。

 <<<
 # 呼び出し側 (happyは引数)
 &マクロ名 happy.png
 ...
 # 呼び出される側
 :マクロ名
 if $1 == 0 {
     @ch c file1.png
     # 引数で指定されたファイルを表示する
     @ch c &1
 }-
 else {
     @ch c file2.png
     @ch c normal.png
 }
 >>>

* CG鑑賞モードを作れますか? [#i2913e76]
** CG鑑賞モードを作れますか? [#i2913e76]
- [[@gui>コマンドリファレンス#x5321807]] コマンドを利用して作成可能です
- ダウンロードページにある [[こちらのサンプル>https://suika2.com/dl/sample/gallery-demo.zip]] を改造してお使いください
- ボタンの設定で、type: gallery;を指定して、var: $1;のように変数を指定します
- 変数の値が0であればボタンは表示されません
- 変数の値が0以外であればボタンが表示されます

* 分岐チャートを作れますか? [#ffbc32f5]
** 分岐チャートを作れますか? [#ffbc32f5]
- [[@gui>コマンドリファレンス#x5321807]] コマンドを利用して作成可能です
- ダウンロードページにある [[こちらのサンプル>https://suika2.com/dl/sample/gallery-demo.zip]] を改造してお使いください
- 仕組みはCG鑑賞モードと同じです

* 音声ファイルのビットレートはどうすればいいですか? [#q7d0ced6]
- PC向けのゲームでは下記が目安です
-- BGM ... ステレオ128kbps
-- SE ... ステレオ128kbps
-- ボイス ... モノラル64kbps(日本語サンプル) か ステレオ128kbps(英語サンプル)
- スマートフォンではスピーカーが1つの機種が大半ですので、モノラル48kbps程度が目安です
** 全画面スタイルのノベルゲームを作れますか? [#ab8299c4]
- Polaris Engineを起動後にゲームを新規作成するときに、「日本語ノベル」か「日本語縦書き」のテンプレートを選択してください

* フラグ管理が大変です [#v07d70aa]
** ルビの中央寄せはできますか? [#h8497e55]
- 現状では未対応で、半角スペースを使って手動調整していただいております(実際、プロの開発現場でもこんな感じです)
- 中央寄せ対応については、Unityやスマホ対応のブラッシュアップが優先のため、そちらが落ち着くまでお待ちください

** 多言語対応していますか? [#p320fef8]
- 対応しています。[[多言語化]]をご覧ください

** WMS の使い方はどこに書いてありますか? [#jd1bb536]
- [[WMSの使い方]] をご覧ください

** キーボード操作を教えてください [#i83b6262]
- [[キーボード操作]]をご覧ください

** 音声ファイルのビットレートはどうすればいいですか? [#q7d0ced6]
- PC向けのゲーム
-- BGM ... ステレオ 128kbps
-- SE ... ステレオ 128kbps
-- ボイス ... モノラル 64kbps (日本語サンプル)、場合によってはステレオ128kbps (英語サンプル)
- スマートフォン
-- すべて モノラル 48kbps
--- スピーカーが1つのことが多いのでモノラルです
--- スマホ本体の小さなスピーカーであれば、高音がカットされてもプレイ感に影響が出にくいため、アプリサイズ削減を考えて低ビットレートにしています
--- イヤホンでプレイされるようであれば、プレイ感に影響が出ないように、PC向けと同じ設定をおすすめします

** フラグ管理が大変です [#v07d70aa]
- フラグに名前をつけられるようになりました
-- フラグ名はコンフィグファイルに記述して管理できます
-- 作品を長期にわたって保守して行く上で、よい設計資料になると考えています
- スクリプトには # でコメントを入れられるので、 @set や @if を使うときには何のフラグを操作しているのかわかりやすく書いておくことが大切だと考えます
- コメントを書くのは重要です
-- 1年後のあなたにも読めばすぐわかるようにコメントを書くのが望ましいと考えます

* Androidのアプリの作り方を教えてください [#m1893f47]
- エンジニアにまかせる場合
-- [[LUXION SOFT LLC.>https://luxion.co.jp]]にdata01.arcを送ればストア公開されます(無料サービスです)
- 自分でやりたい場合
-- ビルド手順
--- Android Studio をインストールします
--- Windows 版か macOS 版の Suika2 Pro Desktop から Android ソースコードをエクスポートします
--- エクスポートしたソースコードを Android Studio で開いてください
--- File -> Sync Project with Gradle Files
--- Build -> Make Project
--- Run -> Debug app
-- ストア申請手順
--- Android Studio で署名済みのアプリをapp bundleを作成してください (Build -> Generate Signed Bundle / APK...)
--- Google Play Consoleで初回数千円の登録料を払ってアプリを申請してください
** 旧式のSuika2制作ゲームを最新のインストール版Polaris Engineで編集するにはどうすればいいですか? [#g7287433]
- [[インストール版Suika2への移行]] をご覧ください(とても簡単です!)

* iOSのアプリの作り方を教えてください [#d15a69e7]
- エンジニアにまかせる場合
-- [[LUXION SOFT LLC.>https://luxion.co.jp]]にdata01.arcを送ればストア公開されます(動画を使う場合はmovフォルダも送ります)
- 自分でやりたい場合
-- まず個人か法人で Apple Developer Program に加入します
--- 登録料として年額13,000円程度の支払いが必要です
--- サークル名や屋号は認められず、公的書類の本名か、正確な法人名がストアで公表されます
-- MacでXcodeをインストールします
-- Suika2 Pro Desktop から iOS ソースコードをエクスポートします
-- エクスポートしたソースコードを Mac 上で Xcode で開いてビルドしてください
-- Apple に対してアプリのIDを登録してください (例: jp.luxion.suika2)
-- App Store Connect でアプリの詳細を登録してください
-- Xcode で "Archive" を行い、App Store Connect にアップロードを行います
-- App Store Connect で、アップロード済みのバンドルを選択して、リリース申請を行ってください
~

* 全画面スタイルのノベルゲームを作れますか? [#ab8299c4]
- Suika2 Pro Desktop でゲームを作成するときに、全画面のテンプレートを選択してください
- 縦書きも選択できます
* ゲーム配布関連 [#y08b62d4]

* WMS の使い方はどこに書いてありますか? [#jd1bb536]
- [[WMSの使い方]] をご覧ください
** ゲームの配布はどうすればいいですか [#h82503a8]
- Suika2からWindows向けにエクスポートして、フォルダごとZIP圧縮して配布します

* メッセージボックスにセーブなどのボタンを配置できますか? [#oe90560c]
- サンプルゲームでは、画面の小さなスマホでの操作を考慮して、右上のシステムメニューを使っています
- 一方、Windows向けゲームでよくある、メッセージボックスにボタンを作るスタイルも可能です
-- この場合、右上のシステムメニューは無効にすることができます
-- [[こちらのサンプル>https://suika2.com/dl/sample/animation.zip]] をご覧ください
-- Webブラウザでの実行は [[こちら>https://suika2.com/run/animation/]]
** game.exe のファイル名を変更できますか? [#sf64cae9]
- 自由に変更できます

* 他のエンジンではできる○○という機能がないので実装してくれますか? [#z8037e20]
- Suika2の機能不足であればアクティブに実装しております
- 一方で、スマートフォンはPCの1/100くらいの性能しかないため、移植を考えてあえて実装していない機能がありますので、その場合はご容赦ください
** game.exe のアイコンを変えられますか? [#p0574171]
- Resource Hackerというソフトでgame-nosign.exeのアイコンを差し替えてください
- game-nosign.exeは署名されていないので、アイコンを変更できます(アイコン変更用)
- game.exeは署名されているので、アイコンを変更できません(デフォルトアイコンな代わりに、起動時の警告がでにくい)

* 多言語対応していますか? [#p320fef8]
- 対応しています。[[多言語化]]をご覧ください
** Mac版のアイコンを変えられますか? [#v4742cc5]
- Polaris Engineでは、Mac向けエクスポートはXcode用のソースコード出力です
- 出力されたソースコードをXcodeで開いて、アイコンを変更してください

* サクサク動作の秘密は何ですか? [#nac89737]
- 私たちはOSごとにネイティブアプリを書いており、これがサクサク動作の秘密です
- 具体的には、
-- [[HTML5+JavaScript>https://tyrano.jp/]] を用いていない
-- [[Python>https://ja.renpy.org/]] を用いていない
-- [[SDL2>https://krkrsdl2.github.io/krkrsdl2/]]  を用いていない
-- [[TJSのようなスクリプト基盤>https://krkrz.github.io/]] を用いていない
-- コア部分にCだけを用いて、C++を用いていない
** Androidのアプリの作り方を教えてください [#m1893f47]
- [[Android版の作り方]]をご覧ください

** iOSのアプリの作り方を教えてください [#d15a69e7]
- [[iOS版の作り方]]をご覧下さい

~

* Polaris Engine / Suika2関連 [#j41cf476]

** 実績を教えてください [#kfff21df]
- 把握している限りでは下記の通りです (2023年11月2日現在)

|サイト名|審査|採用作品数|有料作品数|
|[[ふりーむ!>https://freem.ne.jp/]] 様 |ストアと同水準の審査あり|51作品、Windows版とブラウザ版の重複あり|-|
|[[PLiCy>https://plicy.net]] 様|NGワードによる自動チェックがあるが、Suika2のパッケージには機能しない|10作品|-|
|[[フリーゲーム夢現>https://freegame-mugen.jp]] 様|緩やかな審査あり|11作品|-|
|Google Play ストア 様|動作不良についての審査あり|5作品|1作品|
|Apple App Store 様|表現内容についての審査あり|3作品|1作品|
|Valve Steam 様|動作不良についての審査あり|1作品|1作品|
|DLsite 様|動作不良についての審査あり|3作品|3作品|
|BOOTH 様|審査なし|8作品|0作品|

~

** Polaris EngineのiOS対応の強みについて教えてください [#df2a8be4]
- まず次のことを知ってください
-- Appleはストアにおいて、JavaScriptやPythonからiOSのAPIを呼び出すことを禁止しています(事実)
-- Appleはマーケティング上の理由で、Webではなくアプリに力を入れています(事実)
-- 日本でのiPhoneシェアは7割、つまりアプリの方が重要であり、Webゲームは主流ではないです(事実)
-- Safariの対応状況から察するに、Appleは今後もWebに力をいれることはないでしょう(ktabataの憶測)
-- ゲームプラットフォームとしてのWebの力は衰えていく一方だと思います(ktabataの憶測)
-- AppleはすでにアプリでOpenGLを非推奨にしており(事実)、いずれ廃止すると思います(ktabataの憶測)
- そこで次の点を思い出してください
-- あのエンジンはJavaScript製です(禁止されている。アプリ化に難がある。)
-- あのエンジンはPython製です(禁止されている。アプリ化に難がある。)
-- あのエンジンはOpenGL製です(重すぎる。)
- Polaris EngineはJavaScriptやPythonやOpenGLを一切使わず、iOS専用のソースコードをエクスポートします(Appleとして理想形)
- 以上を踏まえると、ノベルのiOS対応では、Polaris Engineは第一選択という判断になってきます(ktabataの憶測)
- Polaris EngineはUnityエクスポートも可能ですが、直接iOSエクスポートも可能であるため、あえてライセンス料の必要なUnityを利用する必要はないと考える企業・開発者が多いでしょう(ktabataの憶測)

** サクサク動作の秘密は何ですか? [#nac89737]
- 私たちはOSごとにネイティブアプリを作り分けており、これがサクサク動作の秘密です
-- すべてのOSで共通して利用できるコア部分には、どんなOSでも必ず利用できるという観点から、1989年バージョンのC言語だけを用いています
-- 共通して利用できない部分はOSごとの推奨言語を使って完全に作り分けています
--- 私たちはこれを「HAL: ハードウェア抽象化レイヤー」と呼んでいます
--- HALは元々、OSの移植性を高めるための設計実装手法であり、Microsoft Windows NTやNetBSDで採用されています
- 実行速度の最適化でも職人芸を披露しています
-- GPU方面の最適化
--- Direct3DのシェーダをHLSLではなくアセンブリを使って記述して極限まで最適化しています
--- すべてのスプライトを毎フレーム描画するのではなく、合成済みの2枚の画面をフェードして軽量化/安定化/省電力化しています
--- 演出としては割り切ったものになりますが、スマートフォンへの移植性が非常に高いです
--- すべてのスプライトを毎フレーム描画するのではなく、合成済みの2枚の画面をフェードして軽量化/安定化/省電力化/低発熱化しています
--- 機能性で割り切った部分もありますが、スマートフォンでの動作の安定性がバツグンです
-- CPU方面の最適化
--- GPUの描画結果をCPUに書き戻せないプラットフォームもある、という観点で、現状ではCPU描画も併用しています
--- 描画ルーチンをSIMD命令に最適化しており、ユーザのCPUで利用できる一番速い拡張命令を使用しています
--- Intel/AMD: SSE, SSE2, SSE3, SSE4.1, SSE4.2, AVX, AVX2
--- Arm: NEON

* Suika2はどうしてオープンソースなんですか? [#ne4ba862]
- オープンソースが特段に高尚だと考えているわけではありません
- 私から見たオープンソースの歴史はこんな感じです:
** Polaris Engineはどうしてオープンソースなんですか? [#ne4ba862]
- オープンソースが特段に高尚だと考えているわけではないです
- ktabataから見たオープンソースの歴史はこんな感じです:
-- 1970年代、ソースコードは入手できるのが一般的だった
-- 1980年代、ソースコードは知的財産として非公開化が進んだ
-- 1983年、Richard M. Stallmanがソースコードを自由に利用できるOSの開発を宣言(GNU)
-- 1990年代、UNIXを巡る知的財産の訴訟でBSDというOSが一時的に利用できなくなった
-- 1990年代、Linus Torvaldsの趣味ソフトLinuxが誕生し、10年程度で成長してUNIX/BSDを置き換えた
-- 2000年代、OSS全盛期、Linuxカーネル+GNUプログラムの利用が普及、RedHatなどがサポート料で収益化
-- 2010年代、AWSなどクラウドが普及し、サポートはクラウドベンダが提供、OSS開発元がサポート料を得られなくなった
-- 2020年代、 サポート料がほしい開発元によって、BSLをはじめとする非オープンソースライセンス化が進行している
- その上で、Suika2にとっては次の点でオープンソースという形態が有利だと考えています:
-- 普及推進(無料なので敷居が低い)
-- 標準技術化(KAGの後継という地位を確立する)
-- 商用利用(インディーからの商業へのステップアップで、Suika2のまま移植できる)
-では、そこにktabataのメリットはあるのかというと:
-- 現在の所属企業の知的財産にならずに済む
-- たとえktabataの所属企業が変わっても開発を継続でき、その時々の成果をOSSとして取り込んでいける
-- この程度の小規模のプログラムであれば隠して独占するよりも、晒した方が、他のプログラマからフィードバックを受けることができる
-- 2020年代、 サポート料がほしいOSS開発元によって、BSLをはじめとする非オープンソースライセンス化が進行している
- その上で、Polaris Engineにとっては次の点でオープンソースという形態が有利だと考えています:
-- 普及推進(無料なので敷居が低く、まだ売れる前のクリエイタに使っていただける)
-- 標準化(KAG、つまりPCの吉里吉里・Webのティラノスクリプトから完全移行してもらい、実質的な後継ソフトウェアとしての地位を確固たるものにする。場合によってはIEEE標準化する。)
-- Unityの置き換え(Unityはこの先、利用料で一悶着あることが容易に想像でき、ビジュアルノベルの発展を阻害すると考えています)
-- 商用利用(インディーからの商業へのステップアップで、Unityへの移植を不要とし、Polaris Engineのまま移植できる)
- では、そこにktabataのメリットはあるのかというと:
-- 勤務先企業の知的財産にならずにすむ
-- 出向などで勤務先企業が変わっても開発を継続できる
-- 正直、作品特化のノベルエンジンなら3日あれば書けるので、特段に権利を保護する必要が感じられず、それよりも広くフィードバックをいただきたい
- といったところです
- MITライセンスであるため、将来的にも誰かに独占されることはないので、安心してご利用いただければと思います
- MITライセンスという一番緩いライセンスであるため、将来的にも誰かに独占されることはなく、ktabataですら独占が不能ですので、安心してご利用いただければと思います