Ты очень крут. То как ведешь повествование, речь, тембр и громкость голоса, музыкальное сопровождение и внимание к деталям сделал тебя одним из лучших в преподнесении материала на ютабчике в тематике геймдева. Большое тебе спасибо и так держать!)
Недавно решил заняться этим движком. Собираю вот годные уроки и обучалски. Этот, пожалуй, один из лучших. Конкретно по 4 версии пока еще маловато ресурсов. Так что, пили, пожалуйста. Это ценный контент.
Подскажите, как достать элементы из tilemap? То есть все тайлы которые были нарисованы. Чтобы потом поставить на определённые тайлы какие-нибудь сооружения
Спасибо за туториал. Созрел вопрос. Как реализуются рампы и наклоны ландшафта на многоуровневых картах в 2d, 2.5d играх? Или проще будет не морочить голову и это реализовывать в 3d?
Наложение достигается за счёт многослойности тайлмэп, сортировки по оси Y, коллизия на скосах, где игрок должен упираться в "стену". Если нужен прыжок - отключается коллизия на время прыжка. Иной раз, можно проверить направление прыжка и на какой высоте располагается тайл, куда игрок должен "приземлиться". А высоту можно указать через слои, data самих тайлов, если с высотой они меняются, иными способами. Разумеется в 2D такие вещи делаются, можно сказать, "костыльно", ведь мы искусственно будто бы добавляем третью ось в двухмерном пространстве. Но это не так сложно, как кажется. Изометрию немного сложнее в этом плане делать, на мой взгляд, лучше сначала попробовать в обычном 2D, а потом уже со знанием дела в 2.5D
@@oktopusskills в голове образ 2d это карта рельефа без перепадов как в Warcraft 2, а в 2.5d перепады как в red alert 2, age of empires 2. 2.5 d без перепадов, наверное, heroes 4 или Majesty. Состенами понял. Наклоны как задавать - не понял.
если не появляется сетка - важны не габариты тайлов. Надо проверить в какой вкладке вы находитесь, для рисования. Внизу надо выбрать не "Набор тайлов", а TileMap. Убедиться, что выбран инструмент карандаш
Годный туториал.. У меня один вопрос.. Звучит смешно.. Я хочу попробовать сделать типа что то вроде старбоунда/террария на годоте. Но не понимаю как делать некоторые вещи. Толи спавнить чанки, а они уже блоки.. Или весь мир можно зарегенить в одну тайловую карту через скрипт (наделе 2 ибо задник)? Или в варианте с тайловой картой придется резать ее на чанки что бы оптимизировать? (хотя я пока не понимаю как "шуп перлина" из "белого шума" со всякой обработкой образует террайны и биомы и разделяется на чанки.)
@@oktopusskills Давай я уточню ибо не понял. .Ибо я реально не понимаю может ли это осилить годо. стандартный мир в терарии 8400х2400 блоков. как такое переваривает годо? Тоесть я просто к примеру беру и рисуют на тайловой карте от 0 и до 8400 координаты тайлами нужное.. или мне же придется это как то оптимизировать..или это уже умеет сам годо? ну да.. по сути про танцы с шумом логично.. мучать отдельно.. я тока знаю что там вроде на коком то этапе это все превращается в текстуру.
Сделал уровень с помощью тайлсета. Но когда персонаж двигается, периодически видны зазоры между ними. Тайлы хорошие, рисовал сам, все 32х32. В редакторе все ок. Но вот когда камера движется, появляются зазоры в 1 пиксель. Кто-то сталкивался с подобным? Экспериментальным путем выяснил что такое происходит только когда включено плавное следование камеры за игроком.
Вообще, проблема встречалась постоянно в Godot 3 версии. Но если столкнулись, лучшее, что можно сделать - добавить по пикселю со всех сторон, а в тайлмэп указать зазор через offset
отличный туториал, всё понятно и доходчиво объяснено, помогло невероятно. Не понятно правда за что 2 человека дизлайк поставили, но это уже их проблема скорее
Привет, подскажи пожалуйста, как делать генерацию Tilemap прямо в коде? Сейчас у меня скрипт привязанный к Node2D и там что-то вроде этого: for x in max_x: for y in max_y: var tile_id = generate_id(noise.get_noise_2d(x, y)) if (tile_id != -1): $TileMap.set_cell(1, (x, y), 0, (0, 1)) Я делаю процедурную генерацию и функция generate_id будет генерировать тип тайла, это заготовка на будущее, пока она просто говорит есть тайл или нет. А видос очень полезный, просто и понятно объяснено, спасибо
Приветствую! А в чём конкретно вопрос? Как будто бы решение уже пишется, а сам вопрос максимально абстрактный, даже нет инфы будет ли автотайлинг или нет. В целом, по работе с тайлмеп из кода - тоже будет видео, сложно сказать насколько скоро, учитывая, что следующие видео уже определены по тематике. Если будет конкретная проблема и вопрос - добро пожаловать в дискорд сервер (ссылка в описании), там коммуницировать проще, да и помочь через голосовые чаты с демонстрациями экрана. Удачи с проектом!
Хм, я не знаю что я сделал, но все починилось. Я просто пересоздал проект, со всеми теми же настройками. И все работает. Раньше при запуске был просто серый экран. А в новом проекте все генерируется
Здравствуйте, хочу попросить вас о помощи. Сами понимаете - мало людей которые кодируют в годот на c#. Я делаю свою игру ПВП, где есть персонаж, карта и несколько типов мобов. Мне надо сделать так, чтобы моб сам появлялся в определённых координатах с определённым промежутком времени, но совсем не знаю как это сделать. Мог ли бы пожалуйста чуть чуть помочь?
Тут не имеет значения на чем писать. Алгоритм действий будет одинаков: таймер для появления монстров у какого нибудь объекта, условно, MobSpawner, ждать ивента о завершении отсчёта таймера и сравнить моба в определённой координате. Либо я не понял сути вопроса
@@oktopusskills дело в том, что я не могу связать все в один код. Я не знаю как месту спавна придать координаты и поставить промуток времени. Просто не получается написать код из-за очень маленького опыта в программировании
@@Tolik12385 откройте в документации годо раздел "ваша первая игра", пройдите все шаги. У вас сложится, во-первых, мнение о движке, во-вторых, подобные вопросы отпадут, заодно, узнаете нравится ли вам всё это)
@@oktopusskills хорошо, попробую посмотреть документацию, но это всё точно нравится) Весь год смотрел онлайн курсы, просто в некоторых моментах нам всё таки не донесли информацию
@@oktopusskills задача была такой, чтоб когда игрок находился за деревом то дерево становилось прозрачным, и я нечего не придумал как сделать новую сцену и добавить ее в TileMape
@@Suunsuuun можно сделать по разному. Можно добавить в сцену дерева area2d и при ивенте пересечения с игроком добавлять прозрачности. Можно сделать шейдером для спрайта в сцене дерева. А можно вообще простым способом в лоб, так сказать. К ноде спрайта персонажа добавляем ноду PointLight2D, ей в Texture запихиваем спрайт персонажа (будет нашей маской для силуэта). В Range выставляем маску Item Cull Mask только 5ую, например. У Спрайта наших деревьев и других объектов, которые должны будут просвечивать персонажа ставим в Visibility -> Light Mask помимо уже выбранной 1ой еще 5ую (короче, ту же, что выставляли у PointLight2D. Всё. Можем покрутить у PointLight2D blend mode и energy. Как нибудь встрою такую штуку в видео
@@lorein_4368 не забывайте о локальном центре координат тайлов и игрока. Попробуйте персонажа на слой выше поставить и посмотреть, исчезнет ли проблема
Почему ты в качестве полноценного примера не создал изометрическую 2д рпг игру с персонажем и его прокачкой, инвентарем, ящиками, сундуками, бочками, мобами, боссами и т д?
@@oktopusskills а добавить файл через код можно? Допустим я хочу чтобы по нажатию левой кнопки Миши в зоне где мог бы быть тайл добавить определённый тайл если его нету
@_1mrscool11_9 Можно всё что угодно) проверяете позицию тыка мыши, конвертируете в координату на тайловой сетке tilemap.local_to_map(позиция мыши) Получаете тайл из этой позиции, а дальше крутите им как хотите, ставите новый и тд.
По шарпу, если и будет, то не в ближайшее время, по той причине, что сейчася веду очные занятия по годо на gds, а ближайшие видео будут и для канала, и для закрепления материала ученикам) А так - к шарпу с удовольствием вернусь как нибудь
Люди, помогите, как сделать эффект слоумо? Просто я делаю игру где основной механикой будет замедлять или останавливать время, но я не знаю как это сделать. Буду крайне признателен, если скажите как это сделать
Отличный урок!!! Ещё толком не использовал новые тайлмапы, но это видео поможет быстрее разобраться, спасибо! Кстати, может быть, ты и без меня знаешь, но здесь 12:56, вместо двух get_axis, можно использовать один get_vector, который даже нормализуется по умолчанию!
@@oktopusskills Вот только что посмотрел англоязычный гайд, потом прочитал доки, но всё равно разобраться не смог :/ Мне нужно простейшую 3х3 сетку сделать, но всегда получается какая-то каша из тайлов Возможно дело в том, что у меня лишь 8 из 9 ячеек имеют тайл (пустота по середине) Но в любом случае я уже больше часа пытаюсь решить эту маленькую проблему и ничего не получается :)
Годный туториал. Наконец-то у многих исчезнут проблемы с новой TileMap. Спасибо за труд.
У вас тоже не плохие гайды... очень даже не плохие я бы сказал)))
@@m0h49 Но я не делал никакие гайды...
Нобади это действительно ты? я в шоке
@@_1mrscool11_9 да это я
Ты очень крут. То как ведешь повествование, речь, тембр и громкость голоса, музыкальное сопровождение и внимание к деталям сделал тебя одним из лучших в преподнесении материала на ютабчике в тематике геймдева. Большое тебе спасибо и так держать!)
13:50. Я всё включил, но у меня пропали все деревья, а персонаж становиться невидимым когда к ним подходит, что делать?
Недавно решил заняться этим движком. Собираю вот годные уроки и обучалски. Этот, пожалуй, один из лучших. Конкретно по 4 версии пока еще маловато ресурсов. Так что, пили, пожалуйста. Это ценный контент.
Это лучший урок по TileMap2D. Жду урок по динамической навигации)
Гайд, достойный подписки с колокольчиком и уважения)
Добрый день!
Туториал по рандомной генерации мира из тайлов!
Подписался на дзен ради Годо! Спасибо.
5:05 шикарный переход, просто вырезано - и теперь включай оракула где что и куда ты залез.
После этой минуты можно закрывать видео таким успехом...
Очень крутой туториал, я столько нового узнал, спасибо
Спасибо. помогли очень.
Подскажите, как достать элементы из tilemap? То есть все тайлы которые были нарисованы. Чтобы потом поставить на определённые тайлы какие-нибудь сооружения
Спасибо за туториал. Созрел вопрос. Как реализуются рампы и наклоны ландшафта на многоуровневых картах в 2d, 2.5d играх? Или проще будет не морочить голову и это реализовывать в 3d?
Наложение достигается за счёт многослойности тайлмэп, сортировки по оси Y, коллизия на скосах, где игрок должен упираться в "стену". Если нужен прыжок - отключается коллизия на время прыжка. Иной раз, можно проверить направление прыжка и на какой высоте располагается тайл, куда игрок должен "приземлиться". А высоту можно указать через слои, data самих тайлов, если с высотой они меняются, иными способами. Разумеется в 2D такие вещи делаются, можно сказать, "костыльно", ведь мы искусственно будто бы добавляем третью ось в двухмерном пространстве. Но это не так сложно, как кажется. Изометрию немного сложнее в этом плане делать, на мой взгляд, лучше сначала попробовать в обычном 2D, а потом уже со знанием дела в 2.5D
@@oktopusskills в голове образ 2d это карта рельефа без перепадов как в Warcraft 2, а в 2.5d перепады как в red alert 2, age of empires 2. 2.5 d без перепадов, наверное, heroes 4 или Majesty.
Состенами понял. Наклоны как задавать - не понял.
Очень полезный урок. Спасибо
Отличный гайд!
отличный гайдик
Спасибо, очень отличный туториал!👍
Довольно подробно и понятливо, в самый раз для ознакомления👍
С возвращением в эфир
В годоте конечно тайлмапы супер пиздатые
что делать если когда я создаю тайл сет и пишу габариты то не появляются оранжевые клетки на сцене в которых нужно рисовать атласами?
если не появляется сетка - важны не габариты тайлов. Надо проверить в какой вкладке вы находитесь, для рисования. Внизу надо выбрать не "Набор тайлов", а TileMap. Убедиться, что выбран инструмент карандаш
Зря перестал ролики записывать, хорошо получилось.
Имба, спасибо)
Годный туториал.. У меня один вопрос..
Звучит смешно.. Я хочу попробовать сделать типа что то вроде старбоунда/террария на годоте. Но не понимаю как делать некоторые вещи.
Толи спавнить чанки, а они уже блоки.. Или весь мир можно зарегенить в одну тайловую карту через скрипт (наделе 2 ибо задник)? Или в варианте с тайловой картой придется резать ее на чанки что бы оптимизировать?
(хотя я пока не понимаю как "шуп перлина" из "белого шума" со всякой обработкой образует террайны и биомы и разделяется на чанки.)
В годо тайлмепа довольно серьзно обросла функционалом, можно на ней всё это завязать. С шумом сначала лучше разобраться отдельно, а потом совместить
@@oktopusskills Давай я уточню ибо не понял. .Ибо я реально не понимаю может ли это осилить годо.
стандартный мир в терарии 8400х2400 блоков.
как такое переваривает годо? Тоесть я просто к примеру беру и рисуют на тайловой карте от 0 и до 8400 координаты тайлами нужное.. или мне же придется это как то оптимизировать..или это уже умеет сам годо?
ну да.. по сути про танцы с шумом логично.. мучать отдельно.. я тока знаю что там вроде на коком то этапе это все превращается в текстуру.
Поему когда я добавляю коллизию текстурка становиться синей?
может просто колизия своим цветом перекрывает текстуру?
👍класс
жду новый ролик
Ты ожил, невероятно!
Пипец, ты вернулся🎉
Сделал уровень с помощью тайлсета. Но когда персонаж двигается, периодически видны зазоры между ними. Тайлы хорошие, рисовал сам, все 32х32. В редакторе все ок. Но вот когда камера движется, появляются зазоры в 1 пиксель. Кто-то сталкивался с подобным? Экспериментальным путем выяснил что такое происходит только когда включено плавное следование камеры за игроком.
Вообще, проблема встречалась постоянно в Godot 3 версии. Но если столкнулись, лучшее, что можно сделать - добавить по пикселю со всех сторон, а в тайлмэп указать зазор через offset
Ура, вернулся. Жду обучающих видосов каждый день
Жду ещё уроки
отличный туториал, всё понятно и доходчиво объяснено, помогло невероятно. Не понятно правда за что 2 человека дизлайк поставили, но это уже их проблема скорее
Когда новий видос братан
Привет, подскажи пожалуйста, как делать генерацию Tilemap прямо в коде?
Сейчас у меня скрипт привязанный к Node2D и там что-то вроде этого:
for x in max_x:
for y in max_y:
var tile_id = generate_id(noise.get_noise_2d(x, y))
if (tile_id != -1):
$TileMap.set_cell(1, (x, y), 0, (0, 1))
Я делаю процедурную генерацию и функция generate_id будет генерировать тип тайла, это заготовка на будущее, пока она просто говорит есть тайл или нет.
А видос очень полезный, просто и понятно объяснено, спасибо
Приветствую! А в чём конкретно вопрос? Как будто бы решение уже пишется, а сам вопрос максимально абстрактный, даже нет инфы будет ли автотайлинг или нет. В целом, по работе с тайлмеп из кода - тоже будет видео, сложно сказать насколько скоро, учитывая, что следующие видео уже определены по тематике. Если будет конкретная проблема и вопрос - добро пожаловать в дискорд сервер (ссылка в описании), там коммуницировать проще, да и помочь через голосовые чаты с демонстрациями экрана. Удачи с проектом!
@@oktopusskills Да, точно, самое главное я забыл сказать. Я затупил, извини. Я тогда в дискорде более подробно опишу проблему. Но все равно спасибо
Хм, я не знаю что я сделал, но все починилось. Я просто пересоздал проект, со всеми теми же настройками. И все работает. Раньше при запуске был просто серый экран. А в новом проекте все генерируется
@@ВадимТимошин-ш7ъ из-за того, что не видел проекта, не могу сказать наверняка, может быть много причин, вплоть до отсутствия скрипта на ноде)
Здравствуйте, хочу попросить вас о помощи. Сами понимаете - мало людей которые кодируют в годот на c#. Я делаю свою игру ПВП, где есть персонаж, карта и несколько типов мобов. Мне надо сделать так, чтобы моб сам появлялся в определённых координатах с определённым промежутком времени, но совсем не знаю как это сделать. Мог ли бы пожалуйста чуть чуть помочь?
Тут не имеет значения на чем писать. Алгоритм действий будет одинаков: таймер для появления монстров у какого нибудь объекта, условно, MobSpawner, ждать ивента о завершении отсчёта таймера и сравнить моба в определённой координате. Либо я не понял сути вопроса
@@oktopusskills дело в том, что я не могу связать все в один код. Я не знаю как месту спавна придать координаты и поставить промуток времени. Просто не получается написать код из-за очень маленького опыта в программировании
@@Tolik12385 откройте в документации годо раздел "ваша первая игра", пройдите все шаги. У вас сложится, во-первых, мнение о движке, во-вторых, подобные вопросы отпадут, заодно, узнаете нравится ли вам всё это)
@@oktopusskills хорошо, попробую посмотреть документацию, но это всё точно нравится) Весь год смотрел онлайн курсы, просто в некоторых моментах нам всё таки не донесли информацию
Пока Рома возвращался, перешёл на Unreal, но следить за Octopus не перестану :)
Очень крутой урок получился, хотелось б большо по Godot 4👍👍
Спасибо
Отличный видос! Определенно лайк
спасибо что делаешь такие качественные туториалы))))
Наконец объяснили нормально , а то куча проблем намутил от не знания
а можно ли как то в Tilemape в сцене изменить локальный центр )?
локальный центр ноды, которая в сцене, а сцена - часть тайлмап?)
@@oktopusskills задача была такой, чтоб когда игрок находился за деревом то дерево становилось прозрачным, и я нечего не придумал как сделать новую сцену и добавить ее в TileMape
@@Suunsuuun можно сделать по разному. Можно добавить в сцену дерева area2d и при ивенте пересечения с игроком добавлять прозрачности. Можно сделать шейдером для спрайта в сцене дерева. А можно вообще простым способом в лоб, так сказать. К ноде спрайта персонажа добавляем ноду PointLight2D, ей в Texture запихиваем спрайт персонажа (будет нашей маской для силуэта). В Range выставляем маску Item Cull Mask только 5ую, например. У Спрайта наших деревьев и других объектов, которые должны будут просвечивать персонажа ставим в Visibility -> Light Mask помимо уже выбранной 1ой еще 5ую (короче, ту же, что выставляли у PointLight2D. Всё. Можем покрутить у PointLight2D blend mode и energy. Как нибудь встрою такую штуку в видео
А если y-sort надо сделать для нескольких слоев в карте с разными z индексами? Это возможно?
Для каждого слоя включаете y_sort_enabled и указываете z_index там же
@@oktopusskills Просто персонаж исчезает и появляется (делает y-sort?) только со слоем с одинаковым с ним индексом
@@lorein_4368 не забывайте о локальном центре координат тайлов и игрока. Попробуйте персонажа на слой выше поставить и посмотреть, исчезнет ли проблема
оо нормальное обьяснение что же происходит в тайл мап))👍
Я вот только первый раз решил создать игру скачал годом, ничего не понимаю, было круто увидеть туториал по годо 4😅😅😅
Будут)
Ты бомба❤
And canvas layer with bar?
Большое спасибо за подробный туториал
Надеюсь будут новые видео по годот?
👍
Где новые захватывающие туториалы ?
Отличный видос! Но... не все же любят рок))
Лучше использовать какую-то нейтральную музыку
👌
Почему ты в качестве полноценного примера не создал изометрическую 2д рпг игру с персонажем и его прокачкой, инвентарем, ящиками, сундуками, бочками, мобами, боссами и т д?
Вопрос, зачем ему это делать? Он вроде рассказал ровно то, что было заявлено в названии видео.
Ты вернулся!!!
есть ли способ добавить тайл на любое свободное на слое место в процесе игры?
@@_1mrscool11_9 вы можете получить информацию о тайле в указанной позиции на конкретном слое. Если get_cell() вернёт null -значит тайла в клетке нет
@@oktopusskills а добавить файл через код можно? Допустим я хочу чтобы по нажатию левой кнопки Миши в зоне где мог бы быть тайл добавить определённый тайл если его нету
@_1mrscool11_9 Можно всё что угодно) проверяете позицию тыка мыши, конвертируете в координату на тайловой сетке tilemap.local_to_map(позиция мыши)
Получаете тайл из этой позиции, а дальше крутите им как хотите, ставите новый и тд.
@@oktopusskills спасибо, вы очень помогли!
Спасибо большое за такое полезное видео!
Вообще супер видео спасибо огромное!
Го новые полный тутор по godot на C# пожалуйста
По шарпу, если и будет, то не в ближайшее время, по той причине, что сейчася веду очные занятия по годо на gds, а ближайшие видео будут и для канала, и для закрепления материала ученикам) А так - к шарпу с удовольствием вернусь как нибудь
опять же, api один и тот же, и адаптировать любое будущее видео под шарп не составит труда
мне одному это напоминает терарию
Круто спасибо всё чётко и понятно
Люди, помогите, как сделать эффект слоумо? Просто я делаю игру где основной механикой будет замедлять или останавливать время, но я не знаю как это сделать. Буду крайне признателен, если скажите как это сделать
Есть несколько способов. Самый простой - заюзать у класса Engine метод time_scale(ваш_множитель)
@@oktopusskills СПААСИБОО, ТЫ ОЧЕНЬ СИЛЬНО ПОМОГ, ПРЯМ ОТ ДУШИ
Что такое Tilemap
Отличный урок!!! Ещё толком не использовал новые тайлмапы, но это видео поможет быстрее разобраться, спасибо! Кстати, может быть, ты и без меня знаешь, но здесь 12:56, вместо двух get_axis, можно использовать один get_vector, который даже нормализуется по умолчанию!
Спасибо! Да, уже после записи заметил про get_vector)
@@oktopusskillsпривет брат а как создать свой TileMep??? Но бесплатно
🎩
🥸
Моё почтение
Не совсем понял, как маска для автотайлинга работает :(
Да, автотайлинг тянет на отдельный экскурс. Пока можете в доке глянуть, потом, возможно, запишу отдельно про это
@@oktopusskills Вот только что посмотрел англоязычный гайд, потом прочитал доки, но всё равно разобраться не смог :/
Мне нужно простейшую 3х3 сетку сделать, но всегда получается какая-то каша из тайлов
Возможно дело в том, что у меня лишь 8 из 9 ячеек имеют тайл (пустота по середине)
Но в любом случае я уже больше часа пытаюсь решить эту маленькую проблему и ничего не получается :)
Там опять обнова...
сказали, что бесплатные ассеты, а в итоге один из них платный) 2 доллара просит
при скачивании вам нужно нажать "no thanks". Частая практика в ассетсторах - предложить условный донат)
@@oktopusskills Не заметил этой надписи, спасибо :)
Хочу намутить какую нибудь халтуру по гайдам, еще, но времени никак нет, семья и прочее))
Все норм только музыка говняная мешает
Фоновая музыка мешает воспринимать информацию
Спасибо