![]() |
Показать все 39 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Наши проекты (https://hlfx.ru/forum/forumdisplay.php?forumid=1)
-- XashNT: testbuild 04.05.2020 (https://hlfx.ru/forum/showthread.php?threadid=5502)
XashNT: testbuild 04.05.2020
Строго говоря, я не планировал его выкладывать сегодня, меня KiQ натолкнул на эту мысль. Что можно показать просто UI. Старое ксашевское меню вы все помните, разумеется оно не выдерживало никакой критики и его давно уже стоило переделать. Время, затраченное на разработку и написание нового меню с нуля, приблизительно. Просто для ориентира, может быть кому-нибудь это будет интересно.
Разработка нового формата шрифтов и переделка худа под этот формат - ~10 дней.
Первичная имплементация виджетов (пошла под нож) - ~10 дней
Вторая итерация виджетов и перенос меню на них - месяц.
Конечно это не далеко не окончательный вариант, вполне возможно что эти же виджеты в дальнейшем будет использовать собственный внутри-игровой редактор уровней, чтобы не тащить всякие Qt.
ВНИМАНИЕ! Пока что оно даже не умеет масштабироваться, так что разрешение экрана менять не надо, запускайте как есть. Но все пункты меню полностью рабочие и функциональные - можно сравнить со старым меню. Так же я докинул лишние ресурсы, если у кого-то остался прошлый билд - он может обновиться.
В данном архиве находятся только ресурсы, необходимые для работы меню, больше ничего. Потестируйте, сравните со старым, напиште что понравилось, а что нет.
www.hlfx.ru/xash/GameUI.7z - 4.50 Mb
Добавлено 04-05-2020 в 22:19:
Workaround: чтобы меню Customize не вылетало - докиньте халфовский models\player.mdl, я чёт совсем забыл про него.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Прикольный эффект, только думаю стоит название меню (в котором сейчас находишься) сделать более чётким.
Планируется ли добавление системы эпизодов про принципу сурса, плюс изменение бекграунда в зависимости от эпизода?
__________________
Tiger! Tiger! burning bright
In the forests of the night,
What immortal hand or eye
Could frame thy fearful symmetry?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Эффект анимации при нажатии приятнее, чем в старом, все нажимается чётко без огрехов, багов не заметил.
Затестил. Поначалу вообще выбивало GL_ARB_vertex_array_object not supported. Обновил драва, попутно спустя 12 лет обнаружив, что процессор на этом ноуте (не основной рабочий, а другой) - таки x64, просто умный производитель по дефолту влепил туда Vista x32, ну видимо для причинения максимальных страданий пользователям. Теперь по меню (скрины прилагаю):
С моделькой плеера чота не то, может и моделька кривая, взял чот под рукой была
При переключении с меньшего видмода на больший происходит какое-то безобразие:
В широкоэкранных разрешениях четверть контента вообще не влазит, видимо не адаптировано оно для widescreen:
А в том же Customize вообще люто корежит все координаты и опять-же непонятно что с моделькой плеера (перепроверил скачав другую модельку - та же ерунда):
В меню настройки клавиш иногда залипает MOUSE1 и дает ложное нажатие, когда вместо двух кликов сразу с первого делается выделение на переназначение, если при этом нажать Backspace выдает такой вот занятный макрос:
В том же меню упорно не хотят назначаться клавиши от F10 до F12, а так же по всему меню не работает кнопка скриншота, даже если ее назначить (ну или я не нашел, куда эти скриншоты сохраняются)
Пока все, что нашел Ж)
__________________
-Brain is dead-
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Завтра ещё погоняю, перепроверю. Про кей ункновн я имел в виду, что с обработкой клика мыши иногда проскакивает, то есть то ли эвент не синхронизируется, то ли что. Разрешения я по привычке поменял, ибо при запуске у меня окно в экран не влазило, а движковые скриншоты не делались, и вот) теперь буду принтскринить
__________________
-Brain is dead-
Это вёрстка поехала или так задумано? Во мне умер внутренний перфекционист.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro что именно?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Так, скинул разрешение и все еще раз перепроверил. Работает хорошо, но есть несколько моментов. По поводу клавиш, не назначаются конкретно F10 и F11, может они, конечно зарезервированы, потому что я проверил на двух разных клавиатурах. В некоторых менюшках по-прежнему блюр заголовка дает артефакты по верхнему и нижнему краю, я уже предлагал решение - рендерить с градиентной альфа-маской, ну или как вариант разбить на два квада ровно пагаризантали и задать самым верхним и самым нижним вертексам нулевую альфу (в идеале, конечно на три квада, чтобы не глючила середина, но эот уже усложнение). В меню Internet games внезапно вылез какой-то сервак на базе Half-Life: Mobile, забавно По поводу лого, сделанного видеофайлом. Почему-то ogv у меня по умолчанию открывается фаерфоксом о_О хотя и VLC плеер отлично справляется. Тут сразу несколько вопросов, хотя понятно, что такое лого это опционально - во-первых появляется потребность в видеоредакторе и конвертере в ogv, во-вторых, держит ли OGV прозрачность, и если да - будет ли такое лого с прозрачностью работать, например, поверх background map?
__________________
-Brain is dead-
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Дядя Миша а, ну скорее всего оно уводит фокус куда-то в хедер окна, соответственно GL и AL контексты перестают нормально тчинкать. Я тут заметил, что когда вылетало сообщение об ошибке до обновы драйвера, то внутри этого сообщения пропадала мышка, на крестик закрытия приходилось методом тыка попадать. Проверь, нет ли такой фигни в Dedicated server, у меня он не запускается по понятной причине остутствия maplst
__________________
-Brain is dead-
Кстати, насчет масштабирования, а что если рисовать все меню в FBO и потом рисовать его растянутым во весь экран, при этом делая скейл только координат объектов для корректных попаданий мышкой? По идее решит проблему с невлезанием части контента. Ну естественно для widescreen придется перестраивать FBO, но это просто. И тогда, скажем можно будет ограничится двумя файликами с координатами элементов, грубо говоря - для 4:3 и widescreen (16x9, 16:10 большой роли не играет, разница там практически незаметна).
__________________
-Brain is dead-
Включение Ксашем ускорения мыши в винде - это всё еще фича, а не баг?
Насколько я знаю, так сделано, например в андроеде, где разрешений экрана дофига и больше
__________________
-Brain is dead-
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
По багам:
Если поменять в графических опциях конфигурацию, то все остальные опции не меняются. Даже если переоткрыть меню. Движок перезапускать не пробовал.
Обрезание в текстовых полях работает некорректно, попробуй вбить много коротких по ширине символов, например l. Иногда съедает последний символ, у меня получилось если забить поле цифрами а потом вводить какой-нибудь широкий символ(например w) и средний (a).
Есть такой же баг как был у меня, нельзя вбить единичку первой в поле max players, сразу на двойку меняет. Получается невозможно сделать сервер на 10-19 игроков.
Чекбоксы иногда странно себя ведут, если два раза на них быстро нажать, он может не отреагировать на второе нажатие.
Если стрелочками переключаться на табличку, то невозможно переключиться на другие.
По UX:
Хорошее меню выбора разрешения. Утащу его себе в форк! :3
У ползунков отсутствует анимация выбора ползунка.
У спинконтролов не работает выбор стрелочками. Получается что можно переключаться только на одну стрелочку и нажимать Enter.
Если свернуть игру кнопкой в меню, то при разворачивании она возвращается на старое место.
Понятно, что всё вышеперечисленное так и должно быть, но это всё же неудобно.
По багам движка:
Движок проигрывает один и тот же семпл, если перетаскивать окно. Получается забавно, учитывая пам-пам-пам в меню, но по-моему так быть не должно.
__________________
Xash3D FWGS форк
А если кегль шрифта подбирать деномически в процентном соотношении от высоты экрана? А для вайдскринов я ж говорю, использовать отдельный фбо и свою схему расположения. Но надо ещё подумать
Добавлено 05-05-2020 в 17:40:
__________________
-Brain is dead-
__________________
Xash3D FWGS форк
__________________
-Brain is dead-
В форке такого не происходит, но SDL2 там сам выбирает что он может. На Vista и выше вроде выбирается WASAPI.
__________________
Xash3D FWGS форк
__________________
-Brain is dead-
KiQ по-хорошему нужен менеджер layout-ов, который автоматически раскидает элементы по экрану исходя из их размера и по тому, как ты хочешь, относительно друг друга, относительно углов, просто по вертикальному/горизонтальному списку. Но это работает в обычном прикладном софте, но не будет в игровых меню, которые просто сами по себе не укладываются в подобную логику.
Для себя в mainui_cpp я ввёл отрицательные координаты.
Если координата X меньше нуля после расчёта становится <ширина экрана> - abs(X). Точно так же и с Y, только там высота.
Добавлено 05-05-2020 в 18:13:
С размерами кстати даже так: если размер отрицательный, то он считается исходя из <ширина экрана> - <реальная координата по ширине> - abs(width). Ну, аналогично для высоты.
__________________
Xash3D FWGS форк
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
__________________
Xash3D FWGS форк
a1batross так и не понял, зачем эти отрицательные координаты и их клампинг. Смутно припоминаю, что у меня что-то такое было для UIText в поле ввода, когда нужно было смещать символы влево. Но у меня каждый элемент проходит проверку
1 | void checkClipBounds() { |
2 | if (hasParent()) { |
3 | if (clip_x < getParent().x) { |
4 | clip_x = getParent().x; |
5 | clip_w -= getParent().x - x; |
6 | } |
7 | if (clip_y < getParent().y) { |
8 | clip_y = getParent().y; |
9 | clip_h -= getParent().y - y; |
10 | } |
11 | if (x + clip_w > getParent().getBoundWidth()) |
12 | clip_w = (getParent().getBoundWidth() - x); |
13 | if (y + clip_h > getParent().getBoundHeight()) { |
14 | clip_h = (getParent().getBoundHeight() - y); |
15 | } |
16 | } else { |
17 | clip_x = x; |
18 | clip_y = y; |
19 | clip_w = width; |
20 | clip_h = height; |
21 | } |
22 | } |
__________________
-Brain is dead-
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
__________________
Мой сайт
Xash3D Modding Discord
Дядя Миша а чем кстати рисуются все рамки, прямоугольники и т.д.? Immediate mode и GL_LINES, GL_QUADS?
__________________
-Brain is dead-
KiQ квадами да. А какая разница? Потом переведу на VBO.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Дядя Миша читал, что использовать VBO для GUI не слишком оптимально, слишком часто придется его обновлять
__________________
-Brain is dead-
SNMetamorph да, ты прав.
KiQ Дядя Миша VBO действительно не имеет смысла в UI. Есть смысл лишний раз не перерисовывать экран, но этим занимаются "взрослые" UI тулкиты. В играх это делать не нужно, там в любом случае экран минимум 60 раз в секунду обновляется.
__________________
Xash3D FWGS форк
Всё там оптимально. Надо просто знать как использовать.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Дядя Миша по какому принципу ты выбрал символы, которые в атлас отрисовывать?
На текстурах размытых шрифтов есть артефакты в углах глифов. Не из-за них ли артефакты в заголовках?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Формат шрифтов вообще предусматривает юникод, но я пока сделал ANSI.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Вау, по сравнению с оригинальным ксашевским меню это просто нечто! Везде полазил, все потыкал - вроде работает более-менее стабильно (если не считать один вылет по моей тупости). 10 из 10 - желаю удачи в развитии XashNT!
Временная зона GMT. Текущее время 14:15. | Показать все 39 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024