下記バグが報告済みでした。修正されるのを待ちます。
In-Game: Tilesets do not update correctly when importing a replacement source image if "Disable Source Sprite Export" is disabled
すみません、この配列の一部分が消える現象はRunner.exe exited with non-zero statusの件とは別のエラーみたいです。
2次元配列を何度も使うスクリプトが原因だとみていたのですが、デバッガで確認してみたところ、スクリプトに使用される2次元配列の一部分がそっくり消えていました。
hairetu[0] = [1,2,3]←この部分が消失 hairetu[1] = [4,5,6] hairetu[2] = [7,8,9]
配列の要素数を削るような処理は書いてないはずなので、バッファオーバーフローの影響なのでしょうか。 (配列の要素が無いのが原因ならば普通にエラーメッセージが出てくる気もするのですが…)
仮に原因が特定できても本当にたまーにしかでない現象なので、検証は骨が折れそうです…。
・構造体を作ってる処理 ・roomのpersistent これらも、メモリリーク、バッファオーバーフローの要因になり得るようです。 もし原因箇所が絞り込めたら、わざとメモリリークを起こさせてできれば毎回再現するようにして、
gc_enable(false);
を試してみてください(再現性を確かめるためです。無効にするのは非推奨です)。 GMS2.3になってからガーベージコレクションがうまくいってないのかもしれません。 (GBに起因する他の不具合が修正されたばかりですし)
Forumの参考スレッド https://forum.yoyogames.com/index.php?threads/persistence-problem-i-think.78177/
Forumを調べたところこの問題はメモリリークやバッファオーバーフローが関連しているらしいです。 それが発生する部分どんな処理をしているか調べる必要がありそうです。
大きなファイルの読み書き、 非常に長い文字列の処理、 巨大な配列の処理、 オーバーフローを引き起こすループ処理、 サーフェイスの無限作成、などなど、
原始的な調べ方ですが、問題が出なくなるまで1つ1つコメントアウトしていき、原因箇所を突き止めるというもの。 https://forum.yoyogames.com/index.php?threads/x-windows-runner-exe-exited-with-non-zero-status-1073741819.53631/
しかし、たまにしか起こらないというのが曲者ですね。 上で挙げたような処理をしている部分に心当たりはあるでしょうか。
たぶんそういう理屈で差が出てるんだと思ってます。 描画パイプライン(と言うのか?)、描画までの内部のプロセスが分からないので、はっきりスッキリさせられないのがもやもやします。
むっちゃ仮説ですが 1の場合は640x360を0.75スケールしたもの 2の場合は640x360を2倍にして0.75でスケールしたもの
2の場合は画像上の1ドットは4pixelで表現されているので、なめらかに動いて見えるし、ドットの崩れも多少抑えられているみたいな感じでしょうか。
これ自分もずっと知りたかったやつです。ありがとうございます。
自分的にはドットの荒れ度合いよりもさらに動きがカクつくことが気になるので、「1は選びたくないなあ、でも2が負荷が高かったら嫌だな…」と思っていました。
そしたらプログラマーの方(著名ゲームを手掛けてる人で信頼しています)から負荷の違いはわずかだから好きな方を選んで大丈夫と教えてもらいました。
というわけで、未だ理屈は分かっていませんが、パフォーマンス面での違いは小さいと分かったので、2の方法を選ぶことにしました。
2.滑らかに動きます(サムネクリックで動きます)
View post on imgur.com
スクロールやキャラの動きにも違いが出ることが分かりました。
1.少しカクついています(サムネクリックで動きます)
Asset Browserでキーワード検索した時にフィルターされないオプションが欲しい。 今はフィルターされてマッチしたものだけが表示される。それしか選択肢がないのは不便だ。
gms2.3 Ctrl+Tでscript内のfunctionも検索対象にして欲しい。 そして選んだら、該当するscript内のfunctionを開いてちょうどいい位置に表示してほしい。Ctrl+Shift+Fの検索結果を開いたときのように。
gms2.3 コードエディタでfunctionにカーソル合わせてF1を押したら、該当するscript内のfunctionを開いてちょうどいい位置に表示してほしい。Ctrl+Shift+Fの検索結果を開いたときのように。
わお!
ありがとうございます! フォントエディタから[add]しておりまして、 texture page sizeを大きくしてみただけではダメだったのですが、 フォントエディタでサイズを小さくしたら正常に表示できました
IDEは2.2か2.3で、fontを組み込む際はfont_addを使用していますか?またはフォントエディタから[add]していますか?
font_addを使用しているならfont_texture_page_size(デフォルト1024px)を変更して解決されるかもしれません。
フォントエディタから追加してる場合は恐らく通常のテクスチャページに構成されますので ゲームのtexture page size(デフォルト2048px)を変更して解決するかもしれません。 game options > windows > graphics > texture page size
細かく自分なりにカーブで調整できるのはいいですよね。 コードだとそれが厳しいので。
結構大変そうですね
デバッガで、実行されたイベントやスクリプトのログが欲しい。(ブレークポイントからでいい)
理由 値が更新されたタイミングとどこで更新してるのかが知りたい時、無限にF11を押して値が変わるのを待つのが本当に疲れる。F11を押しすぎたら全部無駄になり最初からやり直し。これがつらい。 値が更新されたのを確認したらそこから少し戻って何が実行されたのか確認できたら楽になる。
野暮用を片付けたら、今月中に乗り換えるんだ……
Ctrl+Dやばいっすね
MathorooさんのはUdemyにもMathorooさんのはUdemyにも置いてあって、アドバイスも質問すれば受けてもらえるので良かったです。インドなまりあるけどゆったりとしていて結構聞きやすいので日本人にはいいと勝手ながら思ってます笑
おお!
Peyton Burnham https://www.youtube.com/channel/UCfh2Q3TsvlxM1S2GvXQ4eeQ 最近RPG作るシリーズが始まりました(初心者向けらしい)。
roomeditorで選択した箇所にメモを置く機能がくっそほしい
お!そうなんですね!
これ便利ですよね! ちなみに、フォルダ部分を右クリックで、カラーピッカーだけ表示することもできますよ('ω')
いいですね。大事にしたいです。
2.3になってからルーラーとか9スライスとか便利な機能がドサドサ追加されててうれしいですねぇ('ω')
知らなかった!助かります!😄
コードエディタで、enumにカーソルを乗せた時に値をバルーン表示して欲しい
ver2.3にはルーラーがあるんですね。 4月中にはバージョンアップするんだ……
リソースツリーから直接サウンドリソースを鳴らして聴きたい。
コンパイルがエラーなどで止まった時にアラート音を鳴らす機能が欲しい。
リソースツリーで、右クリックメニューに「グループに移動」機能が欲しい
共有ありがとうございます!イマイチwithとの併用がわからなくて自分のノートとにらめっこしていたのですが、asaさんの説明でやっと要領を得ました!otherが参照していたのはwithの外側のコードだったということを理解できてなったようです😳
otherは特定のインスタンスを参照するキーワードで、 使う場面によって参照するものが変わり、使い方が変わります。
withブロックの中で使った場合 withブロックの外側のコードを実行しているインスタンスを参照します。 instanceAで下記のコードを実行した場合、instanceB.nameは"taro"になります。
name = "taro"; with (instanceB) { name = other.name; }
collisionイベントの中で使った場合 otherは衝突した相手のinstanceを参照します。 例えば、obj_playerのobj_enemyとのcollisionイベントでのotherは、playerと衝突したenemyインスタンスを参照します。 下記コードはplayerのhpからenemyのdamage値がマイナスされます。
hp -= other.damage
というのが私の理解です(collisionイベントは使わないのでよく知りませんが)。
room上でtile編集とかできたらなあ
Animation EndやOutside Roomなど、それぞれのイベントに相当するような関数を用意して欲しい。
Updateイベントの中で
if (animation_end()) { // do something } if (outside_room()) { // do something }
のような記述が出来るようにanimation_end()やoutside_room()のような関数があったら便利だと思うので。
animation_end()
outside_room()
マニュアル(ver2~2.2.x) マニュアル(ver2.3~) YoYoGames YoYoGames 公式コミュニティ GM関連のYoutubeチャンネル集 解説・資料サイト集(日本語) 解説・資料サイト集(英語)
下記バグが報告済みでした。修正されるのを待ちます。
すみません、この配列の一部分が消える現象はRunner.exe exited with non-zero statusの件とは別のエラーみたいです。
2次元配列を何度も使うスクリプトが原因だとみていたのですが、デバッガで確認してみたところ、スクリプトに使用される2次元配列の一部分がそっくり消えていました。
配列の要素数を削るような処理は書いてないはずなので、バッファオーバーフローの影響なのでしょうか。
(配列の要素が無いのが原因ならば普通にエラーメッセージが出てくる気もするのですが…)
仮に原因が特定できても本当にたまーにしかでない現象なので、検証は骨が折れそうです…。
・構造体を作ってる処理
・roomのpersistent
これらも、メモリリーク、バッファオーバーフローの要因になり得るようです。
もし原因箇所が絞り込めたら、わざとメモリリークを起こさせてできれば毎回再現するようにして、
を試してみてください(再現性を確かめるためです。無効にするのは非推奨です)。
GMS2.3になってからガーベージコレクションがうまくいってないのかもしれません。
(GBに起因する他の不具合が修正されたばかりですし)
Forumの参考スレッド
https://forum.yoyogames.com/index.php?threads/persistence-problem-i-think.78177/
Forumを調べたところこの問題はメモリリークやバッファオーバーフローが関連しているらしいです。
それが発生する部分どんな処理をしているか調べる必要がありそうです。
大きなファイルの読み書き、
非常に長い文字列の処理、
巨大な配列の処理、
オーバーフローを引き起こすループ処理、
サーフェイスの無限作成、などなど、
原始的な調べ方ですが、問題が出なくなるまで1つ1つコメントアウトしていき、原因箇所を突き止めるというもの。
https://forum.yoyogames.com/index.php?threads/x-windows-runner-exe-exited-with-non-zero-status-1073741819.53631/
しかし、たまにしか起こらないというのが曲者ですね。
上で挙げたような処理をしている部分に心当たりはあるでしょうか。
たぶんそういう理屈で差が出てるんだと思ってます。
描画パイプライン(と言うのか?)、描画までの内部のプロセスが分からないので、はっきりスッキリさせられないのがもやもやします。
むっちゃ仮説ですが
1の場合は640x360を0.75スケールしたもの
2の場合は640x360を2倍にして0.75でスケールしたもの
2の場合は画像上の1ドットは4pixelで表現されているので、なめらかに動いて見えるし、ドットの崩れも多少抑えられているみたいな感じでしょうか。
これ自分もずっと知りたかったやつです。ありがとうございます。
自分的にはドットの荒れ度合いよりもさらに動きがカクつくことが気になるので、「1は選びたくないなあ、でも2が負荷が高かったら嫌だな…」と思っていました。
そしたらプログラマーの方(著名ゲームを手掛けてる人で信頼しています)から負荷の違いはわずかだから好きな方を選んで大丈夫と教えてもらいました。
というわけで、未だ理屈は分かっていませんが、パフォーマンス面での違いは小さいと分かったので、2の方法を選ぶことにしました。
2.滑らかに動きます(サムネクリックで動きます)
スクロールやキャラの動きにも違いが出ることが分かりました。
1.少しカクついています(サムネクリックで動きます)
Asset Browserでキーワード検索した時にフィルターされないオプションが欲しい。
今はフィルターされてマッチしたものだけが表示される。それしか選択肢がないのは不便だ。
gms2.3
Ctrl+Tでscript内のfunctionも検索対象にして欲しい。
そして選んだら、該当するscript内のfunctionを開いてちょうどいい位置に表示してほしい。Ctrl+Shift+Fの検索結果を開いたときのように。
gms2.3
コードエディタでfunctionにカーソル合わせてF1を押したら、該当するscript内のfunctionを開いてちょうどいい位置に表示してほしい。Ctrl+Shift+Fの検索結果を開いたときのように。
わお!
ありがとうございます!
フォントエディタから[add]しておりまして、
texture page sizeを大きくしてみただけではダメだったのですが、
フォントエディタでサイズを小さくしたら正常に表示できました
IDEは2.2か2.3で、fontを組み込む際はfont_addを使用していますか?またはフォントエディタから[add]していますか?
font_addを使用しているならfont_texture_page_size(デフォルト1024px)を変更して解決されるかもしれません。
フォントエディタから追加してる場合は恐らく通常のテクスチャページに構成されますので
ゲームのtexture page size(デフォルト2048px)を変更して解決するかもしれません。
game options > windows > graphics > texture page size
細かく自分なりにカーブで調整できるのはいいですよね。
コードだとそれが厳しいので。
結構大変そうですね
デバッガで、実行されたイベントやスクリプトのログが欲しい。(ブレークポイントからでいい)
理由
値が更新されたタイミングとどこで更新してるのかが知りたい時、無限にF11を押して値が変わるのを待つのが本当に疲れる。F11を押しすぎたら全部無駄になり最初からやり直し。これがつらい。
値が更新されたのを確認したらそこから少し戻って何が実行されたのか確認できたら楽になる。
野暮用を片付けたら、今月中に乗り換えるんだ……
Ctrl+Dやばいっすね
MathorooさんのはUdemyにもMathorooさんのはUdemyにも置いてあって、アドバイスも質問すれば受けてもらえるので良かったです。インドなまりあるけどゆったりとしていて結構聞きやすいので日本人にはいいと勝手ながら思ってます笑
おお!
Peyton Burnham
https://www.youtube.com/channel/UCfh2Q3TsvlxM1S2GvXQ4eeQ
最近RPG作るシリーズが始まりました(初心者向けらしい)。
roomeditorで選択した箇所にメモを置く機能がくっそほしい
お!そうなんですね!
これ便利ですよね!
ちなみに、フォルダ部分を右クリックで、カラーピッカーだけ表示することもできますよ('ω')
いいですね。大事にしたいです。
2.3になってからルーラーとか9スライスとか便利な機能がドサドサ追加されててうれしいですねぇ('ω')
知らなかった!助かります!😄
コードエディタで、enumにカーソルを乗せた時に値をバルーン表示して欲しい
ver2.3にはルーラーがあるんですね。
4月中にはバージョンアップするんだ……
リソースツリーから直接サウンドリソースを鳴らして聴きたい。
コンパイルがエラーなどで止まった時にアラート音を鳴らす機能が欲しい。
リソースツリーで、右クリックメニューに「グループに移動」機能が欲しい
共有ありがとうございます!イマイチwithとの併用がわからなくて自分のノートとにらめっこしていたのですが、asaさんの説明でやっと要領を得ました!otherが参照していたのはwithの外側のコードだったということを理解できてなったようです😳
otherは特定のインスタンスを参照するキーワードで、
使う場面によって参照するものが変わり、使い方が変わります。
withブロックの中で使った場合
withブロックの外側のコードを実行しているインスタンスを参照します。
instanceAで下記のコードを実行した場合、instanceB.nameは"taro"になります。
collisionイベントの中で使った場合
otherは衝突した相手のinstanceを参照します。
例えば、obj_playerのobj_enemyとのcollisionイベントでのotherは、playerと衝突したenemyインスタンスを参照します。
下記コードはplayerのhpからenemyのdamage値がマイナスされます。
というのが私の理解です(collisionイベントは使わないのでよく知りませんが)。
room上でtile編集とかできたらなあ
Animation EndやOutside Roomなど、それぞれのイベントに相当するような関数を用意して欲しい。
Updateイベントの中で
のような記述が出来るように
animation_end()
やoutside_room()
のような関数があったら便利だと思うので。