Предисловие

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

Синема, или кинотеатр, кому как угодно - мой любимый режим. В свое время у шафта была синема, я ее начал делать еще во времени лиди. Тогда трава была зеленее, а авесомиум был более-менее рабочей лошадкой.

Карта lidi.su

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

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

Это довольно старая версия, но она очень близка к релизной версии. Релизная версия потерялась

Карта шафта

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

В качестве основы карты была взята основная от pixeltailgames - theatron. Красивая карта и для базы была вполне отличная.

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

Я планировал реализовать подход, который был реализован у GMTower. Мне понравилась идея, которую они преподнесли, хотя одному было трудно - у них было несколько человек в команде.

Это демка музыкальной локации, единственная запись с живым сервером у меня на руках

Скрин ночного клуба, только без текстур

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

  • Возможность запирать на пароль приватные залы
  • Возможность выбирать сериалы
  • Здесь впервые была обкатана система партиклей, отсюда выросли ноги для многих других вещей для поинтшопа
  • Музыкальный клуб с мини-игрой “саймон говорит”

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

Warning

Следующая запись ОЧЕНЬ ГРОМКАЯ - УБАВЬТЕ ЗВУК!

Демка как работает выбор сериалов и сервисы

Info

Следующие записи с нормальным звуком

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

Проблема в основном была с передачей звука, в 2016-2017 я не шибко бум-бум в нюансах движка сурса, так что я начал разработку совместного плеера для сайта. Но это я немного забежал вперед - до 2018 года гаррис с авесомиумом еще были в порядке.

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

Однако это единственная запись, которая у меня осталась - демка плеера

На видео выше как раз впервые обкатывается система синхроного захвата аля Портал 2. Однако ближе к 2018 году многие сайты начали переезжать на новые протоколы, твич и ютуб перестали выдавать контент в формате броадкаста, а плееры на сайтах пересели на m3a8 - сегментированный формат. В общем пришлось разрабатывать плеер и я решил использовать для этого Hake, язык для разработки в Flash - на тот момент он еще поддерживался.

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

Черновая запись с моей голосовой, не помню кому записывал.

Сервисы

На момент закрытия у нас были рабочими многие сервисы:

  • youtube - вообще дефолтный сервис, так как идет в комплекте с базовой синемой
  • twitch - тоже самое, что и ютуб
  • shikimori - раньше у сервиса была возможность смотреть сериалы и фильмы, которые загружались на стороние сервисы, такие как sibnet, vk.
  • sibnet - видеохостинг, распарсил его, потому что был базой для шикимори. В целом неплохо оказалось его распарсить: +1 сервис в копилку
  • kadu - не знаю зачем я им занялся, особо не поддерживался.
  • stormo - тоже не знаю, наверное тоже был нужен.
  • zona - раньше был популярный хост для просмотра фильмов в хорошем качестве. Большая библиотека и рекламы было немного
  • пару порнографических 24v#### и xv##### - ну, почему бы и нет
  • vk - дефолтная история для снг
  • anime365 - кажется тоже был базой для шикимори
  • anidub - аналогично: база для шикимори

Первый скрин с порно

Второй скрин

Третий скрин заблюренный

Не только синемой едины

Помимо самого кинотеатра, как уже упоминал, я планировал внедрить возможность совместных мини-игр. Как по мне это должно было стать киллер-фичей, потому что из подобных проектов мне были известны по сути GMTower by Pixeltailgames, Gmod Cruise Line by Solstice Game Studios. Возможно были и другие, возможно какие-то сейчас есть - просто это все что было мне известно.

Я подчерпнул идею у GMTower с почти всем функционалом, они на тот момент ушли из гарриса, и к своему сожалению поиграть у них я не смог. Концепция мультисерверов мини-игр с одним-большим хабом мне понравилась и я взялся за дело.

Пробой пера стала мини-игра “саймон говорит”. Он был далек от совершенства, но во время реализации мини-игры вскрылось множество проблем движка синемы. За основу была взята карта с префиксом mg_ (кажется mg_simonsays) и вшита в основную карту кинотеатра. Изначально я думал сделать отдельный вход для игр, но потом я соединил саймона с клубом, что в целом видно на рабочей демке. Сделал так, потому что изначально комната и коридор к ней выглядел пустым.

Скрин панели саймона говорит

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

А какие еще должны были быть мини-игры? Ну, они делятся на два типа: отдельный сервер и вшитые в синему.

  • На отдельном сервере должны были крутиться режим миниигр:
    • основой должен был быть движок minigames 1vsX, Team vs Team
    • режим слендера
    • ballrace (воссозданная с нуля идея от GMTower)
    • Гольф
    • в будущем планировал присоединить еще и дезран и мардер
    • гонки, примерно как в NFS
    • авиасимулятор, примерно как War Thunder
  • Вшитые в синему
    • саймон говорит
    • боулинг
    • хоккей
    • гладиаторские бои, с любым видом оружия или на кулаках (примерно как арена в дополнении с квартирой в Mass Effect 3)
    • аркады, в плане игр Sega Dreamcast, Dendi
    • шахматы
    • и многие другие развлекаловки.

Info

Следующая запись специально сжато до шакального состояния, при этом она все равно весит 100 МБ, если хотите нормально качество - *КЛИК весит оно 270 МБ*.

Техническая демка режима minigames, наша фактическая первая проба в онлайн

Я в целом уже экспериментировал на тот момент с ballrace и аркадами. Про ball race особо говорить нечего, а вот про аркады стоит немного упомянуть.

Оригинал здесь, но я дампнул видео на случай если оригинальное будет удалено

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

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

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

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

Потом уже было обновление shaft.im на shaft.cc, где синему на серверах не запускали вовсе. Планы по восстановлению режима были, но просто это уже отдельный пост и он будет когда-нибудь в будущем.

До встречи.