Ты очень крут. То как ведешь повествование, речь, тембр и громкость голоса, музыкальное сопровождение и внимание к деталям сделал тебя одним из лучших в преподнесении материала на ютабчике в тематике геймдева. Большое тебе спасибо и так держать!)
Недавно решил заняться этим движком. Собираю вот годные уроки и обучалски. Этот, пожалуй, один из лучших. Конкретно по 4 версии пока еще маловато ресурсов. Так что, пили, пожалуйста. Это ценный контент.
если не появляется сетка - важны не габариты тайлов. Надо проверить в какой вкладке вы находитесь, для рисования. Внизу надо выбрать не "Набор тайлов", а TileMap. Убедиться, что выбран инструмент карандаш
отличный туториал, всё понятно и доходчиво объяснено, помогло невероятно. Не понятно правда за что 2 человека дизлайк поставили, но это уже их проблема скорее
Спасибо за туториал. Созрел вопрос. Как реализуются рампы и наклоны ландшафта на многоуровневых картах в 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? То есть все тайлы которые были нарисованы. Чтобы потом поставить на определённые тайлы какие-нибудь сооружения
@@Aliss-zt8jt можно это по разному реализовать, я бы сделал дерево отдельной сценой, чтобы расширить логику отдельно таким объектам. Самое простое - повесить area2d на крону дерева, при столкновении с игроком делать дерево прозрачным. А сцену дерева добавить в scene collection тайлсета. Можно сделать шейдером, но это надо уметь ими пользоваться или делать собственные.
Здравствуйте, хочу попросить вас о помощи. Сами понимаете - мало людей которые кодируют в годот на c#. Я делаю свою игру ПВП, где есть персонаж, карта и несколько типов мобов. Мне надо сделать так, чтобы моб сам появлялся в определённых координатах с определённым промежутком времени, но совсем не знаю как это сделать. Мог ли бы пожалуйста чуть чуть помочь?
Тут не имеет значения на чем писать. Алгоритм действий будет одинаков: таймер для появления монстров у какого нибудь объекта, условно, MobSpawner, ждать ивента о завершении отсчёта таймера и сравнить моба в определённой координате. Либо я не понял сути вопроса
@@oktopusskills дело в том, что я не могу связать все в один код. Я не знаю как месту спавна придать координаты и поставить промуток времени. Просто не получается написать код из-за очень маленького опыта в программировании
@@Tolik12385 откройте в документации годо раздел "ваша первая игра", пройдите все шаги. У вас сложится, во-первых, мнение о движке, во-вторых, подобные вопросы отпадут, заодно, узнаете нравится ли вам всё это)
@@oktopusskills хорошо, попробую посмотреть документацию, но это всё точно нравится) Весь год смотрел онлайн курсы, просто в некоторых моментах нам всё таки не донесли информацию
Годный туториал.. У меня один вопрос.. Звучит смешно.. Я хочу попробовать сделать типа что то вроде старбоунда/террария на годоте. Но не понимаю как делать некоторые вещи. Толи спавнить чанки, а они уже блоки.. Или весь мир можно зарегенить в одну тайловую карту через скрипт (наделе 2 ибо задник)? Или в варианте с тайловой картой придется резать ее на чанки что бы оптимизировать? (хотя я пока не понимаю как "шуп перлина" из "белого шума" со всякой обработкой образует террайны и биомы и разделяется на чанки.)
@@oktopusskills Давай я уточню ибо не понял. .Ибо я реально не понимаю может ли это осилить годо. стандартный мир в терарии 8400х2400 блоков. как такое переваривает годо? Тоесть я просто к примеру беру и рисуют на тайловой карте от 0 и до 8400 координаты тайлами нужное.. или мне же придется это как то оптимизировать..или это уже умеет сам годо? ну да.. по сути про танцы с шумом логично.. мучать отдельно.. я тока знаю что там вроде на коком то этапе это все превращается в текстуру.
Привет, подскажи пожалуйста, как делать генерацию 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 будет генерировать тип тайла, это заготовка на будущее, пока она просто говорит есть тайл или нет. А видос очень полезный, просто и понятно объяснено, спасибо
Приветствую! А в чём конкретно вопрос? Как будто бы решение уже пишется, а сам вопрос максимально абстрактный, даже нет инфы будет ли автотайлинг или нет. В целом, по работе с тайлмеп из кода - тоже будет видео, сложно сказать насколько скоро, учитывая, что следующие видео уже определены по тематике. Если будет конкретная проблема и вопрос - добро пожаловать в дискорд сервер (ссылка в описании), там коммуницировать проще, да и помочь через голосовые чаты с демонстрациями экрана. Удачи с проектом!
Хм, я не знаю что я сделал, но все починилось. Я просто пересоздал проект, со всеми теми же настройками. И все работает. Раньше при запуске был просто серый экран. А в новом проекте все генерируется
@@lorein_4368 не забывайте о локальном центре координат тайлов и игрока. Попробуйте персонажа на слой выше поставить и посмотреть, исчезнет ли проблема
@@oktopusskills а добавить файл через код можно? Допустим я хочу чтобы по нажатию левой кнопки Миши в зоне где мог бы быть тайл добавить определённый тайл если его нету
@_1mrscool11_9 Можно всё что угодно) проверяете позицию тыка мыши, конвертируете в координату на тайловой сетке tilemap.local_to_map(позиция мыши) Получаете тайл из этой позиции, а дальше крутите им как хотите, ставите новый и тд.
Отличный урок!!! Ещё толком не использовал новые тайлмапы, но это видео поможет быстрее разобраться, спасибо! Кстати, может быть, ты и без меня знаешь, но здесь 12:56, вместо двух get_axis, можно использовать один get_vector, который даже нормализуется по умолчанию!
@@oktopusskills задача была такой, чтоб когда игрок находился за деревом то дерево становилось прозрачным, и я нечего не придумал как сделать новую сцену и добавить ее в TileMape
@@Suunsuuun можно сделать по разному. Можно добавить в сцену дерева area2d и при ивенте пересечения с игроком добавлять прозрачности. Можно сделать шейдером для спрайта в сцене дерева. А можно вообще простым способом в лоб, так сказать. К ноде спрайта персонажа добавляем ноду PointLight2D, ей в Texture запихиваем спрайт персонажа (будет нашей маской для силуэта). В Range выставляем маску Item Cull Mask только 5ую, например. У Спрайта наших деревьев и других объектов, которые должны будут просвечивать персонажа ставим в Visibility -> Light Mask помимо уже выбранной 1ой еще 5ую (короче, ту же, что выставляли у PointLight2D. Всё. Можем покрутить у PointLight2D blend mode и energy. Как нибудь встрою такую штуку в видео
Люди, помогите, как сделать эффект слоумо? Просто я делаю игру где основной механикой будет замедлять или останавливать время, но я не знаю как это сделать. Буду крайне признателен, если скажите как это сделать
Сделал уровень с помощью тайлсета. Но когда персонаж двигается, периодически видны зазоры между ними. Тайлы хорошие, рисовал сам, все 32х32. В редакторе все ок. Но вот когда камера движется, появляются зазоры в 1 пиксель. Кто-то сталкивался с подобным? Экспериментальным путем выяснил что такое происходит только когда включено плавное следование камеры за игроком.
Вообще, проблема встречалась постоянно в Godot 3 версии. Но если столкнулись, лучшее, что можно сделать - добавить по пикселю со всех сторон, а в тайлмэп указать зазор через offset
По шарпу, если и будет, то не в ближайшее время, по той причине, что сейчася веду очные занятия по годо на gds, а ближайшие видео будут и для канала, и для закрепления материала ученикам) А так - к шарпу с удовольствием вернусь как нибудь
Вышла новая версия 4.3, там снова немного переработали tilemap, из-за этого гайд немного устарел. Пока видосы по нововведениям есть только на английском
@@oktopusskills Вот только что посмотрел англоязычный гайд, потом прочитал доки, но всё равно разобраться не смог :/ Мне нужно простейшую 3х3 сетку сделать, но всегда получается какая-то каша из тайлов Возможно дело в том, что у меня лишь 8 из 9 ячеек имеют тайл (пустота по середине) Но в любом случае я уже больше часа пытаюсь решить эту маленькую проблему и ничего не получается :)
Почему ты в качестве полноценного примера не создал изометрическую 2д рпг игру с персонажем и его прокачкой, инвентарем, ящиками, сундуками, бочками, мобами, боссами и т д?
Годный туториал. Наконец-то у многих исчезнут проблемы с новой TileMap. Спасибо за труд.
У вас тоже не плохие гайды... очень даже не плохие я бы сказал)))
@@m0h49 Но я не делал никакие гайды...
Нобади это действительно ты? я в шоке
@@_1mrscool11_9 да это я
Ты очень крут. То как ведешь повествование, речь, тембр и громкость голоса, музыкальное сопровождение и внимание к деталям сделал тебя одним из лучших в преподнесении материала на ютабчике в тематике геймдева. Большое тебе спасибо и так держать!)
Недавно решил заняться этим движком. Собираю вот годные уроки и обучалски. Этот, пожалуй, один из лучших. Конкретно по 4 версии пока еще маловато ресурсов. Так что, пили, пожалуйста. Это ценный контент.
Это лучший урок по TileMap2D. Жду урок по динамической навигации)
Гайд, достойный подписки с колокольчиком и уважения)
Подписался на дзен ради Годо! Спасибо.
Очень крутой туториал, я столько нового узнал, спасибо
Отличный гайд!
Довольно подробно и понятливо, в самый раз для ознакомления👍
С возвращением в эфир
Пипец, ты вернулся🎉
Ты ожил, невероятно!
Спасибо. помогли очень.
Очень полезный урок. Спасибо
Добрый день!
Туториал по рандомной генерации мира из тайлов!
Имба, спасибо)
что делать если когда я создаю тайл сет и пишу габариты то не появляются оранжевые клетки на сцене в которых нужно рисовать атласами?
если не появляется сетка - важны не габариты тайлов. Надо проверить в какой вкладке вы находитесь, для рисования. Внизу надо выбрать не "Набор тайлов", а TileMap. Убедиться, что выбран инструмент карандаш
отличный гайдик
Зря перестал ролики записывать, хорошо получилось.
Спасибо, очень отличный туториал!👍
👍класс
Ура, вернулся. Жду обучающих видосов каждый день
отличный туториал, всё понятно и доходчиво объяснено, помогло невероятно. Не понятно правда за что 2 человека дизлайк поставили, но это уже их проблема скорее
В годоте конечно тайлмапы супер пиздатые
спасибо что делаешь такие качественные туториалы))))
Спасибо за туториал. Созрел вопрос. Как реализуются рампы и наклоны ландшафта на многоуровневых картах в 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? То есть все тайлы которые были нарисованы. Чтобы потом поставить на определённые тайлы какие-нибудь сооружения
Ты бомба❤
Поему когда я добавляю коллизию текстурка становиться синей?
может просто колизия своим цветом перекрывает текстуру?
жду новый ролик
Спасибо
Когда новий видос братан
Отличный видос! Определенно лайк
And canvas layer with bar?
13:50. Я всё включил, но у меня пропали все деревья, а персонаж становиться невидимым когда к ним подходит, что делать?
А можно ли через свойство tileset, сделать дерево прозрачным когда персонаж стоит за ним?
@@Aliss-zt8jt можно это по разному реализовать, я бы сделал дерево отдельной сценой, чтобы расширить логику отдельно таким объектам. Самое простое - повесить area2d на крону дерева, при столкновении с игроком делать дерево прозрачным. А сцену дерева добавить в scene collection тайлсета. Можно сделать шейдером, но это надо уметь ими пользоваться или делать собственные.
Ты вернулся!!!
Здравствуйте, хочу попросить вас о помощи. Сами понимаете - мало людей которые кодируют в годот на c#. Я делаю свою игру ПВП, где есть персонаж, карта и несколько типов мобов. Мне надо сделать так, чтобы моб сам появлялся в определённых координатах с определённым промежутком времени, но совсем не знаю как это сделать. Мог ли бы пожалуйста чуть чуть помочь?
Тут не имеет значения на чем писать. Алгоритм действий будет одинаков: таймер для появления монстров у какого нибудь объекта, условно, MobSpawner, ждать ивента о завершении отсчёта таймера и сравнить моба в определённой координате. Либо я не понял сути вопроса
@@oktopusskills дело в том, что я не могу связать все в один код. Я не знаю как месту спавна придать координаты и поставить промуток времени. Просто не получается написать код из-за очень маленького опыта в программировании
@@Tolik12385 откройте в документации годо раздел "ваша первая игра", пройдите все шаги. У вас сложится, во-первых, мнение о движке, во-вторых, подобные вопросы отпадут, заодно, узнаете нравится ли вам всё это)
@@oktopusskills хорошо, попробую посмотреть документацию, но это всё точно нравится) Весь год смотрел онлайн курсы, просто в некоторых моментах нам всё таки не донесли информацию
Годный туториал.. У меня один вопрос..
Звучит смешно.. Я хочу попробовать сделать типа что то вроде старбоунда/террария на годоте. Но не понимаю как делать некоторые вещи.
Толи спавнить чанки, а они уже блоки.. Или весь мир можно зарегенить в одну тайловую карту через скрипт (наделе 2 ибо задник)? Или в варианте с тайловой картой придется резать ее на чанки что бы оптимизировать?
(хотя я пока не понимаю как "шуп перлина" из "белого шума" со всякой обработкой образует террайны и биомы и разделяется на чанки.)
В годо тайлмепа довольно серьзно обросла функционалом, можно на ней всё это завязать. С шумом сначала лучше разобраться отдельно, а потом совместить
@@oktopusskills Давай я уточню ибо не понял. .Ибо я реально не понимаю может ли это осилить годо.
стандартный мир в терарии 8400х2400 блоков.
как такое переваривает годо? Тоесть я просто к примеру беру и рисуют на тайловой карте от 0 и до 8400 координаты тайлами нужное.. или мне же придется это как то оптимизировать..или это уже умеет сам годо?
ну да.. по сути про танцы с шумом логично.. мучать отдельно.. я тока знаю что там вроде на коком то этапе это все превращается в текстуру.
оо нормальное обьяснение что же происходит в тайл мап))👍
Привет, подскажи пожалуйста, как делать генерацию 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ъ из-за того, что не видел проекта, не могу сказать наверняка, может быть много причин, вплоть до отсутствия скрипта на ноде)
Наконец объяснили нормально , а то куча проблем намутил от не знания
Пока Рома возвращался, перешёл на Unreal, но следить за Octopus не перестану :)
А если y-sort надо сделать для нескольких слоев в карте с разными z индексами? Это возможно?
Для каждого слоя включаете y_sort_enabled и указываете z_index там же
@@oktopusskills Просто персонаж исчезает и появляется (делает y-sort?) только со слоем с одинаковым с ним индексом
@@lorein_4368 не забывайте о локальном центре координат тайлов и игрока. Попробуйте персонажа на слой выше поставить и посмотреть, исчезнет ли проблема
Очень крутой урок получился, хотелось б большо по Godot 4👍👍
есть ли способ добавить тайл на любое свободное на слое место в процесе игры?
@@_1mrscool11_9 вы можете получить информацию о тайле в указанной позиции на конкретном слое. Если get_cell() вернёт null -значит тайла в клетке нет
@@oktopusskills а добавить файл через код можно? Допустим я хочу чтобы по нажатию левой кнопки Миши в зоне где мог бы быть тайл добавить определённый тайл если его нету
@_1mrscool11_9 Можно всё что угодно) проверяете позицию тыка мыши, конвертируете в координату на тайловой сетке tilemap.local_to_map(позиция мыши)
Получаете тайл из этой позиции, а дальше крутите им как хотите, ставите новый и тд.
@@oktopusskills спасибо, вы очень помогли!
Отличный урок!!! Ещё толком не использовал новые тайлмапы, но это видео поможет быстрее разобраться, спасибо! Кстати, может быть, ты и без меня знаешь, но здесь 12:56, вместо двух get_axis, можно использовать один get_vector, который даже нормализуется по умолчанию!
Спасибо! Да, уже после записи заметил про get_vector)
@@oktopusskillsпривет брат а как создать свой TileMep??? Но бесплатно
С тобой можно как-то связаться, у меня по другому, наверно другая версия . Нужна помощь
@@mrcrazyking2543 телеграм @romanryazh можно
Отличный видос! Но... не все же любят рок))
Лучше использовать какую-то нейтральную музыку
👌
Что такое Tilemap
а можно ли как то в Tilemape в сцене изменить локальный центр )?
локальный центр ноды, которая в сцене, а сцена - часть тайлмап?)
@@oktopusskills задача была такой, чтоб когда игрок находился за деревом то дерево становилось прозрачным, и я нечего не придумал как сделать новую сцену и добавить ее в TileMape
@@Suunsuuun можно сделать по разному. Можно добавить в сцену дерева area2d и при ивенте пересечения с игроком добавлять прозрачности. Можно сделать шейдером для спрайта в сцене дерева. А можно вообще простым способом в лоб, так сказать. К ноде спрайта персонажа добавляем ноду PointLight2D, ей в Texture запихиваем спрайт персонажа (будет нашей маской для силуэта). В Range выставляем маску Item Cull Mask только 5ую, например. У Спрайта наших деревьев и других объектов, которые должны будут просвечивать персонажа ставим в Visibility -> Light Mask помимо уже выбранной 1ой еще 5ую (короче, ту же, что выставляли у PointLight2D. Всё. Можем покрутить у PointLight2D blend mode и energy. Как нибудь встрою такую штуку в видео
Спасибо большое за такое полезное видео!
Большое спасибо за подробный туториал
Люди, помогите, как сделать эффект слоумо? Просто я делаю игру где основной механикой будет замедлять или останавливать время, но я не знаю как это сделать. Буду крайне признателен, если скажите как это сделать
Есть несколько способов. Самый простой - заюзать у класса Engine метод time_scale(ваш_множитель)
@@oktopusskills СПААСИБОО, ТЫ ОЧЕНЬ СИЛЬНО ПОМОГ, ПРЯМ ОТ ДУШИ
Я вот только первый раз решил создать игру скачал годом, ничего не понимаю, было круто увидеть туториал по годо 4😅😅😅
Будут)
Сделал уровень с помощью тайлсета. Но когда персонаж двигается, периодически видны зазоры между ними. Тайлы хорошие, рисовал сам, все 32х32. В редакторе все ок. Но вот когда камера движется, появляются зазоры в 1 пиксель. Кто-то сталкивался с подобным? Экспериментальным путем выяснил что такое происходит только когда включено плавное следование камеры за игроком.
Вообще, проблема встречалась постоянно в Godot 3 версии. Но если столкнулись, лучшее, что можно сделать - добавить по пикселю со всех сторон, а в тайлмэп указать зазор через offset
Там опять обнова...
Надеюсь будут новые видео по годот?
👍
Вообще супер видео спасибо огромное!
Го новые полный тутор по godot на C# пожалуйста
По шарпу, если и будет, то не в ближайшее время, по той причине, что сейчася веду очные занятия по годо на gds, а ближайшие видео будут и для канала, и для закрепления материала ученикам) А так - к шарпу с удовольствием вернусь как нибудь
опять же, api один и тот же, и адаптировать любое будущее видео под шарп не составит труда
Вышла новая версия 4.3, там снова немного переработали tilemap, из-за этого гайд немного устарел. Пока видосы по нововведениям есть только на английском
@@ZveroBorsch изменилось разве что то, что каждая нода, теперь отдельный слой)
5:05 шикарный переход, просто вырезано - и теперь включай оракула где что и куда ты залез.
После этой минуты можно закрывать видео таким успехом...
Где новые захватывающие туториалы ?
Круто спасибо всё чётко и понятно
Не совсем понял, как маска для автотайлинга работает :(
Да, автотайлинг тянет на отдельный экскурс. Пока можете в доке глянуть, потом, возможно, запишу отдельно про это
@@oktopusskills Вот только что посмотрел англоязычный гайд, потом прочитал доки, но всё равно разобраться не смог :/
Мне нужно простейшую 3х3 сетку сделать, но всегда получается какая-то каша из тайлов
Возможно дело в том, что у меня лишь 8 из 9 ячеек имеют тайл (пустота по середине)
Но в любом случае я уже больше часа пытаюсь решить эту маленькую проблему и ничего не получается :)
🎩
🥸
Моё почтение
мне одному это напоминает терарию
Почему ты в качестве полноценного примера не создал изометрическую 2д рпг игру с персонажем и его прокачкой, инвентарем, ящиками, сундуками, бочками, мобами, боссами и т д?
Вопрос, зачем ему это делать? Он вроде рассказал ровно то, что было заявлено в названии видео.
Фоновая музыка мешает воспринимать информацию
сказали, что бесплатные ассеты, а в итоге один из них платный) 2 доллара просит
при скачивании вам нужно нажать "no thanks". Частая практика в ассетсторах - предложить условный донат)
@@oktopusskills Не заметил этой надписи, спасибо :)
Хочу намутить какую нибудь халтуру по гайдам, еще, но времени никак нет, семья и прочее))
Все норм только музыка говняная мешает
Спасибо