Перейти к содержанию

OpenMW или мечты иногда сбываются


MEZON

Рекомендуемые сообщения

Официальный сайт OpenMW
Страница загрузки
Страница с самым последним билдом для Win (обновляется ежедневно)
 
Баг-трекер

Wiki

Список задач до релиза 1.0

Репозиторий с исходным кодом на GitHub
IRC: #openmw на irc.freenode.net
Полезные ссылки:
Wiki-статья о совместимости модов для Morrowind'а с OpenMW
Руководство по портированию ретекстуров в OpenMW
OpenMW на Youtube
OpenMW на ModDB
OpenMW на GitLab
Диздоки планов развития после 1.0
 
Сторонние проекты, основанные на OpenMW:
TES3MP - реализация мультиплеера для OpenMW.
Тема OpenMW на 4PDA - здесь можно найти сборки OpenMW для Android 5+ и гайды по решению проблем.

OpenMW для VR - основан на OpenXR, готовые сборки (устаревшие) есть только для Windows.

Порт на Switch - к сожалению, в настоящее время им никто не занимается.

Что такое OpenMW?

 


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

  • полноиграбельная реализация Morrowind.
  • кроссплатформенность, запуск на Windows, Linux, MacOS X.
  • поддержка уже существующего контента, включая Tribunal и Bloodmoon и львиную долю созданных пользователями плагинов.
  • значительная модифицируемость: изменение игровой механики, создание новых эффектов заклинаний, доработка ИИ и т.д.
  • исправление ошибок системного проектирования: "грязные" GMST записи в плагинах, проблема "удвоения" в сейвах.
  • улучшение интерфейса и игрового дневника.
  • улучшение игровой механики, физики, боевой системы и ИИ.
  • поддержка мультиплеера.
  • улучшение графики путем поддержки функциональности современного аппаратного обеспечения.

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

В чём разница между "старым" и "новым" OpenMW?

Старый OpenMW был написан на языке D с небольшими кусками кода на C++. Позже главный разработчик решил полностью перейти на C++, потому весь код проекта был заново переписан.

Нужен ли оригинальный Morrowind для OpenMW?

И да, и нет.

ДА. Прежде чем использовать OpenMW, вы должны легально приобрести и установить Morrowind на ваш компьютер. OpenMW воcпроизводит только техническую сторону игры, и не содержит в себе каких-то материалов, защищенных авторским правом. Используются только данные уже установленной игры, либо с установочных файлов с диска или цифровой копии игры.
Серьезно, если у вас нет Морровинда, идите и купите его! В отличие от большинства новых игр, он отрабатывает каждую потраченную копейку. Это редкость в наши дни.

НЕТ. OpenMW - самостоятельный игровой движок. Он может быть базой для тотальных конверсий, не использующих файлы Morrowind.

Каково текущее состояние проекта?

Статус

OpenMW уже находится в состоянии "бета": основные функции реализованы, идет работа по оптимизации и паритету с MGE и MWSE - генератор LOD-ов для Distant Land-а, Lua-скрипты (несовместимые с MWSE из-за другого внутреннего дизайна OpenMW), пост-процессинг и т.д. Часть функционала, сопоставимого с MGE (сам Distant Land, динамические тени для объектов, шейдерная вода с отражениями, анимированная трава) уже в наличии.
Кроме этого есть ряд проблем, в основном с физикой и поддержкой модов, использующих баги и недокументированные возможности оригинального движка.
OpenMW играбелен (можно нормально пройти сюжет игры и аддонов, ветки гильдий и т.д.), хотя и уступает MGE в качестве графики, но выигрывает по стабильности, а на многих машинах и по производительности и скорости загрузки локаций.
Также OpenMW реализует некоторые опции, которых не было в оригинальной игре.

Поддерживаемые платформы

Проект переписан на чистом C++ (с поддержкой стандарта С++17), потому должен работать на большинстве платформ, поддерживаемых OpenSceneGraph и остальными инструментами, в том числе на Windows 7 (или новее), Linux, MacOS X, FreeBSD и Android. Windows XP и более старые версии не поддерживаются, т.к. их не поддерживают используемые библиотеки и компиляторы.
Если вы хотите помочь портировать OpenMW на другие платформы, мы будет рады видеть вас на нашем форуме.

Какие технологии вы используете?

OpenMW построен с использованием различных библиотек и инструментов с открытым исходным кодом:

  • Языки программирования: C++, GLSL
  • Графика: OpenSceneGraph
  • Физика: Bullet
  • Звук: OpenAL
  • Ввод-вывод: SDL2
  • Скриптовый язык: Самостоятельная реализация скриптов Morrowind
  • Интерфейс: MyGUI
  • Поиск пути для ИИ: Recast & Detour

Код загрузки ESP/ESM и BSA был написан с нуля, но с помощью документации, созданной сообществом. Кроме того, и код загрузки NIF был написан с помощью имеющейся в сети информации.
Особая благодарность NIFLA/NifTools!

Главный разработчик Marc Zinnschlag (Zini) о OpenMW 1.0:
Целью OpenMW 1.0 является полная замена Morrowind.exe. Не больше, не меньше. Это также означает, что практически все улучшения оригинальной игры на данный момент исключены. Я настаивал на этом подходе, так как это самый безопасный способ завершить версию 1.0 наиболее быстро.
Релиз 1.0 будет очень важным этапом, ведь OpenMW наконец станет полноценной игрой. Мы надеемся, что OpenMW 1.0 привлечет много внимания, новых разработчиков и активных тестеров.

В некоторых случаях мы можем отклонятся от оригинала, даже до релиза 1.0.

Во-первых, я не считаю нужным копировать любые нефункциональные особенности. Бессмысленно имитировать сбои и различные ошибки. Равно как и ограничения игры (к примеру, глубину вложенности скриптов).
В общем, мы имеем полную свободу действий со всем, что не работает в Морровинде. Обратите внимание, что это не относится к какой-либо плохой игровой механике. Плохая не значит нефункциональная.

Во-вторых, мы можем изменять всё, что не является частью внутриигрового опыта. Например, опции командной строки и файлы конфигурации OpenMW выглядят совершенно иначе, чем в Морровинде. Сюда же входит и лаунчер.

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

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

 
Я не программист, как я могу помочь проекту?

 

 

1. Можно просто играть и отсылать багрепорты
2. Можно тестировать разрабатываемый код, до того, как он попадёт в основную ветку. Там же можно вести обсуждение и предлагать изменения.
3. Можно тестировать моды. Основная цель - выявить проблемы с совместимостью.
4. Можно исследовать механики оригинального движка, особенно актуально в области тонкостей работы скриптов.
5. Можно обновлять Wiki.

6. PR тоже не помешает, особенно если он позволит привлечь тестировщиков и плагиностроителей.

7. Можно донатить разработчикам на Patreon'е:

  • psi29 — проджект лид, поможете закрыть траты на хостинг
  • Capostrophic — тысяча и один фикс + вагон фич
  • AnyOldName3 — тени в ОпенМВ
  • David Cernat — работа над TES3MP
Изменено пользователем akortunov
Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...
  • Ответов 3 тыс
  • Создана
  • Последний ответ

Топ авторов темы

Топ авторов темы

Изображения в теме

UnPinned posts

С 25 апреля:

Андрей:

  • Статус "скрыто" у окон инвентаря сохраняется и загружается.
  • Для шкал загрузки и дыхания (под водой) всегда используется общая текстура.
  • NPC и существа перестанут убегать от персонажей с хамелеоном слабее 75%.
  • Исправлены странности с сбросом идл-анимации при прыжке и при атаке оружием/использовании инструмента из 0.45.0.
  • Оборотни прекратят закрывать морду лапой во время пепельной/моровой бури.

я:

  • Время перехода от одной музыки к другой увеличено до 1 секунды (как в оригинале), что их делает ещё глаже.

Utopium:

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

Она никому нафиг не нужна.

Это почему же?) Да и если уж спрашивают, значит кому-то и нужна) А вообще, ещё лучше было бы, если лаунчер был бы мультиязычный, ведь openmw должен ориентироваться не только на англоязычный сегмент, но и на другие языки. Или я не прав?

Ссылка на комментарий
Поделиться на другие сайты

Это почему же?) Да и если уж спрашивают, значит кому-то и нужна) А вообще, ещё лучше было бы, если лаунчер был бы мультиязычный, ведь openmw должен ориентироваться не только на англоязычный сегмент, но и на другие языки. Или я не прав?

Это, наверное, и близко не первоочередная задача. Там и так всё понятно.

Ссылка на комментарий
Поделиться на другие сайты

С 1 мая:

 

Андрей:

  • Нативная поддержка бесплагинового гербализма. Формат примерно тот же, что в GH-MWSE. Документация будет как-нибудь потом.
  • Заменена иконка вкладки лаунчера Data Files.
  • Когда включен удаленный ландшафт, у игрового слайдера расстояния прорисовки расширяется множество допустимых значений.

я:

  • У инструкций ForceGreeting, Position(Cell), PlaceItem(Cell) игнорируется дополнительный числовой аргумент (обнаружал в некоторых скриптах модов).
  • У инструкций AiTravel, RaiseRank, LowerRank и функций GetHealth/GetMagicka/GetFatigue/и т.д. и игнорируется дополнительный строковый аргумент (также обнаружал)
  • Get/SetAngle, GetStartingAngle, Get/SetPos, GetStartingPos, Rotate(World), Move(World) при некорректности заданной оси не выкидывают скрипт, а игнорируются
  • Починено шейдерное вершинное освещение, после добавления теней слегка поломанное
  • В нескольких полях записей NPC в редакторе больше не принимаются значения, при которых происходит переполнение.
  • Инструкция Drop работает только на актёрах, как в оригинале, но при этом на всех актёрах, а не только на актёрах с инвентарем
  • Drop проигрывает звук.
  • Drop создаёт новый стак предметов, если в инвентаре актёра предметов с заданным ID не хватает.
  • AddSoulGem/DropSoulGem/RemoveSoulGem работают только на актёрах с инвентарем, а не любой емкости.

xyzz:

  • Фиксы, связанные с Android.
Ссылка на комментарий
Поделиться на другие сайты

Я не знаю, есть ли тут разработчики или близкие к ним, но на всякий случай спрошу. Есть ли шансы исправить утечку памяти в ОпенМВ?

Akortunov и Capostrophic — самые что ни на есть разработчики.

Утечек памяти на Винде не наблюдаю. Если вы про андроид, так это больше к ребятам типа xyzz.

Ссылка на комментарий
Поделиться на другие сайты

Есть ли шансы исправить утечку памяти в ОпенМВ?

Утечка судя по всему андроидоспецифичная, так что мы вряд ли сможем чем помочь, пока вы там сами не определите источник проблемы, или хотя бы когда она возникла.

Ссылка на комментарий
Поделиться на другие сайты

Утечка судя по всему андроидоспецифичная, так что мы вряд ли сможем чем помочь, пока вы там сами не определите источник проблемы, или хотя бы когда она возникла.

жаль. Потому что у xyzz свой взгляд на ситуацию. Общался с ним по этому поводу. А утечка всегда в одних и тех же местах на Андроиде. Она никуда не исчезает. Их воспроизвести можно неоднократно.

post-25532-0-14793700-1556957563_thumb.jpg

Изменено пользователем Pulion
Ссылка на комментарий
Поделиться на другие сайты

С 4 мая:

Андрей:

  • Окна инвентаря можно разворачивать Shift-ПКМ.
  • Исправлена гонка данных при изменении прозрачности объектов, потенциально приводившая к изменению прозрачности совершенно произвольных объектов
  • Исправлен порочный круг событий изменений разрешения, который мог привести к изменению разрешения до неверного значения при последовательном применении новых значений других настроек
  • Написана документация к нескольким фичам, добавленным за последний год
  • RaiseRank/LowerRank правильно работает

xyzz:

  • Для удобства Android-пользователей и пользователей, незнакомых с комбинацией Shift-ПКМ, выбранные заклинания можно удалять с помощью кнопки "Удалить" в окне заклинаний.

я:

  • У персонажей игрока без знака рождения можно удалять заклинания вышеуказанной комбинацией
  • Подсказки для магических эффектов заклинаний могут показывать отрицательное значение силы эффекта. У ингредиентов не показывается никогда, т.к. ими самими не определяется.
  • При включенной настройке toggle sneak состояние нельзя переключить, если управление отключено DisablePlayerControls (при монологе Джиуба, например)
  • Ограничение эксплойта с перепродажей одного и того же предмета -- тот, что есть в MCP из-за схожей логики предлагаемой цены предмета -- действует только при торговле, т.е. когда продажа вообще возможна. Т.е. тренировать навыки и зачаровывать предметы вновь можно по той же цене, что в Морровинде, если у персонажа очень высокие навыки, связанные с торговлей.
  • GetWeaponType возвращает -2 для отмычек и -3 для щупов — подобно фиксу из MCP.
  • Существа получают рейтинг брони от эффекта Щита, а не не имеют никакой защиты вообще — подобно фиксу из MCP.
  • Как в MCP, окно зачарования при провале остается открытым, чтобы игрок мог ещё разок попытаться предмет зачаровать.
  • PCLowerRank теперь умеет выкидывать игрока из фракции, как в MCP.
  • Исправлена скорость проигрывания анимации крадучись от первого лица.
  • GetSpellEffects/RemoveSpellEffects не прекращают выполнение скрипта, если заклинания не существует

bzzt:

  • Слиты ещё несколько мелких фиксов-оптимизаций — карты, воды и её шейдера, обработки источников света. При переходе между ячейками туман войны не перерисовывается для всех активных ячеек, а только для той, в которую игрок попал, если только карта не уже видна с меньшим масштабом.
Изменено пользователем Capostrophic
Ссылка на комментарий
Поделиться на другие сайты

Так как их воспроизвести?

https://youtu.be/nzIHPjTlDhM - это один вариант. Тестируя мфр я таких обнаружил с десяток на Андроиде. Извините, что так долго не отвечал.
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

С 15 мая:

 

я:

  • Переписаны (ранее дичайше левые) вычисления шанса зачарования и отчасти связанных значений на основе исследований Хрнчамда.
  • По многочисленным голосам трудящихся в лаунчер добавлена кнопка "клонировать список контента". Она позволяет сохранить существующий порядок загрузки в отдельный список сразу, чтобы не принуждать пользователя создавать новый список и уже его подкручивать под свои нужды, чтобы он сохранился.

Андрей:

  • Исправлено несколько мелких гонок данных.
  • Убраны BOM из двух файлов, теперь можно собирать движок на LCC под архитектуру Эльбрусов.
  • Зависимости от Boost::Format больше нет.
Изменено пользователем Capostrophic
Ссылка на комментарий
Поделиться на другие сайты

Гонки данных? Это что ещё за зверь такой? :scratch:

В многопоточных приложениях несколько разных потоков не могут работать с одним и тем же значением/полем одновременно, или дальнейшее поведение программы будет непредсказуемо. То же самое при зависимости поведения программы от порядка работы потоков. Было поправлено несколько опасных мест, в которых такие ситуации могли возникать.

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

Вообще-то OpenMW уже лет десять как работает в "режиме многопоточности", иначе такие проблемы в движке не существовали бы как класс.

Ссылка на комментарий
Поделиться на другие сайты

Вообще-то OpenMW уже лет десять как работает в "режиме многопоточности", иначе такие проблемы в движке не существовали бы как класс.

Оу, пардон тогда за глупый вопрос. Просто я думал, что поддержка многоядерности и многопоточности две разные вещи. 

Ссылка на комментарий
Поделиться на другие сайты

С 26 мая:

я:

  • Несколько фиксов для аналогового движения на геймпадах — падение запаса сил пропорционально скорости, always run при движении без помощи клавиатуры не работает.
  • SayDone возвращает 1 в первый кадр после вызова Say, как оригинале. Какая-то значимая битва в Sotha Sil Expanded теперь работает без проблем.
  • В именах ячеек и регионов решётка (#) перестанет заставлять интерфейс начинать думать, что это цветовой код, и окрашивать часть её названия после "кода".
  • Используется правильная позиция Красной горы как источника пепельных и моровых бурь на основе инфы от Хрнчамда.
  • Анимация прикрытия лица рукой не убирается сразу после выхода из под действия бури, а ожидает реального прекращения своего текущего цикла проигрывания, имитируя оригинальное свое поведение
  • Добавлена заглушка для RepairedOnMe: функция всегда будет возвращать 0. Согласно Хрнчамду, в оригинале функция не работает, хотя часть кода имеет какое-то предназначение и все же написана.
  • Из записей заклинаний при загрузке вычищаются эффекты с некорректными индексами, дабы потом эти эффекты не ломали окружающую их логику.

akortunov:

  • Консоль обрабатывается отдельно от остальных режимов интерфейса и перестанет их скрывать.
  • TrueType-шрифты были опубликованы на Нексусе в настроенном виде для простоты установки; документация была обновлена.

bzzt:

  • Для кругов на воде при необходимости используются шейдеры, дабы не возникало неопределенного поведения при падении на них теней.
  • Оптимизирована генерация текстур земли, как они в итоге выглядят после смешивания: происходит примерно в 6 раз быстрее, заметнее всего разница при использовании distant terrain, т.к. она активно эксплуатируется и для генерации упрощенных текстур.
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

С 6 июня

я:

  • Для актёров, которые способны двигаться по вертикали (плавающих и летающих) рейтинг готовности к бою рассчитывается без учета вертикального расстояния до противника, так что даже если они находятся очень высоко, они с большей охотой на него нападут, примерно как в оригинале (улучшает, кхм, поведение скальных наездников)
  • В NiSwitchNode используется поле с номером изначально используемого дочернего узла
  • Операции по смене прозрачности различных фейдеров всегда применяют итоговое значение прозрачности по их окончании, независимо от того, каким оно оказалось в конце операции — например, если игра была свернута, когда персонаж обучался навыку, и затем игрок вернулся в игру, не будет больше черного экрана до перезагрузки игры.
  • Вызов Player->Cast не запускает сразу снаряд в произвольном направлении или кастует на самого игрока, а выбирает заклинание для каста, как если бы оно было выбрано в окне заклинаний.
  • В лаунчере и редакторе больше не показываются тезки файлов в папках данных с более низким приоритетом, которые на деле загружаться не будут.
  • Оптимизатор объединяет группы только "чистокровных" групп, но не специализированных, что позволяет исправить пропадание стекла фонарей в последней версии Morrowind Optimization Patch. Конкретно проблема была в том, что дочерние узлы безымянной NiLODNode попадали неизвестно куда из-за попытки их оптимизировать
  • Фиксы регрессий.

Александр Перепечко:

  • Магические эффекты заклинаний и их визуальные эффекты стираются не по смерти актёра, а по окончании анимации смерти актёра.

akortunov:

  • Полосы прокрутки теперь используют отдельные, более  качественные текстуры, которые можно заменять, а не кусок текстуры закладки дневника
  • Сообщение о том, что GDB не был найден, теперь показывает переменную PATH, в которой была попытка найти папку, которая бинарник GDB содержит

bzzt:

  • Снова заметные оптимизации использования памяти дальним ландшафтом.

bzzt работает над дальними статиками (скриншот, еще скриншот). Идет тяжело и в буквальном, и в переносном смысле.

Ссылка на комментарий
Поделиться на другие сайты

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

Ну, как минимум первая проблема уже решена. Вторая вообще какая-то стрёмная, т.к. скриншот вроде вообще с отключенным DL.

Реально там недоработки другие:

1. Все удалённые объекты отбрасывают тени (отдельно не настраивается), из-за чего проседают как FPS, так и качество самих теней.

2. Пока фича работает напрямую с ESM-файлами, так что не учитываются флаг Enabled и объекты, перенесённые скриптами.

3. Отсечение по размеру объектов плохо работает для строений, которые в Морровинде обычно состоят из типовых отдельных блоков.

4. Прилично проседает ФПС, особенно в случае использования высокополигональных реплейсеров камней (например, On the Rocks! или Correct UV Rocks, они дополнительно порядка 40 ФПС у меня едят). В модели из таких модов надо добавлять NiLODNode с упрощёнными моделями (на уровне ванильных или даже с ещё меньшим количеством полигонов). В этом случае DL подхватит эти лоды и такого серьёзного падения быть не должно. Насколько я могу судить, оптимальная детализация лодов - около 50% от ванили, но лоды по идее надо делать для всех мешей из директорий X и F (включая моды), что довольно геморрно.

5. На большой дистанции отрисовки активно проявляется z-fighting (это когда несколько разных шейпов находятся в одной точке и движок не может определиться, что поверх чего рисовать).

 

В целом, подход для отрисовки статиков используется простой:

1. Из плагинов загружаются объекты из ячеек, что попадают в дистанцию видимости.

2. Отбраковываются мелкие объекты (порог размера настраивается).

3. Из оставшихся объектов берутся только NiTriShape. Шейпы с одинаковыми текстурами склеиваются. Например, если в ячейке 200 однотипных камней по 100 полигонов, в результате получится шейп с камнями на 20000 полигонов.

4. Получившиеся гигантские шейпы кэшируются в памяти и могут быть использованы повторно.

 

В результате с одной стороны не надо перегенерировать DL каждый раз, когда в плагинах что-то изменилось, с другой - прилично жрётся память (у меня порядка 6 Гб с дистанцией видимости около 10 ячеек) и серьёзно повышаются требования к видеокарте (т.к. в сцене может быть несколько миллионов полигонов при относительно небольшом количестве шейпов).

Изменено пользователем akortunov
Ссылка на комментарий
Поделиться на другие сайты

А что-то типа алгоритма упрощения этих мегашейпов прикрутить насколько реально? Ну то-есть, насчитало оно шейп на 20 000 полигонов, потом сделало прогонку и с помощью какой-нить интерполяционной функции свело этот шейп к 1000 лоуполи ужаса.

Изменено пользователем Дарин
Ссылка на комментарий
Поделиться на другие сайты

А что-то типа алгоритма упрощения этих мегашейпов прикрутить насколько реально? Ну то-есть, насчитало оно шейп на 20 000 полигонов, потом сделало прогонку и с помощью какой-нить интерполяционной функции свело этот шейп к 1000 лоуполи ужаса.

Теоретически, это возможно (например, через osgUtil::Simplifier), но алгоритмы упрощения довольно тяжёлые (будут фризы, если упрощение проводить на лету), плюс не для всех мешей выдают нормальный результат даже на 50% детализации, а не 5%, как ты предложил.

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

К сожалению, ни OpenMW, ни MGE, упрощённые меши обратно в NIF-файлы писать не умеют.

Изменено пользователем akortunov
Ссылка на комментарий
Поделиться на другие сайты

bzzt работает над дальними статиками (скриншот, еще скриншот). Идет тяжело и в буквальном, и в переносном смысле.

Если я не ошибаюсь, геймбрю не умеет дальние статики, не?

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...