www.G-2B.com » участники форума » флуд » Gagarin

Страниц (12): « 1 2 3 4 [5] 6 7 8 9 ... » В конец
 

81. krre - 11 Июля, 2016 - 18:59:07 - перейти к сообщению
Добавил debug HUD (Head-Up Display), который мне показывает текущий FPS. Вообще HUD-ов в играх обычно два. Первый, собственно, игровой, который выводит состояние игры, как-то здоровье игрока, его очки, или сколько осталось патронов, а второй отладочный HUD, чисто для программиста. Он включается какой-нибудь секретной клавишей (у меня F5) и показывает полезную техническую информацию о работе графической подсистемы.

FPS - один из самых главных и нужных показателей. Если он начинает "проседать", то есть падает ниже 60 кадров в сек, значит, видеокарта не успевает рендерить картинку, и возможен стробоскопический эффект. У меня сейчас просто зверская производительность. Что бы я ни делал, как бы яростно ни крутил цветастый прямоугольник, FPS стабильно держится в районе 60. Вот как надо, учитесь! гы-гы!
82. Коля Логан - 11 Июля, 2016 - 19:10:27 - перейти к сообщению
krre:
FPS стабильно держится в районе 60. Вот как надо, учитесь!

Фигня, надо чтоб был 24. гы-гы!
83. krre - 11 Июля, 2016 - 19:13:37 - перейти к сообщению
Кстати, да. Можно понизить FPS до 24 и наложить фильтр старой ЧБ киноплёнки. Будет как первый полёт Гагарина в космос на корабле "Восток"! Отлично!
84. krre - 11 Июля, 2016 - 20:24:50 - перейти к сообщению
Сегодня у меня выдался продуктивный день (от слова "продукты", то есть хавчик). Поскольку я теперь могу выводить на экран текст, то становлюсь от этого всемогущим. Ко всем прочим плюшкам, связанным с текстом, я прибавил тост (toast) - это такая фенечка, которая высвечивается на экране на несколько секунд и гаснет. В Android используется сплошь и рядом. Например, удалил приложение - высвечивается текст, типа, приложение удалено. В Гагарине тост будет использоваться не так часто, но иногда он тоже полезен. Типичный случай - нажал F3, чтобы сохранить скриншот - и на экране на 4 сек показывается путь, куда он сохранился и с каким именем. На самом деле сохранение скриншота в игре ещё не происходит, с этим надо дофига повозиться, а вот тост уже показывается. Улыбка
85. 2B - 12 Июля, 2016 - 08:14:35 - перейти к сообщению
Вижу, Гагарин продвигается семимильными шагами! Улыбка
86. krre - 12 Июля, 2016 - 09:14:47 - перейти к сообщению
Он волнами продвигается. Загрузил в себя порцию новой информации о работе какой-то подсистемы - продвинулся, потом снова пауза несколько дней, пока новую порцию загружаю. А порций этих ещё загружать и загружать.
87. Коля Логан - 12 Июля, 2016 - 11:13:17 - перейти к сообщению
krre:
Кстати, да. Можно понизить FPS до 24 и наложить фильтр старой ЧБ киноплёнки. Будет как первый полёт Гагарина в космос на корабле "Восток"!

По крайней мере для катсцен - самое то. Отлично!
88. krre - 12 Июля, 2016 - 12:27:20 - перейти к сообщению
Всё, я сделал сохранение скриншотов в png-файлы силами самой игры. Давно об этом мечтал, но предыдущие наскоки не принесли быстрого результата. Сегодня я нашёл чудесную библиотеку LodePNG, которая сохраняет файл одной командой. Вжик - и готово. Теперь вы не узнаете, в какой системе сделан снимок - заголовок окна больше не показывается. Бе-бе-бе! Он и не нужен, только лишнее палево. Также не показывается тост о сохранении скриншота. Он появляется позже, когда файл уже на диске. И это правильно!

Запускается команда клавишей F12. То, что в отладочной консоли написано /make screenshot - это чисто так, обман, оно ничего не делает. Это я проверял, хорошо ли отображается текст на скриншоте. Ну, похоже, что неплохо.
89. krre - 12 Июля, 2016 - 13:00:23 - перейти к сообщению
Ещё одно нововведение - класс таймера. Запустил таймер с нужным интервалом времени и забыл про него. Когда время выйдет, сработает сигнал и запустит нужную функцию. Вывод на экран тоста о сохранении скриншота теперь повешен на этот таймер. Столько мусорного кода сразу убралось, что аж дышать легче стало.
90. krre - 14 Июля, 2016 - 12:30:57 - перейти к сообщению
Вернулся к графической подсистеме. Это самая сложная и громоздкая штука, её сходу не сделаешь - приходится набегами, как монгло-татары. Набежал, повозился и ходу, пока мозг не перегрелся. Много внутренних преобразований сделано за последние пару дней, но не каждое из них тут же отображается на внешнем виде. Вот, к примеру, сеточный режим, который я добавил сегодня, увидеть можно сразу. Нажал клавишу g, и вся геометрия рисуется сеткой, а потом нажал ещё раз - и вернулось назад, как было. Это, как нетрудно догадаться, тоже нужно для отладки. Геймеры сеточный режим вряд ли смогут включить, он им не нужен.
91. 2B - 15 Июля, 2016 - 09:56:17 - перейти к сообщению
Вот этот режим мне понравился! Выглядит многообещающе Улыбка
92. krre - 15 Июля, 2016 - 10:01:21 - перейти к сообщению
Самое замечательное, что так она быстрее всего отрисовывается. Если игра выйдет в итоге тормозная, то этот режим спасёт её от полного провала. гы-гы!
93. krre - 18 Июля, 2016 - 19:24:13 - перейти к сообщению
Вся графика теперь рисуется через Entity Component System. Предыдущая система дала быстрый результат, но к настоящему времени морально устарела и в дальнейшем принесла бы больше проблем, чем пользы. Визуально разницы между старым вариантом и новым пока никакой нет, разве что цветастость плоскости я убрал и сделал её равномерно голубой. Вообще цвет поверхности должен задаваться материалом, а точнее текстурой, диффузной составляющей, отражательной и рассеянной, но материала пока нет, его сложно делать, поэтому временно будет простой обобщённый цвет.

Много ещё нужно сделать, очень много, чтобы можно было показать что-то ещё, кроме прямоугольника.
94. krre - 19 Июля, 2016 - 15:53:09 - перейти к сообщению
Делал я, значит, делал игру и вдруг понял, что мне нужен state machine, то есть машина состояний. По русско-научному конечный автомат. Это когда игра переходит из одного большого состояния в другое, и всё радикально меняется. Например, заставка, меню, игра, экран гейм овера, титры - это всё состояния, в каждом из которых процессы обрабатываются по-разному. Разные нажатия клавиш принимаются, действия мышки производят различный эффект, графика рисуется по-своему. В меню, например, мышка двигает курсор, а в игре курсора нет вообще, и мышка крутит мир вокруг камеры. В общем, смысл ясен, хватит объяснять.

У меня в игре было на скорую руку сделанное временное подобие стейтов, но это скорее костыль, а не машина состояний, и теперь я дошёл до того момента, когда костыль уже не справляется. Надо переделать всё по-серьёзному, по-взрослому. Иначе труба. Типичная проблема - включить консоль читерских команд. Когда она показывается, игра должна ставиться на паузу, и вся клавиатура переключаться в режим ввода текста, а не управления игрой. И для этого тоже нужен свой стейт. Пошёл я, короче, всё это делать.
95. krre - 20 Июля, 2016 - 08:26:55 - перейти к сообщению
Маленький твик. Проапгрейдил FPS индикатор. Раньше он показывал частоту кадров с точностью до 6 знака после запятой и обновлялся столько раз в секунду, какой у него был FPS. То есть если 60, то 60 раз в секунду. Цифры мельтешили очень быстро, 59 постоянно сменялось на 60, и фиг вообще было понятно, что там написано. Теперь я сделал более человечнее. Показывается лишь целое округлённое число кадров и обновляется оно два раза в секунду, выводя при этом среднее значение, посчитанное за предыдущие полсекунды. Учитывая зверскую производительность игры в настоящее время, FPS сейчас никогда не меняется и показывает всегда одно и то же значение - 60. Аллилуйя!
96. 2B - 20 Июля, 2016 - 10:31:05 - перейти к сообщению
Зашибенно! 60 классно смотрится Улыбка
97. krre - 20 Июля, 2016 - 10:46:25 - перейти к сообщению
60 fps - хорошее, правильное число для игры. 0 fps - плохое число. Тут даже возражать не хочется. гы-гы!
98. krre - 20 Июля, 2016 - 19:01:05 - перейти к сообщению
Окончательно переделана архитектура игры с теперь уже полным использованием Entity Component System. Наконец-то я это закончил и удалил остатки старой системы вместе с файлами. Последнее, что перед этим оставалось переделать, - это камеру, и это было самое сложное, потому что камера показывает мир, и если что-то пойдёт не так, то она вообще ничего показывать не будет. Именно поэтому я затягивал с этим делом, отвлекаясь на всякие надписи, fps, стейты и прочее. Но теперь собрал все силы, концентрацию и закончил процесс. Это как взять какой-нибудь Эмпайр-стейт-билдинг, поднять его, поменять фундамент и вернуть на место. И чтобы при этом эта дура не упала, и ничего в ней не разбилось. Хорошо ещё, что игра находится на начальной стадии развития, и переделывать пришлось немного.

Теперь можно добавлять в игру другие геометрические фигуры. На этом этапе я планирую добавить куб и поставить его на плоскость. Потом было бы неплохо заняться освещением сцены.
99. krre - 21 Июля, 2016 - 14:08:03 - перейти к сообщению
Как только я разобрался с архитектурой игры и базовой графической частью, дальше стало гораздо интереснее. Теперь я могу добавлять в сцену любую геометрию в любую позицию, и никто мне ничего не скажет. Буквально за несколько минут я добавил создание такого примитива, как куб. Уменьшил его в пять раз по сравнению с плоскостью и поставил поверх неё. Одна беда - освещения нет, всё сливается, фиг что разберёшь. И это как раз самое время, чтобы вплотную заняться шейдерами, которые будут создавать свет. Штука, как всегда, непростая, но где только наша не пропадала, верно? гы-гы!
100. krre - 22 Июля, 2016 - 07:56:03 - перейти к сообщению
Маленький твик. Сделал куб красного цвета, чтоб отличать его от плоскости. Теперь видно, как он насквозь проходит сквозь неё.

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

Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0408]     [ Gzip Disabled ]