おさらい
やってること
現在の目標
プロトタイプということで、まずは動くものを04/06に作った。
実はこれめっちゃ色んな問題を裏で抱えていたので、1から書き直している途中。
つまり、「04/06時点と同等のことが出来るようにする」のが現在の目標。
2ヶ月かかってるやんつら
PC上で書き換えたソースコードが実機(スマホ)上に一瞬で反映される開発環境、めちゃくちゃ良くない?
— きゅぶんず (@kyubuns) April 5, 2020
ステートが引き継がれてるのもポイント。
理想の環境まであと一歩ーーー #Aprot pic.twitter.com/KN0VscTyvB
具体的な作業内容
- ゲームコードと、Aprotのライブラリコードが混ざらないように設計を1から見直し
- 実行速度を求めないとはいえ、流石に遅すぎたので使うライブラリも1から見直し
- HaxeレイヤーにECSを構築する
- Unityレイヤーの描画システムが重すぎたので作り直す
- PC上で書き換えたコードがiPhone上で勝手にリロードされる仕組みを作る
- バグ報告
- バグ報告
- バグ報告
Haxe、初めてまともに使ったけど現実を見ているめっちゃ良い言語で、
ゴリゴリ使うとバグが出るので最小再現ケースを作って頑張って報告していく。
ちゃんと対応してくれるHaxeのコミッターさん達ありがとう!
バグ報告内容
[Haxe] lua-vanillaフラグつけてるのにrequireしてくる
require bitしてくるけど
lua5.3ではビット演算は言語組み込みになったから要らなくない?って話になった
https://github.com/HaxeFoundation/haxe/issues/9475
[Haxe] luaでUnserializer使った時に正しく型が復元されない
このバグによりUnserializerを使う選択肢がなくなったので、
hxbitに乗り換えることに。
新たな戦いが始まる。
https://github.com/HaxeFoundation/haxe/issues/9484
[hxbit] C#で正しく初期化が行われない
既に前にissueが立ってて、その時はHaxeのバグじゃね?ってなって閉じてたんだけど
Haxeの方のissueで仕様ということになって放置されてたので新しく立てた。
まあ、これは回避可能なバグ。
https://github.com/HeapsIO/hxbit/issues/47
[Haxe] luaでhaxe.io.Bytes.getDataすると最初の1byteが失われる
どうも仕様っぽいんだけど、複数言語にコンパイルするときにluaだけネイティブで使えないもの帰ってくるのどうなの・・・って話。
https://github.com/HaxeFoundation/haxe/issues/9512
[hxbit] 機能リクエスト、uidをシリアライズ結果に含めない方法が欲しい
Serializerって言いながら、Serializeするたびに別の値返してきてビビったんだけど、
どうも勝手にunique idをカウントして入れてくれてるらしい。
- セーブデータがでかくなる
- データの検証に使えなくなる
とかのあたりで、外したい。
ネトゲとか作る時は、たしかにあると便利かも。
https://github.com/HeapsIO/hxbit/issues/49
[fastlane] dsymがでかすぎるとアップロードに失敗する
https://github.com/microsoft/fastlane-plugin-appcenter/issues/218
これから
ひたすらissueを立てるだけで何も生産していない人になるのは悲しいので、
Aprotさっさと動かしたい。
待ってるだけじゃ治らないのでHaxeのコード読んで自力で治そうとしている。
いや、本質はそこじゃないんだけど・・・まあ仕方ないコストかな・・・