Из Ruby в GameDev #1
Как-то вечером за очередным просмотром прохождения инди-хоррора меня осенила мысль: я же тоже могу делать игры! Так началась моя история в гейм-деве. Опыт разработки у меня есть (4 года с Ruby on Rails), поэтому трудностей быть не должно, думал я, сейчас посмотрю пару туториалов по юнити и сразу же сделаю мега классную мобильную игру, срублю миллионы и уйду в закат. Но реальность чуть сложнее :) Идея сформировалась быстро: лет, эдак, 8 назад залипал я в онлайн шутер TDP 4, поэтому сразу было решено: делаем мобильный 2D шутер с видом с боку. Беглый гуглеж показал что подобное есть и для Android/iOS, но я ведь могу сделать лучше :) На затравку прикреплю видео с тем что у меня получилось на текущий момент
Старт был положен, Unity установлена на компьютер, пару видосиков на ютубе дали базовое понимание что тут происходит и что с этим можно делать. Я сразу взялся изучать примеры предоставляемые разработчиками Unity. После пары вечеров под отладчиком и изучением кода я уже был готов создать свой проект и заняться собственно разработкой. Во многих местах пишут что графика не главное, главное геймплей, поэтому не бегите за графикой, сделайте прототип на квадратах и кругах, если будет играбельно - займетесь графикой, но такой путь не для меня, на Unity Assets Store я нашел классный пак с разными персонажами и тонной различного оружия, которое уже было анимировано, умело стрелять передвигаться. Для меня это было находкой, не пожалев 12$ я купил этот пак и начал интегрировать в свой проект. В целом пак зашел нормально, без косяков и трудностей, однако на мобилке почему-то всплыл баг и часть песонажа не подгружается (на видео видно что все без глаз и без волос).
Итак, первостепенная цель такова: в игре один "уровень", мы играем за некоего солдата миссия которого убивать врагов. На поле боя все воют со всеми, время боя ограничено. По мере игры нам будет открываться новое оружие чтобы убивать врагов еще лучше. Если проект будет интересен игрокам в будущем это может перерасти в мультиплеерный шутер.
Раньше я думал чтобы делать игры нужно знать C#, теперь я думаю, что для того чтобы делать игры нужно знать: линейную алгебру, геометрию, физику, а так же иметь мозги :) С первых же минут меня начали пугать такие слова как векторы, нормализация, синусы/косинусы, трассировка лучей, оптимизация... В общем было страшно, но интересно!
На сегодняшний день у меня реализован базовый функционал: простейший AI, враги респавнятся с рандомным оружием, основные механики управление персонажем есть. На удивление мне оказалось очень трудным придумать хоть немного интересную планировку платформ, глядя на аналоги вроде понимаю что нужно и чего хочу, но как сажусь делать сам - ступор.
Над чем работаю: хочу сделать ботов чуть умнее, для меня сейчас большая проблема научить их "ориентироваться" на карте (к примеру, как пройти к противнику, который на пару платформ выше). Так же мне не совсем нравится текущее управление, постараюсь сделать его чуть удобнее.
На этом пока все, постараюсь делиться прогрессом время от времени, а так же буду рад увидеть комментарии общественности :)