Архив сообщества
2011 — 2019
Аватар Krieg

Лаги и оптимизация

Автор: Krieg · 12.01.2012, 19:59 · 49 сообщений

Сообщений в теме: 49

Krieg#1
И так, что вызывает целую тучу лагов, которая отпугивает многих людей? Исходя из игровых наблюдений это:

1. Расчёт изменения атмосферы.
2. Большое количество движущихся объектов
3. Отрисовка людей. Когда рэткэт заменял всех на ящериц, лагало заметно меньше.
4. Освещение. Когда оно становится динамичным - на станции темно и кучи людей бегают с фонарями, лаги растут.

Предлагаю продолжить список и вместе подумать, в чём корень зла, и как это можно подправить.
0
Elkrakko
Скопировать ссылку
AsCiMaToR#2
Krieg сказал: писал:
И так, что вызывает целую тучу лагов, которая отпугивает многих людей? Исходя из игровых наблюдений это:

1. Расчёт изменения атмосферы.
2. Большое количество движущихся объектов
3. Отрисовка людей. Когда рэткэт заменял всех на ящериц, лагало заметно меньше.
4. Освещение. Когда оно становится динамичным - на станции темно и кучи людей бегают с фонарями, лаги растут.

Предлагаю продолжить список и вместе подумать, в чём корень зла, и как это можно подправить.
Удалить атмос, понизить онлайн, удалить динамичное освещение. Вот только получится говно.
0
Цитата
В ССке ничего нельзя делать, кроме как дрочить

Цитата
Да, "клованов" выпилили намеренно, чтобы выпилить из нашей ЦА клоунов вроде Clockriggera и прочих ему подобных ;D
Скопировать ссылку
Krieg#3
Оптимизировать - не удалить. Может можно разработать другой алгоритм симуляциии и сплавить обработку освещения клиенту, если такое возможно. Как-то в конфе краем уха слышал, что где-то многое из того, что вызывает лаги вылечено, но не помню уже где. Если такое возможно, почему бы не попробовать.
0
Elkrakko
Скопировать ссылку
Krieg#4
Там например рассчитывать атмосферу только в половине клеток в шахматном порядке, а остальные значения интерполировать на основе имеющихся. Алгоритм движения объектов из точек с большим давлением в меньшее - совершенно бесполезен. Постоянно раздражало, что открывая канистру, предметы разлетаются из точки открытия потом ещё 3 часа. Можно эту функцию выключить, но приписать аналог для клеток с открытым космосом, чтобы машина не искала разницу давлений, а просто засасывала туда, где давления точно нет.

Хотя опять же я не знаю толком, как оно там работает на самом деле, и то что я пишу - вероятнее всего, бесполезная ерунда, но если кто-то объяснит, будет над чем подумать.
0
Elkrakko
Скопировать ссылку
kotowasiy#5
Krieg сказал: писал:
Алгоритм движения объектов из точек с большим давлением в меньшее - совершенно бесполезен.
Ещё как полезен.
Во-первых, можно кататься на канистре с газом. Когда я ещё не знал о представляемой углекислым газом угрозе, то продемонстрировал бармену свой чудо-движок на канистре CO2. Бармен погыгыкал, надышался газу и грохнулся в обморок. Я предусмотрительно напялил интерналзы на случай вытеснения кислорода углекислым, так что смог вызвать врача.
Во-вторых, за счет разности давлений космос "засасывает" объекты. Можно, конечно, попробовать реализовать "космический ветер" без атмоса, но это будет далеко не так весело.
В-третьих, старый добрый турбинный движок основан именно на разнице давлений, которое, в свою очередь, провоцируется разницей температур.
Наконец, наличие движения объектов из-за давления газа позволяет построить медленную, но зато смешную и обладающую практически бесконечным разовым объемом грузоперевозок пневмопочту, где вещи толкаются по узкому коридору в тайл космоса за счет выпуска газа из канистр.
Так что не надо мне тут трогать давление.
0
Изображение
Скопировать ссылку
Krieg#6
Можно сделать вертер из канистры при условиях, что у неё открыт вентель на давление выше определённого.
0
Elkrakko
Скопировать ссылку
kotowasiy#7
Krieg сказал: писал:
Можно сделать вертер из канистры при условиях, что у неё открыт вентель на давление выше определённого.
Тогда пропадет всякий смысл пытаться создать чудовищное давление на тайле, чтобы, например, сделать пневмопушку или резкую, а не тормознутую пневмопочту. Урезание атмоса в угоду оптимизации часто бьет по НАУКЕ, что не есть хорошо.
0
Изображение
Скопировать ссылку
Poseidonishe#8
Krieg правильно говорит, атмос можно оптимизировать без потери функциональности, но с потерей лагов. Вообще, если кто не знал, SS13 написана каким-то человеком как симулятор атмосферы. (автора искать на странице игры на сайте бйонда). Там рассчитываются объёмы, давления и теплоёмкости газов и их смесей, а так же их взаимодействие в случае горения и т.д. Это большой научный кусок, который, теоретически, можно сильно упростить в гейплейных целях без урона геймпею. Другое дело, что нужно найти того, кто будет этим заниматься. Я, к примеру, точно не буду ввиду недостаточно высокого содержания ЭНТУЗИАЗМА в крови.

Если кого интересует, как симулятор атмоса превратился в игру силами фанатов этой игры,  спросите кого-нибудь в конфе (если хотите подробностей. Путь ss13 тернист). Или поищите на лурке, там вроде как было написано коротко и понятно.
0
Скопировать ссылку
kotowasiy#9
Poseidonishe сказал: писал:
Там рассчитываются объёмы, давления и теплоёмкости газов и их смесей, а так же их взаимодействие в случае горения и т.д. Это большой научный кусок, который, теоретически, можно сильно упростить в гейплейных целях без урона геймпею.
Задумка плоха тем, что слишком уж много аспектов придется выявить и ввести в геймплей. Атмос не ограничивается перемещением предметов "ветром", удушьем при нехватке кислорода или взрывами с пожарами. Поскольку космонавтики наросли вокруг атмоса, а не атмос вырос внутри космонавтиков, то тебе придется с лупой ползать и искать факторы влияния. И ещё не факт, что "псевдоатмос" будет лагать меньше атмоса настоящего.
0
Изображение
Скопировать ссылку
Jack Rost#10
Меня среди этого волнуют два вопроса. Во-первых есть ли хоть какая-то возможность юзать клиентскую обработку кода? Тут много кода, который можно повесить на плечи клиента. Во-вторых возможность юзать длл позволит перекинуть в них(в длл) код, который повесит обработку на клиента?
Насчёт атмоса считаю, что всё же кое-где стоит его слишком реальные условия ослабить.
Забыли про ещё один пункт - синга.
0
Скопировать ссылку
kotowasiy#11
Jack Rost сказал: писал:
Забыли про ещё один пункт - синга.
Движки в космостанции делятся на два вида: скучные, но безлаговые, и интересные, но генерирующие лагодром. Синга, само-собой, относится ко вторым.
0
Изображение
Скопировать ссылку
AsCiMaToR#12
kotowasiy сказал: писал:
Poseidonishe сказал: писал:
Там рассчитываются объёмы, давления и теплоёмкости газов и их смесей, а так же их взаимодействие в случае горения и т.д. Это большой научный кусок, который, теоретически, можно сильно упростить в гейплейных целях без урона геймпею.
Задумка плоха тем, что слишком уж много аспектов придется выявить и ввести в геймплей. Атмос не ограничивается перемещением предметов "ветром", удушьем при нехватке кислорода или взрывами с пожарами. Поскольку космонавтики наросли вокруг атмоса, а не атмос вырос внутри космонавтиков, то тебе придется с лупой ползать и искать факторы влияния. И ещё не факт, что "псевдоатмос" будет лагать меньше атмоса настоящего.
Но мои бомбы!
0
Цитата
В ССке ничего нельзя делать, кроме как дрочить

Цитата
Да, "клованов" выпилили намеренно, чтобы выпилить из нашей ЦА клоунов вроде Clockriggera и прочих ему подобных ;D
Скопировать ссылку
Krieg#13
все реакции в банках можно оставить, поставив на пути трубы в камере сгорания камеру виртуальную - бочку с печкой, например, в которой газ будет поджигаться.
0
Elkrakko
Скопировать ссылку
Matias Gray#14
О чём разговор, космотнавты- у Хауса же есть перепиленный атмос, который работает в 8 раз быстрее. Если он не врал.
0
Атмос это магия.
Скопировать ссылку
Poseidonishe#15
kotowasiy, специально для тебя повторю - БЕЗ урона гейплею. То есть вообще без внешних изменений, только ускорение работы. К примеру, в некоторых формулах используется пять-шесть констант. Есть смысл просто рассчитать их отношение заранее и не заниматься лишним умножением/делением каждый тик.
0
Скопировать ссылку
Krieg#17
покопался в кодах, суть, насколько я понял такова: газ перемещается в направлении градиента давления и всё пересчитывается. Будет ли проще, например, если усреднять количество молей и давление в соседних тайлах, а потом рассчитывать температуру по формуле идеального газа? Объём на всех тайлах должен быть одинаковый.
0
Elkrakko
Скопировать ссылку
AsCiMaToR#18
Krieg сказал: писал:
Вроде на эйфории были какие-то наработки, я правда там ни разу не был.
Ну дак там бей.
0
Цитата
В ССке ничего нельзя делать, кроме как дрочить

Цитата
Да, "клованов" выпилили намеренно, чтобы выпилить из нашей ЦА клоунов вроде Clockriggera и прочих ему подобных ;D
Скопировать ссылку
Jack Rost#19
kotowasiy сказал: писал:
Jack Rost сказал: писал:
Забыли про ещё один пункт - синга.
Движки в космостанции делятся на два вида: скучные, но безлаговые, и интересные, но генерирующие лагодром. Синга, само-собой, относится ко вторым.
Знаю и сожалею. Неохота терять функционал синги, ввиде постепенного и несколько даже рандомного разрушения станции.

Насчёт констант, я давно проверял танки(те что в служебных туннелях стоят), у них там у всех один тот же рассчёт в начале есть, который тоже можно вынести в константу. Не знаю как сейчас конечно.
0
Скопировать ссылку
MIK517#20
Вы таки не сильно пока разгоняйтесь с изменением атмоса. Я надеюсь, что бэевцы в скором времени свою систему добавят (которая "метеор пробил стенку и всех высосало в космос, попутно пару раз шмякнув об стенку"). Вот после мержа вполне можно будет и поразмыслить чего серьёзно менять в атмосокоде.

ЗЫ. Расчёта констант данное пожелание не касается, да.
0
Если факты противоречат моей теории, тем хуже для фактов.©
Скопировать ссылку
Gardanos#21
Если сингулярность будет моментально засасывать всю атмосферу из отсека под ноль то это должно сильно уменьшить лаги.
0
Ha Ha! I hid all yours signatures.
Скопировать ссылку
GreenDancer#22
Gardanos сказал: писал:
Если сингулярность будет моментально засасывать всю атмосферу из отсека под ноль то это должно сильно уменьшить лаги.
наоборот же, это как взрыв будет.
0
Скопировать ссылку
Gardanos#23
GreenDancer сказал: писал:
наоборот же, это как взрыв будет.
Но при взрыве воздух просто засасывается в космос, со всеми ненужными просчетами.
0
Ha Ha! I hid all yours signatures.
Скопировать ссылку
Krieg#24
Почему лагает, когда люди - люди, и не лагает, когда они ящеры. Там что каждый тик проверяется какая ДНК, что персонаж одел, что держит в руках и обновляется картинка? когда поднимаешь предмет, он в руке появляется не сразу, то есть изменение спрайта связано не с процессом поднятия предмета, а обновляется каждый тик или каждые несколько тиков?
0
Elkrakko
Скопировать ссылку

Обратно в Архив