simplestarの技術ブログ

目的を書いて、思想と試行、結果と考察、そして具体的な手段を記録します。

2018-01-01から1年間の記事一覧

GoのAPIサーバの疎通確認

■前置き 何かしらのユーザアクティビティを収集するWebページをjavascriptで書いていて、セキュリティの関係でクライアントのローカルストレージに一切アクセスできないということに気づいたとき Webサーバ側にクライアントの情報を送信するしかないってこと…

Webサーバーがブラウザから情報を受け取るサンプル

メモ書き、あとで消します。■前置き Webサイトを閲覧する iPad で行われる操作ログをファイルとして保存しようにも、保存することができない仕様なので詰む 解決するにはブラウザで処理した内容をサーバーに送るしかない どうやって?■前提知識 HTTP という…

WindowsでWeb アプリ開発環境作る

■前置き とにかく今こうして作業しているマシンがローカルネットワーク環境でWebサーバーとして機能すればいい index.html を配置したフォルダがルートになって Web サーバーとなる仕組みがほしい■本題 IIS がキーワード、導入手順は以下のどれも同じ手順を…

Go言語の通信スケルトンコード例

■前置きGoってのはマルチコア処理で効率的に同時アクセスをさばく、現時点で最強?のネットワークプログラミング言語ですので その機能を最大限に発揮するスケルトンコードをチュートリアルで公開しているものと思っていました。 が、あまりにプリミティブな…

GoのIDE試し

■前置き1 Go言語学習を、ずっとテキストファイルで進めてきましたけど、そろそろ限界 C#のようにVisual Studio のインテリセンスがあるなら使いたいVisual Studio Code で、Go サポートがあるので、設定して試してみます。■本題Visual Studio CodeVSCode 入…

Goはローカルで通信確認できる?

■前置き1Go 環境整って Hello World 動きます。 言語の目的がマルチコアのネットワークブログラムなんだから、数行でサーバーとして機能するんだよね? どういう書式か確認させてもらおう■前置き2先に書式を学んで行け、馬鹿野郎 とドキュメントに怒られた…

Go の Hello World はどうやって確認?

■あGo 言語のトップページで Hello World を確認できる The Go Programming Languageコードをオンラインで解析して、結果を返してくれるみたいjava っぽく、package 名をファイル頭で定義して import で出力関数を利用できるようにし main 関数(プログラム…

Fixed, Microsoft designer keyboard automatically sleeping problem

Step1: open device manager Step2: expand "Human Interface Devices" Step3: open Bluetooth Low Energy GATT HID Devices property Step4: select tab named power management and check off automatically sleep setting. Step5: restart you machine.Ar…

Go って何?

■前置き1プログラミング言語は最終的にマシン語に翻訳されて、コンピュータの加算器で足し算を繰り返しますので、私から見ればどんな言語も同じに見えます。 Go は何なのかという問いは、どういう思想で作られているのかという点 違いはどれだけ人間に認識し…

環境準備

■前置き1オンラインゲーム開発には UNIX ベースの OS からなるマシンが必要です。 一般の人が触れるようになった UNIX 仕様を満たすOSで有名なものが Linux で、そのLinux のディストリビューション(Linux の種類を表すもの?)には Ubuntu, Cent OS などが…

オンラインゲーム化の準備

AI

昨年9月からAIに身体性を与えるためのマイクロワールドの構築を続けてきました。 趣味プログラムなので、やりたいことをやりたい順番で進めてきたわけですが、見積もりをしてこなかったが故にしっぺ返しが… さすがにブロック同士の相互作用を行う大気シミュ…

AIに身体性を与えるためのマイクロワールドの構築18:大気の循環

この世界で水が山頂の方から流れてくるのはなぜか考えたことはありますでしょうか? 大気は循環しており、その大気に水が含まれているため、その大気が雨を降らせ、山から水が流れてきます。はい、ということで今回は大気の循環をブロックのロジックを使って…

Task.Run:Unityマルチスレッド処理に引数を渡す方法

AIに身体性を持たせるためのマイクロワールド:ブロックロジックの可視化システムの実装メモです。 まずは結果動画をご覧いただきたい。www.youtube.com マルチスレッド処理にて空気に触れている土ブロックだけが確率的に消失(正しくは空気ブロックにマテリ…

Unity:MessagePackをオブジェクトのバイナリ圧縮として使う

MessagePackは、効率の良いバイナリ形式のオブジェクト・シリアライズ フォーマットです。JSONの置き換えとして使うことができ、様々なプログラミング言語をまたいでデータを交換することが可能です。 しかも、JSONよりも速くてコンパクトです。 例えば、小さ…

Unity:C#で共用体ちっくなビットフィールドの利用:SimpleHexWorld17.8:適切にマテリアルを切り替えたい

前回、パフォーマンスを落とさないために、テクスチャ座標で異なるブロックの種類を表現できる仕組みを作ったわけですテクスチャ座標でブロックの種類を表現が、それでもマテリアルを切り替えたいときだってあります。そもそも四大元素や陰陽五行はマテリア…

金ブロックだけでできたマイクロワールドの様子

AIに身体性を与えるためのマイクロワールドの構築の、ちょっとした描画遊びです。これぞ金の山…ゴージャスです! 動画はこちら www.youtube.comマテリアルを一つにして、ブロックの種類をテクスチャ座標で切り替える方法を作りましたが、 しかし、今後金属ブ…

AIに身体性を与えるためのマイクロワールドの構築17.7:Unityテクスチャ座標活用で描画負荷を削減

前置き Unity では一つのメッシュに対し、複数のマテリアルを面ごとに割り当てることができます。 利用するマテリアル数を増やしていくと、増やした分だけレンダリングパスが増えていき、描画時間が線形的に増加し、フレームレートが大きく落ちてしまいます…

AIに身体性を与えるためのマイクロワールドの構築17.6:Unityでのマルチスレッド処理の話

前置き AIに身体性をもたせるためのマイクロワールドの開発を進めていますが、マルチスレッドで処理しているため、期待と異なる結果になったり、パフォーマンスが極端に落ちたりすると、うまく原因を特定できません。 頼みのプロファイラーも抽象度の高い結…

Unity:シーンに一つだけしかアタッチできないSingletonMonoBehaviour+実装例

グローバルスコープに唯一のインスタンスを生成して、プロジェクトのどこからでも容易にアクセスできる仕組みがシングルトンの良いところです。 絶対に一つしかインスタンスを生成していないことをコードから保証できる点で、優れたデザインパターンだと思い…

AIに身体性を与えるためのマイクロワールドの構築16.5:水のロジック

Unity でマインクラフトライクなゲーム制作の記録です。前回用意したプラグイン機構を使って、水ブロックのロジックを考えてみました。 ゆっくり移動するのですが、早送りするとそれらしい振る舞いに見えなくもないかな…動画はこちら www.youtube.com今回は…

AIに身体性を与えるためのマイクロワールドの構築16:風・土そして水

世界を構成する四大元素は風・土・水・火でした。 現在は風と土だけで世界が構成されていますので、水を作り出す必要があります。イメージとしてはこんな感じ 水は液体なので、固体である土と違ってより低い風ブロックの隙間へ移動していくものです。以前よ…

AIに身体性を与えるためのマイクロワールドの構築15:WorldCreation2

UnityでMinecraftライクゲーム作ってます。前回作った天地創造プラグインにパーリンノイズで高さを決定する機能を入れてみました。 こんな感じでみなさんの自由なアイディアをゲームに取り入れられます。www.youtube.comプラグインの実装はこちら↓ ノイズの…

AIに身体性を与えるためのマイクロワールドの構築14:WorldCreation

天地創造 ここのところメインスレッドが処理落ちしないよう、バックグラウンド処理でメッシュ構築を行う仕組みを作ってきました。 こちらが機能するようになったので、今回はいよいよブロックのロジックに入ります。さっそく適当な天地創造プラグインを書い…

AIに身体性を与えるためのマイクロワールドの構築13:Unityのプラグイン機構

前置き 今日のゲームの面白さは、決められた内容をコントローラをピコピコしながら進めるところにはありません。 いつしかゲームは絵本や映画とは異なり、何度プレイしても内容が変化する、飽きが来ない仕組みへと変化してきました。それはいつしか自らの筆…

AIに身体性を与えるためのマイクロワールドの構築12:ワーカースレッドの仕組み

前置き ゲームの描画ループを止めることなく、バックグラウンドで処理を行う作りにすることは、ゲーム体験を向上させる点で重要なことです。 マイクロワールドの表示において、ブロックのメッシュの更新がバックグラウンドで実行できないという Unity の厳し…

Unityでクラスをファイルとして保存(シリアライズ)

前置き ゲーム内で利用しているクラスオブジェクトをそっくりファイルに保存して 次にゲームを起動したときに、そのファイルからクラスオブジェクトを完璧に復元できます。 できる方法があります。ゲームの状態をセーブして、次にゲームを起動したときにロー…