www.G-2B.com www.G-2B.com
форум сайта проекта "ЮКисП"
 Помощь      Поиск      Участники


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

> Описание: Игра про строительство
krre
Отправлено: 11 Июля, 2016 - 18:59:07
ID

компьютерный мультипликатор


Сообщений всего: 2067
Дата рег-ции: Дек. 2008  
Репутация: 27




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

FPS - один из самых главных и нужных показателей. Если он начинает "проседать", то есть падает ниже 60 кадров в сек, значит, видеокарта не успевает рендерить картинку, и возможен стробоскопический эффект. У меня сейчас просто зверская производительность. Что бы я ни делал, как бы яростно ни крутил цветастый прямоугольник, FPS стабильно держится в районе 60. Вот как надо, учитесь! гы-гы!

08 DebugHUD.png

   Top
Коля Логан
Отправлено: 11 Июля, 2016 - 19:10:27
ID


почетный участник


Сообщений всего: 4204
Дата рег-ции: Июль 2008  
Откуда: Донецк, Украина
Репутация: 28




krre:
FPS стабильно держится в районе 60. Вот как надо, учитесь!

Фигня, надо чтоб был 24. гы-гы!
   Top
krre
Отправлено: 11 Июля, 2016 - 19:13:37
ID

компьютерный мультипликатор


Сообщений всего: 2067
Дата рег-ции: Дек. 2008  
Репутация: 27




Кстати, да. Можно понизить FPS до 24 и наложить фильтр старой ЧБ киноплёнки. Будет как первый полёт Гагарина в космос на корабле "Восток"! Отлично!
   Top
krre
Отправлено: 11 Июля, 2016 - 20:24:50
ID

компьютерный мультипликатор


Сообщений всего: 2067
Дата рег-ции: Дек. 2008  
Репутация: 27




Сегодня у меня выдался продуктивный день (от слова "продукты", то есть хавчик). Поскольку я теперь могу выводить на экран текст, то становлюсь от этого всемогущим. Ко всем прочим плюшкам, связанным с текстом, я прибавил тост (toast) - это такая фенечка, которая высвечивается на экране на несколько секунд и гаснет. В Android используется сплошь и рядом. Например, удалил приложение - высвечивается текст, типа, приложение удалено. В Гагарине тост будет использоваться не так часто, но иногда он тоже полезен. Типичный случай - нажал F3, чтобы сохранить скриншот - и на экране на 4 сек показывается путь, куда он сохранился и с каким именем. На самом деле сохранение скриншота в игре ещё не происходит, с этим надо дофига повозиться, а вот тост уже показывается. Улыбка

009 Toast.png

   Top
2B администратор
Отправлено: 12 Июля, 2016 - 08:14:35
ID


администратор


Сообщений всего: 17831
Дата рег-ции: Июль 2004  
Откуда: Ирпень, Украина
Репутация: 55




Вижу, Гагарин продвигается семимильными шагами! Улыбка
   Top
krre
Отправлено: 12 Июля, 2016 - 09:14:47
ID

компьютерный мультипликатор


Сообщений всего: 2067
Дата рег-ции: Дек. 2008  
Репутация: 27




Он волнами продвигается. Загрузил в себя порцию новой информации о работе какой-то подсистемы - продвинулся, потом снова пауза несколько дней, пока новую порцию загружаю. А порций этих ещё загружать и загружать.
   Top
Коля Логан
Отправлено: 12 Июля, 2016 - 11:13:17
ID


почетный участник


Сообщений всего: 4204
Дата рег-ции: Июль 2008  
Откуда: Донецк, Украина
Репутация: 28




krre:
Кстати, да. Можно понизить FPS до 24 и наложить фильтр старой ЧБ киноплёнки. Будет как первый полёт Гагарина в космос на корабле "Восток"!

По крайней мере для катсцен - самое то. Отлично!
   Top
krre
Отправлено: 12 Июля, 2016 - 12:27:20
ID

компьютерный мультипликатор


Сообщений всего: 2067
Дата рег-ции: Дек. 2008  
Репутация: 27




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

Запускается команда клавишей F12. То, что в отладочной консоли написано /make screenshot - это чисто так, обман, оно ничего не делает. Это я проверял, хорошо ли отображается текст на скриншоте. Ну, похоже, что неплохо.

2016-7-12_12-24-9.png

   Top
krre
Отправлено: 12 Июля, 2016 - 13:00:23
ID

компьютерный мультипликатор


Сообщений всего: 2067
Дата рег-ции: Дек. 2008  
Репутация: 27




Ещё одно нововведение - класс таймера. Запустил таймер с нужным интервалом времени и забыл про него. Когда время выйдет, сработает сигнал и запустит нужную функцию. Вывод на экран тоста о сохранении скриншота теперь повешен на этот таймер. Столько мусорного кода сразу убралось, что аж дышать легче стало.
   Top
krre
Отправлено: 14 Июля, 2016 - 12:30:57
ID

компьютерный мультипликатор


Сообщений всего: 2067
Дата рег-ции: Дек. 2008  
Репутация: 27




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

011 Wireframe.png

   Top
2B администратор
Отправлено: 15 Июля, 2016 - 09:56:17
ID


администратор


Сообщений всего: 17831
Дата рег-ции: Июль 2004  
Откуда: Ирпень, Украина
Репутация: 55




Вот этот режим мне понравился! Выглядит многообещающе Улыбка
   Top
krre
Отправлено: 15 Июля, 2016 - 10:01:21
ID

компьютерный мультипликатор


Сообщений всего: 2067
Дата рег-ции: Дек. 2008  
Репутация: 27




Самое замечательное, что так она быстрее всего отрисовывается. Если игра выйдет в итоге тормозная, то этот режим спасёт её от полного провала. гы-гы!
   Top
krre
Отправлено: 18 Июля, 2016 - 19:24:13
ID

компьютерный мультипликатор


Сообщений всего: 2067
Дата рег-ции: Дек. 2008  
Репутация: 27




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

Много ещё нужно сделать, очень много, чтобы можно было показать что-то ещё, кроме прямоугольника.
   Top
krre
Отправлено: 19 Июля, 2016 - 15:53:09
ID

компьютерный мультипликатор


Сообщений всего: 2067
Дата рег-ции: Дек. 2008  
Репутация: 27




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

У меня в игре было на скорую руку сделанное временное подобие стейтов, но это скорее костыль, а не машина состояний, и теперь я дошёл до того момента, когда костыль уже не справляется. Надо переделать всё по-серьёзному, по-взрослому. Иначе труба. Типичная проблема - включить консоль читерских команд. Когда она показывается, игра должна ставиться на паузу, и вся клавиатура переключаться в режим ввода текста, а не управления игрой. И для этого тоже нужен свой стейт. Пошёл я, короче, всё это делать.
   Top
krre
Отправлено: 20 Июля, 2016 - 08:26:55
ID

компьютерный мультипликатор


Сообщений всего: 2067
Дата рег-ции: Дек. 2008  
Репутация: 27




Маленький твик. Проапгрейдил FPS индикатор. Раньше он показывал частоту кадров с точностью до 6 знака после запятой и обновлялся столько раз в секунду, какой у него был FPS. То есть если 60, то 60 раз в секунду. Цифры мельтешили очень быстро, 59 постоянно сменялось на 60, и фиг вообще было понятно, что там написано. Теперь я сделал более человечнее. Показывается лишь целое округлённое число кадров и обновляется оно два раза в секунду, выводя при этом среднее значение, посчитанное за предыдущие полсекунды. Учитывая зверскую производительность игры в настоящее время, FPS сейчас никогда не меняется и показывает всегда одно и то же значение - 60. Аллилуйя!

2016-7-20_8-19-16.png

   Top
2B администратор
Отправлено: 20 Июля, 2016 - 10:31:05
ID


администратор


Сообщений всего: 17831
Дата рег-ции: Июль 2004  
Откуда: Ирпень, Украина
Репутация: 55




Зашибенно! 60 классно смотрится Улыбка
   Top
krre
Отправлено: 20 Июля, 2016 - 10:46:25
ID

компьютерный мультипликатор


Сообщений всего: 2067
Дата рег-ции: Дек. 2008  
Репутация: 27




60 fps - хорошее, правильное число для игры. 0 fps - плохое число. Тут даже возражать не хочется. гы-гы!
   Top
krre
Отправлено: 20 Июля, 2016 - 19:01:05
ID

компьютерный мультипликатор


Сообщений всего: 2067
Дата рег-ции: Дек. 2008  
Репутация: 27




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

Теперь можно добавлять в игру другие геометрические фигуры. На этом этапе я планирую добавить куб и поставить его на плоскость. Потом было бы неплохо заняться освещением сцены.
   Top
krre
Отправлено: 21 Июля, 2016 - 14:08:03
ID

компьютерный мультипликатор


Сообщений всего: 2067
Дата рег-ции: Дек. 2008  
Репутация: 27




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

2016-7-21_14-1-10.png

   Top
krre
Отправлено: 22 Июля, 2016 - 07:56:03
ID

компьютерный мультипликатор


Сообщений всего: 2067
Дата рег-ции: Дек. 2008  
Репутация: 27




Маленький твик. Сделал куб красного цвета, чтоб отличать его от плоскости. Теперь видно, как он насквозь проходит сквозь неё.

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

2016-7-22_7-53-41.png

   Top
Страниц (12): « 1 2 3 4 [5] 6 7 8 9 ... » В конец
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« флуд »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




www.g-2b.com


Powered by ExBB. ExBB FM 1.0 RC1 by TvoyWeb.ru. InvisionExBB Style converted by Markus®, edited by 2B. Smiles by Aiwan, Connie and others. Hosted by Peleng.

[Script Execution time: 0.038]     [ Gzip Disabled ]