Баги INSTEAD

  1. ‹ Older
  2. 10 months ago

    peter

    Nov 2016 Administrator Земля(Москва) User since 2014

    Там еще есть init(). init() и start() для разных целей. start() -- доп настройки после загрузки игры после восстановления или старта. Например, в ней удобно восстанавливать экран при использовании спрайтов. init() -- первичная инициализация. Например, загрузка спрайтов.

  3. 7 months ago

    MaJoR KolZ

    Jan 2017 Постоялец Харьков User since 2014

    У меня почему-то трек с шумами стал воспроизводится (он из моей первой игры, работала под INSTEAD 1.8.1).
    Запуска на INSTEAD 2.4.1 под Ubuntu 16.10 — собирал из исходников с Lua 5.2 и SDL2.

    Вот ссылка на архив — если у кого-то еще проблемы?

  4. kerber

    Jan 2017 User since 2014

    Попробуй этот трек https://dropfile.to/j7HFQmT
    Ссылка действует сутки. У тебя частота 48 я перекодировал на 44.

  5. peter

    Jan 2017 Administrator Земля(Москва) User since 2014

    В новом инстеде 48 не держится :( Связано с SDL2.

  6. MaJoR KolZ

    Jan 2017 Постоялец Харьков User since 2014

    kerber, peter — а, вот в чем дело. Спасибо.

  7. 5 months ago

    [deleted]

    Apr 22
    Deleted 2 months ago by peter
  8. peter

    Apr 22 Administrator Земля(Москва) User since 2014
    Edited 5 months ago by peter

    Есть такая бага, в новой версии ее не должно быть.
    Проверь беты отсюда: http://instead.syscall.ru/instead/2.5.0
    Возьми kit (это ланчер + инстед);

  9. [deleted]

    Apr 22
    Deleted 2 months ago by peter
  10. 4 months ago

    Casper_nn

    May 16 User since 2014

    Инстед 3. Не знаю бага или нет, но при

    instead.nosave = true
    instead.noautosave = true

    сцена не обновляется при смене темы (темы положены в папку themes то есть меняет их сам инстед). После смены пустой экран, приходится нажимать F5

  11. peter

    May 16 Administrator Земля(Москва) User since 2014

    Поизучаю. А в 2.5 интересно, то же самое?

  12. peter

    May 17 Administrator Земля(Москва) User since 2014

    Casper_nn Ты знаешь, не вижу пока проблемы на тестах. А на навигаторе сразу увидел даже при переходе в full-screen и выходе из него. При этом в окне отладки вижу ошибки в main3.lua. Разбираться пока нет времени, посмотри сам. Просто перейти в fullscreen, вызови отладчик -- и там будут эти сообщения. Все-таки очень похоже на то, что какая то бяка в коде игры есть, которая при перезапуске вылезает. Но что именно -- не готов предположить.

  13. peter

    May 17 Administrator Земля(Москва) User since 2014

    Разобрался. Дело вот в чем.

    При перезапуске игры (alt-enter, или смена темы) делается save специальный -- это и не autosave и не обычный save, а служебный -- временный сейв с номером -1.

    Так вот, nosave и noautosave -- это запрет игроку сохранять игру, но предполагается, что в движке save все-таки не приводит к ошибкам, и используется иногда. А в навигаторе где-то с этим проблема. То-есть загрузка этого сейва приводит к проблемам. Вероятно, часть кода инициализации не так работает. Сложно сказать. Ты можешь совсем выключить save любой -- отрубив функцию сохранения:

    std.save = function() end

    Но конечно, я б поразбирался, что там происходит. И исправил бы.

  14. Casper_nn

    May 20 User since 2014

    Вроде как починил. Кстати интересно, что при смене темы или переходе в полный экран сначала вызвается start, как будто первый запуск идет, а потом start(true). Только выложить пока не могу, что-то с репом или что-то с провайдером.

  15. peter

    May 20 Administrator Земля(Москва) User since 2014

    А если просто load делать, тоже 2 раза старт?

  16. peter

    May 20 Administrator Земля(Москва) User since 2014

    Вообще, это может и правда странно, но по замыслу там как:

    Запуск игры: init->start()
    Подгрузка save игры: start(true)

    При этом в debug режиме для выявления ошибок на ранней стадии:

    Запуск игры: init->start()
    Подгрузка игры: уничтожение мира, init(), start(true)

  17. peter

    May 20 Administrator Земля(Москва) User since 2014

    В теории, в правильном коде проблем по идее не должно возникнуть, но вообще, давайте обсуждать :)

  18. peter

    May 20 Administrator Земля(Москва) User since 2014

    Наверное, плохое решение. Надо думать. :)

  19. Casper_nn

    May 20 User since 2014

    При запуске игры: start(nil) init() start(true)
    При загрузке игры или смене темы: init() start(nil) init() start(true)
    Если нажать "начать заново": init() start(nil)

    Наверное в большиенстве случаев такое поведение некритично, но может сыграть если в игре всякие сложные расчеты графики или выделение памяти под объекты при загрузке.

  20. Casper_nn

    May 20 User since 2014
    function init()
    dprint ('init()')
    end;
     
    function start(load)
    	dprint ('start ('..tostring(load)..')')
    end;
     
    room { nam = 'main'}
  21. peter

    May 20 Administrator Земля(Москва) User since 2014

    > При загрузке игры или смене темы: init() start(nil) init() start(true)
    Хитрость в том, что так только при включенном дебаге:
    - init() start(nil) (тут идет уничтожение мира) init() start(true)

    При выключенном дебаге будет так:
    init() start(nil) start(true)

    На самом деле, если в init писать то что создается к началу игры (инициализация)
    А в start -- восстановление состояния-- то все будет ок. Но, согласен, тут есть возможность прострелить себе ногу. Я подумаю на будущее.

    Сейчас надо помнить, что start - это именно запуск игры и он может вызваться уже по загруженному и инициализированному миру после загрузки save.

  22. Newer ›

or Sign Up to reply!