Значит так.
Вы тут тухните.
Один Doc молодец, делает свою mmorpg ручками.
А Эльрат из-за вас всех без выхлопа трудится и пеарит сайт как может уже - даже лайки с репостами уже в контактах покупать начал.

Ввиду этого

Пора бросить делать костыль-карты под вар. Я бессовестно предлагаю всем желающим начать учиться делать нормальные инди-игры. Я как старый гуишник всячески избегаю чистого кодинга и потому готов вас учить делать игры без кода. Это возможно, просто вы плохо пробовали.
Моя цель - пристрастить желающих к созданию игр и спровоцировать движуху на хгм на тему геймдева.
Все просто - если вы на основании результатов этого опроса изъявляете желание поучиться геймдеву на Construct 2, я берусь рассказывать желающим, как там делать игры непосредственно на примере создания игры. Первый урок - вводный, бесплатно, дальше - донейт на весь курс до конца, разово. Если нет - все расходимся и продолжаем раковать каждый в своей кормушке перед монитором. Вам никто ничего не обещает в плане золотых гор аля Гейбньюэлла или еще кого, но если потом кто-то впряжется и сделает со мной 2Д mmorpg на этом движке - честь, хвала и 50% прибыли с проекта.
Опрос: Я готов поступить на курсы выпрямления рук в области геймдева
1. 
Да, хочу быть нормальным
2. 
Я поракую тут дальше
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
26
9 лет назад
Отредактирован lentinant
0
я пол года пытаюсь разобраться в шуме Перлина
А что сложного в шуме Перлина?
У тебя есть матрица 2 в степени N на 2 в степени N. Берешь текстуру такого разрешения и мутишь с нее белый шум (каждый пиксель случайным образом черный или белый). Дальше берешь вторую текстуру, и снова генеришь белый шум, но уже как бы разрешением вдвое ниже (разрешение то же, только вместо одного пикселя ты берешь квадрат 2 на два пикселя), дальше снова снижаешь разрешение и делаешь белый шум из квадратов 4 на 4, и так несколько раз. Потом берешь эти все текстуры, и на их основе делаешь остаточную - например, берешь определенный пиксель с каждой текстуры, и вычисляешь среднее из нее (например, если из 8 текстур у 4 этот пиксель был белым, то в итоговой текстуре он будет четко серым).
Чем больше итераций ты проведешь, тем больше возможных вариантов цвета будет, и тем более плавной будет выглядеть картинка.
0
24
9 лет назад
Отредактирован RSQR
0
lentinant:
я пол года пытаюсь разобраться в шуме Перлина
А что сложного в шуме Перлина?
У тебя есть матрица 2 в степени N на 2 в степени N. Берешь текстуру такого разрешения и мутишь с нее белый шум (каждый пиксель случайным образом черный или белый). Дальше берешь вторую текстуру, и снова генеришь белый шум, но уже как бы разрешением вдвое ниже (разрешение то же, только вместо одного пикселя ты берешь квадрат 2 на два пикселя), дальше снова снижаешь разрешение и делаешь белый шум из квадратов 4 на 4, и так несколько раз. Потом берешь эти все текстуры, и на их основе делаешь остаточную - например, берешь определенный пиксель с каждой текстуры, и вычисляешь среднее из нее (например, если из 8 текстур у 4 этот пиксель был белым, то в итоговой текстуре он будет четко серым).
Чем больше итераций ты проведешь, тем больше возможных вариантов цвета будет, и тем более плавной будет выглядеть картинка.
Я про генерацию шума, а не про то, что он из себя представляет. В коде как его воплотить в смысле. У меня мозг начинает закипать каждый раз когда я смотрю на всяческие вариации реализации шума в C#.
2
27
9 лет назад
Отредактирован Devion
2
А что сложного в шуме Перлина?
У тебя есть матрица 2 в степени N на 2 в степени N. Берешь текстуру такого разрешения и мутишь с нее белый шум (каждый пиксель случайным образом черный или белый). Дальше берешь вторую текстуру, и снова генеришь белый шум, но уже как бы разрешением вдвое ниже (разрешение то же, только вместо одного пикселя ты берешь квадрат 2 на два пикселя), дальше снова снижаешь разрешение и делаешь белый шум из квадратов 4 на 4, и так несколько раз. Потом берешь эти все текстуры, и на их основе делаешь остаточную - например, берешь определенный пиксель с каждой текстуры, и вычисляешь среднее из нее (например, если из 8 текстур у 4 этот пиксель был белым, то в итоговой текстуре он будет четко серым).
Чем больше итераций ты проведешь, тем больше возможных вариантов цвета будет, и тем более плавной будет выглядеть картинка.
Никогда не работал с шумами Перлина. Не думал что все так просто :О
Это ж и реализация то простая.
  1. вычисляешь разрешение
  2. while проверка разрешения
  3. 2.1. Юзаешь в цикле новый двумерный массив с длиной текущееРазрешение*текущееРазрешение, в который случайно забиваешь числа от 0 до 1
  4. 2.2. Делишь разрешение пополам
  5. Вычисляешь сумму для каждой ячейки массива с высоким разрешением, так же в while деля базовое разрешение на 2.
  6. 3.1. Делишь на количество массивов
  7. Возвращаешь результат
Как-то так. Может есть небольшие ошибочки, не проверял:
public static int[,] GetPerlinNoise(int степень)
{
    var матрицы = new int[степень][,];
    var текущееРазрешение = 1;
    for (int индексМатрицы = 0; индексМатрицы < степень; индексМатрицы++)
    {
        текущееРазрешение *= 2;
        матрицы[индексМатрицы] = new int[текущееРазрешение, текущееРазрешение];
        for (int x = 0; x < текущееРазрешение; x++)
            for (int y = 0; y < текущееРазрешение; y++)
                матрицы[индексМатрицы][x, y] = Random.Range(0, 1);
    }
    var результат = new int[текущееРазрешение, текущееРазрешение];
    for (int x = 0; x < текущееРазрешение; x++)
        for (int y = 0; y < текущееРазрешение; y++)
        {
            int суммаМатриц = 0;
            int делитель = 1;
            for (int индексМатрицы = степень - 1; индексМатрицы >= 0; индексМатрицы--)
            {
                суммаМатриц += матрицы[индексМатрицы][x/делитель, y/делитель];
                делитель *= 2;
            }
            результат[x, y] = суммаМатриц/степень;
        }
    return результат;
}
0
29
9 лет назад
Отредактирован Doc
0
RSQR, ты мне расскажи, зачем тебе это нужно понимать изначально, если это статический алгоритм который уже продуман, обмусолен и работает? Берешь реализацию и используешь, что сложного?
0
14
9 лет назад
Отредактирован Pray_AD
0
почему именно перлина, достаточно любой хаотической функции, да и понимать почему она работает совсем не обязательно.
double Noise2D(double x, double y, int seed) {
return ((0x6C078965*(seed ^ (((int) x*2971902361) ^ ((int) y*3572953751)))) & 0x7FFFFFFF)/(double)int.MaxValue;
}
Симплекс шум чуть сложнее, но сложность алгоритма не мешает его использовать, передали параметры -- получили шум, profit.
0
32
9 лет назад
0
0
34
9 лет назад
0
Fakov:
а куда ресурс делся?
0
32
9 лет назад
0
H, это бага: если я делаю правку в перепощеном на главную ресурсе - ресурс пропадает
1
33
9 лет назад
1
Fakov, это не баг, это фича ©
0
37
9 лет назад
0
Fakov, сделал опять репост.
0
27
9 лет назад
Отредактирован Devion
0
Кстати вот здесь в итоге оказалось 2 одинаковых репоста. Уберите лишний. Тот который репост в гд. Пусть конструкт из гд выпиливается, раз оживает и собирает развиваться.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.