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

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

6 694 поста 22 148 подписчиков

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

Будни тестировщика

Тестировщик: Нашёл 10 новых багов 😆
Разработчик: 😂🔪

Когда перестарался с функцией пригибания травы

У нас появилась страница в Steam

У нас появилась страница в Steam Разработка, Gamedev, Инди, Инди игра, Длиннопост

Добро пожаловать в мир Factory Tower! Вы - робот-курьер с уникальным ИИ, пробужденный из 20-летней гибернации TERRA AI. Вам поручено восстановить питание в башнях комплекса и вернуть им работоспособность.

Наша игра выделяется уникальными головоломками, захватывающим сюжетом и необычной графикой, погружающей игрока в уникальный мир Factory Tower! Разработана как для ПК, так и для мобильных устройств, чтобы каждый мог насладиться игровым процессом на устройстве по своему выбору.

У нас появилась страница в Steam Разработка, Gamedev, Инди, Инди игра, Длиннопост

Комплекс "Factory Tower" от Terra состоит из нескольких небоскребов, являющихся передовыми заводами по производству робототехники. Управляют каждой башней специально созданные ИИ, а всеми ими руководит TERRA AI. Комплекс полностью автономен и способен функционировать без персонала, но с пониженной эффективностью.

Каждая башня предназначена для выполнения определенных заводских работ. Одна предназначена для сборки, другая для хранения и так далее. Это создает различные объекты и опасности, поджидающие вас в каждой новой башне.

У нас появилась страница в Steam Разработка, Gamedev, Инди, Инди игра, Длиннопост

Среди главных персонажей - TERRA AI, главный ИИ компании Terra, контролирующий работу комплекса, и робот-курьер, старая модель, находившаяся на складе фабрики более 20 лет. Вместе с ними вас ждут захватывающие приключения и таинственные загадки Factory Tower!

Характеристики игры:
- Игровой Движок: Unity
- Режим: Однопользовательская игра
- Жанр: Головоломка
- Платформы: PC, iOS, Android
- Управление: Свайпы по экрану

У нас появилась страница в Steam Разработка, Gamedev, Инди, Инди игра, Длиннопост

Присоединяйтесь к этому захватывающему путешествию по Factory Tower, где вас ждут уникальные головоломки и захватывающий сюжет, созданный для погружения вас в мир интриг и тайн!
ВК группа
Steam страница
Телеграм

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

SFERA [2/1000]

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

Как достать соседа - ремейк саундтрека для ремейка игры Gamedev, Музыка, Unreal Engine, Инди игра, Инди, Игры, Композитор, Саундтрек, Инструментальная музыка, Разработка, Видео, YouTube

Всем привет, моё имя Назар. Я композитор, музыкальный продюсер и руководитель саунд продакшн студии Music we Deserve. Мне поставили задачу сделать ремейк саундтрека из игры "Neighbours from Hell" или "Как достать соседа". Наша команда сделала эту музыку для проекта Плохое Лето Соседа | Neighbor's Bad Summer. Коротко об игре:

Neighbors Bad Summer это ремейк культовой игры начало нулевых: Как достать соседа/ Neighbours from hell. В этой игре вы будете играть за ютубера по имени: Лёха, снимать соседа на видео как он попадает в различные ловушки. Главной фичей новой версии игры станет возможность устанавливать камеры для обнаружения Соседа. Игра зазвучит свежо с объемным звуком и обновленной музыкой! В игре появится цельная история, которая будет разворачиваться по мере прохождения, в виде полноценных 3D кат-сцен.

YouTube канал разработчика

Оригинал

Ремейк

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

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

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

Как мы разрабатываем игры для пиксельного пола, публикуем исходники и делимся частью выручки Программирование, Gamedev, Разработка, Lua, Стартап, Гифка, Длиннопост

Проблематика и поиск решения

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

Нужна была удобная платформа для разработки, а т.к Go – язык компилируемый, то было сложно сделать стенд для тестирования кода, не предоставляя доступ к исходникам игрового контроллера. Поиск решения привёл меня к идее использовать скриптовый язык Lua.

Как оказалось, язык Lua – очень простотой в изучении и использовании, но в то же время один из самых быстрых и производительных скриптовых языков программирования! Де-факто он является стандартом в игровой индустрии и используется, например, в таких играх, как World of Warcraft, Roblox, Minecraft и Angry Birds.

Для интерпретации Lua скриптов на Go есть неплохая виртуальная машина GopherLua. По производительности она сравнима с Python версией, но, конечно, уступает нативной реализации на C. Но нам не космолёт строить, логика игр часто весьма простая, и в крайнем случае сложные вычисления можно будет вынести обратно на сторону Go.

Интегрировать машину в существующий Go код оказалось весьма просто и заняло буквально пару дней. Она позволяет как выполнять Lua код из Go, так и вызывать Go код из Lua. Я был приятно поражён гибкостью такого решения и очень пожалел, что откладывал момент интеграции так долго.

Структура игры

Для управления игрой я выделил 11 обязательных методов (я ни разу не игродел, соответственно буду рад обсудить ваши варианты):

  • StartGame(gameJson, configJson) – старт игры. Тут декодируем игровой и конфиг json для инициализации игры и её стартового состояния;

  • NextTick() – тик игрового мира, здесь обычно описана вся основная логика. В текущих реалиях вызывается ПРИМЕРНО каждые ~35мс (28 кадров в секунду), но ориентироваться на время периода нельзя, вместо этого нужно использовать абсолютное время. Не вызывается, когда игра на паузе или завершена;

  • RangeFloor(setPixel, setButton) – опрос снапшота пола, вызывается в тот же игровой тик следом за NextTick(), чтобы забрать состояние пола для отрисовки;

  • GetStats() – забор статистики игры, вызывается сразу за RangeFloor() для получения информации для отрисовки игрового табло;

  • PauseGame() – событие паузы игры;

  • ResumeGame() – событие снятия игры с паузы;

  • SwitchStage() – дополнительный рычаг админу для переключения этапа, может быть полезен в некоторых играх;

  • PixelClick(click) – событие клика/отпускания пикселя;

  • ButtonClick(click) – событие клика/отпускания кнопки;

  • DefectPixel(defect) – событие дефектовки/раздефектовки пикселя;

  • DefectButton(defect) – событие дефектовки/радефектовки кнопки;

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

Отвечаем: у нас есть механизм дефектовки – это когда пиксель/кнопка, не реагирующие на нажатие, выводятся из игры и не блокируют игровой процесс. Чаще всего цвета они отображать могут, а нажиматься – уже нет. Таким образом, ни в одной игре на такие пиксели или кнопки больше не будет назначено задание и игроки в большинстве своём даже не замечают, что с полом что-то не так.
Иногда картина выглядит, прямо скажем, очень печально, особенно после нагруженных выходных дней, когда времени на ремонт/замены совсем нет:

Как мы разрабатываем игры для пиксельного пола, публикуем исходники и делимся частью выручки Программирование, Gamedev, Разработка, Lua, Стартап, Гифка, Длиннопост

Куча поломок после праздников 8 марта

Но мы работаем над качеством: в новой версии весовые датчики будут вдвое мощнее, а кнопки станут емкостными без физического нажатия.

После определения основных методов управления игрой мы переписали несколько наших ранее реализованных простых игр с Go на Lua. Исходный код можно посмотреть в репозитории github.com/pixel-quest/pixel-games, там же есть идеи некоторых игр в очереди на разработку + скромная Wiki с документацией.

Жизнеспособность идеи была подтверждена, игры работали как надо. И даже управление аудиоплеером удалось прокинуть в Lua без особых проблем. Оставалось дело за малым – удобной платформой для тестирования скриптов.

Платформа для разработки

Хотелось иметь онлайн платформу, в которой можно писать код игры и тут же запускать его на виртуальном пиксельном полу для тестирования. За основу был взят наш существующий админ-интерфейс, написанный на Vue. Я его сильно урезал в части функционала управления электроникой, оставил только виртуальный пол и прикрутил навороченный текстовый редактор в виде VS Code.

Как мы разрабатываем игры для пиксельного пола, публикуем исходники и делимся частью выручки Программирование, Gamedev, Разработка, Lua, Стартап, Гифка, Длиннопост

Наша онлайн IDE платформа

Для обеспечения прозрачного механизма отладки я сделал на вебсокетах проброс ошибок в виде всплывающих нотификаций и добавил возможность вывода в Lua коде дебаг сообщений log.print() прямо в консоль разработчика в браузере. Также есть валидация json при сохранении конфигов.

Как мы разрабатываем игры для пиксельного пола, публикуем исходники и делимся частью выручки Программирование, Gamedev, Разработка, Lua, Стартап, Гифка, Длиннопост

Пример ошибки и вывод дебаг сообщения

Пока что поддерживается работа только с одним набором файлов (скрипт, игровой и конфиг json'ы) и нет истории изменений, так что надо быть очень аккуратным при сохранении или запуске игры. Эти доработки есть в планах, а пока что тестируем саму концепцию.

Как мы разрабатываем игры для пиксельного пола, публикуем исходники и делимся частью выручки Программирование, Gamedev, Разработка, Lua, Стартап, Гифка, Длиннопост

Пинг-понг на виртуальном полу, исходники есть в репозитории

Так как я опасаюсь лавинной нагрузки, с которой может не справиться мой говнокод дешевый VPS, я пока что не готов выкладывать прямую ссылку на ресурс, но я готов буду выдать доступ всем заинтересованным при личном обращении в специальном телеграм чате: @pixel_quest_games

План развития

Эта статья является своего рода проверкой интереса сторонних разработчиков к нашей платформе. Сейчас мы напрямую платим фрилансерам за разработку, но в перспективе мы готовы выделять процент от выручки (в том числе всех будущих франчайзи) на выплаты авторам новых игр. Также рассматриваем идею создания портала, где каждый сможет выгружать свои игры и в реальном времени видеть статистику запусков и сумму вознаграждения. Можно даже онлайн камеры подключить, как у ДоДо. Но даже сейчас, если написанная вами игра окажется популярной, то мы в частном порядке придумаем, как платить вам роялти с каждого запуска! Огромных доходов здесь и сейчас не обещаю, но в перспективе пары-тройки лет это может оказаться весьма выгодной инвестицией вашего сегодняшнего времени: у нас весьма амбициозные планы на рост партнерской сети, и вы сможете получать вознаграждение с каждой из будущих локаций сети, где будет запущена ваша игра. Уже сейчас мы готовим к открытию 5 новых городов, в т.ч один за пределами РФ…

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

Заключение

Буду рад конструктивной критике в комментариях, а также вашим идеям для новых игр!

Кому интересно следить за развитием проекта Pixel Quest, подписывайтесь на наш телеграм канал @pixel_quest. Я пишу там исключительно сам и не чаще одного раза в 4-7 дней, маркетологов выгнал, больше планирую рассказывать про техническую составляющую проекта с постепенным уклоном в IT, плюс ежемесячно публикую финансовые отчёты.

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

Персонажи для игры

LTA: Lightyears! Thrusters! Action! - Итоги недели

Привет! Продолжаю разработку. Добавил в игру некоторые новые механики.

Приближение и отдаление камеры колесом мыши

Теперь можно удобно рассматривать космос вокруг кораблика и прицеливаться во врагов. Лучевое оружие при таком обзоре стало ультимативным, нужно сделать его слабей :)

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

Назначение членов команды на посты в корабле

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

В интерфейсе показывается, чем сейчас занят каждый космонавт.

Разметка комнат в корабле

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

Редактор персонажей

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

Собранную команду можно сразу отправить на посты в кораб

Журнал событий

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

Экран завершения игры

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

На этом у меня пока все. Спасибо за внимание :)

Если хотите следить за проектом еще и в телеге, то подписывайтесь, пожалуйста: https://t.me/CubicPieLive

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