Бусикатор

Форум для проектов, находящихся на стадии Альфа и Бета. В них ещё не реализована вся задуманная автором функциональность, а значит идёт активная разработка.

Модераторы: Sanja, Максим Кич

Аватара пользователя
Jolly Roger
Сообщения: 2973
Зарегистрирован: 27 ноя 2009, 09:10
Откуда: Minsk, Belarus

Re: Бусикатор

Сообщение Jolly Roger » 29 ноя 2012, 16:31

Игра ощутимо протормаживает.
Может не нужно такое количество обновлений экрана или, что там?
Просто в игре пока только маленькая площадка и один волк, а тормозит,будь здоров!
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.

Аватара пользователя
Foxman
Сообщения: 246
Зарегистрирован: 19 янв 2012, 20:30

Re: Бусикатор

Сообщение Foxman » 30 ноя 2012, 07:44

По скорости - 60 фпс это выставленный предел, на моих тачках ест 1-2% проца, видимо слишком мощные.

Сколько нажмешь кнопку, столько монстров и появится. У меня начинает подтормаживать когда я гоняюсь с 20-30 существами.

Я постараюсь оптимизировать вызовы перерисовки но сложно искать причины торможения, потому что на моей машине выигрыш от исправлений тупо не виден.

Аватара пользователя
Shirson
Сообщения: 427
Зарегистрирован: 03 окт 2011, 13:52

Re: Бусикатор

Сообщение Shirson » 30 ноя 2012, 14:07

А как у тебя перерисовка работает? По таймеру рисует все объекты?

Аватара пользователя
Foxman
Сообщения: 246
Зарегистрирован: 19 янв 2012, 20:30

Re: Бусикатор

Сообщение Foxman » 02 дек 2012, 22:35

Скрытый текст: ПОКАЗАТЬ
Безымянный2.png
Безымянный2.png (272.21 КБ) 6590 просмотров
http://code.google.com/p/my-busycator/d ... -opentk.7z

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

Обращаю внимание, если кто не знает,
1. размер окна можно менять,
2. перемещаться можно не только стрелками и нумпадом, но еще и по кнопке M+мышью/клавиатурой указание точки назначения.
3. выстрел - T+мышью/клавиатурой указание направления.

Аватара пользователя
Феникc
Сообщения: 679
Зарегистрирован: 27 ноя 2010, 15:01
Откуда: Челябинск

Re: Бусикатор

Сообщение Феникc » 03 дек 2012, 00:03

Опять на 30%. Плюс двери, стоящие посреди дороги и "Булька", которая, скорее всего, бутылка.
Всё вышесказанное - ИМХО, если не указано обратное.

Аватара пользователя
Foxman
Сообщения: 246
Зарегистрирован: 19 янв 2012, 20:30

Re: Бусикатор

Сообщение Foxman » 03 дек 2012, 05:33

Shirson писал(а):А как у тебя перерисовка работает? По таймеру рисует все объекты?
Нет конечно, обычный игровой цикл, просто с задержками, чтобы не обгонять 60fps.

И если более развернуто, то под отрисовку выделен специальный массив списков тайлов. Сначала в каждую ячейку записываются все тайлы, которые должны быть отрисованы, передается индекс тайла, цвет, туман войны или нет, угол поворота (пока есть кратные Pi/2), труп или нет (трупы отрисовываются не в квадрат, а в искаженную трапецию).

Затем, когда массив подготовлен, начинается отрисовка. Рисуется по слоям, сначала все первые тайлы из всех ячеек, это рисунок поверхности, затем остальные, объекты, пятна чего-либо, предметы, существа.

Второй проход рисует текст.

В зависимости от количества существ каждый ход игрока может происходить несколько перерисовок, (включая перерасчет всего освещения и зон видимости), по одной, на каждое действие каждого существа (сейчас там чуть сложней, для оптимизации). Например, игрок выстрелил из арбалета, он увидит каждое смещение своей стрелы.
Феникc писал(а):Опять на 30%. Плюс двери, стоящие посреди дороги и "Булька", которая, скорее всего, бутылка.
Кроме дверей больше ничего не смущает? =) Все объекты сейчас раскидываются по рандомайзу. На каждый блок N случайных объектов. И да, "булька", пока такое название. Скоро поменяю на "зелье".

30% даже когда окно неактивно? Или когда персонаж просто стоит? Или когда бежит вместе с 12 горожанами на поверхности? (вверху окна помечено сколько сейчас активных существ)

Аватара пользователя
Феникc
Сообщения: 679
Зарегистрирован: 27 ноя 2010, 15:01
Откуда: Челябинск

Re: Бусикатор

Сообщение Феникc » 03 дек 2012, 10:00

Foxman писал(а):30% даже когда окно неактивно? Или когда персонаж просто стоит? Или когда бежит вместе с 12 горожанами на поверхности? (вверху окна помечено сколько сейчас активных существ)
Когда неактивно - ноль. Стоит развернуть окно, даже не двигаясь с места, как подскакивает до 30-40 (по-моему, он просто отъедает всю свободную мощность на ядре). Во время запуска стойко держалось на 50.
Двери смутили потому, что там есть нормальные дома :)

Ещё пара придирок :)
В слове "Владелец" мягкий знак тоже не нужен.
При подборе предмета не сделана подсказка.
При попытке выпить труп выскочило вот это (игра вылетела):
Скрытый текст: ПОКАЗАТЬ
Не удалось привести тип объекта "GameCore.Battle.Corpse" к типу "GameCore.Essences.Potion". в GameCore.Acts.Items.DrinkAct.Do(Creature _creature)
РІ GameCore.Creatures.Creature.DoAct()
РІ GameCore.World.GameUpdated()
РІ GameUi.TheGame.Update(KeyState _keyState)
РІ Busycator.GameProvider.OnRenderFrame(FrameEventArgs _e)
РІ OpenTK.GameWindow.RaiseRenderFrame(Stopwatch render_watch, Double& next_render, FrameEventArgs render_args)
РІ OpenTK.GameWindow.Run(Double updates_per_second, Double frames_per_second)
РІ Busycator.GameProvider.Main()
Всё вышесказанное - ИМХО, если не указано обратное.

Аватара пользователя
Foxman
Сообщения: 246
Зарегистрирован: 19 янв 2012, 20:30

Re: Бусикатор

Сообщение Foxman » 03 дек 2012, 10:55

загрузку проца поймал, буду вечером посмотреть, спасибо

>>В слове "Владелец" мягкий знак тоже не нужен.
это неверное склонение, тоже буду проверять

>>выпить труп
Мсьё знает толк в извращениях =) Нет, ни пить ни есть еще не реализовано, как и многое другое.

пока еще утрясается архитектура, контента и функциональности по минимуму.

>>Не удал
Именно так? а файл в папке с игрой errors чего-то там тоже так выглядит?
Последний раз редактировалось Foxman 03 дек 2012, 11:00, всего редактировалось 1 раз.

Аватара пользователя
Феникc
Сообщения: 679
Зарегистрирован: 27 ноя 2010, 15:01
Откуда: Челябинск

Re: Бусикатор

Сообщение Феникc » 03 дек 2012, 10:59

Мсьё знает толк в извращениях =) Нет, ни пить ни есть еще не реализовано, как и многое другое.
Тогда у меня ещё один багрепорт! При попытке выпить Бульку - она выпивается! :D
Всё вышесказанное - ИМХО, если не указано обратное.

Аватара пользователя
Foxman
Сообщения: 246
Зарегистрирован: 19 янв 2012, 20:30

Re: Бусикатор

Сообщение Foxman » 03 дек 2012, 11:01

Феникc писал(а):Тогда у меня ещё один багрепорт! При попытке выпить Бульку - она выпивается! :D
Будет исправлено! :D

Аватара пользователя
Foxman
Сообщения: 246
Зарегистрирован: 19 янв 2012, 20:30

Re: Бусикатор

Сообщение Foxman » 03 дек 2012, 22:01

Вроде добил оптимизацию отрисовки. Для удобства тестирования добавил стартовый экран с выбором установок игры
Скрытый текст: ПОКАЗАТЬ
Безымянный3.png
Безымянный3.png (14.38 КБ) 6555 просмотров
http://code.google.com/p/my-busycator/d ... -opentk.7z

Аватара пользователя
Феникc
Сообщения: 679
Зарегистрирован: 27 ноя 2010, 15:01
Откуда: Челябинск

Re: Бусикатор

Сообщение Феникc » 03 дек 2012, 23:19

Скрытый текст: ПОКАЗАТЬ
Инициализатор типа "GameUi.Frame" выдал исключение. в GameUi.UIBlocks.StartSelectorUiBlock..ctor(Rct _rct, TheGame _game)
РІ GameUi.TheGame.LoadContent(IResourceProvider _resourceProvider)
РІ Busycator.GameProvider.OnLoad(EventArgs _e)
РІ OpenTK.GameWindow.Run(Double updates_per_second, Double frames_per_second)
РІ Busycator.GameProvider.Main()
Загрузка на 50% в самом начале, белый экран и вылет вот с этим сообщением.
Всё вышесказанное - ИМХО, если не указано обратное.

Аватара пользователя
Foxman
Сообщения: 246
Зарегистрирован: 19 янв 2012, 20:30

Re: Бусикатор

Сообщение Foxman » 04 дек 2012, 05:40

Феникc писал(а):Загрузка на 50% в самом начале, белый экран и вылет вот с этим сообщением.
50% в начале - грузится база с ресурсами.
Локализовал проблему, честно, никогда такого не встречал и не понял почему там падает, тем не менее починил, залил вместо последнего файла. Большое спасибо за проверки.

http://code.google.com/p/my-busycator/d ... -opentk.7z

PS Предполагаю был глюк оптимизатора.

Аватара пользователя
Феникc
Сообщения: 679
Зарегистрирован: 27 ноя 2010, 15:01
Откуда: Челябинск

Re: Бусикатор

Сообщение Феникc » 04 дек 2012, 11:04

Запускается нормально. Когда персонаж стоит, 0 загрузки, если зажать бег, подскакивает до 30. Через пару сотен ходов игра вылетела вот с таким сообщением
Скрытый текст: ПОКАЗАТЬ
Элемент с тем же ключом уже был добавлен. в System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
РІ System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
РІ System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)
РІ GameCore.Creatures.CreatureManager.AddCreature(Creature _creature, Point _worldCoords, Point _liveCoords, WorldLayer _layer)
РІ GameCore.Mapping.LiveMapBlock.Fill()
РІ GameCore.Mapping.LiveMapBlock.SetMapBlock(MapBlock _mapBlock)
РІ GameCore.Mapping.LiveMap.Actualize()
РІ GameCore.Mapping.LiveMap.AvatarChangesBlock(Point _oldBlockId, Point _newBlockId, Point _newCenterLiveBlockId)
РІ GameCore.Creatures.CreatureManager.MoveCreature(Creature _creature, Point _worldCoord, WorldLayer _layer)
РІ GameCore.Creatures.CreatureManager.MoveCreatureOnDelta(Creature _creature, Point _delta)
РІ GameCore.Acts.Movement.MoveAct.Do(Creature _creature)
РІ GameCore.Creatures.Creature.DoAct()
РІ GameCore.World.GameUpdated()
РІ GameUi.TheGame.Update(KeyState _keyState)
РІ Busycator.GameProvider.OnRenderFrame(FrameEventArgs _e)
РІ OpenTK.GameWindow.RaiseRenderFrame(Stopwatch render_watch, Double& next_render, FrameEventArgs render_args)
РІ OpenTK.GameWindow.Run(Double updates_per_second, Double frames_per_second)
РІ Busycator.GameProvider.Main()
Всё вышесказанное - ИМХО, если не указано обратное.

Аватара пользователя
Foxman
Сообщения: 246
Зарегистрирован: 19 янв 2012, 20:30

Re: Бусикатор

Сообщение Foxman » 04 дек 2012, 11:31

Феникc писал(а):Элемент СЃ тем же ключом уже был добавлен. РІ
ага, понял, у тебя вьювер текстовых фалов юникод не распознал =), благо фаром перевел,
это было "Элемент с тем же ключом уже был добавлен."

Ладно, буду смотреть. Бежал от города? в одну сторону? Или просто носился по округе?

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя