Salamandr
> А современным игрокам подавай приключений заскриптованных, заренее продуманных и прошедших через геймдиза.
Это ты прям за всех высказался ?
Salamandr
> Лучше меньше, но качественный опыт. Поэтому инди и выживают, ну.. те что делают так.
Меньше чего ? Приведи что ли пример таких игр и сколько человек в этой инди конторе принимали участие в разработке
endeavour_pr
> Это ты прям за всех высказался ?
делайте как хотите, нормальную то игру тяжело продать. А то что какашка продастся, дык это ошибка выжившего.
endeavour_pr
> Приведи что ли пример таких игр и сколько человек в этой инди конторе принимали участие в разработке
это не столь важно, актуальная информация стоит времени. Не вижу смысла приводить примеры своей "насмотренности". Мне просто лень искать сейчас эти примеры тратя и без того своё драгоценное время отведенное случайным числом.
Просто возьмите любую старую игру, саму небольшую, самую лоупольную и сравните с продакшеном современности. Вот прям такая деградация что ппц, все учатся, это понятно. Для тех кто учится это простительно. Во всех направлениях очень низкий уровень стал доступен общественности. Главное чтобы хорошие игры доходили до потребителя среди этого всего. Очень много кто работает над этим и я надеюсь они доведут нужные проекты к продаже и не выгорят, и не сломаются, и спонсоры(издатели) найдутся.
Если равномерная сетка из квадов, то можно попробовать что-то такое:
int quad_sx = ...; // ширина текущего квада в шагах int quad_sy = ...; // длина текущего квада в шагах float step_x = ...; // задаем шаг для рандома по x (чем меньше шаг, тем кучнее будут объекты на карте) float step_y = ...; // задаем шаг для рандома по y (чем меньше шаг, тем кучнее будут объекты на карте) for (int x = 0; x < quad_sx; ++x) { for ( int y = 0; y < quad_sy; ++y) { if ( dice( 2) == 1) quad.objects.put( x * step_x, y * step_y); // если бросок кости от 1 до 2 выдал 1, помещаем объект на карту // координаты объектов в локальной СК квада } }
Для квада, не лежащего на плоскости xz, нужно найти уголы поворота относительно плоскости xy,
построить по ним матрицу поворота и помножить позиции всех объектов на нее.
Алгоритм не проверял, сочинил на коленке, возможно нужны будут корректировки.
С ходу еще можно добавить небольшое рандомное смещение к координатам объектов на квадах, чтоб они выглядели более случайно.
Ну и возможно dice(2) имеет смысл заменить каким-то более качественным рандомом.
nes
Дайс сделала фростбайт :)
innuendo
Это хорошо или плохо?
nes
Лучше расскажи про конченные разности и градиент :)
innuendo
Разности конечны, а градиент плавный.
nes
Можно и ротор посчитать
innuendo
Зачем?
nes
Садить травинки через вихрь :)
innuendo
переголова.
innuendo
> Садить травинки через вихрь :)
ааа, карта ветров. она же карта векторов или vector fields
Salamandr
Кто-нибудь и дивергенцию прикрутит
0xFFFFFFFF
> Собственно да, хочу сделать автоматическую рассадку кустиков, камушек и прочего на ландшафте в своем движке
Звучит так, что здесь подойдёт "неравномерный пойсон-диск", точное название не помню. Гугли код, видел статью с ним, там еще на картинках неравномерно растущие ромашки нарисованы если я правильно помню.
0xFFFFFFFF
Почему бы не сделать случайные точки в плоскости треугольника? Вам всего лишь нужно найти матрицу поворота треугольника, повернуть треугольник так, чтобы он оказался в 2D и найти прямоугольник описывающий треугольник. А потом разбросать рандомно точки внутри прямоугольника и оставить только те, что попали в треугольник. Все точки повернуть обратной матрицей и, voila, готово.