Процедурная генерация – это не плохо. Некачественный или незаконченный генератор – вот настоящая проблема.
NMS на самом деле сама себя убивает своей бескрайностью. Даже при наличии общего для всех сервера, всегда будет возможность улететь туда, где тебя никто и никогда не найдет. При таком раскладе игра ничем не отличается от off-line. А если нет игроков, кооперации и противостояния, то это уже не так интересно.
Меня привлекли миры NMS, но оттолкнуло их количество. Дело не в том, что в них «нет души». Дело не в том, что их многообразие ограничено. Я просто не в состоянии исследовать сколь-нибудь значимую их часть, и это разочаровывает.
Процедурная генерация – однозначно да.
Бесконечные или почти бесконечные миры – точно нет.
Мир без рестартов — я за такой мир.
Создание временных зон с чем-то нужным и интересным — альтернатива рестартам.
Старение, запустение и исчезновение построек игрока при его отсутствии — тоже альтернатива рестартам.
Недавно в рамках своего проекта сделал генератор спиралевидных галактик по сиду. Это не совсем процедурная генерация, потому что потом эта вселенная записалась в SQL, т.к. она не слишком велика. Сначала я хотел ее генерировать «на лету» и не писать в базу, но тогда пришлось бы отдать алгоритм и seed клиенту, что создаёт возможность получения полной копии. Нельзя давать клиенту то, что ему знать не положено. Генерация на стороне сервера – это решение проблемы, но тут уже приходится выбирать что будет менее затратно – генерировать каждый раз или сохранить единожды. Я применяю достаточно простой алгоритм, использующий модификацию нормального распределения в качестве простого переключателя «да-нет» вместе с генератором чисел. В нейронных сетях нечто подобное делается на функции активации. Если кому интересно могу дать ссылку на Git с простейшим тестовым примером на javascript. Но, когда я занялся генерацией размера и светимости звезд, количества и размера планет, то пришел к тому, что продумывать придется все и вся, чтобы потом не получить совершенно иной мир. Так или иначе я разбил генерацию на модули. Изменения каждого из них влияет на все зависимые. Так наличие или отсутствие звезды по координатам определяется сначала в зависимости от удалённости от центра галактики, а потом уже от удаленности от ближайшей спирали. Для контрольного числа используются относительные координаты звезды. Затем определяется светимость звезды по алгоритму близкому к нормальному распределению звезд главной последовательности. На базе светимости из предыдущих данных определяется размер. Из размера и предыдущих данных количество планет и т.д.
Все это чертовски интересно, но терпит ошибок и переделок.
Маячок конечно же не поставил?
Упрется где-нибудь в стену или разобьется.
На самом деле, найти ее, думаю, можно. Не совсем игровыми способами. Через панель админки.
Начиная от полностью зашитых в броню кораблей (включая движки)
Думал об этом. Да, если выдержать расстояние от сопла, то, похоже, что можно вообще закрыть двигатели. Но как-то это… совсем неправильно. Хотя разработчикам ничего не стоило кидать трейс от движка (скажем, на километр), проверяя есть где-то там вдали эта же конструкция или нет. Если есть, то просто тягу не давать. Такая операция даже каждый цикл не очень затратна. А можно выполнять значительно реже. Скажем, при старте и потом рендомно с интервалом несколько секунд.
Это я еще роторы не использовал! Была мысль размещать двигатели под углом, чтобы уменьшить их количество. Про поворотные пока молчу. Это нужно уже кодить, что много времени поначалу займет, пока разберешься.
Посмотрел устройство двигателя. Нужно провести пару экспериментов. Если искусственную массу можно регулировать, то можно обойти правило установки в центр масс… Попробую… Кораблик мой будет большой и очень тяжелый. Рассмотрю возможность установки такого чудо-двигателя.
Системы реального размера получаются не слишком привлекательными с точки зрения геймплея. Посмотрите Space Engine. Там масштабы реальны. Сложно что-то найти. Так что солнце меня не сильно смутило. Хотелось бы только не попадать постоянно в тень Земли.
Про гравитационный читал, что используется баг игры. Поэтому пока его не рассматриваю в виде движителя. Хотя, если этот баг целенаправленно не убирают… может он уже «узаконен».
Да… Следующая статья выйдет теперь нескоро. 2 дня бороздил все вокруг своей стройплощадки. Нашел огромный астероид полностью изо льда. Нашел огромное месторождение урана. Но платина для движков так и не попадалась…
Когда я увидел ее — радости не было предела! Теперь осталось только все произвести и построить. Не буду пока раскрывать секретов, но получается что-то очень интересное.
Спасибо за совет. Я уже кажется понял свою ошибку. Я объединял ВСЕ двигатели для управления тягой, думая, что это повлияет на реакцию обычного управления. Но вышло так, что обычное управление отключилось, т.к. не осталось двигателей для контроля, а равномерная тяга во все стороны (у меня равное количество двигателей по 6 векторам тяги), привела к падению корабля за счет гравитации. Я все вернул как было и продолжил взлет.
Нужно было выделить в группу двигатели только одного направления. Тогда не пришлось бы играть импульсами. Полезность импульсов или регулирования тяги только в экономии топлива.
Я еще не проверял взлет с управляемой тягой. Попробую при следующем взлете.
Процедурная генерация – это не плохо. Некачественный или незаконченный генератор – вот настоящая проблема.
NMS на самом деле сама себя убивает своей бескрайностью. Даже при наличии общего для всех сервера, всегда будет возможность улететь туда, где тебя никто и никогда не найдет. При таком раскладе игра ничем не отличается от off-line. А если нет игроков, кооперации и противостояния, то это уже не так интересно.
Меня привлекли миры NMS, но оттолкнуло их количество. Дело не в том, что в них «нет души». Дело не в том, что их многообразие ограничено. Я просто не в состоянии исследовать сколь-нибудь значимую их часть, и это разочаровывает.
Процедурная генерация – однозначно да.
Бесконечные или почти бесконечные миры – точно нет.
Мир без рестартов — я за такой мир.
Создание временных зон с чем-то нужным и интересным — альтернатива рестартам.
Старение, запустение и исчезновение построек игрока при его отсутствии — тоже альтернатива рестартам.
Недавно в рамках своего проекта сделал генератор спиралевидных галактик по сиду. Это не совсем процедурная генерация, потому что потом эта вселенная записалась в SQL, т.к. она не слишком велика. Сначала я хотел ее генерировать «на лету» и не писать в базу, но тогда пришлось бы отдать алгоритм и seed клиенту, что создаёт возможность получения полной копии. Нельзя давать клиенту то, что ему знать не положено. Генерация на стороне сервера – это решение проблемы, но тут уже приходится выбирать что будет менее затратно – генерировать каждый раз или сохранить единожды. Я применяю достаточно простой алгоритм, использующий модификацию нормального распределения в качестве простого переключателя «да-нет» вместе с генератором чисел. В нейронных сетях нечто подобное делается на функции активации. Если кому интересно могу дать ссылку на Git с простейшим тестовым примером на javascript. Но, когда я занялся генерацией размера и светимости звезд, количества и размера планет, то пришел к тому, что продумывать придется все и вся, чтобы потом не получить совершенно иной мир. Так или иначе я разбил генерацию на модули. Изменения каждого из них влияет на все зависимые. Так наличие или отсутствие звезды по координатам определяется сначала в зависимости от удалённости от центра галактики, а потом уже от удаленности от ближайшей спирали. Для контрольного числа используются относительные координаты звезды. Затем определяется светимость звезды по алгоритму близкому к нормальному распределению звезд главной последовательности. На базе светимости из предыдущих данных определяется размер. Из размера и предыдущих данных количество планет и т.д.
Все это чертовски интересно, но терпит ошибок и переделок.
Упрется где-нибудь в стену или разобьется.
На самом деле, найти ее, думаю, можно. Не совсем игровыми способами. Через панель админки.
Спасибо.
Про гравитационный читал, что используется баг игры. Поэтому пока его не рассматриваю в виде движителя. Хотя, если этот баг целенаправленно не убирают… может он уже «узаконен».
Когда я увидел ее — радости не было предела! Теперь осталось только все произвести и построить. Не буду пока раскрывать секретов, но получается что-то очень интересное.
Счастливого пути и прекрасных открытий.
Нужно было выделить в группу двигатели только одного направления. Тогда не пришлось бы играть импульсами. Полезность импульсов или регулирования тяги только в экономии топлива.
Я еще не проверял взлет с управляемой тягой. Попробую при следующем взлете.