Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
#Круги добра
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Решайте головоломки три в ряд и отправляйтесь в приключение! Проходите красочные уровни и открывайте новые главы захватывающей истории о мышонке и его друзьях!

Мышонок Шон

Казуальные, Три в ряд, Головоломки

Играть

Топ прошлой недели

  • SpongeGod SpongeGod 1 пост
  • Uncleyogurt007 Uncleyogurt007 9 постов
  • ZaTaS ZaTaS 3 поста
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
2
twinkly
twinkly
3 года назад
Лига Геймеров

DeVlog # 0⁠⁠

Автор: Павел Лаптев

Начинаю свой блог «Дневник разработчика" как и обещал у себя в истории в instagram и можете подписаться на меня, так как все свои "анонсы» я буду первым делом публиковать там

И начну я свой блог с геймплейного тизер-трейлера

Конечно же это только прототип. Вся рисовка и логика стрельбы будет меняться в будущем!


Пару слов о задумке вида камеры и рисовании спрайтов:


Так как я работаю в движке Game Maker Studio 2, который в принципе не предназначен для 3D проектов, но и моя игра не совсем 3D. Я скорее назвал бы это лишь фейковым эффектом объемности. В основу этого метода вида камеры входит массив, который перебирает все мои слои спрайтов и накладывает друг на друга. И поэтому рисовать это довольно трудно😥 И поэтому я использую сторонние программы, такие как SpritePile. Этот софт позволяет рисовать спрайты и в это же время наблюдать за результатом вашей работы что очень удобно. Ссылку на программу оставлю в конце поста.


SpritePile

Мои референсы и туториалы на эту тему:


Где-то 1 - 1.5 года назад я увидел геймплейный трейлер к игре под названием NIUM. Постапокалиптическая экшн-игра, в которой игроки будут ползать по разрушенной, заброшенной зоне отчуждения в стиле STALKER. Мне очень понравился вид камеры. Сама по себе игра вышла еще в 2016 году на itch.io. Вот ссылка на видео YouTube👇

Ссылка на игру под постом


Оказалось, что автор этого проекта Moppin, который разработал Downwell.

DeVlog # 0 Gamedev, Игры, Разработка, Компьютерные игры, Инди, Инди игра, Дневник разработки, Видео, YouTube, Длиннопост

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


Учебники и образовательные видео:


И после этого я начал шерстить весь YouTube и сайты с вопросами для разработчиков. И в итоге я наткнулся на парня в YouTube, который работал над логикой SpriteStacking 3D. На YouTube он подписан как Gizmo199, ссылку на его канал я оставлю под постом. И он тоже как и я участвует в Game Jam, поэтому можете сыграть в его игру в браузере OperaGX и оставить оценку. Думаю ему будет приятно😊

Его трейлер к игре ☝


Сюжет:


По поводу сюжета и названия моего проекта пока ничего внятного сказать не могу. Сначала была задумка сделать SurvivalRPG с открытым миром, но потом пришла в голову другая идея...


Просто я начал именно с механики и немного добавил "красивых" спрайтов и атмосферных звуков в прототип для ясности. О чем же будет эта игра?


Пока точно не знаю😂


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


Ссылки на авторов и программы:


Gizmo199


Ojiro Fumoto (Moppin)


SpritePile


Игра Downwell


Игра NIUM

Источник

Показать полностью 1 3
Gamedev Игры Разработка Компьютерные игры Инди Инди игра Дневник разработки Видео YouTube Длиннопост
2
4
twinkly
twinkly
3 года назад
Лига Геймеров

King, Witch and Dragon. DevLog #19⁠⁠

Автор: Андрей Торчинский

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

Небольшое резюме по поводу того, что за игру делаю:

King, Witch and Dragon - это 2.5D метроидвания наоборот или "Антивания".

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

Сейчас готовы основные игровые механики и в процессе блокинг и обкатка уровней "на кубиках".


Новые механики и новые испытания


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


Итак, по порядку...


Опасный спуск


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


Придётся спускаться в колодцы полные как статичных, так и подвижных шипов.

Липкие стены


Для этих испытаний игроку потребуется Щупальце, которое работает как крюк-кошка.


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

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


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


Также в этой зоне активно используются специальные подвижные блоки, которые можно толкать и на которых можно "сёрфить", чтобы добраться до прижимной панели, по пути расчищая путь с помощью змеиных рывков.

Появляющиеся стены


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


Такие материализующиеся стены можно использовать для защиты от прожектайлов или для создания мостов для подвижных блоков.

Ветер


Ещё одна механика для способности Крылья летучей мыши.


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

Продолжаем развивать Discord сервер


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


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

King, Witch and Dragon. DevLog #19 Gamedev, Разработка, Игры, Компьютерные игры, Дневник разработки, Инди, Инди игра, Видео, Без звука, Длиннопост

Переиграл и уничтожил.


Но нужен свежий взгляд и больше разнообразных мнений и фидбэка. Так что, если вам интересен проект и хочется повлиять на ход разработки - заходите на наш Discord-сервер. Любые комментарии приветствуются. Ни одно сообщение не останется непрочитанным, ни одно мнение не останется неучтённым.

Помогите сделать проект лучше!


Что дальше?


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


Спасибо за внимание!

Источник

Показать полностью 1 5
Gamedev Разработка Игры Компьютерные игры Дневник разработки Инди Инди игра Видео Без звука Длиннопост
0
0
FearThunder
FearThunder
3 года назад

Дневник разработки : CosmicCastaway #5⁠⁠

В это обновлении:

+Переработал графический интерфейс.
+Оптимизировал отрисовку астероидов.
+Добавил "генератор галактики".

+Множество мелких улучшений.


Схема "галактики"

Дневник разработки : CosmicCastaway #5 Gamedev, Инди игра, Видеоигра, Разработка, Дневник разработки, Видео, YouTube

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


На данный момент "зона смерти" еще не реализована, но скоро появится вместе с метками систем и обработанных астероидов.


Скачать и помочь проекту можно на Itch.io.

Показать полностью 1
[моё] Gamedev Инди игра Видеоигра Разработка Дневник разработки Видео YouTube
3
58
twinkly
twinkly
3 года назад
Лига Геймеров

S.T.A.L.K.E.R. на движке Doom. Оружие⁠⁠

Автор: Александр Милашев

Начало тут

Прошло не так много времени с момента публикации прошлой статьи, но медлить нельзя, ведь неизвестно, что будет завтра. В этой серии статей мы создаем свой S.T.A.L.K.E.R. с маслинами и монолитовцами на движке idTech1.

S.T.A.L.K.E.R. на движке Doom. Оружие Разработка, Gamedev, Инди, Игры, Дневник разработки, Шутер, Сталкер, Doom, Видео, Длиннопост

В этот раз мы поговорим с вами об оружии, ведь ни один шутер не может без него обойтись.


В S.T.A.L.K.E.R. очень много видов оружия: пистолеты, автоматические винтовки и даже гранатометы, но остановиться я решил на обрезе ружья. Во-первых, я всегда любил дробовики и ружья из-за брутальности, внешнего вида и убойной силы. Во-вторых, переносить обрез на движок Doom намного интереснее и сложнее, чем банальный автомат Калашникова. И вскоре я расскажу, почему.


В предыдущей статье я поведал, как переносить модели из S.T.A.L.K.E.R. в Blender. Открываем Blender и из папки gamedata/meshes/weapons/bm_16 импортируем файл wpn_bm-16_hud.ogf. Это модель оружия, которую игрок видит перед своими глазами. В той же папке лежит файл wpn_bm-16.ogf. Это модель оружия, которое будет валяться на земле. Этот файл нам понадобится чуть позже.


Теперь нужно переместить камеру так, чтобы казалось, будто игрок держит оружие, а после этого создать источник света и передвинуть его на координаты камеры.

S.T.A.L.K.E.R. на движке Doom. Оружие Разработка, Gamedev, Инди, Игры, Дневник разработки, Шутер, Сталкер, Doom, Видео, Длиннопост

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


Как я уже говорил, наименования спрайтов в Doom содержат 6 символов, из которых первые 4 — название спрайта, пятый — название кадра анимации, а шестой — номер, который определяет ракурс спрайта. В данном случае мы будем работать с пятым символом. Название кадра — это один символ от A до Z. Кроме того можно использовать левый слеш (\). Таким образом, для одного названия можно создать не более 27 кадров анимации. Конечно, если этого количества не хватит, всегда можно придумать новое название для недостающих спрайтов.


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


Если вывести на экран изображение с камеры, то мы увидим примерно следующее:

S.T.A.L.K.E.R. на движке Doom. Оружие Разработка, Gamedev, Инди, Игры, Дневник разработки, Шутер, Сталкер, Doom, Видео, Длиннопост

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


Результат:

S.T.A.L.K.E.R. на движке Doom. Оружие Разработка, Gamedev, Инди, Игры, Дневник разработки, Шутер, Сталкер, Doom, Видео, Длиннопост

Итого: 3 изображения для состояния покоя, одно — для стрельбы, 13 — для анимации перезарядки. Названия кадров начинаются с A и кончаются на Q. В процессе написания статьи я понял, что последний кадр назван неверно — вместо BSTKQ0 я назвал его BSTKPQ.


В названии спрайтов присутствует отсылка к Зловещим Мертвецам.

S.T.A.L.K.E.R. на движке Doom. Оружие Разработка, Gamedev, Инди, Игры, Дневник разработки, Шутер, Сталкер, Doom, Видео, Длиннопост

Спрайты вроде бы готовы, но не все так просто — не хватает вспышки от выстрела.


Идем в папку textures/pfx и ищем вот эти две текстуры:

S.T.A.L.K.E.R. на движке Doom. Оружие Разработка, Gamedev, Инди, Игры, Дневник разработки, Шутер, Сталкер, Doom, Видео, Длиннопост
S.T.A.L.K.E.R. на движке Doom. Оружие Разработка, Gamedev, Инди, Игры, Дневник разработки, Шутер, Сталкер, Doom, Видео, Длиннопост

Можно использовать только первую, но я решил пойти сложным путем. С помощью православного фотошопа, я объединил эти две текстуры и разбил по спрайтам. В итоге у меня получилось 8 изображений:

S.T.A.L.K.E.R. на движке Doom. Оружие Разработка, Gamedev, Инди, Игры, Дневник разработки, Шутер, Сталкер, Doom, Видео, Длиннопост

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

S.T.A.L.K.E.R. на движке Doom. Оружие Разработка, Gamedev, Инди, Игры, Дневник разработки, Шутер, Сталкер, Doom, Видео, Длиннопост

После этого нужно знакомым нам образом отрендерить в Blender модели патронов и ружья, которое игрок будет подбирать. Вышло 24 спрайта для одного только обреза. Но я не совсем честен, ведь спрайт картечи можно будет использовать и для других дробовиков, потому что объект патронов, который мы создадим, можно будет применить к любому оружию.

S.T.A.L.K.E.R. на движке Doom. Оружие Разработка, Gamedev, Инди, Игры, Дневник разработки, Шутер, Сталкер, Doom, Видео, Длиннопост

В Slade3 в папке sprites создаем папку weapons, а внутри нее папку obrez и помещаем туда все спрайты. Добавляем их в ламп textures и открываем редактор текстур. Методом проб и ошибок я уменьшил все изображения оружия в четыре с половиной раза, а изображения патронов и ружья на земле — в 14 раз. Не надо забывать менять тип спрайтов с texture на sprite!


В редакторе текстур присутствует возможность выставить оружие в руках по сетке, но эта сетка рассчитана на соотношение экрана 4:3. Если вы будете играть в соотношении 16:9, то оружие нужно передвинуть чуть правее или левее сетки. Я решил все оставить как есть, тем более, что в настройках GZDoom можно поменять соотношение экрана.

S.T.A.L.K.E.R. на движке Doom. Оружие Разработка, Gamedev, Инди, Игры, Дневник разработки, Шутер, Сталкер, Doom, Видео, Длиннопост

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


В корне архива создаем файл weapons.dec, а в файле decorate пишем:


#include "WEAPONS.dec"

Это позволит разделить разные объекты во избежание путаницы. Все, что я буду писать в дальнейшем, я буду писать именно в файле weapons.dec.


Первым делом нужно создать два типа патронов для нашего обреза. Почему два?


Первый класс — это патроны в стволе:

Actor BoomStickAmmoClip : Ammo
{
Inventory.MaxAmount 2
}

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


Второй класс — это патроны в рюкзаке:

Actor BoomStickAmmo : Ammo 30200
{
Inventory.Amount 10
Inventory.MaxAmount 200
Inventory.PickupMessage "Picked up 20 Buck shells"
Inventory.Icon "ADRBA0"
States
{
Spawn:
ADRB A -1
Stop
}
}

Amount — количество подбираемых патронов. MaxAmount — максимальное количество патронов в инвентаре. Далее следует сообщение, которое появляется, когда игрок эти патроны подбирает. Icon отвечает за изображение на экране, когда игрок держит оружие с таким типов патронов.


Кроме того этому классу требуется состояние Spawn, так как игрок должен видеть коробку, лежащую на земле.

S.T.A.L.K.E.R. на движке Doom. Оружие Разработка, Gamedev, Инди, Игры, Дневник разработки, Шутер, Сталкер, Doom, Видео, Длиннопост

Патроны созданы, приступаем к созданию оружия. Сперва определяем параметры обреза.

Actor BoomStickStalker : DoomWeapon 3100
{
Weapon.SelectionOrder 400
Inventory.PickupMessage "Picked up Obrez"
Weapon.SlotNumber 3
Weapon.AmmoUse 1
Weapon.AmmoGive 0
Weapon.AmmoType "BoomStickAmmoClip"
Weapon.AmmoUse2 0
Weapon.AmmoGive2 8
Weapon.AmmoType2 "BoomStickAmmo"
+AMMO_OPTIONAL

Итак, по порядку. SelectionOrder — это параметр, который отвечает за автоматическое переключение оружия при нехватке патронов. Чем меньше значение этого параметра, тем выше вероятность, что игра переключится на это оружие при нехватке патронов у текущего.


Далее мы придумываем сообщение при поднятии и определяем, в каком слоте оружие будет находиться (под какой кнопкой).


Потом надо присвоить обрезу новые патроны. AmmoUse определяет, сколько патронов оружие использует при обычном выстреле. AmmoGive — сколько патронов выдает игра, когда игрок обрез поднимает (в данном случае стволы будут пустыми). AmmoUse2 и AmmoGive2 отвечает за второй тип патронов: в рюкзаке. В данном случае, при альтернативном выстреле (альтернативный выстрел будет отвечать исключительно за перезарядку ружья) мы вообще не будем их использовать, а коробка картечи будет давать 8 патронов.


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


Теперь нужно прописать состояния обреза. Любое оружие в Doom должно обязательно иметь состояния Select, Deselect, Ready и Fire.

Select:
BSTK A 1 A_Raise
Loop

Любое состояние содержит последовательность кадров в формате XXXX Z N Function, где XXXX — это название спрайта, Z — название кадра этого спрайта, N — длительность кадра в тиках (тик — 1/35 секунды), Function - необязательная функция. В состоянии Select обязательно должна присутствовать функция A_Raise. Эта функция поднимает оружие из-за границ экрана до боевой позиции. При этом состояние Select должно быть зациклено. Когда оружие окажется в боевом положении, то оно сразу же перейдет в состояние Ready.

Ready:
TNT1 A 0 A_JumpIfInventory("BoomStickAmmoClip", 2, 3)
TNT1 A 0 A_JumpIfNoAmmo(3)
BSTK B 1 A_WeaponReady
GoTo Ready
BSTK C 1 A_WeaponReady
GoTo Ready
BSTK A 1 A_WeaponReady
GoTo Ready
С этим состоянием все немного сложнее. В обрезе может быть разное количество патронов, соответственно, курки могут принимать разные положения. Сперва нужно задать соответствующее условие.


Первый кадр с помощью функции A_JumpIfInventory проверяет, присутствует ли в инвентаре (стволе) не менее двух патронов. Если функция возвращает истину, то состояние перепрыгивает на три кадра вперед (при этом, игнорируются ключевые слова GoTo. Если в стволе менее двух патронов, то исполнение кода продолжается.


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


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


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

DeSelect:
BSTK A 1 A_Lower
Loop

Состояние Deselect аналогично состоянию Select, но вместо функции A_Raise нужно использовать функцию A_Lower, которая опускает оружие, пока весь спрайт не окажется за пределами экрана.


За стрельбу отвечает состояние Fire:

Fire:
TNT1 A 0
{
if (CountInv("BoomStickAmmoClip") == 0)
{
return state ("AltFire");
}
else
{
return state ("FireBoomStick");
}
return state ("Ready");
}

Так как обрез, в противовес стандартному оружию в Doom, умеет перезаряжаться, воспользуется еще одной возможностью Decorate — анонимными функциями. В состоянии Fire будет всего один кадр, а под ним функция, которая выглядит стандартно для обычного языка программирования. Если в стволах нет патронов, то мы перемещаемся в состояние AltFire, которое будет отвечать за перезарядку. Иначе перемещаемся в состояние FireBoomStick, которое мы сейчас создадим.


В Decorate можно создать любое количество уникальных пользовательских состояний (помимо встроенных) и перемещаться между ними с помощью оператора безусловного перехода GoTo или с помощью анонимных функций.

FireBoomStick:
BSTF B 4
BSTF C 4
{
A_FireBullets(15,15,25,2,"BulletPuff");
}
BSTF DE 4
BSTK B 4
TNT1 A 0 A_Refire
GoTo Ready

В новом состоянии все стандартно. Все спрайты стрельбы меняются покадрово с шагом в 4 тика. При этом под вторым кадром необходимо добавить выстрел. За это отвечает функция A_FireBullets, которая принимает в качестве аргументов разброс пуль по ширине и высоте, количество пуль и урон от каждой пули. BulletPuff — это стандартный класс, который отображает следы от выстрела.


В конце состояния игра проверяет, зажата ли кнопка выстрела (A_Refire). Если зажата, то состояние возвращается в начало, иначе прыгает в состояние Ready.


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

AltFire:
TNT1 A 0
{
if (CountInv("BoomStickAmmoClip") == 2){
return state ("Ready");
}
else if (CountInv("BoomStickAmmoClip") == 1){
if (CountInv("BoomStickAmmo") >= 1){
return state ("LeftBarrelReload");
}
}
else if (CountInv("BoomStickAmmoClip") == 0){
if (CountInv("BoomStickAmmo") >= 2){
return state ("BothBarrelsReload");
}
else if(CountInv("BoomStickAmmo") == 1){
return state ("LeftBarrelReload");
}
}
return state ("Ready");
}

Если в стволах два патрона, то возвращаемся в Ready. Если всего один, а в рюкзаке есть как минимум один патрон картечи, то перемещаемся в состояние перезарядки левого ствола (LeftBarrelReload).


Если в стволе нет патронов, а в рюкзаке есть как минимум два патрона картечи, то перемещаемся в состояние перезарядки обоих стволов (BothBarrelsReload). Но, если патрон в рюкзаке всего один, то опять прыгаем в LeftBarrelReload.

LeftBarrelReload:
BSTK EFGHIJ 4
TNT1 A 0 A_TakeInventory("BoomStickAmmo",1)
TNT1 A 0 A_GiveInventory("BoomStickAmmoClip",1)
GoTo Ready

Перезарядка левого ствола до безобразия проста. Сперва запускаем последовательность кадров с шагом в 4 тика, а потом забираем из инвентаря один патрон картечи и выдаем один патрон в ствол.


В Decorate можно записать последовательность кадров одной строкой, если они не подразумевают разную длительность или наличие функций.

BothBarrelsReload:
BSTK KLMNOPQ 4
TNT1 A 0 A_TakeInventory("BoomStickAmmo",2)
TNT1 A 0 A_GiveInventory("BoomStickAmmoClip",2)
GoTo Ready

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


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

Spawn:
BSTZ A -1
Stop

Для полноты картины можно создать еще одно состояние Flash.

Flash:
TNT1 A 2 Bright A_Light1
TNT1 A 2 Bright A_Light2
Goto LightDone

Раньше это состояние использовалось для отображения на экране спрайта вспышки от выстрела в целях экономии ресурсов. Сейчас это не актуально — вспышку мы добавили еще на стадии создания изображений. Состояние Flash в таком виде лишь освещает пространство вокруг игрока и само оружие. Чтобы игра переходила в это состояние при выстреле, в состоянии FireBoomStick под вторым кадром мы прописываем:

BSTF C 4
{
A_FireBullets(15,15,25,2,"BulletPuff");
A_GunFlash;
}

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


3…2…1… Звуков выстрела и перезарядки!


Все звуки из S.T.A.L.K.E.R. хранятся в папке gamedata/sounds. Находим в ней звук выстрела обреза и звук его перезарядки. Они довольно длинные, поэтому я порезал их на 4 файла: выстрел, перелом стволов, помещение патрона в ствол и взвод курка. Doom принимает и файлы формата WAV, и файлы формата OGG. Полный список форматов. Наименования файлов должны содержать не более 8 символов, иначе игра откажется их проигрывать. Все звуки в нашем архиве должны храниться в папке sounds.


Поместить файлы в папку — половина дела. Все дефиниции звуков должны храниться в специальном лампе Sndinfo.

ObrezShot OBRZSHOT
ObrezReload1 OBRZOPEN
ObrezReload2 OBRZBLLT
ObrezReload3 OBRZCLOS

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


Теперь нужно присоединить звуки к оружию в Decorate.


В состоянии FireBoomStick снова дополняем многострадальный кадр выстрела:

BSTF C 4
{
A_StartSound("ObrezShot");
A_FireBullets(15,15,25,2,"BulletPuff");
A_GunFlash;
}

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


Перезарядка левого ствола:

LeftBarrelReload:
BSTK E 4 A_StartSound("ObrezReload1", 0, CHANF_OVERLAP)
BSTK FG 4
BSTK H 4 A_StartSound("ObrezReload2", 0, CHANF_OVERLAP)
BSTK I 4
BSTK J 4 A_StartSound("ObrezReload3", 0, CHANF_OVERLAP)
TNT1 A 0 A_TakeInventory("BoomStickAmmo",1)
TNT1 A 0 A_GiveInventory("BoomStickAmmoClip",1)
GoTo Ready

Перезарядка обоих стволов:

BothBarrelsReload:
BSTK K 4 A_StartSound("ObrezReload1", 0, CHANF_OVERLAP)
BSTK LM 4
BSTK N 4 A_StartSound("ObrezReload2", 0, CHANF_OVERLAP)
BSTK O 4 A_StartSound("ObrezReload2", 0, CHANF_OVERLAP)
BSTK P 4 A_StartSound("ObrezReload3", 0, CHANF_OVERLAP)
BSTK Q 4 A_StartSound("ObrezReload3", 0, CHANF_OVERLAP)
TNT1 A 0 A_TakeInventory("BoomStickAmmo",2)
TNT1 A 0 A_GiveInventory("BoomStickAmmoClip",2)
GoTo Ready

========================


Обрез готов! Конечно, он получился не идеальным. Можно добавить чуть больше кадров, замедлить их. Кое-где оптимизировать код. Переназначить перезарядку на стандартную клавишу R. Добавить выстрел дуплетом. И прочее, и прочее. Но мне кажется, что в качестве примера он показал себя неплохо.


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


That’s all Folks!

Источник

Показать полностью 11 8
Разработка Gamedev Инди Игры Дневник разработки Шутер Сталкер Doom Видео Длиннопост
11
7
twinkly
twinkly
3 года назад
Лига Геймеров

Stillborn Slayer⁠⁠

Автор: Виталий Апушев

Привет, очередной девблог по моей игре Stillborn Slayer, в этот раз даю поиграть в демку игры, очень нужен ваш фидбек, чем более развернуто тем лучше.
Stillborn Slayer Инди, Gamedev, Разработка, Игры, Ретро-игры, Дневник разработки, Steam, Длиннопост
Stillborn Slayer Инди, Gamedev, Разработка, Игры, Ретро-игры, Дневник разработки, Steam, Длиннопост
Stillborn Slayer Инди, Gamedev, Разработка, Игры, Ретро-игры, Дневник разработки, Steam, Длиннопост
Stillborn Slayer Инди, Gamedev, Разработка, Игры, Ретро-игры, Дневник разработки, Steam, Длиннопост
Stillborn Slayer Инди, Gamedev, Разработка, Игры, Ретро-игры, Дневник разработки, Steam, Длиннопост

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


Билд игры


Новая система освещения


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

Stillborn Slayer Инди, Gamedev, Разработка, Игры, Ретро-игры, Дневник разработки, Steam, Длиннопост

с/без освещения


Если смотреть на скринах конечно разница почти незаметна, но в целом освещение очень меняет впечатление от визуала.


Инвентарь


Сделал инвентарь максимально удобным в использовании, очень им доволен. Также добавил возможность читать подробное лорное описание предмета.

Stillborn Slayer Инди, Gamedev, Разработка, Игры, Ретро-игры, Дневник разработки, Steam, Длиннопост

куча новых артефактов!!


Ну и да, раньше предметы в инвентаре были просто иконками с текстом, сейчас они все реально работают (написал к ним код короче)


Переделка HUD'а


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

Stillborn Slayer Инди, Gamedev, Разработка, Игры, Ретро-игры, Дневник разработки, Steam, Длиннопост

Ну и к слову, пост про это стал моим самым удачным на реддите.


Негативные эффекты


Не знаю что со мной, но я просто не могу создать игру в которой не будет эффектов по типу кровотечения, яда и прочего. Собственно Stillborn Slayer не стал исключением.

Stillborn Slayer Инди, Gamedev, Разработка, Игры, Ретро-игры, Дневник разработки, Steam, Длиннопост

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

Яд - накапливается если стоять на луже яда или еще чем-то таком.

Страх - пока на игроке висит этот эффект, то он получает двойной урон.

Замедление - уменьшает скорость перемещения и длину переката.


Также эти эффекты можно накладывать и на противников (кровотечение работает как в DS).


Спасибо за внимание!


Не забывайте протестить игру и написать фидбек! (чтобы автор его увидел - пишите в его группе вконтакте) Также, если игра понравилось - добавляйте в вишлист, это очень мотивирует работать.

Источник

Показать полностью 8
Инди Gamedev Разработка Игры Ретро-игры Дневник разработки Steam Длиннопост
1
88
twinkly
twinkly
3 года назад
Лига Геймеров

OVERGUN: DEVLog1⁠⁠

Автор: Nil Efremenkov

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

Геймплей с новыми роботами


Legacy

OVERGUN: DEVLog1 Инди, Инди игра, Gamedev, Разработка, Видеоигра, Шутер, Дневник разработки, Видео, Длиннопост

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

OVERGUN: DEVLog1 Инди, Инди игра, Gamedev, Разработка, Видеоигра, Шутер, Дневник разработки, Видео, Длиннопост

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

OVERGUN: DEVLog1 Инди, Инди игра, Gamedev, Разработка, Видеоигра, Шутер, Дневник разработки, Видео, Длиннопост
OVERGUN: DEVLog1 Инди, Инди игра, Gamedev, Разработка, Видеоигра, Шутер, Дневник разработки, Видео, Длиннопост
OVERGUN: DEVLog1 Инди, Инди игра, Gamedev, Разработка, Видеоигра, Шутер, Дневник разработки, Видео, Длиннопост

Переделка


Новый ИИ ставил следующие задачи: весело, быстро, новых роботов можно добавлять без болезненно. В игре ИИ разделён на часть которая отвечает за базовый функционал роботов(куда стрелять, как стрелять, куда идти как идти) и часть отвечающая за принятия решений. Переделки коснулось всё, кроме системы которая отвечает за принятие решений. Она была лишь изменена под новые компоненты, но со своей работой справлялась хорошо.

OVERGUN: DEVLog1 Инди, Инди игра, Gamedev, Разработка, Видеоигра, Шутер, Дневник разработки, Видео, Длиннопост

Робот ремонтник


Редизайн


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

OVERGUN: DEVLog1 Инди, Инди игра, Gamedev, Разработка, Видеоигра, Шутер, Дневник разработки, Видео, Длиннопост
OVERGUN: DEVLog1 Инди, Инди игра, Gamedev, Разработка, Видеоигра, Шутер, Дневник разработки, Видео, Длиннопост

Добавил и не мало новых роботов. Некоторые из них:

OVERGUN: DEVLog1 Инди, Инди игра, Gamedev, Разработка, Видеоигра, Шутер, Дневник разработки, Видео, Длиннопост

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

OVERGUN: DEVLog1 Инди, Инди игра, Gamedev, Разработка, Видеоигра, Шутер, Дневник разработки, Видео, Длиннопост

Летающая мина. Атакует только когда игрок находится рядом. Летит на него и рядом взрывается.

OVERGUN: DEVLog1 Инди, Инди игра, Gamedev, Разработка, Видеоигра, Шутер, Дневник разработки, Видео, Длиннопост

Код


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

OVERGUN: DEVLog1 Инди, Инди игра, Gamedev, Разработка, Видеоигра, Шутер, Дневник разработки, Видео, Длиннопост

Индикаторы подрывников.


Имитация деятельности


Ещё когда были старые роботы, пришлось лепить систему которая их куда ни будь отправляла, и решала когда и кто атакует. В этой системе есть параметр который отвечает за количество атакующих. Для разных сложностей разное количество, для normal’а = 4. В тот момент, когда 4 робота из всей толпы атакует игрока, остальные делают вид бурной деятельности :) Они просто перемещаются от точки к точке, которые раскиданы по арене. Те кто не атакует выбирает точки для маршрута которые находятся максимально далеко от игрока. Точки которые ближе всего к игроку используют роботы которые атакуют СЕЙЧАС. Пересчёт дистанции и выборка атакующих роботов производится раз в секунду.

OVERGUN: DEVLog1 Инди, Инди игра, Gamedev, Разработка, Видеоигра, Шутер, Дневник разработки, Видео, Длиннопост

Способ выборки атакующих


Для выборки я использовал концепцию Utility AI. Суть её заключается в том что каждое действие которое имеет в себе Агент ИИ, набирает очки, в зависимости от обстоятельств. Действие которые набрало больше всего очков - выполняется. По такому принципу рассчитываются атакующие роботы. Каждый параметр: расстояние до игрока, видит ли игрок робота, целится ли он в него, наносит ли он ему урон - конвертируются в очки. Такую систему очень удобно балансировать с помощью кривых. Коэффициенты очков можно настраивать отдельно для каждого типа, исходя из его особенностей. Например для роботов которые взрываются, коэффициенты чуть ниже остальных, потому что атака у них не прямая как у стреляющих. Подрывник может пробегать мимо игрока просто к точке по маршруту, и при этом взорваться ему никто не помещает, несмотря на то что его нет в списке атакующих в этот момент. А для робота с дробовиком и щитом самый высокий коэффициент на параметр дистанции, потому что смысл от дробовика будет только если игрок находится близко.

OVERGUN: DEVLog1 Инди, Инди игра, Gamedev, Разработка, Видеоигра, Шутер, Дневник разработки, Видео, Длиннопост

Неочевидная проблема


Все локации которые я уже сделал, хоть их и не много готовых, отправились в топку. Причина этому что старый дизайн сковывает движения ИИ и игрока. Сейчас локации кажутся очень тесными. Пространство нужно увеличивать как минимум раза в два. Поэтому приходится сейчас делать перепланировку того что уже есть, а при создании будущих локациях, уже буду учитывать это. Радует хотя бы то что ассеты локаций мне переделывать не придётся :)


P.S Скоро наконец будет страница в steam


Следить за игрой можно в группе вконтакте

Источник

Показать полностью 14
Инди Инди игра Gamedev Разработка Видеоигра Шутер Дневник разработки Видео Длиннопост
8
7
FearThunder
FearThunder
3 года назад
Лига Разработчиков Видеоигр

Дневник разработки : CosmicCastaway #4⁠⁠

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


+ Теперь ресурсы при добычи из астероидов будут постепенно исчезать, что поможет в понимании на какой стадии находится их добыча.

+ Теперь игра использует таблицы данных (DataTables), это очень удобно для хранения данных о различных модулей и их балансе , раньше я использовал отдельные классы для этого.

Как пример данные о двигателе.(правда, пока что он один).


+ Провёл тотальный рефакторинг компонентов корабля, теперь каждый элемент представляет собой полноценный модуль, и использует таблицы данных для выбора параметров.

Дневник разработки : CosmicCastaway #4 Gamedev, Инди игра, Разработка, Unreal Engine 4, Дневник разработки, Видеоигра, Видео, Длиннопост

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


Скачать и помочь проекту можно на Itch.io.

Показать полностью 1 1
[моё] Gamedev Инди игра Разработка Unreal Engine 4 Дневник разработки Видеоигра Видео Длиннопост
4
898
twinkly
twinkly
3 года назад
Лига Геймеров

OverGun⁠⁠

Автор: Nil Efremenkov

Начиная с этой статьи, я хотел бы положить начало devlog’ам по игре OverGun, которую в одиночку разрабатываю с 2016 года на игровом движке Unity5.
OverGun Gamedev, Инди игра, Инди, Разработка, Видеоигра, Шутер, Дневник разработки, Видео, Длиннопост

OverGun - это сингловый шутер, помесь DooM и Titanfall с блэк-джеком и роботами. От дума взял динамику, от титанфола бег по стенам и эстетику. Мультиплеер собираюсь добавить после релиза.

На данный момент готовы все геймплейные механики, и сейчас прототипирую сюжетные локации. Если я не помру, то игра должна выйти в конце 2022 года :D


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

OverGun Gamedev, Инди игра, Инди, Разработка, Видеоигра, Шутер, Дневник разработки, Видео, Длиннопост
OverGun Gamedev, Инди игра, Инди, Разработка, Видеоигра, Шутер, Дневник разработки, Видео, Длиннопост
OverGun Gamedev, Инди игра, Инди, Разработка, Видеоигра, Шутер, Дневник разработки, Видео, Длиннопост

В следующем, нормальном devlog'е я планирую рассказать про то как в игре работает ИИ т.к последние месяцы занимался переделкой данной системы и добавлял новых роботов.

Источник

Показать полностью 3 1
Gamedev Инди игра Инди Разработка Видеоигра Шутер Дневник разработки Видео Длиннопост
54
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии