Разработка ремейка методами чайника
Одним прекрасным детским днем, отец принес домой диск с игрой про море, корабли, ром и пиратов. Агрх! Якорь мне в… что это была за игра! Возможность бороздить морские просторы, абордировать чужие судна, захватывать тяжелые галеоны на небольшом бриге, “грабить корованы” груженные золотом! И не важно что я не понимал, почему мой персонаж стал похож на жмых, после того как я пересадил его на крупное судно. Не важно что я фейлил почти все квесты которые мне выдавали. Главное - мне было весело!
Разумеется к тому времени когда я уже стал подростком, удовольствие от игры никуда не пропало. Я уже понимал как ней все заведено, знал как работают перки и статы, знал как поднять лишнее песо, знал что в игру нужно играть только в окне, иначе вылеты - гарантированы. Это была прекрасная игра как для ребенка, так и прожженного самовара, который может на баркасе захватить мановар.
Но почему то, никому кроме меня она не нравилась. Я показывал друзьям свою эскадру из 5 кораблей, каждый из которых был больше чем некоторые форты городов. Показывал как влетаю в сражение между разными нациями, и разношу их корабли в щепки. Показывал захват кораблей, городов и куртизанок в местном борделе! Но их это не трогало… “Ну, наверное среди моих друзей нет фанатов пиратской тематики” - думал я, продолжая рассекать морские волны на своем Летучем Голландце.
Но вот спустя пару лет выходит модная молодежная Black Flag в сеттинге великой конвейерной серии. И разумеется множество моих друзей и знакомых, тут же подняли пиратский флаг, отправившись навстречу морским приключениям.
Игра бесспорно получилась веселой, но невероятно аркадной. Через десяток часов игры, в море уже попросту скучно находиться, и корабль становиться всего лишь инструментом для прохождения миссий. Я было думал что сейчас мои друзья поймут, в чем прелесть того, что я им советую. Но на деле все стало только хуже, из-за невероятной разницы в графике и высоком пороге для входа, мне начали говорить что игра для дедов и их приближенных. Но меня это не так уж и задевало.
С тех пор прошло уже много лет. Не так давно, я отдыхал на Кубе, и как вы думаете, какую игру я там запустил…?
Как некоторые могли догадаться, речь идет о легендарной серии игр Корсары! А предыстория о моем отношении к ней, для того чтобы статья пропиталась эмоциями, а с ней и читатель. Люблю маринованного в эмоциях читателя.
Цель
Так к чему все это?
К тому, что на текущий момент я безработный, и буду таковым еще несколько месяцев. А потому, я подумал, почему бы не поиграться в игровую индустрию, и не попробовать сделать лайт-ремейк Корсаров на Unreal Engine 5? Т.к. у меня есть опыт в программировании, хоть и не в геймдеве, но я как минимум что-то должен смочь сделать. А о том как идет процесс, с какими трудностями я сталкиваюсь, я буду отписывать в своих статьях. Может кому то это будет интересно, а может кто-то даже сможет помочь советом.
В качестве ресурсной базы, я буду использовать модели из текущих Корсаров, и всевозможные тематические плагины для UE. Логика игры в целом будет соответствовать оригиналу, но некоторые моменты я буду ребалансить на правах автора(в основном это логика наземной части игры).
В качестве промежуточной цели, планирую создать каркас игры с морской и наземной механиками, которые можно будет легко расширять с помощью DLC-подобных пакетов. Таким образом, можно будет сохранить модульность, и не допустить бардака что случился в исходниках оригинала.
Первые шаги
Что самое важное в игре про морские сражения? Правильно - море! Спасибо, капитан! Море должно выглядеть если не идеально, то максимально близко к идеалу, ведь игрок будет его созерцать большую часть геймплея. Так же, мне крайне необходимо множество настроек для манипуляции с морской поверхностью, скорость и высота волн, их направление, звук, кол-во пены, да и в целом внешний вид… В общем, изучив возможности встроенного в UE плагина Water, я понял что мне его будет недостаточно, поэтому я пошел на поиски достойного плагина, и нашел Oceanology!
Цена в 160 вечнозеленых конечно кусачая, но внешний вид и тестовая локация с кораблем того стоит, подумал я, ведь тут есть море, есть корабль! Это то что мне нужно! Нет ничего проще чем скопировать то, что уже есть, и просто модифицировать это под свои нужды! Но, к сожалению не все так просто как могло бы показаться на первый взгляд. Корабль по большей части статичен, разве что колыхание на волнах добавляет ему шарма, но и тут не обошлось без проблем.
На плаву корабль поддерживают своеобразные поплавки, которые закреплены за определенной частью корабля. И если поплавок погружается под воду, то физика пытается вернуть его на поверхность.
Но физика никак не работает, если поплавок находится над уровнем моря, и тогда корабль аномально может стоять на гребне волны лишь частью своего корпуса, что совершенно недопустимо!
Таким образом, стало очевидно, что необходим либо другой плагин для воды, либо каким-то образом фиксить физику в текущем, что я без опыта до 3-го тысячелетия буду делать. По итогу я продолжил свои поиски с мрачными мыслями, что зря выкинул столько денег…
Покопавшись в ютубе, я нашел видео с демонстрацией плагина Water Physics с весьма интересной физикой с учетом формы и объема большого корабля. Но наученный горьким опытом, не стал сразу его покупать, а пошел искать демо версию или пиратку, чтобы сперва оценить как оно будет работать в моих условиях.
На мое счастье, автор разместил у себя на сайте демо версию плагина. Но что куда более круто - у плагина есть прямая интеграция с Oceanology! Значит я не зря потратил столько денег, за это стоит выпить рому!
Разобравшись с морем и его физикой, встал вопрос о погодных эффектах. Все таки какое море без бушующего шторма и грома с молнией? Самым красивым решением что я нашел, стал Ultra Dynamic Sky в комплекте с Ultra Dynamic Weather.
Немного шаманства с настройками и вот какая красота получается:
Теперь когда вопросы с внешним видом моря решены, можно приступать к анализу переноса моделей кораблей в игру. И вот тут начинается настоящее веселье, о котором я расскажу в следующей главе… да и вообще-то говоря не только лишь следующей. Модели кораблей в корсарах оказались на удивление очень проработанными и взаимосвязанными. Паруса связаны веревками с мачтой и корпусом, положение матч зависит от направления ветра и все это должно органично друг с другом взаимодействовать. Не говоря уже о том, что каждая мачта является разрушаемым объектом и нужно это учитывать при проектировании логики.
Если вам понравилась статья, то буду благодарен за ваши комментарии, вопросы или советы! Увидимся в следующей статье посвященной экспорту моделей из движка корсаров, и их адаптации под формат Unreal Engine.