24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Вроде на дваче полно вебмакак, а треда по фазеру я не наблюдаю... Короче годная библиотека, можно даже онлайн игру запилить в легкую, вот как раз решил сделать РПГ игрулю с генерируемым миром, поделил все на чанки, сделал тестовую модель персонажа и думаю как реализовать систему выгрузки чанков. Пока сделал генерацию чанков в виде объектов и складываю в здоровенный массив, в чанках хранятся все данные тайтлов(координаты и ключ территории) Можно заценить вот здесь https://lolodin.github.io/My2DGame/ Буду рад если у кто нибудь поделится своими гайдами по созданию игрового мира на чанках
>>591214 (OP) >кто нибудь поделится своими гайдами по созданию игрового мира на чанках Первое и самое главное - объектные пулы. Без них будет тормозить. Из этого следует, что все чанки должны быть одного типа, чтобы храниться в пуле, офк. Далее ЛОДы. Нужно на практике (экспериментально) определить границы уровней детализации. Неважно, 2д-канва у тебя или 3д-проекция. Допустим ты определил три уровня: ближайший, второго плана, третьего плана и окружение. Окружение - синглтон. Существует всегда и видимо всегда. Третий план загружается статично. Второй план к статике подгружает движение. Первый план подгружает интерфейс (взаимодействие игрока с собой). В ближайшем находится сам игрок, здесь уместно загружать хайрез-текстуры, для разглядывания игроком. Далее, на примере 2д-топдауна. Ближайший план это один чанк. Вокруг него 8 чанков первого плана, которые уже загружены и готовы к бесшовному переходу игрока в них. Далее 16 чанков второго плана, готовые загрузиться до конца при приближении игрока. Далее 24 чанка третьего плана, готовы начать загружаться. И совсем вдалеке статическая текстура, возможно с анимацией, но не участвующая в динамической загрузке. Таким образом получаем размер объектного пула 24+16+8+1 = 49 плюс ещё 1 на всякий случай = 50 чанков. Допустим, тебя не устроило, что второй план слишком мал и игроку бросается в глаза статичный третий план. Тогда ты расширяешь второй план до двух рядов, он становится 24+16 = 40, а третий план становится 32 чанка и общий размер объектного пула у тебя будет 32+40+8+1+1= 82 чанка.
>>591234 > Вокруг него 8 чанков первого плана, которые уже загружены и готовы к бесшовному переходу игрока в них Есть примеры кода, бро, а так годно расписал, сам думал об этом
Вообще у топдаун чанков много реализаций, самый простой и распространенный это каждый раз генерить на основе сида, берешь координаты там и другую залупу, но это лишает нас возможности сохранять мир, если он изменяемый, поэтому я создал массив, в котором храню объект чанк, имеющий свой ID в виде двухмерного массива[1,1], и хранящий координаты каждого тайтла. Сегодня попробую реализовать чанки второго плана, идеи уже есть как сделать правильно. Но еще хочу рефакторинг кода сделать, у js проблемы с классами, но писать такие простыни на 1к строчек это пздц
Короче сделал загрузку и выгрузку чанков, но появился неприятный баг, при выходе в минусовые координаты появляются пустые зоны, на второй гифке видно. Как сделаю фикс, приступлю к созданию игровых объектов, добавлю деревья, которые будут расти и распространяться по игровой карте
Короче, сначала нужно удобную структуру сделать для сущностей, иначе заебетесь с кодингом, два дня убил на переделывание классов, но я просто не совсем ветеран ООП
>>594493 > генерация события Изич. Делаем список событий, достаём из него рандомом. > генерация боевой сетки > парметров Изич. Задаём шаг рисуем линии. Поверх линий рисуем преграды. Что сложного-то? > алгоритмы поиска пути и логики ИИ Ну изич же. Добавляем в списки из п.1. приоритет и актуальность и получаем типичного быдлодвачера: хотеть фап-фап - идти в порнхаб, хотеть трал-трал - идти в гд, хотеть девелоп-девелоп - идти в... нее, есть более приоритетные задачи: пожрать, посрать, покурить. Мамка ввалилась в комнату и требует найти работу - включить режим кабанчика!
>>668328 Векторы погугли. Находишь вектор из позиции игрока в позицию мыши. Делаешь его длину равной 1. Потом умножаешь его на скорость и прибавляешь его к позиции игрока. vx = mouseX - playerX vy = mouseY - playerY vlen = sqrt(vxvx + vyvy) vx = vx / vlen speed vy = vy / vlen speed playerX += vx playerY += vy Это если скорость измерять в пикселях в кадр.
Есть группа, мне надо чтобы одинаковые болванчики с одинаковыми свойствами были как бэ независимыми. Т.е. если я буду отнимать хп при столкновении, то у одного конкретного, а не у всей группы. Вот как к одному обратиться и вообще его идентифицировать после создания группы?
Короче годная библиотека, можно даже онлайн игру запилить в легкую, вот как раз решил сделать РПГ игрулю с генерируемым миром, поделил все на чанки, сделал тестовую модель персонажа и думаю как реализовать систему выгрузки чанков. Пока сделал генерацию чанков в виде объектов и складываю в здоровенный массив, в чанках хранятся все данные тайтлов(координаты и ключ территории)
Можно заценить вот здесь https://lolodin.github.io/My2DGame/
Буду рад если у кто нибудь поделится своими гайдами по созданию игрового мира на чанках