Готма

Игровая экосистема

Готма

Российский проект · собственный движок

Игровая экосистема

Готма — это собственный игровой движок и игры, которые на нём растут. Мир взят из русского фольклора. Сегодня в клиенте одна игра — со временем их число будет расти.

Крутите — камера полетит вперёд

Движоксвой, с нуля
Миррусский фольклор
Аудиториярусскоязычная
Кластер400–500 игроков

02 — Движок

Что под капотом

VULKAN 1.3

Свой бэкенд, а не прослойка

Картинку рисует наш собственный код поверх Vulkan — без переходников над старыми библиотеками. Путь на OpenGL остался запасным и включается сам, если у видеокарты слишком старый драйвер.

ДВА ПУТИ

Один код на любое железо

Vulkan 1.3 — для свежих видеокарт, OpenGL — для слабых и встроенных. Движок сам смотрит, что нашёл в системе, и выбирает, как рисовать. Игроку настраивать нечего.

ВИДИМОСТЬ

Не рисуем то, чего не видно

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

МАСШТАБ

Кадр можно считать мельче экрана

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

JAVA 25

Свежая основа, без старых костылей

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

ЗАГРУЗКА

Игра открывается, а не грузится

Модели, звуки и небо читаются одновременно, каждое на своём потоке, а не по очереди. Собирается всё потом в одном и том же порядке — от спешки в игре ничего не разъезжается.

03 — Коллизия

Модели можно ставить
как угодно

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

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

04 — Графика

Находим узкое место — и убираем

В клиент встроены счётчики: они показывают, что именно съедает кадр, — гадать не приходится. Три случая из практики: нашли, поправили, замерили снова.

Проверка видимости

Проверка «что видно, а что нет» сама оказалась дороже, чем отрисовка лишнего. Сделали её необязательной — и кадр вырос вчетверо.

200–300≈1100×4
GTX 1060

Дальность травы

Счётчики показали: почти весь кадр съедала трава под ногами, а не вдалеке. Пересчитали кольца — дальность при этом не тронули.

62136×2,2
RTX 3050

Картинка мельче экрана

Слабая видеокарта считает картинку в меньшем размере, а движок растягивает её до экрана. Без этого встроенная графика игру бы просто не потянула.

40–5080–100×2
Intel UHD

04 — Графика · железо

Где проверяли

Больше пятидесяти конфигураций за плечами; ниже — пять опорных. Как именно рисовать, движок решает сам под найденное железо.

ВидеокартаКак рисуетКадров/с
RTX 4060 Timesh-шейдеры≈2400
RTX 3050mesh-шейдеры1827
GTX 1060отсечение на вычислителях≈1100
GTX 970отсечение на вычислителях≈900
Intel UHD Graphicsкадр мельче экрана80–100

RTX 3050 и Intel UHD Graphics сняты монитором внутри игры. Значения со знаком ≈ округлены по нашим прогонам.

Монитор внутри игры: RTX 3050, 96 процентов, 72 градуса, 1827 кадров в секунду
Монитор встроен в клиент, а не поставлен рядом.

05 — Системы

Из чего сделана игра

Девять систем уже работают, три собираются прямо сейчас.

ЕСТЬКаталог

Мир собирают внутри игры

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

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

ЕСТЬИнвентарь

Двадцать две ячейки с характером

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

Правила «что куда кладётся» одни и те же на компьютере игрока и на сервере.

ЕСТЬСущества

Скелетная анимация, а не жёсткие фигуры

У существ настоящий скелет, а не жёсткая фигура: толпа целиком уходит на видеокарту одним заходом и потому ничего не стоит.

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

ЕСТЬСервер

Кластер на 400–500 человек

Сетевая часть на свежей Netty. Инвентарь и столкновения сервер считает тем же кодом, что и клиент, — разойтись им неоткуда.

Вход только через наш лаунчер: чужой клиент до мира не доходит.

ЕСТЬИнтерфейс

Текст рисуется вектором

Шрифт растрируется под текущий масштаб интерфейса, а не тянется из картинки: буквы остаются резкими и на ноутбуке, и на ультрашироком мониторе.

Масштаб подбирается по высоте окна сам; окно и полоса заголовка тоже свои.

ЕСТЬБестиарий

Книга, а не список

Разделы на пергаменте, выцветшие зарисовки зверей, живое перелистывание с поднятием края страницы.

Открывается как книга и читается как книга — это часть мира, а не служебное окно.

ЕСТЬЧат

Вкладки, фильтры, свой журнал

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

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

ЕСТЬЗамеры

Кадр под счётчиками, всегда

Монитор в углу показывает ядра, частоты, память, загрузку и температуру видеокарты — и честное время кадра, а не приглаженное среднее.

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

ЕСТЬПлагины

Чужой код рисует в нашем стиле

Сторонние дополнения рисуют свои экраны теми же средствами, что и сама игра, и при этом не могут её сломать.

Есть предпросмотр без перезапуска — экран правится на живой игре.

В РАБОТЕНПС

Жителей расставляют как модели

Тем же редактором внутри игры: поставил жителя, задал маршрут, повесил реакцию. Никаких внешних инструментов и перезапусков.

Скелетная анимация под них уже готова — остаётся поведение.

В РАБОТЕЛор

История, ради которой возвращаются

Мир получит свою историю: записи, находки, задания и то, что рассказывают жители. Бестиарий и книги — уже готовая витрина под это.

Нарратив пишется под конкретные локации, а не вешается поверх готовой карты.

В РАБОТЕЛокации

Первый связанный кусок мира

Не случайная генерация, а собранный вручную кластер: деревня, дорога, руины, места, куда есть смысл идти.

Именно его и увидят первые бета-тестеры.

06 — Клиент

Свой инструмент
на каждом шаге

Мир собирают внутри игры, а не в стороннем редакторе. Игру ставит свой лаунчер. Меню и настройки нарисованы тем же движком, что и мир. Ничего чужого в этой цепочке нет.

Каталог моделейГотовые модели лежат прямо в игре: выбрал — и ставишь, не выходя из мира. Ни стороннего редактора, ни перезапуска.
ЛаунчерСтавит игру целиком: клиент, ресурсы и свою Java. Докачивает после обрыва связи и обновляется сам при запуске — игроку нажимать нечего.
Главное менюНарисовано вектором, а не собрано из картинок: резкое и на ноутбуке, и на ультрашироком мониторе.
Настройки графикиПять категорий и три готовых пресета. У каждой строки написано, что она делает и чем за неё платишь.

07 — Требования

Системные требования

Java внутри лаунчера. Игре хватает половины гигабайта памяти.

Минимальные

Рабочий минимум, а не аварийный режим: кадр считается мельче экрана.

Система
Windows 10 x64
Видеокарта
OpenGL 4.3 — уровня Intel UHD Graphics, GTX 750 Ti, RX 460
Графика
Vulkan 1.3, если драйвер его даёт; иначе OpenGL 4.3
Память игре
512 МБ — 1 ГБ
Память системе
4 ГБ
Настройки
кадр считается мельче экрана, ближняя дальность

Рекомендованные

Полный кадр в родном разрешении. Резать нечего.

Система
Windows 10 / 11 x64
Видеокарта
уровня GTX 970, GTX 1060, RX 580
Графика
Vulkan 1.3
Память игре
2 ГБ
Память системе
8 ГБ
Настройки
полный кадр, трава до самой дымки

Максимальные

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

Система
Windows 11 x64
Видеокарта
NVIDIA RTX 20-й серии и новее
Графика
Vulkan 1.3 · mesh-шейдеры
Память игре
4 ГБ
Память системе
16 ГБ
Настройки
всё на максимуме; на RTX 3050 это 1827 кадров в секунду

На встроенной графике Vulkan выигрывает. На Intel UHD Graphics путь Vulkan 1.3 даёт заметно больше кадров, чем OpenGL, и движок выберет его сам. Наш замер на встройке — 80–100 кадров в секунду.

08 — История

Тринадцать лет
к своему миру

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

  1. 2013Точка отсчётаМы начинали с игровых режимов в Minecraft. Без иллюзий и скидок на опыт: если игроку скучно — он уходит на второй минуте. Это была лучшая школа выживания.
  2. ГодыФундаментМы не начинали заново. Мы строили этаж за этажом на обломках собственных ошибок. То, чем мы гордились пять лет назад, переписано дважды — и каждый раз начисто. Потому что теперь мы знаем цену каждому байту и каждому кадру.
  3. СегодняГотмаВесь этот путь вёл в одну точку — к полной свободе. Своя физика. Свой рендер. Свой серверный код. Мы больше не ищем компромиссов в чужих ограничениях. Мы создаём свой мир.

09 — Контакты

Где нас найти

Мы показываем работу по ходу дела, а не готовым релизом: правки, замеры, кадры из альфы. Заходите туда, где вам удобнее, — отвечаем везде.

10 — В команду

Ищем людей в команду

Мы делаем lowpoly-pixel игру на собственном движке. Небольшой командой, без издателя и без сроков, спущенных сверху. Если это ваш формат — напишите.

Доля в проекте
  • 3D-дженералист
  • Художник

Условия обсуждаются индивидуально. Это не подработка на вечер: мы ищем тех, кто со временем возглавит своё направление и будет решать, как оно выглядит.

Опыт и портфолио — да. Зарплаты пока нет, есть доля.

Совсем без опыта
  • Геймдизайнер
  • Художник
  • 3D-моделлер

Прямо с нуля. Нужно не умение, а желание разбираться и привычка доводить начатое до конца. Всему, что умеем сами, научим — нас так же никто не учил.

Тринадцать лет назад мы начинали ровно с этого места.

Как написать. В Telegram или Discord — ссылки были на прошлом экране. Портфолио приветствуется, но если его нет, а желание есть, это тоже разговор.

11 — Друзья проекта

Те, кто рядом все эти годы

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

Играли

Заходили на наши сервера, когда там было сыро, и оставались, когда всё в очередной раз переписывалось начисто.

Ловили

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

Поддерживали

Рублём на Boosty и словом в тяжёлые месяцы. У проекта без издателя это не мелочь, а то, на чём он держится.

Спасибо. Без пафоса: мы помним, кто был рядом, когда показывать было нечего.

Готма

Собственный движок —
от кадра до кластера

  • Vulkan 1.3и OpenGL для слабых
  • 12систем движка
  • 50+проверенных конфигураций
  • 400–500игроков на кластер

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