Предисловие
Вообще разработка гейммода дело довольно простое, сложности возникают когда требуется поддерживать работоспособность на уровне. Учитывая, что мы живем в реальности, где гаррис все еще не обновил авесомиум, то видимо нам неповезло.
Info
Если интересуют исходники синемы, то они доступны здесь - totor13x/shaft-cc-gmod-cinema. Остальные проекты найти тут
Синема, или кинотеатр, кому как угодно - мой любимый режим. В свое время у шафта была синема, я ее начал делать еще во времени лиди. Тогда трава была зеленее, а авесомиум был более-менее рабочей лошадкой.
Карта 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, где синему на серверах не запускали вовсе. Планы по восстановлению режима были, но просто это уже отдельный пост и он будет когда-нибудь в будущем.
До встречи.