Описание: Игра про строительство |
Поиск в теме | Версия для печати |
krre |
Отправлено: 11 Июля, 2016 - 18:59:07 ID
|
компьютерный мультипликатор
Сообщений всего: 2151
Дата рег-ции: Дек. 2008
Репутация: 28
|
Добавил debug HUD (Head-Up Display), который мне показывает текущий FPS. Вообще HUD-ов в играх обычно два. Первый, собственно, игровой, который выводит состояние игры, как-то здоровье игрока, его очки, или сколько осталось патронов, а второй отладочный HUD, чисто для программиста. Он включается какой-нибудь секретной клавишей (у меня F5) и показывает полезную техническую информацию о работе графической подсистемы.
FPS - один из самых главных и нужных показателей. Если он начинает "проседать", то есть падает ниже 60 кадров в сек, значит, видеокарта не успевает рендерить картинку, и возможен стробоскопический эффект. У меня сейчас просто зверская производительность. Что бы я ни делал, как бы яростно ни крутил цветастый прямоугольник, FPS стабильно держится в районе 60. Вот как надо, учитесь! |
|
|
krre |
Отправлено: 11 Июля, 2016 - 20:24:50 ID
|
компьютерный мультипликатор
Сообщений всего: 2151
Дата рег-ции: Дек. 2008
Репутация: 28
|
Сегодня у меня выдался продуктивный день (от слова "продукты", то есть хавчик). Поскольку я теперь могу выводить на экран текст, то становлюсь от этого всемогущим. Ко всем прочим плюшкам, связанным с текстом, я прибавил тост (toast) - это такая фенечка, которая высвечивается на экране на несколько секунд и гаснет. В Android используется сплошь и рядом. Например, удалил приложение - высвечивается текст, типа, приложение удалено. В Гагарине тост будет использоваться не так часто, но иногда он тоже полезен. Типичный случай - нажал F3, чтобы сохранить скриншот - и на экране на 4 сек показывается путь, куда он сохранился и с каким именем. На самом деле сохранение скриншота в игре ещё не происходит, с этим надо дофига повозиться, а вот тост уже показывается. |
|
|
krre |
Отправлено: 12 Июля, 2016 - 12:27:20 ID
|
компьютерный мультипликатор
Сообщений всего: 2151
Дата рег-ции: Дек. 2008
Репутация: 28
|
Всё, я сделал сохранение скриншотов в png-файлы силами самой игры. Давно об этом мечтал, но предыдущие наскоки не принесли быстрого результата. Сегодня я нашёл чудесную библиотеку LodePNG, которая сохраняет файл одной командой. Вжик - и готово. Теперь вы не узнаете, в какой системе сделан снимок - заголовок окна больше не показывается. Он и не нужен, только лишнее палево. Также не показывается тост о сохранении скриншота. Он появляется позже, когда файл уже на диске. И это правильно!
Запускается команда клавишей F12. То, что в отладочной консоли написано /make screenshot - это чисто так, обман, оно ничего не делает. Это я проверял, хорошо ли отображается текст на скриншоте. Ну, похоже, что неплохо. |
|
|
krre |
Отправлено: 14 Июля, 2016 - 12:30:57 ID
|
компьютерный мультипликатор
Сообщений всего: 2151
Дата рег-ции: Дек. 2008
Репутация: 28
|
Вернулся к графической подсистеме. Это самая сложная и громоздкая штука, её сходу не сделаешь - приходится набегами, как монгло-татары. Набежал, повозился и ходу, пока мозг не перегрелся. Много внутренних преобразований сделано за последние пару дней, но не каждое из них тут же отображается на внешнем виде. Вот, к примеру, сеточный режим, который я добавил сегодня, увидеть можно сразу. Нажал клавишу g, и вся геометрия рисуется сеткой, а потом нажал ещё раз - и вернулось назад, как было. Это, как нетрудно догадаться, тоже нужно для отладки. Геймеры сеточный режим вряд ли смогут включить, он им не нужен. |
|
|
krre |
Отправлено: 18 Июля, 2016 - 19:24:13 ID
|
компьютерный мультипликатор
Сообщений всего: 2151
Дата рег-ции: Дек. 2008
Репутация: 28
|
Вся графика теперь рисуется через Entity Component System. Предыдущая система дала быстрый результат, но к настоящему времени морально устарела и в дальнейшем принесла бы больше проблем, чем пользы. Визуально разницы между старым вариантом и новым пока никакой нет, разве что цветастость плоскости я убрал и сделал её равномерно голубой. Вообще цвет поверхности должен задаваться материалом, а точнее текстурой, диффузной составляющей, отражательной и рассеянной, но материала пока нет, его сложно делать, поэтому временно будет простой обобщённый цвет.
Много ещё нужно сделать, очень много, чтобы можно было показать что-то ещё, кроме прямоугольника. |
|
|
krre |
Отправлено: 19 Июля, 2016 - 15:53:09 ID
|
компьютерный мультипликатор
Сообщений всего: 2151
Дата рег-ции: Дек. 2008
Репутация: 28
|
Делал я, значит, делал игру и вдруг понял, что мне нужен state machine, то есть машина состояний. По русско-научному конечный автомат. Это когда игра переходит из одного большого состояния в другое, и всё радикально меняется. Например, заставка, меню, игра, экран гейм овера, титры - это всё состояния, в каждом из которых процессы обрабатываются по-разному. Разные нажатия клавиш принимаются, действия мышки производят различный эффект, графика рисуется по-своему. В меню, например, мышка двигает курсор, а в игре курсора нет вообще, и мышка крутит мир вокруг камеры. В общем, смысл ясен, хватит объяснять.
У меня в игре было на скорую руку сделанное временное подобие стейтов, но это скорее костыль, а не машина состояний, и теперь я дошёл до того момента, когда костыль уже не справляется. Надо переделать всё по-серьёзному, по-взрослому. Иначе труба. Типичная проблема - включить консоль читерских команд. Когда она показывается, игра должна ставиться на паузу, и вся клавиатура переключаться в режим ввода текста, а не управления игрой. И для этого тоже нужен свой стейт. Пошёл я, короче, всё это делать. |
|
|
krre |
Отправлено: 20 Июля, 2016 - 19:01:05 ID
|
компьютерный мультипликатор
Сообщений всего: 2151
Дата рег-ции: Дек. 2008
Репутация: 28
|
Окончательно переделана архитектура игры с теперь уже полным использованием Entity Component System. Наконец-то я это закончил и удалил остатки старой системы вместе с файлами. Последнее, что перед этим оставалось переделать, - это камеру, и это было самое сложное, потому что камера показывает мир, и если что-то пойдёт не так, то она вообще ничего показывать не будет. Именно поэтому я затягивал с этим делом, отвлекаясь на всякие надписи, fps, стейты и прочее. Но теперь собрал все силы, концентрацию и закончил процесс. Это как взять какой-нибудь Эмпайр-стейт-билдинг, поднять его, поменять фундамент и вернуть на место. И чтобы при этом эта дура не упала, и ничего в ней не разбилось. Хорошо ещё, что игра находится на начальной стадии развития, и переделывать пришлось немного.
Теперь можно добавлять в игру другие геометрические фигуры. На этом этапе я планирую добавить куб и поставить его на плоскость. Потом было бы неплохо заняться освещением сцены. |
|
|
krre |
Отправлено: 21 Июля, 2016 - 14:08:03 ID
|
компьютерный мультипликатор
Сообщений всего: 2151
Дата рег-ции: Дек. 2008
Репутация: 28
|
Как только я разобрался с архитектурой игры и базовой графической частью, дальше стало гораздо интереснее. Теперь я могу добавлять в сцену любую геометрию в любую позицию, и никто мне ничего не скажет. Буквально за несколько минут я добавил создание такого примитива, как куб. Уменьшил его в пять раз по сравнению с плоскостью и поставил поверх неё. Одна беда - освещения нет, всё сливается, фиг что разберёшь. И это как раз самое время, чтобы вплотную заняться шейдерами, которые будут создавать свет. Штука, как всегда, непростая, но где только наша не пропадала, верно? |
|
|
|
Поиск в теме | Версия для печати |
Страниц (12): « 1 2 3 4 [5] 6 7 8 9 ... » В конец |
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0) |
« флуд » |
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
|
|
|