Re: MysteriesRL
Добавлено: 15 фев 2015, 12:20
Я понял, что это такое!
Гильдияподобный рогалик.
Гильдияподобный рогалик.
Спасибо, стараюсь! И буду стараться дальше, но тут без мнения пробующих - никакAnfeir писал(а):Выглядит клёво
Тут всё просто Двойная буферизация экрана была сразу сделана, а также проверка на изменение символов терминала. Но проверка на измененные символы изначально была с двумя ошибками, чего я не заметил. Только введение отладочного счетчика перерисованных символов и вывод этого счетчика в заголовок окна - помогли увидеть, что в режиме основного игрового экрана обновляется не 1-2 символа, а сразу 2-6 тысяч. Зато в режиме миникарты - всё работало как положено. Это привело к созданию четырех оптимизаций: трех в алгоритмах отрисовки терминала и одна - в алгоритме расчета текущего коэффициента яркости дня. Теперь во всех экранах будущей игры перерисовывается строго столько символов, сколько изменили свой цвет или значение. Вдобавок еще одна оптимизация контролирует символы, у которых подряд одинаковые цвета, плюс еще одна есть... Если всего этого будет мало, то напоследок оставлен задел, который даст дополнительную секунду выигрыша на перерисовку каждых 500 тыс. символов, правда он будет требовать дополнительной памяти.Anfeir писал(а):Производительность - может, профайлером пройтись? Просто когда стоишь , кушает 10-20% проца (посмотрел, равномерно раскидывается между 4мя ядрами). В режиме миникарты 0%. Когда ничего на экране не изменилось, перерисовывать ведь нет смысла? Не помню как оно в жаве,.. но если запросило событие отрисовки, можно подсунуть на blit готовый буфер. А обновлять его когда обновляется содержимое. (Подозреваю, что быстрей всего рисовало бы с хардварной акселлерацией.) Или оно над чем-то ещё думает? Т.к. время-то считает.
С путями - наверное в батнике уберу по-умолчанию Мысль хорошая.Anfeir писал(а):По поводу путей до жавы - у себя просто убрал путь до javaw. Почти гарантированно оно уже есть в PATH
null is attacking Jesus Gomes
Jesus gomes took 5 damage
Смешение времён небольшое. Впрочем, наверное, сейчас это неважно.
Подскажи конкретную ссылку на игру, плиз! Ты Guild имеешь в виду или что-то другое? Т.к. я сейчас почитал описание Guild на roguebasin и не увидел ничего похожего Я правда в него не играл, но описание не вдохновило и не показало ничего похожего... Наверное описание плохоеDenox писал(а):Я понял, что это такое!
Гильдияподобный рогалик.
А еще стамину и чтобы запыхавшийся герой часто и громко дышал, выдавая себя в стелс ситуациях.- реализовать бег;
- нужна предварительная реализация экипировки, предметов, веса;
- продукты и голод, быть или не быть?
- система "страха" - нужна обязательно, когда и как реализовать?
Это нужно будет обязательно! Что-то мне чрезмерно хочется стелс, не знаю уж почему. Но при этом хочется обложить его такой данью, чтобы стелс был сложныйOreyn писал(а):А еще стамину и чтобы запыхавшийся герой часто и громко дышал, выдавая себя в стелс ситуациях.
Церкви, пивные и бордели - будут обязательно Страх - тоже безусловно. Но вот продукты и голод... неоднозначно. Не могу обосновать, но зачем-то хочется дополнительного ограничителя для игрока. Голод должен обеспечить минимум двух-трех суточный лимит для игрока-проходимца-приключенца на посещение всяких сооружений вне города. Типа катакомб. Вдобавок, по моим идеям, приключенец будет сильно ограничен в весе и количестве носимого снаряжения... как обычный человек в общем. А значит много еды с собой в катакомбы не утащит, а значит не сможет там долго шастать.Oreyn писал(а):Продукты и голод актуальны в сурвайвл зомби апокалипсисах, наверное "страх" больше подойдет на роль "голода". И обязательно возможность для восстановления - пивные, бордели, церкви.
Нет. Первый раз слышу. Сейчас начну искать и смотреть В чем соль?Oreyn писал(а):Darkest Dungeon уже видел?
Oreyn писал(а):После черты в 100 страха (который как накидывают ивенты в подземелье так и спец атаки мобов) персонаж переходит в особое состояние.
Спасибо!Харука-тян писал(а):Качаю рулбуки по рпг с вменяемостью, если найду что-то примечательное - сообщу.Oreyn писал(а):После черты в 100 страха (который как накидывают ивенты в подземелье так и спец атаки мобов) персонаж переходит в особое состояние.
Это пахнет все сериализацией и загрузкой и выгрузкой чанков карты на ходу. Возможно еще и их генерацией во время загрузки.либо придумывать новый способ управления уровнями
Неет) The Guild, симулятор средневекового жителя)Alchemist писал(а): Подскажи конкретную ссылку на игру, плиз! Ты Guild имеешь в виду или что-то другое? Т.к. я сейчас почитал описание Guild на roguebasin и не увидел ничего похожего Я правда в него не играл, но описание не вдохновило и не показало ничего похожего... Наверное описание плохое
Советы по решению таких проблем всегда получаются какие-то капитанские =_=. Если уровень в память не помещается, то не надо его там хранить целиком. Можно сделать менеджер карт, при котором у карты будет обычный интерфейс, но внутри массив будет разбит на блоки и автоматически свапиться с диском. Самым простым вариантом будет держать в памяти только 3x3 блоков карты с центральным в котором в данный момент находится игрок. Но это, правда, может плохо работать для живого мира, где надо постоянно обсчитывать множество объекты в произвольных участках карты. Возможно, имеет смысл на данном этапе забить на проблему потребления памяти (в конце концов совеременные ОС тоже свапить умеют) и сотредоточиться на механике. Когда будет окончательно известно что и в какой момент может потребоваться от карты, можно будет подменить ее оптимизированной штукой, сохранив интерфейс -- это уже более-менее обычная инженерная задача.Alchemist писал(а):Но тут небольшая проблема: сейчас карта в 2000*2000 тайлов выделяется в памяти согласно профилировщику 1.5 секунды, плюс миникарта 200*200 - еще с полсекунды. <...> Да еще каждый уровень в 2*2 тыс. тайлов лопает по 120 мегов оперативки. Как ни крути, но еще уменьшить размер тайла некуда...
В "простое" загрузка CPU стала меньше; при движении, особенно на исследованной карте -- все так же, под целое ядро. Меня правда смущает, что при беге как-будто бы проскакивают клетки и это создает эффект подтормаживания (низкого FPS). Причем выглядит это одинаково что на десктопе (5-25% CPU), что на хилом нетбуке (50%+), так что вероятно это не проблема потолка производительности.Alchemist писал(а):Кстати, вопрос к тем, кто пробовал новую версию: тормоза и нагрузка на проц уменьшились? Стало лучше или нововведения эффекта не дали?
Не видел, но теперь весьма заинтересовался Пока в закладки, а потом может доберусь поиграть.Denox писал(а):Неет) The Guild, симулятор средневекового жителя)
http://www.ag.ru/games/guild-2
Пока что меня больше беспокоит не расход памяти, а накладные расходы по времени, которые образуются в момент запуска игры. Пока-то они невелики, но если я добавлю еще три слоя карты (подвалы, катакомбы и минимум - один дополнительный этаж зданий) - это будет хана. Основная идея, вокруг которой крутятся мысли - именно введение менеджера карт с сегментированной подгрузкой. Насчет живого мира, тут своя идея: дело в том, что у меня все объекты карты, здания к примеру, представлены как рендеренным образом в тайлах на карте, так и отдельными объектами с дополнительными свойствами. Поэтому при сегментированной обработке, в памяти можно держать только отдельные сегменты карты, и всю модель города. Это позволит городу "жить", с минимумом обращений к карте. А рендеринг изменений карты (открытие/закрытие дверей и т.п.) обрабатывать только тогда, когда это происходит в поле зрения игрока. Но это задел на будущее, буду думать пока...Cfyz писал(а):Если уровень в память не помещается, то не надо его там хранить целиком. Можно сделать менеджер карт, при котором у карты будет обычный интерфейс, но внутри массив будет разбит на блоки и автоматически свапиться с диском. Самым простым вариантом будет держать в памяти только 3x3 блоков карты с центральным в котором в данный момент находится игрок. Но это, правда, может плохо работать для живого мира, где надо постоянно обсчитывать множество объекты в произвольных участках карты. Возможно, имеет смысл на данном этапе забить на проблему потребления памяти (в конце концов совеременные ОС тоже свапить умеют) и сотредоточиться на механике. Когда будет окончательно известно что и в какой момент может потребоваться от карты, можно будет подменить ее оптимизированной штукой, сохранив интерфейс -- это уже более-менее обычная инженерная задача.
Насчет загрузки проца при движении, и проскакивания тайлов - жаль Многовато... Пока не знаю, что делать. В профайлере всё выглядит сейчас очень неплохо.Cfyz писал(а):В "простое" загрузка CPU стала меньше; при движении, особенно на исследованной карте -- все так же, под целое ядро. Меня правда смущает, что при беге как-будто бы проскакивают клетки и это создает эффект подтормаживания (низкого FPS). Причем выглядит это одинаково что на десктопе (5-25% CPU), что на хилом нетбуке (50%+), так что вероятно это не проблема потолка производительности.
Кстати, про нетбуки. В 1024x600 окошко заметно не влазит: карта еще с горем пополам, а вот панели уже не очень. Причем при 9" экрана, 8x8 пикселей это площадь повехности макового зернышка =).
В свете чего есть пара вопросов, весьма праздных впрочем, но уж чтоб два раза не вставать: а какую минимальную конфигурацию предполагаешь поддерживать? CPU, RAM, размер экрана (порядок). Планируется ли использовать GPU? Каков минимальный размер, в клетках, карты на экране?