Навигация
Поддержать материально
Steam Greenlight

Логотипы
Медальки
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Темы форума
187 - Bullet Heaven
Вчера, 20:39
 Mefistofel
187 - ?
21.11.2024
 Dan
Galactic Showdown -…
21.10.2024
 KregHek
Новый IGDC
5.08.2024
 rimush
186 - Strategy!
15.07.2024
 VoroneTZ
WoL
3.07.2024
 Darthman
Привет выжившие
21.05.2024
 GeePee
185 - RPG
9.02.2024
 Vaskrol
В каком банке открыт…
24.01.2024
 Darthman
185 - ?
30.12.2023
 Mefistofel
Сейчас на сайте
Гостей: 7
На сайте нет зарегистрированных пользователей

Пользователей: 1,790
новичок: Durved
Обсуждение «Shady Caverns (ASCII CAVERNS)»
Страница 4 из 6 < 1 2 3 4 5 6 >
Shirson
Avatar пользователя

Опубликовано 12.09.2012 16:59 (12 лет назад)    #
ASCII CAVERNS 0.1.1b (Да, версии теперь более верные)

Запись идёт в APPLICATION DATA, добавлен перехват ошибок. Если будет сообщение - то хоть станет понятно из-за чего проблема.
Bullet Heaven:Не участвую.
bsivko
Avatar пользователя

Опубликовано 12.09.2012 18:23 (12 лет назад)    #
Shirson написал:
На радеонах и на не радионах. И там и там одинаковое окно получается?
Видимо разное. У тебя контекст устройства сдвинут вверх где-то на 22 пикселя. Кстати... а сколько у тебя в виндовсе размер заголовка окна? :) Не в этих районах?

~30. На скринах можно линейкой померять (;

Я подумываю под VCL перекинуть код. Размер подпрыгнет, но это более управляемо и более проще в отладке. Может и твою траблу решит.

Игра кстати мышь жестко захватывает. Переключаться на другие окна затруднительно становится. Хотелось бы чтобы по Alt+TAB можно было, без лишних переключений.
Bullet Heaven:Не участвую.
Shirson
Avatar пользователя

Опубликовано 12.09.2012 18:33 (12 лет назад)    #
bsivko написал:
~30. На скринах можно линейкой померять (;
Возможно, именно на эту величинц и съезжает контекст.

Игра кстати мышь жестко захватывает. Переключаться на другие окна затруднительно становится. Хотелось бы чтобы по Alt+TAB можно было, без лишних переключений.
Это особенность эксДжина. Там окно так создаётся и мышка каптурится.
Вообще, VCL меня привлекает по многим параметрам, наверное, сделаю спидтест и если не будет тормозить, то перееду на нормальные дельфовые формы. Там и отлаживать легче будет и переключаться можно куда угодно без проблем.
Bullet Heaven:Не участвую.
RichDad
Avatar пользователя

Опубликовано 13.09.2012 09:36 (12 лет назад)    #
Shirson написал:
Запись идёт в APPLICATION DATA

0_о нафига?)) Писать в папку с игрой рядом с экзешником - это как раз и есть "хардкорно". :) оставь путь как был ;)
Bullet Heaven:Не участвую.
Shirson
Avatar пользователя

Опубликовано 13.09.2012 14:01 (12 лет назад)    #
RichDad написал:
Shirson написал:
Запись идёт в APPLICATION DATA

0_о нафига?

Это попытка залечить твою проблему с записью.
Bullet Heaven:Не участвую.
RichDad
Avatar пользователя

Опубликовано 13.09.2012 14:52 (12 лет назад)    #
Shirson написал:
Это попытка залечить твою проблему с записью.

Дак он пишет в папку. Записывает и повисает.

То есть проблема не в сохранении как таковом, а в повисании после сохранения.
Bullet Heaven:Не участвую.
Shirson
Avatar пользователя

Опубликовано 13.09.2012 16:20 (12 лет назад)    #
Какте-нибудь сообщения выскакивают? Что видно на экране? С новой папкой всё тоже самое?
Bullet Heaven:Не участвую.
RichDad
Avatar пользователя

Опубликовано 13.09.2012 16:39 (12 лет назад)    #
Shirson написал:
Какте-нибудь сообщения выскакивают? Что видно на экране? С новой папкой всё тоже самое?

Сообщений никаких. Просто "приложение не отвечает" и через несколько секунд виндоза его убивает.

А с новой папкой проверю дома и скажу.
Bullet Heaven:Не участвую.
RichDad
Avatar пользователя

Опубликовано 13.09.2012 20:47 (12 лет назад)    #
Shirson написал:
Какте-нибудь сообщения выскакивают? Что видно на экране? С новой папкой всё тоже самое?

Скрин: http://pix.am/dT4z.png
Это я нажал F5. Управление повисло сразу. А через неск. секунд виндовз определил как повисшее.

редакция от RichDad, 13.09.2012 20:47

Bullet Heaven:Не участвую.
Shirson
Avatar пользователя

Опубликовано 15.09.2012 04:19 (12 лет назад)    #
RichDad, специальный фикс. Пробуй ASCII CAVERNS 0.1.1bf
Кажется я пофиксил твою проблему с зависанием при записи.
Только там еще кучка дополнений, поэтому старые сэйвы не подойдутЬ.

Изменена система меню.
Из меню теперь можно сразу загружать игру.

редакция от Shirson, 15.09.2012 04:20

Bullet Heaven:Не участвую.
RichDad
Avatar пользователя

Опубликовано 15.09.2012 10:35 (12 лет назад)    #
Shirson написал:
RichDad, специальный фикс. Пробуй
Кажется я пофиксил твою проблему с зависанием при записи.

Зависает (((

Мне даже удивительно что у вас не зависает.
http://pix.am/zbQH.png это начало зависания
потом появляются песочные часы, затем все становится серым и далее как на предыдущем скрине

Кстати, играть снова становится сложно. fps 10-30, в среднем 20. В предыдущем фиксе хотя бы 40-60 давал.
Bullet Heaven:Не участвую.
Shirson
Avatar пользователя

Опубликовано 15.09.2012 16:52 (12 лет назад)    #
У меня вчера начало зависать, поэтому и выяснил, из-за чего.
попробуй это
https://dl.dropbox.com/u/103424101/ASCII%20CAVERNS%20012.zip

Тут реализован непрозрачный дым. Что-то как-то... не нравится он мне. Некуздряво. Коллеги, попробуйте, скажите мнение.

редакция от Shirson, 15.09.2012 23:57

Bullet Heaven:Не участвую.
RichDad
Avatar пользователя

Опубликовано 15.09.2012 18:47 (12 лет назад)    #
Shirson написал:
У меня вчера начало зависать, поэтому и выяснил, из-за чего.
попробуй это
https://dl.dropbox.com/u/103424101/ASCII%20CAVERNS%20012.zip

Зависает. После зависания снимаю задачу, захожу, загружаюсь и дальше иду. Все как и раньше. :( Сейв завешивает намертво (по моим наблюдениям завешивает не игру, а ее управление, но может я туплю тут).

Ну и немного печалит, что ты спрятал сейв с игрой. Не олдскульно. ;) (а так как игра не имеет инсталлятора, то при удалении игры останется мусор, то это не есть гуд. как разработчик коммерческого ПО тебе говорю)
Bullet Heaven:Не участвую.
RichDad
Avatar пользователя

Опубликовано 15.09.2012 18:49 (12 лет назад)    #
Ты ж на дельфи пишешь? Покажи код сохранения, может найду глюк. Или сырцы с момента релиза на IGDC спрятал в темный чулан?))

редакция от RichDad, 15.09.2012 18:50

Bullet Heaven:Не участвую.
Shirson
Avatar пользователя

Опубликовано 15.09.2012 23:52 (12 лет назад)    #
RichDad написал:
Ты ж на дельфи пишешь? Покажи код сохранения, может найду глюк.


MemoryStream.SaveToFile();

Нашёл? :)
Висло из-за того, что обработчик клавиатуры напрямую вызывал процедуру записи. Без тормозов. 60 раз в секунду :)
Я воткнул задержку в 100*1/60=1.6с (более чем достаточно). У меня виснуть перестало (у меня виснуть и при задержке 10*1/60 перестало).

Или сырцы с момента релиза на IGDC спрятал в темный чулан?))
Да.
Bullet Heaven:Не участвую.
RichDad
Avatar пользователя

Опубликовано 16.09.2012 09:26 (12 лет назад)    #
Shirson написал:
MemoryStream.SaveToFile();

Ну говорю же: сохраняет и виснет. Так что ошибка явно не в этой строке :)

Ты попробуй ставить движок на паузу. То есть ввести некоторую boolean, которая в начале каждой процедуры стоит вида:
if (isOnPause) then return; (или у дельфи exit вместо return...)

Тогда сохранение будет такое:
isOnPаuse := true;
MemoryStream.SaveToFile();
isOnPаuse := false;

Так ты точно будешь уверен, что ничего лишнего не происходит в этот момент.

редакция от RichDad, 16.09.2012 09:27

Bullet Heaven:Не участвую.
bsivko
Avatar пользователя

Опубликовано 16.09.2012 10:00 (12 лет назад)    #
Shirson написал:

Я воткнул задержку в 100*1/60=1.6с (более чем достаточно). У меня виснуть перестало (у меня виснуть и при задержке 10*1/60 перестало).

Перестало виснуть на отдельной машине в отдельных случаях.

Все это хорошо, но винда это такой черный ящик, который может в любой момент забрать любой ресурс и не отдать. Например уйти в дефрагментацию по своим внутренним капризам.

RichDad написал:
Ты попробуй ставить движок на паузу. То есть ввести некоторую boolean, которая в начале каждой процедуры стоит вида:
if (isOnPause) then return; (или у дельфи exit вместо return...)

Не кажется, что в этом решении что-то не так?
Одна из процедур движка обязательно будет забыта. При добавлении новых процедур нужно об этом помнить, и помнить всем, кто касается разработки - а это мина замедленного действия.
Кроме того, когда-нибудь захочется сделшать ещё какой-нибудь флаг, и с имеющимся флагом он войдет в противоречие с новыми непредвиденными сюрпризами.

По-хорошему, для сохранения необходимо зафиксировать ситуацию в виде константных данных (никто не должен писать в данные, влияющие на образ сохранения во время фиксации). Далее запустить задачу в отдельном потоке с заданным для него таймаутом. И, если сохранение не удалось за заданное время (что контролируется внешним диспетчером), то тогда "Ой!" и сообщить об этом пользователю (по причинческим технинам сохранение не удалось, код ошибки Х, обращайтесь в саппорт).
Bullet Heaven:Не участвую.
RichDad
Avatar пользователя

Опубликовано 16.09.2012 12:35 (12 лет назад)    #
RichDad написал:
Ты попробуй ставить движок на паузу. То есть ввести некоторую boolean, которая в начале каждой процедуры стоит вида:
if (isOnPause) then return; (или у дельфи exit вместо return...)

Не кажется, что в этом решении что-то не так?

Согласен. Но я не видел его архитектуру и телепаты в отпуске. В порядке бреда и такой вариант прокатит.

Скажем, в большинстве движков, что я видел, такой блок надо поставить всего в 2-3 процедурах: Render(), Process() и, например, еще какая-то служебная. Так что, по сути, в двух местах всего блок поставить.

PS А вообще не предположу даже примерно как простой SaveToFile может подвешивать движок. Что-то Shirson с архитектурой намудрил.

редакция от RichDad, 16.09.2012 12:37

Bullet Heaven:Не участвую.
RichDad
Avatar пользователя

Опубликовано 16.09.2012 12:36 (12 лет назад)    #
хотя, нет. Рендер тоже не надо останавливать.

Только Process() получается надо ставить на паузу.

редакция от RichDad, 16.09.2012 12:50

Bullet Heaven:Не участвую.
Shirson
Avatar пользователя

Опубликовано 16.09.2012 16:34 (12 лет назад)    #
bsivko написал:
Перестало виснуть на отдельной машине в отдельных случаях.

Так у тебя тоже зависало? А чего молчал, я думал это толькл у RichDad проблема.

По-хорошему, для сохранения необходимо зафиксировать ситуацию в виде константных данных (никто не должен писать в данные, влияющие на образ сохранения во время фиксации). Далее запустить задачу в отдельном потоке с заданным для него таймаутом. И, если сохранение не удалось за заданное время (что контролируется внешним диспетчером), то тогда "Ой!" и сообщить об этом пользователю (по причинческим технинам сохранение не удалось, код ошибки Х, обращайтесь в саппорт).

Вообще, сохранялка сейчас это просто заплатка, по просьбам вас. Я не заморачиваюсь о совместимости со старыми версиями и прочими красотами, по причине того, что это временно. Полноценная сохранялка будет разрабатываться, когда причешу архитектуру и заменю врагов.
Сейчас сохранение просиходит как пошаговая запись всех важных переменных в поток, с последующей его записью. Косяк может вывалиться только на этапе взаимодействия с операционкой при записи на диск. Я подумаю над проблемой еще раз, с той стороны, что ты описал.

Кстати, тут сподвигся на тест рендера из текстурного атласа (как сайчас) vs рендер из отдельных текстур. Оказалось, что из текстурного атласа рендерится в 5 раз быстрее 8/ Я в полном офиге, всегда думал, что наоборот.
Так вот, для теста я отключил VSync и игра заметно шустрее работать стала. У меня он был забит по умолчанию в дрвйверах видеокарты. Сделал для игры исключение, чего и вам рекомендую.

И как вам непрозрачный дым? Мне не очень понравился.

редакция от Shirson, 16.09.2012 16:35

Bullet Heaven:Не участвую.
Страница 4 из 6 < 1 2 3 4 5 6 >
Перейти на форум:
Конкурсы
Открытые конкурсы:
Bullet Heaven

Старт: 23 ноября 2024г.
Финиш: 4 декабря 2024г.

Участники: 4
Недавние конкурсы:
 186 - Strategy
 185 - RPG XII
 184 - Arcade II
 183 - Novel
 182 - RPG XI
 Все конкурсы
Случайная игра
Мини-чат
Вам необходимо залогиниться.

Архив чата

26,205,441 уникальных посетителей

Создано на базе русской версии PHP-Fusion copyright © 2003-2006 by Nick Jones.
Released as free software under the terms of the GNU/GPL license.