Сообщество - Лига Разработчиков Видеоигр

Лига Разработчиков Видеоигр

10 478 постов • 23 481 подписчик

Популярные теги в сообществе:

1

Light Occlusion CL — патч для Community Lighting MZ⁠⁠

Серия Плагины RPG Maker MZ

Добавляет в игру тени от стен. Разумеется, полностью бесплатный для любых целей.

Присутствуют три пресета теней: Баланс, Крупные, Резкие. Патч сопровождён подробной Справкой. Код отполирован, побеждены все баги, которые можно было победить на текущей архитектуре. Дальнейшее развития патча заморожено.

Прошу считать текущий патч демо-версией нового проекта: Penumbra Lighting — полностью самостоятельный бесплатный плагин освещения с встроенными тенями.

За основу взяты идеи оригинального Community Lighting на новом, чистом ядре. Оригинальные авторы и благодарность им будет указана. Penumbra позиционируется как наследие и эволюция идей этих авторов, подаривших нам отличный инструментарий на некоммерческой основе. Спасибо им.

Последняя версия патча 6.4.1

Последняя версия патча 6.4.1

Техническое состояние будущего Penumbra Lighting на данный момент: отличное. Все идеи Light Occlusion CL перенесены успешно, производительность отличная, в среднем код кушает 3-5-7мс при бюджете кадра 16.7. На данный момент это если не самый, то один из самых производительных плагинов освещения для МЗ. Баги и ограничения патча устранены.

Визуальное состояние: отличное. В данный момент все основные идеи реализованы. Идёт стадия добавления новых фич. Шум реализован, Дождь и Снег предусмотрены.

Причина, почему Penumbra Lighting ещё не выложен: сложность плагина для пользователя. Справка нуждается в адаптации, окно параметров ныне перегружено техническими настройками, нужными для тестов. Полировка всего этого может быть реализована только после цементирования планирующихся фич.

Будущие фичи: смена дня\ночи, тени от тайлов решёток, теневые крылья, теневая карусель, дамажащие тени, тени-щупальца.

Патч написан с использованием нейросетей. Дипсик писал код. Алиса искала баги. Я выступил в роли тестера и визуального оценщика. В соседнем диалоге Дипсик в роли профессора оценивал код на уязвимости. Новый плагин пишется с добавлением третьего участника: ии-агент Koda, который вставляет диффы и следит, как архитектура реагирует на фиксы. Так же добавился чат гпт, оценивающий откатные версии на предмет нейрослопных косяков.

Скачать можно бесплатно с Диска

Или с Бусти

Обсуждение патча и будущего проекта на Юнионе

Приветствуются любые пожелания, критика и новые идеи для проекта.

Показать полностью 1
1

Autobattler. Обновление 0.6.10 - исправления ошибок и новый пайплайн сборки билдов⁠⁠

Серия Разрабатываю игру в жанрах RTS и Auto Batter
Autobattler. Обновление 0.6.10 - исправления ошибок и новый пайплайн сборки билдов

Исправления в Web билде:

  • Исправил ошибку с разрешением, отключил изменение в настройках

  • Исправил ошибки, связанные с локализацией: иногда тексты русском не отображались

  • Исправил падение при выходе из боя

  • Добавил тултип, при нажантии на заблокированную кнопку Хост в мультиплеере

  • Немного улучшил производительность

Общие исправления:

  • Исправил ошибку, из-за которой на локации "Спорный остров" у синей команды создавались лишние постройки

  • Добавил звуковые уведомления на экране лобби. Теперь можно услышать, когда кто-то подключился или отключился

  • Небольшие исправления в интерфейсе в сражении

  • Немного уменьшил размер билда

Игра доступна по ссылкам:

Новый пайплайн сборки

При выпуске этого обновления сборка билдов отнимала очень много времени. Процесс выглядел так:

  1. Написать код и/или обновить ассеты;

  2. Сделать билд на Windows (ожидание 5-10 минут) и протестировать

  3. Переключить платформу на Web (ожидание 10-20 минут)

  4. Собрать под Web (ожидание 20-30 минут) и протестировать.

Если что-то идет не так, то алгоритм нужно повторять. Учитывая, что некоторые ошибки повторялись только в релизной сборке под Web, в ожидании я проводил слишком много времени. Ведь при переключении платформы в Unity происходит не только реимпорт ассетов, но и сброс кэша сборки.

Я понял, что так работать нельзя и решил оптимизировать сборку билдов. У меня есть домашний сервер, но использовать его под агента сборки я не могу, так как на нем очень маленький SSD. Поэтому пришлось организовать на своей рабочей машине.

Мой план был такой:

  • Создать второй клон репозитория только под Web сборку. Тогда как основной клон - под Windows. Так исключается переключение между платформами.

  • Написать набор скриптов, которые запускают сборки без запуска визуальной части редактора Unity.

  • Скрипты также должны:

    • Актуализировать клон для Web сборки

    • Запускать тесты перед сборкой

    • Вырезать из проекта пакеты и плагины, которые используются только в редакторе, но по какой-то причине лезут в билд

    • Инкрементировать версию патча в проекте и начинать с нуля при инкременте мажорной или минорной версии

    • Выполнять сборку и архивировать ее в zip

    • Возвращать вырезанное

    • Коммитить изменение версии проекта

Работаю я под Windows, поэтому я решил создавать скрипты под PowerShell, к тому же у меня уже был небольшой опыт написания таких скриптов. В качестве формата для конфигурации я выбрал XML, так как он поддерживается PowerShell из коробки. Для YAML пришлось бы устанавливать дополнительный модуль.

Разумеется, писать самостоятельно такие скрипты - расточительство, поэтому я попросил написать их Claude. После нескольких итераций получилось реализовать мою задумку.

Я остался доволен результатом: расход времени на простой из-за смены платформы и билда без кэша сильно снизился (правда, замерить слишком трудозатратно). Но все еще не идеально: так как во время сборки я не могу открывать редактор. В будущем, если проект разрастется, можно будет думать о полноценном CI/CD с отдельными билд агентами.

Следующим шагом хочу автоматизировать заливку билдов на платформы. И попробовать заменить клон репозитория для Web проекта на симлинки: сделать ссылки на папки Assets, Packages, ProjectSettings и некоторые другие, которые нужны для нормальной работы проекта Unity. Так я ожидаю исключить шаг с актуализацией клона.


Спасибо за то, что прочитали! Как бы вы улучшили процесс сборки? Как он организован у вас на проекте?

Присоединяйтесь к Discord серверу проекта. Там я публикую скриншоты, заметки по ходу разработки. Также там можно задавать вопросы и предлагать идеи.

Показать полностью

Мы обещали поставить в игру то, что вы выберете. Вы выбрали ЭТО⁠⁠

4 ноября мы попросили вас выбрать иконку для нашей игры «СнаРяд».
Мы прямо так и написали: будем «развивать игру так, как этого хочет наше комьюнити».
Вы выбрали.
Теперь нам с этим жить

Задумка была простая.
На первых пяти иконках - Ласточка, наша связистка
Она встречает каждого новичка в игре.
А в конце мы добавили «два запасных варианта, на всякий случай».

Потом пошли комментарии
На DTF: «нейрокал».
На Пикабу: «можно я не буду выбирать между идентичных нейрослоп-тёлок?»
На GameDev.ru: «Фото реалистичность все портит».
Пост на Пикабу ушёл в минус, -12.

Тут вы правы.
Картинки были нейронной фигнёй.
Но кто тогда победил?

Мы посчитали голоса, всего 68

№6 - 25, №3 - 10, №7 - 10, №4 - 9, №5 - 7, №2 - 5, №1 - 2

Пять Ласточек вместе набрали 33, но голоса разошлись между ними.
А №6 один взял 25, это 37 %.
И это как раз «запасной»: мультяшный зелёный снаряд, который подмигивает и ухмыляется

ReiGyl с XGM сказал лучше всех:
«Только 6 вариант. Никаких но. Никаких. Ни слова.»

Когда мы увидели результат, сразу стало понятно: мы облажались, нас просто затроллили
Это самый убогий вариант из всех семи.

Но слово мы уже дали, придётся его исполнять.
Поэтому ставим снаряд иконкой игры, по-настоящему.
Провисит он какое-то время, сколько - пока не знаем.
Вы выбрали - вам на него и смотреть.
Нам тоже

Нейронные картинки - не единственное, в чём вы оказались правы.
Nickpir04 с DTF поиграл и написал: «играть невозможно, всё сливается, поле перегружено».
Там был ещё мат, его мы убрали
Мы согласились и начали упрощать

Что поменяли с 4 по 8 ноября, по вашим отзывам и нашим тестам:

  • тыл: вместо 10 вкладок - 9 плиток и блок «Можно собрать сейчас»;

  • убрали бой за клетку, вылазку и суточные укрепления, остались наступление и оборона;

  • градиенты в окнах заменили текстурами;

  • ускорили загрузку;

  • новый бой «три в ряд» - во всех операциях.

06.11 новая версия ушла всем.
08.11 появился вход через Telegram-бота.

А что с картинками дальше?
Мы гнались за тем, чтобы было как у популярных похожих игр.
И в этой погоне потеряли своё лицо.
Поэтому в планах совсем другой подход к картинкам.

После того поста в игру пришёл 31 новый игрок.
Спасибо всем, кто играл и давал обратную связь, она очень помогла игре
Отдельное спасибо konvan5 с XGM: по его подсказке опрос встроили прямо в пост.

Играйте и пишите, что не так.
Как видите, отзывы мы читаем

Показать полностью 4
3

Iron Strategy: первое промо⁠⁠

Короткий ролик: заставка с новым логотипом и главное меню-ангар, где на подиуме по очереди выезжают варботы — гусеничные, колёсные, шагающие и летающие.

Раньше проект назывался Parkan 3 — это всё тот же фанатский наследник «Железной стратегии».

5

Spline2D - слои анимации, запекание и доработка интерфейса⁠⁠

Серия Spline2D - бесплатный редактор 2D анимации

Слои анимации и запись в ключи

  • Независимый предпросмотр слоёв. Слои можно проигрывать и перематывать отдельно от основного таймлайна. Курсор редактирования остаётся на выбранном кадре, а громкость звуковых событий учитывает смешивание слоёв.

  • Запись смешанной анимации в новый клип. Помимо поз костей можно включить переключения вложений, деформации сеток и события. События сохраняют точное время и громкость после смешивания. Кнопка «Проверить план записи» показывает число ключей по типам, сколько ключей будет удалено и сколько памяти потребуется по оценке редактора.

Кривые, ограничения и физика

  • Кривые Безье рассчитываются как в Spine Runtime. График, предпросмотр и запекание используют одну таблицу из десяти отрезков, построенную по исходным ручкам. При вставке ключа или циклическом сдвиге редактор может добавить линейные ключи, чтобы сохранить движение.

  • Исправлен расчёт двухкостного IK и слайдеров. При обычном наследовании (Normal) IK учитывает скос (shear), отражение и неравномерный масштаб родительской кости. Исправлено смешивание слайдеров при отрицательном масштабе, на дискретных каналах и для параметров IK в аддитивном режиме.

  • Ветер и гравитация по осям X и Y. Эти параметры предпросмотра физики учитываются при сохранении кадра в PNG и записи поз в ключи.

Интерфейс

  • «Операции с весами» вынесены в отдельную панель. Её можно перемещать, прикреплять и менять её размер. Операции, включая Prune, применяются сразу и отменяются через Ctrl+Z. У кнопок и параметров появились подсказки.

  • Панель «Сцена» стала компактнее. Компенсация костей и изображений и привязка к пикселям собраны в одном столбце кнопок со значками.

Скачать редактор можно бесплатно на сайте https://spline2d.com/

Показать полностью 1
8

Почему тактических пошаговых онлайн-игр так мало в 3D? Заметки разработки Cobalt Gale⁠⁠

Всех приветствую! Решил написать статью о тактических пошаговых играх, сложностях перехода в 3D и почему 2D - их естественная среда обитания (но тоже не без сложностей).

Проблемы и теоретические решения, с которыми я столкнулся в ходе разработки своей игры Cobalt Gale.

Итак, начнём, пожалуй, с самого основного в этой теме - сетка (координаты поля боя). Ни для кого не секрет, что сам жанр "пошаговой" игры должен иметь саму координату. Это же база. И их имеется 2 основных вида - гексы и сетка:

В целом, конечно, вам ничто не мешает экспериментировать и сделать, например, треугольную сетку - если, конечно, концепция проекта позволяет это реализовать и подчеркнуть такой выбор

В целом, конечно, вам ничто не мешает экспериментировать и сделать, например, треугольную сетку - если, конечно, концепция проекта позволяет это реализовать и подчеркнуть такой выбор

В любом случае сама сетка должна не только выглядеть удобно, но и иметь координату (в этом же её смысл), пусть хоть в шахматном виде A4 или в числовом 1/4 - не суть.

Как я упоминал в одном из своих постов (ссылка), я экспериментировал в своём проекте с изометрией (триметрией) в 2D и переездом с пошаговой системой в полноценное 3D.

И тут, на самом деле, всё гораздо интересней, чем может показаться...

Все вы замечали в подобных играх объекты в виде препятствий, и, что забавно, их расположение иногда могло показаться странным. Дело в том, что, наверное, я скажу примитивно - но объекты должны соответствовать по размерам именно сетке.

Если ваше препятствие, например, полторы клетки - то это большая ошибка. Объект должен занимать то количество клеток, где он визуально находится, то есть в нашем случае либо полную одну клетку, либо 2 клетки. На своём проекте я могу наглядно показать так:

*Половина гекса свободно...

*Половина гекса свободно...

Обратите внимание: выпирающий красный (и зеленый) гекс - недоступен для игрока, а значит, на серверном расчёте этот гекс полноценно является препятствием для траектории полёта пули

*Слой контейнера немного съехал в визуализации, он должен быть по середину красного гекса*

*Слой контейнера немного съехал в визуализации, он должен быть по середину красного гекса*

Тут важно понимать - для онлайн-игры сервер обязан быть авторитарным (передавать расчёт луча пули с клиента нельзя, иначе читы неизбежны). А сам сервер 3D-моделей не видит - для него существует только матрица координат и булево значение: занят гекс или нет (в моём случае структура с булевым и переменной названия объекта, чтобы отличать уничтожаемый и простреливаемый объект от других видов).

То есть, несмотря на то, что для клиента (и пользователя) это выглядит вот так:

Для игрока это просто ровная траектория

Для игрока это просто ровная траектория

Для сервера холодный расчёт происходит так:

Синим поля отмечены, которые будут проверяться на препятствие по траектории.

Синим поля отмечены, которые будут проверяться на препятствие по траектории.

И получается такой забавный нюанс:

Сервер засчитывает попадание в красный гекс, потому что на нём отмечено препятствие

Сервер засчитывает попадание в красный гекс, потому что на нём отмечено препятствие

И если в квадратной сетке может показаться, почему всё квадратное из объектов, которые занимают клетку - вот она, истинная причина.

В 2D и в чистой изометрии 3D - ситуация та же самая, только она не столь заметна, сама фиксация камеры на карту это немного сглаживает, а в 2D это ещё более простительно выглядит.


И что тут можно сделать, чтобы не переходить в полноценную 3D-систему координат, от которой сервер начнёт гудеть?

Чисто теоретически я пришёл к такому заключению, что одной плоскости сетки не хватает, поэтому должен быть второй слой сетки, но более мелкий.

Тут я нашёл два варианта решения...

Первый вариант: сделать вторую сетку которая будет в виде слоёв. Но проблема такого метода - корректно связать первый слой (где персонаж шагает) и второй слой, где отмечены мелкие детали - очень сложный, точнее в процессе отладки могут появиться разные проблемы того же смещения, правильного учета дробления мелкой сетки на корневые и прочее, можно, но зачем?

Второй вариант, который мне показался достаточно хорошим решением - создать массив в самой клетке, массив, который содержит ещё одни координаты и их занятость, примерно вот так:

Можно придумать различные извращения. Красным выделено - закрытая область. Остальная - простреливаемая.

Можно придумать различные извращения. Красным выделено - закрытая область. Остальная - простреливаемая.

Представьте, казалось бы, визуально мелочь - а хлопот доставляет прилично, но хочу отметить, таких нюансов в тактической пошаговой игре в 3D - прилично, хитростей приходится придумывать достаточно)

А по результату, пуля у нас теперь летит спокойно, не смотря на то что есть и граница объекта, и пустая зона:

Объект в виде выпирающего бампера, но гекс имеет и свободную зону для пули

Объект в виде выпирающего бампера, но гекс имеет и свободную зону для пули

В синглплеерных играх это, конечно, всё решается расчётом луча траектории пули через объекты - и там такие проблемы обходятся дешевле.

Надеюсь, статья была занятной)

Если интересен сам проект, добро пожаловать в телегу. Так же есть отдельный сайт

Всем добра и успехов в своих проектах!

Показать полностью 8
5

Почему ветер в Ghost of Tsushima выглядит настолько живым⁠⁠

Почему ветер в Ghost of Tsushima выглядит настолько живым

Наткнулся на технический разбор Ghost of Tsushima от Sucker Punch. Мне всегда нравилось, как в этой игре выглядят поля с травой, особенно когда по ним проходят волны ветра. Оказывается, за этим стоит довольно интересная система

Разработчики хотели, чтобы весь мир постоянно находился в движении. Причём ветер должен был одинаково влиять на траву, деревья, листья, одежду персонажей и даже дым от костров

Сначала они пробовали имитировать порывы ветра с помощью частиц, которые смещали траву по дугам. Выглядело неплохо, но для деревьев и кустов результат был не очень, да и производительность страдала

В итоге сделали систему из двух слоёв. Первый использует крупный процедурный шум, который движется по направлению ветра и создаёт большие волны на полях. Второй добавляет мелкие колебания через текстуру, перемещающуюся по поверхности. Причём крупный шум используют и для деревьев с кустами, поэтому всё окружение движется согласованно

Отдельно сделали реакцию травы на персонажей и лошадей. Когда кто-то проходит через поле, травинки пригибаются, а потом постепенно возвращаются назад, слегка покачиваясь. Для этого даже использовали затухающую волну, чтобы трава не выпрямлялась слишком резко

Самое интересное, что изначально эта система вообще не задумывалась как способ навигации. Идея направлять игрока ветром появилась уже в процессе разработки

Мне нравится, когда такие технические решения одновременно делают игру красивее и помогают геймплею. И выглядит это действительно волшебно

Больше интересных фактов о геймдеве в моём ТГК: lyashu_lab

Показать полностью
80

Прототип, (оригинальная?) игровая механика на базе тетрадочной игры, немного ностальгии и ламповости⁠⁠

Всех приветствую!

В прошлых постах я рассказывал про интервальный таймер, который сейчас находится в режиме сбора обратной связи/исправления багов. А в этом посте хочу поделиться одной из своих других разработок под техническим названием «Laser Lines», которая уже чуть ближе к возможному релизу.

Из интересного здесь я бы в первую очередь выделил игровую механику. Такую механику я пока нигде не встречал, хотя вполне может быть, что кто-то уже реализовал что-то подобное. Если кто-то встречал такую - напишите, интересно посмотреть.

Сама идея этой игры/механики уходит в очень далёкое прошлое)

Это началось в далёкие школьные годы, когда компьютеры в моём окружении были примерно у троих человек, один из которых - я. Да, компьютеры тогда уже были и у других, но близко общаться и обсуждать игры я мог только с двумя людьми, а программирование - вообще с одним. На тот момент у меня был Pentium 100 с 4 мегабайтами оперативной памяти, которую я потом расширил до 8, а у одноклассника был уже Pentium 200 MMX, по-моему, с 16 мегабайтами. Я ему очень завидовал, но это уже другая история.

Даже телефоны тогда были не только лишь у всех, на проводе и часто с крутилками, но при этом в школах вполне себе играли в игры. В тетрадочные.

Одна из таких игр - захват территории. Каждый игрок по очереди чертил линию по стороне клетки. Если после хода одна или две клетки оказывались обведены с четырёх сторон, игрок ставил в них крестик или нолик и забирал себе. Вот тогда мне и пришла в голову идея развить эту механику и сделать компьютерную игру - возможно, сначала я даже пробовал играть в неё на бумаге, но тут уже точно не помню. Вообще, придумывать игры на бумаге и играть в них я тогда любил. Например, один из "хитов", который пользовался популярностью в очень узком кругу людей - были трехмерные крестики-нолики.

Моя идея новой концепции была такой: квадратное поле со случайными препятствиями. Игроки выбирают позицию на краю поля и запускают лазерный луч, который отражается от углов препятствий. Если луч упирается в центр между двумя препятствиями, он останавливается. Луч оставляет линии по сторонам клеток, а остальной принцип тот же: полностью обведённые клетки приносят очки тому, кто их замкнул. Собственно, такой вариант я и сделал.

Немного технической археологии: программированию я тогда можно было учиться, практически, только самостоятельно по книжкам, которые ещё надо было достать. В нашей школе учителя информатики (за время учёбы сменились две учительницы) могли рассказать про простые алгоритмы вроде сортировки пузырьком и дать общее представление о Бейсике. Я тогда, героически «изучив» Паскаль по книжке, купленной на рынке, перешёл на «изучение» Си тоже по книжке, купленной тоже на рынке. Рынок тогда был лучшим местом покупки подобных книг. Для старых олдов прилагаю фото части ценнейшей на тот момент библиотеки, хотя в ней есть и "свежие" экземпляры.

Прототип, (оригинальная?) игровая механика на базе тетрадочной игры, немного ностальгии и ламповости

Вот на Си я и написал первую версию игры. Поле со случайными препятствиями рисовалось прямо на экране, а отдельный массив с его геометрией я не хранил. О разработке алгоритма для расстановки препятствий без недоступных зон речи даже не шло, поэтому почти после каждой игры на экране оставались пустые места, куда не мог попасть лазер. На вопросы друзей, которые тыкали пальцем пустые области: «А как попасть туда?» - я отвечал: «А никак»(с).

Сами препятствия и закрашенные клетки рисовал «трехмерными трапециями, вид сверху» - в те времена это выглядело очень красиво.

При выстреле программа проверяла пиксели по ходу луча: пока впереди был чёрный пиксель - продолжала линию цветом игрока; если встречала другой цвет - проверяла пиксели слева и справа и поворачивала луч туда, где было чёрное пространство; если прохода не было - останавливала луч. Даже возможность выстрела в выбранной точке проверялась по цвету пикселя в начале потенциального луча. Фактически картинка на экране и была данными об игровом поле. К сожалению, болванка с исходниками первой, оригинальной версии не сохранилась(

С тех доисторических времен я несколько раз хотел переписать игру, но всё как-то не складывалось - особенно с учётом того, что в какой-то момент я довольно далеко отошёл от программирования, как от основного вида деятельности. И вот пару лет назад я начал потихоньку воплощать свою давнюю мечту - сначала сделал просто механику, потом немного украшал. К текущему моменту сделал уже несколько подходов - этот четвертый, на сколько я помню. То, что получилось, можно посмотреть на видео.

Сейчас основная игра уже работает: игроки ходят, клетки захватываются, очки считаются. Можно играть друг с другом или с ботами. При построении игрового поля идёт проверка, чтобы не оставалось недоступных зон.

В этой версии решил добавить «красоты» - анимации луча, захвата клеток и анимацию полета кристаллов.

Для игры на Android добавил возможность масштабирования и перемещения поля, чтобы можно было приблизить нужный участок на небольшом экране и удобно позиционировать пушку.

По этому проекту в относительно ближайших планах - допилить сетевую версию и выпустить игру в RuStore. В будущем думаю разместить её во ВК и Яндекс играх.

Буду рад отзывам и особенно примерам игр, где реализована подобная механика - интересно посмотреть на другие варианты.

Показать полностью 1
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества