Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,845
Записей в блоге: 14

Lineedge (Semi-Alpha) 0.75@20

06.05.2025, 02:03. Показов 36349. Ответов 309
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет в этом разделе! Невероятно долго шла разработка Lineedge (Semi-Alpha) 0.75@20, и вот теперь она завершена! Это победа! Вот что изменилось:
- Число ресурсов взяло мириа-масштаб! А это существенная отметка, учитывая, что в отличие от веса игры, который растет в 2-3 раза быстрее закона Мура благодаря гигантским пакетам, количество ресурсов так быстро расти не может, потому что каждый ресурс добавляет к этому счетчику лишь один ресурс, вне зависимости от того, весит он 1 КБ или 1 ГБ.
- Добавлено управление игрой с помощью речи. Разумеется, нестабильное и все такое, зато удобное. Разумеется также, что для этого нужен отдельный микрофон (так как на ноутбуках Lineedge плохо идет), либо хороший смартфон и приложение в стиле WO Mic (но тогда команды будут сильно запаздывать). Также желательно выключить радио и/или телевизор и музыку в самой игре (насчет последнего не уверен, но субъективно при приближении, например, к Белой Звезде уровень "галлюцинаций" растет).
- Число редакций чуть менее, чем удвоилось, вместо четырех - семь: EXE, скрипты для Linux, для Android, EXE (без речи), скрипты для Linux (без речи), EXE (платиновая редакция) и скрипты для Linux (платиновая редакция). Да, и для Android тоже, но нужен ОЧЕНЬ мощный телефон - с 16 ГБ ОЗУ, плюс нужно выставить 16 ГБ RAM Plus в настройках. Разумеется, на Android можно пользоваться микрофоном напрямую, учитывая, что альтернативы, например, для возврата в город или переключения между ходьбой и бегом практически и нет вследствие отсутствия клавиш в традиционном понимании на смартфоне. Также можно эмулировать с помощью речи нажатие клавиш Ctrl и Shift, для чего в Android также нет альтернативы (в Windows и Linux речевая команда инвертирует состояние клавиши).
- Удалены кубы, тетраэдры, треугольные призмы, октаэдры и VILO у игрока, исправлены некоторые ошибки (подробнее здесь).
- Добавлено существенно больше разнообразия в удары боссов, теперь несколько минут просто стоять около босса и "тыкать" не выйдет, нужно уворачиваться от его способностей.
- Удалены ячейки для экипировки в меню хранилища, теперь экипировка отображается сразу в том виде, в котором она будет на игроке. При этом подсказки с характеристиками сохранились и отображаются при клике по экипировке.
- Можно применить сразу два кольца, эффект от них будет суммироваться.
- Можно переназначить действия на клавиши со стрелками.
- Изменена начальная экипировка у бойца обоих групп - NAKIS и BLOCKERATOR теперь скрыты, на передний план вышла экипировка второго слоя. Не знаю, не опустило ли это игру до уровня WoW, но хотелось бы думать, что нет.
- Существенно улучшена производительность игры - на моем сравнительно современном и быстром компьютере с 63-65 до 78-79 FPS (на большинстве компьютеров будет меньше). Причем "узким местом" оказалась, как ни странно, не графика, а логика. Даже в платиновой редакции. Я запускал сбор статистики в наполовину отладочном режиме (Standalone) - FPS там меньше, но, как правило, идет в пропорции с FPS в EXE, примерно в два раза - так вот даже в платиновой редакции со всеми графическими наворотами и со всеми оптимизациями логики она занимает 25 мс на кадр, а графика - 22 мс (уполовиньте эти числа для EXE). Парадокс какой-то...
- Завершено наполнение мебелью GREENFORD и BADFORD! Это была титаническая работа, и вот наконец она завершилась успехом! Интересно, теперь хотя бы города не пустые? А над полями еще предстоит поработать...

Системные требования


Легенда: процессор (ядра x ГГц) / видеокарта (разбивка идет по моделям от NVIDIA, так как они знакомы большему числу пользователей) / RAM (ГБ) + подкачка (ГБ) / прочее.
Минимальные (обычные редакции, низкая графика, 1024x768 (меньшее разрешение не поддерживается), будут сбои, зависания и рассинхронизация): любой 64-разрядный (даже медленный процессор рано или поздно заданную ему программу выполнит) / хотя бы встроенная не старше 5-7 лет / 8+16.
Средние (обычные редакции, низкая графика, 1920x1080): 4x3 / 1060 6 GB / 24.
Рекомендуемые (обычные редакции, средняя графика (а хорошая в стандартной редакции ничем не отличается), 1920x1080): 6x3.5 / 3060 8 GB / 32.
Высокие (платиновая редакция, средняя графика, 2560x1440): 8x4.5 / 4080 / 64 / DirectX 12, SM6.
Эпические (платиновая редакция, хорошая графика, 3840x2160): 8x5 (не знаю, задействует ли игра больше 8 ядер) / 5090 / 96 / DirectX 12, SM6, HDR.
Вы можете свободно скачивать все обычные редакции, неважно - с речью или без речи. А вот платиновые редакции доступны только по запросу, так как сразу закачивать 38-40 ГБ, не зная, пригодятся ли эти редакции - и смысл?
Прошу отнестись к тестированию серьезно, так как эта версия - веха в истории Lineedge, и осталось всего две версии до альфы!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.05.2025, 02:03
Ответы с готовыми решениями:

Lineedge (Semi-Alpha) 0.55 (а то и 0.6) возвращается!
И снова всем привет! Если кто-то помнит, я утверждал, что сделаю Lineedge в версии Semi-Alpha с...

Lineedge. Посеяны семена нового потомка "линейки"
Игра под прозвищем "линейка" стала одной из вех в истории игровой индустрии. Причина этого,...

Что нужно сделать с Lineedge, чтобы она перестала быть мусором и говном?
Раньше господин Usaga писал, что квинтэссенция игры - это сетевой код, и что почему-то его нельзя...

309
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,603
18.07.2025, 14:07
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
это как называется
это может называться "штатная работа говно-игры"

Добавлено через 24 секунды
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
но пять минут ничего существенного не происходит
как ты это определил?
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,845
Записей в блоге: 14
18.07.2025, 14:10  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
как ты это определил?
Во всяком случае, визуально. Только крутится пение птиц и заглушка анимации.
0
42 / 46 / 6
Регистрация: 21.10.2022
Сообщений: 643
Записей в блоге: 2
18.07.2025, 14:15
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
didgik, поясните, в чем "фишка" в вопросе выше? Я вроде ответил, как смог, а в ответ мне пишут "забудь". Честно, не понимаю, как нужно было отвечать.
Фишка в бессмысленности изначального запроса о проверке скорости загрузки игры и термометра.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,845
Записей в блоге: 14
18.07.2025, 14:25  [ТС]
Royal_X, didgik, интересно, если окно загрузки висит, пока не загрузятся ключевые взаимодействующие объекты в мире, может ли конкретный объект тормозить весь процесс при помощи огромных циклов в BeginPlay? Разумеется, загрузка мира не многопоточна, так как плагин для многопоточности приводит к крахам.
0
6 / 45 / 1
Регистрация: 08.12.2024
Сообщений: 232
18.07.2025, 14:25
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
А если на команды свернуть и закрыть реагирует, но пять минут ничего существенного не происходит - это как называется?
Однопоточный г*вно-софт без cancel-токенов.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,603
18.07.2025, 14:48
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
загрузка мира не многопоточна
это плохо. Тебе нужна либо многопоточная загрузка, либо асинхронная загрузка

Многопоточная загрузка даст лучший результат (ибо ресурсы будут загружаться на отдельных потоках и главный поток не будет блокироваться + будет использоваться преимущества многопоточного процессора), но реализовать будет сложнее. Нужно хорошо разбираться в С++, понимать многопоточное программирование, а также разбираться в апи движка, в частности в FRunnable, FRunnableThread Я не знаю, ты вообще пишешь на С++ или используешь блюпринты?

Асинхронная загрузка реализуется проще. По сути, используется главный поток, но ресурсы загружаются фоново, асинхронно, тем самим, как и в первом случае, не блокируются основной поток. Но сами асинхронные функции не требуют многопоточности. Апи движка располагает спец. функциями для этого, например, FStreamableManager и т.д.

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
огромных циклов в BeginPlay
я так понимаю, при старте игры ты в циклах загружаешь много ассетов. Проблема даже может быть не в самой загрузке, а в последующем добавлении на сцену. Практика показывает, что именно добавление объектов на сцену более ресурсоемком, чем просто их загрузка в память. Как какое-то слабое решение можно добавить маленькие паузы в циклах, чтобы немного дать отдохнуть процессору)
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,845
Записей в блоге: 14
18.07.2025, 15:00  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
Тебе нужна либо многопоточная загрузка, либо асинхронная загрузка
Я купил плагин для многопоточности (хотя я редко что-то покупаю, стараюсь брать по 100-процентным скидкам), но он почему-то приводит к крахам. Может быть, плагин был фейковый, потому что под 5.6 так и не обновился.
Цитата Сообщение от Royal_X Посмотреть сообщение
Я не знаю, ты вообще пишешь на С++ или используешь блюпринты?
Использую Blueprints, и можно уже записать это где-то в Блокноте и не спрашивать столько раз? Извините, если вам это кажется обидным, но мне тоже обидно много раз отвечать на один и тот же вопрос.
Цитата Сообщение от Royal_X Посмотреть сообщение
Проблема даже может быть не в самой загрузке, а в последующем добавлении на сцену. Практика показывает, что именно добавление объектов на сцену более ресурсоемком, чем просто их загрузка в память.
Я вот нашел, что для каждого боевого персонажа при добавлении на сцену вызывается GetActorOfClass. Я так понимаю, это вызывает перебор всех взаимодействующих объектов в мире? Чем это можно заменить, чтобы не "дернуть" GameState и GameMode (я стараюсь сделать игру хотя бы немного модульной, чтобы все не ссылалось на все, так вот Player, MyPlayerController, GameState и GameMode ссылаются на все, поэтому я стараюсь делать минимум ссылок на них)?
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,603
18.07.2025, 15:05
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Использую Blueprints, и можно уже записать это где-то в Блокноте и не спрашивать столько раз?
А что тебе так сложно еще раз просто ответить? Я разве обязан запоминать все, что говорят на этом форуме.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,845
Записей в блоге: 14
18.07.2025, 15:07  [ТС]
Закачались все редакции пятого билда, прошу не только шутить, но и тестировать. Это ВАЖНО для меня!

Добавлено через 1 минуту
Цитата Сообщение от Royal_X Посмотреть сообщение
А что тебе так сложно еще раз просто ответить? Я разве обязан запоминать все, что говорят на этом форуме.
Не сложно, но неприятно. По поводу последнего абзаца #187 есть, что написать?
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,603
18.07.2025, 15:12
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Я так понимаю,
не нужно гадать на кофейной гуще, в UE есть профилирование
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,845
Записей в блоге: 14
18.07.2025, 15:13  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
в UE есть профилирование
Которое абсолютно неинформативно. Вы сами пробовали им пользоваться?
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,603
18.07.2025, 15:41
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Вы сами пробовали им пользоваться?
Я UE вообще не пользуюсь, хоть он у меня установлен. Я просто когда-то исследовал этот движок.
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Которое абсолютно неинформативно.
Неправда. Вы просто не знаете, как пользоваться. Помимо всего прочего, есть Unreal Insights - очень мощный инструмент.
https://dev.epicgames.com/docu... eal-engine
Там можно подробно все посмотреть и найти, что именно тормозит игру.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,845
Записей в блоге: 14
18.07.2025, 17:59  [ТС]
Royal_X, я объединил мебель в домах в один взаимодействующий объект с домом, и время загрузки уменьшилось чуть больше, чем на 9%. Это нормально? Действительно ли может тормозить именно действие "добавить в мир взаимодействующий объект", вне зависимости от количества полигонов и логики?
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,845
Записей в блоге: 14
18.07.2025, 18:55  [ТС]
Royal_X, вот специально сделал скриншот с Unreal Insights, Stat Named Events включено:

Почти все время (см. справа) занимает GameThreadIdleTime. Это информативно? Или что я делаю не так?
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,845
Записей в блоге: 14
18.07.2025, 19:04  [ТС]
Вот более общий план, 0 бит полезной информации.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,603
18.07.2025, 19:13
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Почти все время (см. справа) занимает GameThreadIdleTime.
это время бездействия, игнорируй его. Ты смотри на остальных. Нужно, наверное, растянуть элементы, чтобы они были видны.

Etyuhibosecyu, вообще, я когда пытался понять, что именно тормозит в моей игре, то я просто выводил логи в консоль. Например, типа так:
- загрузка ассетов, 100 мс
- добавление зданий в игру 58 мс
- добавление деревьев в игру 72 мс
- и т.д.
На блюпринтах не знаю как, но на С++ мерять время не составит труда.

В итоге понял, что самый ресурсоемкий процесс в играх это добавление и удаление объектов в рантайме.
Полагаю, что и у тебя, тормоза не из-за загрузки ресурсов, но из-за их добавления на сцену.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,845
Записей в блоге: 14
18.07.2025, 19:14  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
это время бездействия, игнорируй его. Ты смотри на остальных. Нужно, наверное, растянуть элементы, чтобы они были видны.
Вот правая панель, все элементы отсортированы по среднему эксклюзивному. Начиная с какого не игнорировать?
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,845
Записей в блоге: 14
18.07.2025, 19:17  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
вообще, я когда пытался понять, что именно тормозит в моей игре, то я просто выводил логи в консоль.
Для этого нужно хотя бы примерно знать, в каких местах выставлять индикаторы, а для этого нужно знать, что и в каком порядке загружается. В игре же порядок загрузки ресурсов неизвестен.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,603
18.07.2025, 21:37
Etyuhibosecyu, мне кажется, нужно выставлять какие-то закладки для отслеживания в блюпринте, чтобы потом в Unreal Insights увидеть нужные данные.

Etyuhibosecyu, я создавал процедурный лабиринт в годот. Там трехмерный лабиринт генерируется из маленьких блоков в рантайме при запуске игры. И вот при добавлении блоков на сцену (т.е. при добавлении лабиринта) я заметил, что лабиринт добавляется быстрее, если в цикле добавить паузу на 10 мс (имею в виду блокировку потока). Скорость добавления лабиринта значительно вырос. Т.е. несмотря на то, что у меня добавление блоков и так было многопоточным, этот трюк тоже увеличил скорость добавления.
Попробуй, может тебе тоже поможет.

Добавлено через 13 минут
Etyuhibosecyu, вроде нод называется Delay и обрати внимание, что там в секундах. Нужно прописать 0,01
0
Модератор
Эксперт Java
 Аватар для alecss131
2896 / 1402 / 412
Регистрация: 11.08.2017
Сообщений: 4,489
Записей в блоге: 2
18.07.2025, 21:45
Цитата Сообщение от Royal_X Посмотреть сообщение
И вот при добавлении блоков на сцену (т.е. при добавлении лабиринта) я заметил, что лабиринт добавляется быстрее, если в цикле добавить паузу на 10 мс (имею в виду блокировку потока). Скорость добавления лабиринта значительно вырос. Т.е. несмотря на то, что у меня добавление блоков и так было многопоточным, этот трюк тоже увеличил скорость добавления.
В данном случае можно было бы использовать Инстансы (UInstancedStaticMeshComponent и добавлять через AddInstance(FTransform()), я свой процедурный лабиринт на нем делал. Для кучи однотипных объектов самое то. В годоте похожее должно быть.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.07.2025, 21:45

Генеральный план развития Lineedge
В настоящее время Lineedge является перспективной, быстро развивающейся, но все еще имеющей только...

Поздравьте с подключением Lineedge к системе контроля версий!
Кому-то эта цитата: - показалась бы мимолетно брошенными словами, не стоящими внимания. Но меня...

Оцените "лик" Lineedge
С каждым месяцем в Lineedge добавляется все больше красоты, и только в окне выбора репрезентации...

Где показать Lineedge, чтобы получить тестирование, а не флуд?
Показ Lineedge (Semi-Alpha) 0.74/0.75 закончился неудачей. Ни один человек не захотел обнаружить в...

Продам плату Stream Alpha Plus + Alpha Pro 2.0 + Tele 2.2 б/у
Плата Stream Alpha Plus немного б/у, CD-диск Alpho Pro 2.0, CD-диск TELE 2.2, USB-ключ защиты для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
200
Закрытая тема Создать тему
Опции темы

Новые блоги и статьи
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru