DLSiteに登録した話
まあ、色々あって、何があったかは、割愛しておいてですね、
先ほどですが、DLSiteにサークル登録してきました
まだ何も作品登録はしてないですが
そういうことで、次回作では、無料版と有料版とを分けて出すことを計画しています
有料版のほうでは、お金を出す価値がないといわれないくらいにはしたいですよね
先ほどですが、DLSiteにサークル登録してきました
まだ何も作品登録はしてないですが
そういうことで、次回作では、無料版と有料版とを分けて出すことを計画しています
有料版のほうでは、お金を出す価値がないといわれないくらいにはしたいですよね
スポンサーサイト
4月のこと
4月になりました
今日は暑かったですね これからしばらくめちゃ暑くなるんでしょうね
今日の話はですね、
C#からC++やRustに切り替えようとしたことや、
ブラウザの処理の違いの話です
1つめの話、2年前からC#以外の言語をやってみようと思っていたということです
2年前、C#からC++に移行しようとして、ヘッダを書くのががめんどうで未だに移行しきれてないということ。
そして最近になって、Rustに移行しようとしたけれど、IDEがなくて移行しきれないということ。
そして今日になって、Nimをやってみようかと思ったこと。
2年前から最近になるまであまり考えたことはなかったのですが、
マルチプラットフォームのSDL2やSFMLを使っているのに、Windows専用みたいな感じになってて、
どうにかマルチプラットフォームのHTML5に出力して、ダウンロード用とブラウザ用の2つに分けるということを考えました
そのためにC#とBridge.netを使っているのですが、
ダウンロード用とブラウザ用の処理の両方を書かないといけないし、
出力用の設定や実行などを色々しないといいけないので大変です
使って楽しいですが
そしてこれを使うとなると、ダウンロード版の方はJITではなくAOTコンパイルしたほうがよさそうなこと
C++とEmscriptenを試したのですが、これは使い方がよくわからず、
auto修飾子やSDL_Renderer関数を使うと変換できない、出力されるHTMLの内容にwasmファイルの使い方などが
わからなくて、メインにできない
Nimはまだやったことないのでわからないが・・・
もしかするとこれが一番ということになるかもしれない
試さないことには何も言えない
まあ今のところは、C#とBridge.netでプラットフォーム分けですね
なんだかんだで大変なので、この辺りはBridge公式がどうにか改善していくことを願ってます
2つめの話、ブラウザの処理が違うということです
最近、C#とBridge.netでブラウザゲーム作るようになったのですが、
実行する時に使うブラウザによって動作が違うらしく、
IEかクロームかFireFoxで実行するかどうかで正しく動くかどうかが違ってくるのがどうも
IEはWebGL使えない、クロームはローカルファイルを直接読み込めない、という感じなので
ブラウザゲームはFireFoxで動かす前提の旨を書こうかということです
ということで、どのブラウザでも同様に動くJavaScriptを書くということは無理ですね・・・
最後に、Twitterの投票もやってます!
使ったことが多いブラウザを教えてください#ブラウザ #IE #GoogleChrome #FireFox #Opera
— みにおん (@minion_cs_user) 2018年4月4日
カテゴリからスパム報告を削除した話
今日、スパム報告カテゴリを削除しました
ブログ更新後にリエミブログの管理人さんが来ることがなくなったので、
確認のために見てみたところ、足跡を残さない設定に変えていたことに気づきました
リエミブログさんのブログ閲覧自体をしてなくてわからなかったのですが、
ブログを見てみたところ、ちゃんとした小説ブログで、
アフィリエイトブログではないようですし、
自動訪問をやめたようですので、許そうと思いました
これからは安易な
悪質スパム扱いはしないようにしたいと思いました
Unityを使わなくてもブラウザアプリが作れる!?Bridge.netの使い方
〇前書き
Unityを使わずに、C#からHTML5に変換するライブラリ「Bridge.net」のメモ書きです
少し前からSFMLを使っていたのですが、クロスプラットフォームの利点を全然いかせてない気がして、
C#からクロスプラットフォームのHTML5に変換する方法を探していたところ、こういうライブラリを見つけました
Bridge.netは、Google検索をしたところ、日本語情報が見つからないので、
この記事が数少ない日本語情報となるでしょうか
この記事では、ライブラリの準備と使い方までを記述しています
〇準備
PCはWindowsで、またVisual Studioを使っていること前提の説明です
バージョン16.8.2時点での情報です
1・まずは下のURLにアクセスします
https://bridge.net/
2・青字のDownloadボタンをクリックします

3・For Visual Studioの下のDownloadボタンをクリックします

4・緑色のDownloadボタンをクリックし、インストーラをダウンロードします

5・Bridge.NET.16.8.2.vsixをダブルクリックで起動します
6・インストールをクリックでインストールが開始されます。インストールが終わったら事前準備の完了です
〇使い方
準備を整えたら、Visual Studioを起動し、「ファイル」から「新しいプロジェクト」を選択すると、
項目に「Bridge.net」が出ます。そこの「Class Library」が、Bridge.netを使うためのプロジェクトテンプレートです
このテンプレートを使って、新プロジェクトを作ったら、
コードを書いて、コンパイルすると、HTML5とJavaScriptに変換されます
(ビルド出力先の、bridgeフォルダ内のindex.htmlが実行ファイルです)
〇使用できない機能(確認できたものだけ)
DllImport属性が存在しない(よってネイティブdllは使用不可)
System.IO.Fileは存在するものの、使用はできない(実行時エラーが出る)
〇使用感
HTML5とJavaScriptの知識と、C#を書けるスキルがあれば問題なく使えるってところでしょうか
JavaScriptを書かずとも、C#でウェブアプリが作れるのがいいところでしょう
〇最後に
このライブラリだけでなく
HTML5もJavaScriptも分からないことが多いので、
もう少し検証したいと思います
SDL2を使うことを止めてSFMLを使いだした話など
気づけば早くも3月になったので
今年もこんな感じで、もう4月になった、もう5月になった、
といった感じになっていくんでしょうか
最初に、あまり下の話に関係ないことですが、
SDL2関係のライブラリの公式ページ一式と、
Unity公式ページと、SFMLライブラリ公式ページをブログとリンクしました
さて、今回の記事はSFMLというライブラリについて思ったことです
まず、どうしてSFMLを使っているのか、ということについては
下のQiitaの記事を参照してもらうとして、
【SFML.netを使ってみた】
SFML使ってみた感覚としては、これがかなり使いやすい
まず、ウィンドウ表示までで、約10行か15行程度!
これがSDL2だと、SDL2の初期化してからウィンドウ表示し、最後にSDL2の終了処理の実行、
と結構長くなってしまいます。SDL2だとウィンドウ表示に、およそ20行か25行ほどかかります
画像表示もSFMLなら楽
読み込んだImageからTextureを作り、それをSpriteのコンストラクタの引数にして、
ウィンドウの描画に、そのSpriteを指定すれば描画ができます
SDL2だと、画像読み込み処理や描画処理だけでなく、事前にRendererを作る処理も書く必要があります
音再生処理の実装も楽
SDL2だと、音再生ファイル読み込みや音再生はもちろん、事前にオーディオを開いておく処理を実装する必要があるのですが
これがちょっと面倒かつややこしい
SFMLだと、音ファイル読み込みと音再生処理の実装だけでOK
キーボードなどの入力検知も楽
SFMLのキーボード入力検知は、SDL2と違ってポインタ知識は不要
(SDL2だと、キーボード入力検知用ポインタ配列の番地を参照して検知する。
生ポインタなので、間違って代入をやってしまう危険がある)
SDL2だとジョイスティック検知が、ゲームパッドの種類によっては、
動作するのかしないのか、する場合はどんな風に動作するのか、というところがわからず、
うまくいきません
(少し前に作ったSDL2を使ったゲームパッド動作確認用ゲームで試したらボタンも十字キーも反応しない・・・)
(さらに、ゲームパッドの軸の検知用テストコードを書いて試してみたら、なぜかX軸の番号が0がでY軸番号が4なのは意味不明・・・)
それに比べると、SFMLでのゲームパッド検知処理は簡単にできました
軸の入力処理の取り方が非常にわかりやすくてよい
ちなみにゲームパッド動作検証にエレコムのスーファミ風ゲームパッドを使いました
これです
ゲームパッドにはいくつか種類があるので、他のパッドで同じように動作するかどうかまではわからないですが
といった具合に、SDL2よりもSFMLのほうがコードを短く書いていけるって感じですね
SDL2と違って、関数の引数や戻り値が分かりにくいという箇所がないっぽいし、
ポインタを覚えなくてもできるってところでしょうか?
(SDL2を何回か使っていたので、決してポインタがわからないということはないです)
ただ、SFMLの難点はですね、
一部の拡張子のファイルを読み込もうとするとエラーが出る
(確認できたものとして、読み込めない拡張子は、ico、mid、mp3がある)
(確認できたものとして、読み込める拡張子は、png、wav、ogg、ttfがある)
上記のため、アイコン用のicoファイルをpngに変換しておく必要がある、
さらに、midファイルをoggに変換するのも必須
画像の色違いを作るのがやや面倒かも?
SDL2だと8ビット画像ならばSurfaceのピクセルデータの色配列を変えることで色を変えることができます
生ポインタを使うので危険ですが
SFMLにはSDL2でいうSurfaceがありません
テキスト表示がやや難あり
Textオブジェクトを使うと簡単にきれいに揃った文字列の表示ができますが、これはメモリを食いやすいし、
拡大するとアンチエイリアスがかかってぼやけて表示されてしまいます
フォントから生成したテクスチャを使う場合は、結構面倒です
それでもSDL2で同様の処理を実装するよりも楽な感じがしますが・・・
といった感じで、いくつか欠点もある感じですが、
どれも自力でなんとかなるって感じでしょうか
SDL2を使うよりもずっと楽って気がします
最後に、あまり上の話に関係ないことですが、
最近ふとweb上で動作するゲームとか作りたいと思って、
それについて、SFMLでウェブ実行する方法とか検索してみたけれど、
これがよくわからない
でも、Html5とJavaScriptを書くとかヤだよ面白いけど
少し前にJavaScript書いてて本当にかなり面白かったんだけどねえ・・・
ウェブ実行コンテンツ作るなら、Unityというのもあるけど、
どうやったらいいかわからなくて、以前コレをやろうとしてすぐ挫折、を何回か繰り返して
結局今やってないな
操作がめんどうな感じだし、操作関連だけでもよくわからない部分多いし、
プログラムの組み方もよくわからん感じだし、でUnityを使いこなせる気がしなくて
Unityを使いこなせたとしたなら、SFMLよりずっと楽だと思えるかもしれないけど、
そこまで使いこなせる気がしないとゆーかなんというか・・・
ただ、Unityに移行したなら、ブラウザゲームとか作ってみたい
また、やたら長い文章を・・・

