Только для стариков! Ищу пример из Game Maker 10-12 года
Много лет назад увлекся именно этим движком, с него и начал свой путь и простота освоения и клепание игр которые не снилось Китайцам с их RPG Мейкером. У меня даже были полностью купленные лицензии на вторую студию, но после того как они три раза подряд слетели я все послал, хотя сапорт мне их восстанавливал (условие пожизненной покупки было).
Но что то решил я вернуться к истокам, а именно к 8.1 и не могу ни как отыскать один пример, пример стрельбы с разбросом. Там была не большая комната, вид сверху, бегаем солдатом с "Эмочкой" и при стрельбе круг разброса у дула увеличивается, естественно пули в разные стороны. Да и сама реализация бега персонажа хоть и смешная, но подошла бы мне для будущего проекта.
Если не найду, пойду качать Студию вторую ломанную, ибо сохранил все записи о покупке и пошли они в жопу с криво встающей лицензией, есть подозрение что спецом слетает, что бы шел покупать подписку.
Надеюсь на силу Пикабу!
Простенький эффект остановки времени
Привет! Вчера немного посидел, пытаясь намутить эффект остановки времени, вроде вышло что-то похожее)
Год или два назад в Game Maker, на котором я создаю игру завезли эффекты разных видов, под их капотом лежат шейдеры и мне не пришлось писать вручную код шейдера, а взять готовый. Так, я использовал эффект heat haze (нагревания), покрутил его параметры, и получился вот такой прикольный результат. Кроме него еще накладываю небольшую виньетку на экран. На самом деле такие эффекты неплохо могут улучшить картинку в игре)
Страница игры в Steam: https://store.steampowered.com/app/2363760/ReLinked/ (буду благодарен если добавите игру в желаемое)
Что вы думаете об онлайн-курсах? Поделитесь мнением!
Онлайн-курсов становится все больше, и нам интересно собрать статистику, чтобы лучше понимать запросы читателей Пикабу.
Пожалуйста, поделитесь своим мнением!
Gamemaker. Прокручивающийся текст
Привет.
Сегодня вкратце рассмотрим, как сделать прокручивающийся текст в Gamemaker.
Представленный способ и его реализация не единственно верные, но свои цели выполняет.
Видео с демонстрацией работы и объяснениями. Текст тот же самый, поэтому кому как удобнее - выбирайте.
Для реализации данной игровой механики придётся задействовать "Холсты" и использовать один единственный объект: тот, на котором должен выводиться данный текст.
Общий алгоритм прост: на вход мы получаем массив из строк, его преобразуем в одну большую строку.
Высчитав общую высоту этой строки, с учётом возможных переносов, создаём холст, шириной со спрайт исходного объекта и высотой нашей строки. Затем наносим на него весь указанный текст.
Ниже представлен код события "Create".
Таким образом получив один большой холст, необходимо сделать отрисовку лишь той части этого холста, что равняется высоте спрайта, за исключением обводки.
Для этого нам нужно использовать координату Y относительно этого холста, где ноль - верх, чем больше - тем ниже смещается рисующаяся часть холста.
При указании высоты холста я вычитаю четыре пикселя из высоты спрайта. Эти четыре пикселя складываются из двух пикселей обводки сверху и снизу.
Соответственно, если ваш спрайт имеет обводку более тонкую или более широкую - складываете количество пикселей обводки.
Тоже самое касается и отрисовки холста - прибавление двух пикселей нужно, чтобы отрисовка происходила внутри обводки, а не по ней.
Ниже представлен код события Draw GUI. Событие Draw должно быть пустым.
Остаётся сделать только непосредственно прокрутку текста.
Прокрутка текста реализована изменением переменной yy, значение которой должно держаться в промежутке от 0 до (высота текста - высота спрайта), чтобы игрок не мог прокручивать бесконечно вверх или вниз, максимум - мог увидеть самую нижнюю строку текста полностью. Происходит это в событии "Step" соответственно.
И небольшая иллюстрация того, как это всё дело просчитывается.
Этот код можно доработать при необходимости под ваши нужды, в том числе добавить различных удобств, вроде скроллбара.
Ссылка на скачивание проекта:
https://drive.google.com/file/d/1aJUFs81zFuVEpBIynM504KiBAtn...
Черный плащ ремастер - Darkwing Duck Remastered # 5
ссылка на группу вк - https://vk.com/public214680278
ссылка на чат вк - https://vk.me/join/AJQ1d/vDMCIv4snnG4qB4rmB
Концепт персонажей пока без анимации . все предложении и идеи рад буду их услышать .
новая системы камеры на рельсах . позволит лучше имитировать камеру Nes (денди) . синий квадрат игрок , красный камера . белые рамки что видит камера .
Система "динамическое освещение" для канализаций! Хотелось бы услышать ваше мнение насчёт него .
Прототип Бушрут леса . надеюсь вам понравится) лес не очень получается рисовать)
Ensora - опыт разработки игры в GameMaker Studio 2
Всем доброго времени суток!
Давно читаю Пикабу и вот, когда нашелся настоящий повод, решил оформить свой первый пост :)
С 2020 года я занимаюсь разработкой игры под названием "Ensora" - это 2D-шутер с видом сбоку про путешествия на далёкой пустынной планете в поисках еды и ресурсов. Вдохновленный такими проектами как Fallout, The Outer Worlds и This War of Mine, я приступил к делу.
Для работы выбрал как мне показалось самый удобный игровой движок для 2D - GameMaker Studio 2 (GMS 2). В 3D разработку сразу лезть не стал, так как большого опыта за спиной у меня тогда не было. Решил, что лучше брать посильные задачи, чем в погоне за ультра графикой и реализмом бросить дело на полпути.
Спустя два года бессонных ночей, когда всякую художественную книгу мне полностью заменил мануал GMS 2, а вместо развлекательных ресурсов я переселился на его официальный форум, мне есть чем поделиться с людьми. Хотя я не удивлюсь, если в сюда зайдут профессиональные разработчики игр из игровых студий и станут нервно хохотать над данным постом.
Итак, несколько пунктов о том, как я решал поставленные перед собой задачи.
1) Прицельная стрельба.
Как и любой другой геймер, я обожаю, когда в игре ты можешь выписать врагу хэдшот. Однако в обычной функции обнаружения столкновений движок не сообщает, какую часть ты задел.
Для реализации этой идеи пришлось создать "невидимые части тела" - объекты, такие же по размеру, как и часть тела. Например, невидимый для игрока круг летает там же, где находится голова врага. И именно столкновение пули с этим кругом фиксирует попадание в голову.
Кстати, игрока это тоже касается. Попадание тяжелого снаряда охранной пушки базы воспринимается очень больно.
Для понимания того, в какую часть тела ты попадаешь при выстреле во врага, также созданы разные "реакции на урон" - цель согнется пополам или откинет голову назад. Вряд ли Вы запутаетесь, куда именно попали.
2) Мягкая езда на байке.
Здесь я воспользовался встроенной в движок системой физики. Байк создается как три физических тела: корпус и два колеса. Они связываются пружинами, которые в зависимости от моих настроек отражают мягкость подвески. Можно гонять по скалам и не отбить задницу главного героя.
Как оказалось, нельзя просто нарисовать байк и два колеса, начать их крутить и получить хорошую анимацию. Нет. Сначала рисуем корпус, затем тормозной диск, колесо, суппорты, водителя. Детали должны быть независимы друг от друга и только так получается приятное глазу движение.
3) Инвентарь.
О, как много времени я провел в работе над этой адской вещью! Существует, пожалуй, бесчисленное множество вариантов того, как можно создать систему инвентаря и хранения игровых предметов.
Я же не придумал ничего лучше, чем создать ДВЕ сетки 5х4 клеток (как в крестиках-ноликах). В первой сетке я храню название предмета, который там лежит. Во второй сетке - количество этого предмета. И при любом перетягивании лута у меня происходит пересчет двух этих сеток. У ящиков, соответственно, по две такие же сетки 4х4. В игре, разумеется, всё видно так, словно в клетке лежит один объект с таким-то количеством.
Не самое элегантное решение, но оно работает. Что ж...
Для торговли, крафта, улучшений и прочего в игре создано более 50 предметов лута.
4) Загрузка уровней.
Здесь пришлось много импровизировать, поскольку игру я хотел сделать в разрешении FullHD, с большим количеством графики и анимации. Движок GMS 2 лучше подходит для создания пиксель-арт игр или небольших проектов высокого разрешения (хотя при большом желании в нем можно создавать даже 3D игры).
Сам по себе движок шустрый и поддерживает текстуры с разрешением вплоть до 8k, но когда в игровой комнате перемешивается большое количество графики на разных "слоях", начинаются проблемы с производительностью. У меня это горы, холмы, облака, корабли, здания, длинные анимации персонажа - всё вместе огромное количество спрайтов.
Здесь на помощь пришел существующий в GMS 2 инструмент разбивки текстур на группы. Я написал свой скрипт загрузки, а каждой игровой комнаты создал список нужных текстур. При загрузке уровня скрипт сравнивает 2 списка:
- список уже загруженных текстур в память;
- список текстур, которые потребуются в локации, куда пришел игрок.
Проще говоря, проверяется: что сейчас нужно в комнате? Лишнее выгружаем из памяти, нужное догружаем. Мы вернулись на корабль? Догружаем группу "ship". Мы покинули пустыню и она больше не отображается? Убираем из памяти группу "desert".
Да, это звучит так просто и логично, но сам по себе движок этого не сделает - он грузит всё, что добавлено в комнату налету и сохраняет в памяти до момента выхода из игры. Для меня этот скрипт был настоящей победой в борьбе за высокое разрешение. Всё стало плавно .
На этом пока я остановлюсь. В проекте еще множество других реализованных механик, но в первую очередь хотелось рассказать об этих четырех пунктах. Если Вам будет интересно я расскажу больше - об электронных системах, взломе, ракетах, космическом корабле и другом.
Проект в свет я всё еще не выпустил, однако планирую сделать это совсем скоро - в январе 2023 года.
Страница игры в Steam:
https://store.steampowered.com/app/2112210/Ensora/
Если Вам интересно попробовать эту игру - добавляйте её свой список желаемого!
Спасибо за внимание.
Механики для разбора. (GMS2)
Доброго времени суток.
Хочу спросить у сообщества, разборы каких игровых механик или игр в целом они хотели бы видеть. Если есть идея - прошу в комментарии, буду рад.
На данный момент лежат материалы по RTS на базе Дюны и потихоньку разрабатывается RPG, будут посты с объяснением некоторых механик из них.
Пост без рейтинга.
Релиз моей первой игры
Около 4 месяцев назад я выкладывал пост про то, как я в одиночку разрабатывал свою первую видеоигру, одновременно закрывая ею свой дипломный проект. И вот, я защитил диплом, получил вышку, и теперь выпускаю версию 1.1, которой хотел бы поделиться с вами, и рассказать некоторые подробности о разработке этого проекта.
https://aksolotled.itch.io/cursed-island
За эти 4 месяца я собрал просто огромное количество фидбека, спасибо большое всем неравнодушным, и переписал игру почти что с нуля, исправляя как программные, так и геймдизайнерские косяки.
Суть игры осталась та же - игрок оказывается на острове, и продираясь сквозь ловушки\паркур\другие препятсвия должен найти способ покинуть остров в условиях ограниченного времени. Каждая следующая ночь представляет из себя все более сложное испытание с большим количеством волн противников, к которой нужно в безопасное дневное время подготовиться.
Из уникальных изюминок, в игре во первых реализована система игры в двух плоскостях. Половина игры проходит с видом сбоку, и почти неотличима от Террарии (любимая игра детства), разве что карта проработана вручную. В этой области больше упор на паркур и передвижение.
А вторая половина больше похожа на EtG, с видом сверху, упором на боевку и исследование темных лабиринтов неосвещенных пещер.
Цель данной фичи... не была придумана изначально. Она была добавлена из-за бюрократической ошибки в институте, из-за которой тема моего диплома звучала как "Разработка видеоигры в жанре TDS", в то время как я уже сделал почти все в виде платформера. Тему менять было нельзя, а игру - можно. Как итог - ошибка стала некой уникальной фичей, и темные закоулки пещер ощущаются вполне классно на констрасте с освещенными секциями платформера.
Вторая уникальная фишка, которую я продвигал из-за всех сил, была система инвентаризации игрока, без стаков предметов, и возможностью взаимодействия с фурнитурой (верстак, печь, факелы) только посредством обычных действий игрока (удар, бросок предмета). Эта фишка ощущалась интересно... но только для тех, кто в ней смог разобраться. А их было мало(. Все таки некий стандарт игровой индустрии прописал стереотипы в головах игроков, и кардинально новые системы воспринимаются в штыки. Ну либо моя система была хреновая, тоже вариант. Так что эта фишка сохранилась, но поверх нее было добавлена более стандартная система инвентаризации, которая дублирует функционал привычном для игроков виде.
А вот что было сильно изменено с времен версий 1.0.х, так это боевка. Добавлено больше спецэффектов, импакта оружию, и самое главное - один из тестеров помог мне осознать, что для игры с таким огромным количеством противников, просто необходимо большое количество АоЕ урона.
Все оружие было переработано, добавлены прострелы, рикошеты. Арсенал вырос больше чем в 2 раза, а с мобов начали выпадать хилки и боеприпасы, которые быстро исчезают, поощряя играть более агрессивно.
В игру добавлено большое количество расходников-турелей, которые могут лечить игрока, сжигать противников, защищать область от снарядов или всасывать много монстры в одну точку. Данные аксессуары значительно изменяют геймплей, добавляя новые действия в геймплей, кроме "беги и стреляй", но их количество ограничено.
Как итог - версия 1.1 ощущается полностью новой игрой, в которой хватит контента на 3-4 часа. Она так и осталасть довольно хардкордной, но добавлено много вариантов как игрок может эту хардкордность сгладить.
Если вы дочитали до этого момента, значит моя работа реально вызывает хоть какой-то интерес и она была проделана не зря, спасибо вам большое. А если вы еще и пройдете ее, умудритесь найти все секреты, и оставите фидбек, так вообще прекрасно. Ссылка на проект:
https://aksolotled.itch.io/cursed-island