Скажем, крик души или, скорее, опрос для тех, кто учится или умеет работать с змеем Python. Решил узнать, насколько вообще питоноводам трудно создавать графический интерфейс.
В данном случае, все конструкторы-интерфейсы обычно написаны на C или еще на чем-то и довольно старом. Основной минус заключается в их загроможденности непонятными настройками.
Собственно, сейчас я написал упрощенный инструмент для создания пользовательского интерфейса для своих нужд. Мне наскучило использовать методы grid и pack, поэтому я для себя сделал минимальный функционал через place. Интересно услышать мнение тех, кто разбирается в этом, и стоит ли развивать функционал. Может быть, у кого-то есть идеи?
для внимательных в видео есть ошибка при смене языка, допустил ошибку когда делал дополнения. В целом вообще может быть уберу перевод и оставлю только англ. В планах в целом сделать для себя графический конструктор python с возможность конвертировать и в php/html/css и в другие форматы, с более интересным функционалом, к примеру что бы можно было грубо говоря сразу из проекта назначать кнопкам функции, логику и другие плюшки. Так же запилить справочник.
Вы думаете, что это разный текст? А на самом деле — один и тот же. Разбираемся, что такое рандомизация и для чего она используется.
Пример рандомизации одного и того же текста для двух объявлений на Авито
Приветствую! Меня зовут Данила Справцев, я — веб-разработчик. Специализируюсь на разработке, запуске и сопровождении веб-сервисов, онлайн-платформ и ботов.
Ко мне обратился клиент с запросом разработки сервиса автоматической публикации объявлений на Авито с возможностью рандомизации любого текста.
Автоматическая публикация — дело весьма интересное и заслуживает отдельного материала 😀
В данной статье рассказываю про основополагающую по работе с любыми текстами и сервисами объявлений — рандомизацию и генерацию текстов.
Что такое рандомизация текста
Это изменение оригинального текста, путем выбора, перестановки или перебора заранее заготовленных слов по формулам
Например, если мы введем в фигурных скобках и разделим через символ "|" {Здравствуйте|Привет} после рандомизации получим один из вариантов:
Здравствуйте
Привет
Это является формулой выбора из множества
Пример генерации через случайный выбор
Возможности рандомизации
Большинство рандомизаторов поддерживают следующие формулы
{слово 1|слово 2} — случайный выбор => слово 1
[слово 1|слово 2+, +] — перестановка => слово 1, слово 2
В случае с перестановкой, между знаками + (плюс) указывается разделитель, в данном случае это запятая и пробел
И как бы на этом все, погуглив пару десятков рандомизаторов, никакого больше функционала я не нашел
В моем случае, клиент занимается товаркой и ему нужно больше возможностей применения, поэтому расширяем базу и добавляем несколько новых формул:
[буква] [БУКВА] - Случайная буква, обычно используется для артикулов
[letter] [LETTER] — случайная английская буква
[артикул] [АРТИКУЛ] — готовый артикул
[число] — цифра от 1 до 9
[от:число-число] ([от:1-999]) — случайное число в заданном диапазоне
%позавчера% — дата в формате д.м.г
%вчера%— дата в формате д.м.г
%сегодня%— дата в формате д.м.г
%завтра%— дата в формате д.м.г
%послезавтра%— дата в формате д.м.г
Случайные буквы и цифры - самый распространенный запрос функционала, которого не хватает в рандомизаторах, они позволяют уникализировать артикулы, стоимость, размерные сетки и т.п.
Как это можно применить
Допустим, у вас есть объявление с готовым текстом и вы хотите создать второе, изменив ему только обложку, но не переписывая весь текст с нуля.
И тут мы приходим к рандомизации, нам нужно создать из первоначального текста шаблон, добавить в него формулы и рандомизировать для нового объявления.
Давайте попробуем, я не буду долго выдумывать текст, в котором смогу применить все формулы, напишу буквально парочку строк для примера
Представим, что вы владеете бизнесом по производству столов в стиле лофт и составляете следующий текст для своего объявления:
Производим для Вас стoлы в стилe лофт. Мы являемся производителем продукции
Hаши cтолы пoдxoдят кaк компьютерный cтoл, письмeнный cтoл, oфиcный стол или paбочие cтолы, тaк жe oни oтлично впишутся в любой интерьeр как куxoнный стол так и обеденный стoл.
📦 Стoлы индивидуaльно зaпaкованы в коробки кoмплeктацией из: - Столешницы из ЛДСП толщиной 25мм. - Усиленного подстолья высотой 75 см с регулировкой неровностей ±2 см., фурнитура и инструкция идут в комплекте!
⚡Так же изготавливаем столешницы под любые ваши размеры, звоните и запрашивайте цены!
💴 Оплата: перевод, нал, безнал.
🎨 Цвета доступные к заказу: - Дуб табачный крафт - Дуб белый крафт - Венге - Дуб золотой крафт - Дуб серый - Дуб бронза - Аррива - Шимо светлый - Сонома - Ателье темный - Ателье светлый - Белый
В данном объявлении у нас как минимум 3 неизменяемых блока:
Размеры и цены
Варианты оплаты
Возможные цвета
Которые нам точно потребуются в новом объявлении, но если их никак не изменить, Авито может заблокировать объявлением с пометкой "Дубль"
В следствие, для этих блоков мы точно можем использовать "перестановку", легкую корректировку слов и цифр через "выбор" и "от"
По остальному тексту будем применять формулу "выбор"
Получаем следующий шаблон
{Производим для Вас|Пpедлaгaем Вам} {новые|современные|дизайнерские} стoлы в стилe лофт. {Столы пpoизводятcя на сoбcтвeннoм пpоизводствe🔥|Собственное производство🔥|Мы являемся производителем продукции🔥}
Hаши cтолы {отличнo|} {могут использоваться|пoдxoдят} кaк [письмeнный cтoл|oфиcный стол|компьютерный cтoл+, +] или paбочие cтолы, тaк жe oни oтлично впишутся в {любой|} интерьeр как куxoнный стол так и обеденный стoл.
📦 Стoлы индивидуaльно зaпaкованы в коробки кoмплeктацией из: [- Столешницы из ЛДСП толщиной {20|25}мм.|- Усиленного подстолья высотой {70|75} см с регулировкой неровностей ±[от:1-5] см., фурнитура и инструкция идут в комплекте!+ +]
🎨 Цвета доступные к заказу: [- Дуб золотой крафт|- Дуб табачный крафт|- Дуб белый крафт|- Дуб серый|- Дуб бронза|- Венге|- Аррива|- Шимо светлый|- Сонома|- Ателье темный|- Ателье светлый|- Белый+ +]
Артикул {товарного|} предложения: [АРТИКУЛ]
🤝 Ждем ваших сообщений и звонков, добавьте наше объявление в избранное что бы не потерять 🤝
Результат
Немного посидев над текстом, получаем шаблон, готовый к использованию в рандомизации для новых объявлений
Сгенерированный текст после рандомизации:
Пpедлaгaем Вам современные стoлы в стилe лофт. Собственное производство🔥
Hаши cтолы могут использоваться кaк компьютерный cтoл, письмeнный cтoл, oфиcный стол или paбочие cтолы, тaк жe oни oтлично впишутся в интерьeр как куxoнный стол так и обеденный стoл.
📦 Стoлы индивидуaльно зaпaкованы в коробки кoмплeктацией из: - Столешницы из ЛДСП толщиной 20мм. - Усиленного подстолья высотой 75 см с регулировкой неровностей ±6 см., фурнитура и инструкция идут в комплекте!
⚡Так же изготавливаем столешницы под любые ваши размеры, звоните и запрашивайте прайс-лист!
💴 Оплата: перевод, наличные, безнал.
🎨 Цвета доступные к заказу: - Аррива - Дуб табачный крафт - Дуб серый - Белый - Сонома - Дуб белый крафт - Ателье светлый - Шимо светлый - Дуб бронза - Ателье темный - Дуб золотой крафт - Венге
Артикул предложения: H6LPJCP8
🤝 Ждем ваших сообщений и звонков, добавьте наше объявление в избранное что бы не потерять 🤝
Немного фишек о формулах
Между + + (знак плюса) я использую перенос на новую строчку (энтер), чтобы каждый текст из перечисления был на новой строчке, а если мне нужно чтобы слово либо было, либо вообще не было, то использую пустой второй вариант — {1 вариант|} как в этом примере.
Так же отмечу, что можно использовать все, не только текст, но и цифры и символы {1|2}, {$|₽}
Результат генерации текста в рандомизаторе
Рандомизиторовать можно не только описания, но и заголовки объявлений
Пример использования рандомизации заголовков для массовой публикации объявлений. Случайный профиль
Заключение
Рандомизация — это мощный инструмент любого товарного (и не только) бизнеса, которым не стоит пренебрегать.
В этой статье я лишь ограничивался Авито, но не стоит забывать, что есть еще Озон, Вайлдберрис, Яндекс Маркет и другие площадки с сотнями селлеров, которые точно используют рандомизацию текста между своими товарами.
Можно ссылку на рандомизатор?
Да, если вам понравилось, или столкнулись с проблемами, опишите свой опыт в комментариях, буду рад помочь или просто почитать. 😀
Захотелось вот поделиться шейдерной анимацией игровой клавиатуры, которую делал пару дней. (Руками без всяких там шейдерграфов.) Кстати, настоящие аниме-пикабушники могут узнать кружочки с монитора.
Вообще я ужасен в шейдерах. Сначала, использовал относительную позицию и "анимация" была овальной, а не круглой.
Затем, перешёл на глобальные координаты экрана и до меня дошло, что анимация стала "круглой", хотя клавиатура наклонена. Исправил обычным костылём: вернулся к относительным координатам и просто сделал текстуру подсветки квадратной вместо того, чтобы париться с умножением матриц.
На волне своих же постов посвящённых вариантам интеграции "родных нам коммунистов" в сеттинг средневекового фэнтези, задумался над тем, а почему бы собственно не сделать собственное научпопфэнтези с коммунизмом и расовой сегрегацией. Эту работу можно делать сообща, подобно тому как развивается вселенная "Самосбора".
Ниже представил набросок нового сеттинга, который можно разработать на базе DnD5 с уклоном в научную фантастику, космос и сложные дилеммы. Добавим щепотку Русской культуры и вот уже какая-то своя мульти вселенная обрисовывается.
Общая Концепция
Исторический Фон: Мир, в котором СССР не распался, а идеи коммунизма охватили всю планету, ведя к миру и научному прогрессу.
Космическая Эра: Человечество вырвалось в космос, колонизируя новые миры и вступая в контакт с инопланетными цивилизациями. Тысячи лет вперёд.
Технологические Достижения: Ретрофутуристические технологии, такие как межзвездные корабли, космические станции, роботы и прочее.
Раскол в обществе: Расширение колоний, и контакт с иными цивилизациями привёл к отделению некоторых колоний и формированию противоборствующих фракций. (Подобно событиям описываем в рассказе Ефремова «Час Быка»)
Ориентирование на реализм: Уход от всемогущей магии мира DnD к более приземлённым способностям обычных людей, улучшенных технологиями или некими аномалиями.
Основные Темы и Мотивы
Коммунистические Идеалы: Исследование идеалов равенства, братства и справедливости на межгалактическом уровне.
Капиталистические Идеалы: Индивидуализм, свободный рынок и польза противоборства идей отдельных индивидов для общества в целом.
Конфликт Идеологий: Взаимодействие с колониями и цивилизациями, где преобладает капитализм или другие формы социального устройства.
Исследование и Познание: Открытие новых миров и культур, контакты с инопланетными расами.
Взаимодействие с ИИ. Роботы и андроиды, транс гуманизм и сознание Роя. Создают не мало дилемм (подобно тому, как это было в новеллах Айзека Азимова «Я Робот»)
Контакт с отсталыми мирами: в рамках исследований игроки будут встречать миры, населённый не дошедшими до космической эпохи цивилизациями. И перед игроками будет стоять вопрос о вмешательстве или не вмешательстве в культуру и быт местного населения.
Расы и Цивилизации
Люди: базовая раса, подобно тому как она разнообразна в класcическом DnD может быть так же расширена за счёт влияния на человека иных условий колоний
Андроиды: Роботы с ИИ на борту, достаточно человечны что бы выглядеть и вести себя как люди, но обладающие своей собственной мотивацией, установленной создателем.
Киборги: Люди с имплантами, долго живущие, сильные, но утратившие часть своей человечности.
Яги и Ягры: Мифические существа, адаптированные к космическому сеттингу, возможно, обладающие уникальными способностями или технологиями. (Отсылка к Ягам из фэнтези мира Романа Папсуева)
Прочие Инопланетные Расы: Создание новых инопланетных цивилизаций, возможно, вдохновленных русской мифологией и литературой. С целью концентрации мира вокруг Русской культуры и её ответвлений.
Варианты Игровых Классов и Способностей
Космический Исследователь: Класс, специализирующийся на исследовании новых миров и технологий.
Коммунистический Дипломат: Класс, фокусирующийся на переговорах и распространении идеалов коммунизма.
Космический десантник: Военный класс, защищающий колонии и сражающийся против угроз.
Космический Шаман: Жрец новой религии рождённой на отколовшихся и деградировавших колониях, проповедует веру во вселенную (развивая идеи современного течения НьюЭйдж) использующий в своих обрядах биологические элементы грибов, растений с экзотических планет, которые неожиданным образом влияют на живые не живые организмы.
Торговец контрабандист: Индивидуалист из колоний Капиталистического уклада, ищет выгоду и удачные бизнес проекты, может быть как переговорщиком так и ловким бойцом
Варианты Сюжетных Линий и Квестов
Миссии Колонизации: Задания по установлению новых коммунистических колоний.
Дипломатические Миссии: Решение конфликтов и ведение переговоров между различными цивилизациями.
Исследовательские Экспедиции: Открытие и изучение неизведанных миров и их обитателей.
Новые Механики и Правила
Космические Путешествия: Механики перемещения между планетами и системами.
Технологические Улучшения: Система улучшений и модификаций для космических кораблей и оборудования.
Межзвездные Конфликты: Правила для космических сражений и дипломатии.
Фракции
Коммунистическая Альянс:
Описание: Объединение планет и систем, стремящееся к общественному равенству и справедливости. Политика альянса основана на принципах коллективизма и государственного планирования.
Цели: Распространение коммунистических идеалов, поддержка новых колоний, защита прав рабочих и борьба против эксплуатации.
Капиталистическая Конфедерация:
Описание: Союз планет, поддерживающих свободный рынок и частную собственность. На этих планетах процветает предпринимательство, но сильны социальные неравенства.
Цели: Расширение влияния через торговлю и экономические сделки, защита частного бизнеса и инвестиций.
Нейтральные Колонии:
Описание: Миры, которые пытаются сохранить независимость или следуют своим уникальным формам правления, отличным от двух основных идеологий.
Цели: Сохранение автономии, развитие собственных культурных и политических систем.
Группы Сопротивления:
Описание: Различные повстанческие и революционные группировки, борющиеся против доминирующих фракций по разным причинам.
Цели: Могут варьироваться от борьбы за независимость до радикальных изменений в общественном устройстве.
Влияние на Сеттинг
Конфликт и Дипломатия: Различные фракции могут соревноваться за влияние, ресурсы и территории, что создает множество возможностей для дипломатических миссий, шпионажа и открытых военных конфликтов.
Экономические Системы: Отличия в экономических системах фракций могут влиять на доступность ресурсов, технологий и снаряжения.
Социальные Вопросы: Игровой мир может исследовать темы социальной справедливости, неравенства, свободы и контроля.
Сюжетные Линии: Основные сюжетные линии могут касаться политических интриг, революций, борьбы за независимость или попыток установления мира между враждующими фракциями.
Ролевая Игра
Мотивации Персонажей: Персонажи игроков могут иметь различные мотивации, зависящие от их отношения к фракциям и убеждениям.
Моральные Дилеммы: Игроки могут столкнуться с моральными дилеммами при выборе стороны или решении конфликтов.
Наша команда занимается приложением для анализа и диагностики заболеваний у растений и хотелось бы узнать ожидания от приложения и мнение обычных работяг.
Все анимации в игре - это пронумерованный 2D рендер с 3D мешей.
В этой публикации я хочу показать вам как устроены анимации ходьбы протагониста в моей игре Space Dezinsector. Цикл ходьбы разделён на две составляющие: когда Дэз стоит на правой ноге и заносит вперёд левую и наоборот.
Если во время этой анимации продолжать держать "D", то ходьба продолжится, но если отпустить, то Дэз, вместо моментального перехода в состояние покоя, использует отдельную анимацию ожидания в шаге.
Эта анимация длится совсем недолго и если во время её воспроизведения нажать "D", то продолжится ходьба, как будто движение не останавливалось, а если ничего не нажимать, то Дэз использует анимацию перехода от ожидания в шаге в состояние покоя.
Как вы уже заметили, ходьба начинается тоже с отдельной анимации. Дэз делает небольшой шаг вперёд, после чего начинает движение в случае, если зажата "D". Если же Дэз начал движение, но "D" не зажата, то по завершению первого шага происходит ожидание в шаге, после чего герой остановится. Завершающие шаг анимации есть и для другой ноги, если Дэз завершит движение на ней.
Вот такая, немного мудрёная схема.
А вам встречались 2D игры с такими переходами между ожиданием и ходьбой?
На этом статья завершается, спасибо за внимание, до встречи в следующем посту!
Вы можете поддержать Space Dezinsector, добавив его в список желаемого в Steam.
Привет, Pikabu! Несколько лет прошло с моего последнего появления здесь, это было несколько лет большого количества работы, участия и побед в геймджемах, старта потенциально крутых проектов, их закрытия или заморозка, старта новых. Много попыток, "ушибов" и опыта. Хочу рассказать вам о моей игре, которая первая из всех моих поделок с наибольшей вероятностью дорастет в коммерческий релиз. ВНИМАНИЕ! ВИДЕО НЕ ДУБЛИРУЕТ ТЕКСТ ПОСТА. Пост является дополнением к видео.
Программная часть проекта на 75−85% завершена, но осталось еще много работы на визуалом, интерфейсом и звуком. Однако именно реализация геймплея дарует мне уверенность в том, что проект не загнется из-за амбициозности или сложности в реализации. Знакомьтесь с проектом, который на данный момент несет имя D.F.D, приятного просмотра, а затем прочтения поста!
D.F.D — это аркадная автомобильная дерби игра на уничтожение в постапокалиптическом мире не особо далекого будущего, где высокие технологии соседствуют со штуками из говна и арматуры, а номады на своих смертоносных машинах соперничают за ресурсы, территорию и влияние. Это зубодробительный автомобильный экшен с кучей взрывов под драйвовый саундтрек!
Начало разработки
Прошлогодняя геймджемная версия игры была далеко несовершенной, и мы закономерно получили много критики. Часть этой критики я принял сразу, на некоторую понадобилось время, чтобы ее принять, с чем-то до сих пор не согласен, но проект изменился так радикально, что я думаю, она больше не актуальна. Эта критика повлияла на проект в лучшую сторону.
В прошлом году я пытался продолжить разработку после конкурса, но она довольно быстро заглохла. В марте этого года я выложил трейлер нашей джем-игры Temporal Renaissance, которая на джеме Two Weeks Game 23 заняла второе место, и один из моих подписчиков спросил: «почему я не выкладываю такие игры в „Яндекс Играх“?», мне не было что сказать, но я задумался: «Действительно, почему?». Я предпочитаю премиальный сегмент рынка видеоигр и никогда даже не смотрел в сторону того, чтобы сделать что-то для веба. Лет десять-пятнадцать назад может и тыкал какие-то игрушки на playgrounds и во вконтакте, но позже нет. В итоге я начал изучать, что там вообще сейчас происходит, почитал условия и в голове родился новый план: «Учитывая среднее качество игр на этих сервисах, почему бы не по-быстрому доделать некоторые геймджем проекты и не зарелизить их в тех же „Яндекс Играх“ и подобных площадках?». Я окинул взглядом наши самые удачные, на мой взгляд, геймджемподелки и решил, что до конца года смогу довести до ума 2−3 штуки, а там посмотрим, может и денежку какую принесут.
Великолепный план, Уолтер. Просто охеренный, если я правильно понял. Надёжный, как швейцарские часы.
Первой доделывать я решил D.F.D. Я поиграл в актуальный билд на свежую голову, выписал ряд вещей, что мне не нравились. Попросил под запись поиграть друзей (их геймплей вы и видели в ролике), после чего выписал и еще ряд тезисов. Учитывая тот факт, что нужно было не просто улучить геймплей, но и перерисовать графику, я заложил на проект максимум 3 месяца. Но вот уже конец сентября, а я выкатываю только первый дневник разработки, значит, что-то пошло не так…
Косячки щелкались, как семечки, но список задач толком не уменьшался. Любое изменение приводило к десяти новым. В итоге только на переписывание игрового процесса у меня ушло почти полгода, к тому же практически все делал один в свободное от основной работы время. Изменениям подвергся практически каждый аспект игры.
Геймплей
Во-первых, это, конечно же, камера, управление и физика машин. Для начала я отказался от классической для этой игры камеры, ибо она вызывала путаницу и была удобна разве что для альтернативного управления, которое мы не довели до ума. Еще в прошлом году я делал первый тест камеры от первого лица, но вышло максимально убого.
Камера была намертво прикреплена к машине, а так как и сами тачки управлялись дубово, то впечатление от такого геймплея было не самым радужным. Новая же реализация стала в разы более плавной и привычной по современным аркадным автогонкам. Смена ракурса и качественная реализация камеры не просто положительно повлияла на ощущения от игры, но и само управление теперь перестало путать игрока, не говоря уже о прицеливании во время стрельбы. К тому же теперь доступно несколько режимов камеры.
Далее предстояло сделать приятную аркадную физику для автомобилей. Если присмотреться к конкурсной версии, видно, что во время движения авто чуть ли не моментально меняют направление. Те самые пресловутые «утюги». Что-то похожее на занос присутствует только при использовании ручного тормоза.
Как было раньше:
Сейчас же вес машин чувствуется гораздо сильнее, автомобили при резких поворотах немного уходят в занос.
А при использовании ручника некоторые автомобили уходят в полноценный аркадный дрифт, и теперь вам не составит труда наносить врагам урон с пулеметов в стиле токийского дрифта. Даже гравитация теперь чувствуется гораздо естественнее, а корпуса машин немного мнутся при столкновениях.
Столкновения между авто по сути не работали так, как нужно. Технически они работали, машины сталкивались, урон наносился. Но было решительно не понятно, какая из машин получит урон и какой будет этот урон. Теперь же автомобили разделены на зоны, и физическое воздействие в разные части наносит разное количество урона авто. Урон зависит не только от скорости, но и от параметра «collision damage» у каждого авто. Более того, появились подбираемые тараны с разными свойствами.
Оружие во многом нужно было переработать. С одной стороны, упростить его применение, а с другой сделать более приятным и даже тактическим. Арсенал расширился, теперь в игре есть 6 стволов, от привычного минигана (который теперь выдается в единственном числе, но можно подобрать второй) до ультимативной и редкой «Сингулярной пушки». Каждое оружие уникально и имеет смысл его применять в разных ситуациях. Раньше при подборе нового вооружения старое заменялось, теперь же игрок имеет доступ ко всему поднятому оружию и может переключаться в зависимости от ситуации. После смерти же его количество разумеется сбрасывается.
Количество подбираемых на аренах объектов увеличилось. Раньше это были пушки, гаджеты, патроны и аптечки. Теперь появились еще упомянутые выше тараны, а также временные усиления. Патроны теперь подходят только к конкретному оружию, а аптечки восстанавливают лишь часть HP. Гаджеты уже нельзя подбирать, но можно подбирать заряды для автомобильных гаджетов.
Гаджеты теперь распределены по автомобилям, то есть каждый автомобиль обладает своим уникальным активным или пассивным умением, что делает их уникальными и более эффективными в разных ситуациях.
Также на уровнях появились интерактивные объекты, например, подбрасывающие панели, которые соответственно названию подбрасывают автомобили в воздух.
Ну и последнее глобальное изменение — это игровые режимы. Раньше был раздел «Аркады», где игрок мог настроить быстрый матч в одном из трех режимов. Теперь же глобальных разделов два: «Карьера» и «Аркада». «Карьера» — это полноценный одиночный режим с фиксированными испытаниями и разблокировкой контента в качестве прогрессии. «Аркада» же похудела на один из режимов, теперь их два: «Deathmatch на время» и «Deathmatch на количество жизней». Первый режим был и раньше, второй же — это доработанный режим «Одна жизнь», отличие теперь в том, что жизнь не одна. Количество настроек в быстром матче существенно выросло.
Интерфейс
Здесь предстояла большая работа по донесению до игрока разнообразной информации, тот же Рома в видео вообще не понял, что отображает таблица лидеров в конце матча, и это проблема. Интерфейс структурно полностью изменился, хоть визуально еще далеко не все отрисовано. Из удобств еще появилась полная поддержка геймпада и клавиатуры. Путешествовать по меню и настраивать игровые режимы в разы быстрее и удобнее делать это с клавиатуры, нежели тыкать мышкой в кнопочки.
Игровой UI также преобразился сильно, появился динамический прицел, который при использовании пушек с авто наведением красиво летает между целями. Также появился индикатор последнего врага, чтобы вы его не теряли на более больших локациях.
Левел-дизайн
Он был откровенно скучным и плохим, все было распихано наспех и не учитывало ни скорости машин, ни дальности возможного полета с трамплина, ни прочих метрик. Я вдохновился Twisted Metal и полностью переделал трассы, они не просто стали больше в ширь, но и ввысь. Локации стали многоуровневыми и каждый со своими приколами и особенностями. На данный момент все локации находятся в стадии «Блокинга», чтобы их можно было оперативно править и улучшать. Не смотря на размеры локаций в режиме с фиксированным количеством жизней не будет ситуации, когда вы не знаете где последний соперник. Как уже писал выше за решение этой проблемы выступает специальная система, которая указывает направление до него, а если тот находится в рамках экрана, то обводит в рамочку. Даже без этой системы все GUI элементы соперников всегда рендерятся поверх окружения, чтобы вы понимали даже сквозь стены где кто находится.
Так преобразилась локация «Небоскребы»
Одна из новых локаций «Каньон»
ИИ
Вел себя хаотично, не умел пользоваться окружением, специально подбирать аптечки и откровенно тупил. Например, вращался вокруг одной точки, застревал, пытался жопой таранить стены и т. д. Все это нужно было переделать. Механизм и логика выбора целей были переписаны. Тачки научились более оперативно сдавать задом и маневрировать в этом состоянии, а при застревании респавниться на ближайшей точке на NavMesh. Отдельной сложностью было подружить ботов с новыми, более большими и многоуровневыми картами, особенно «небоскребами». Боты роскомнадзорились на этой карте просто постоянно. Теперь же это иногда все еще происходит, но чаще всего уже не по их собственному желанию.
Музыка и звук
Была записана наспех, плохо сведена и не особо хорошей, теперь я планирую собрать большой плейлист с драйвовыми треками. Надеюсь, что он будет в основном состоять из треков малоизвестных российских групп. Но готов также договариваться и с зарубежными исполнителями, если они проявят желание. Сейчас пока в качестве саундтрека использую бесплатную музыку и мою старую группу. Впрочем, с ребятами я еще не договаривался, и если они вдруг будут против, то я уберу их песни. Названия треков теперь всегда можно посмотреть, вызвав меню, либо при старте композиции, когда ее название появляется в углу экрана.
В целом звуковой дизайн был плохим. Сейчас оно уже намного лучше, единственное, что меня еще смущает, так это звуки некоторых пушек и звуки авто. Над этим еще предстоит провести некоторую работу.
Графика
Ну и графика, конечно, понятно, что была сделана для геймджема, но для полноценного проекта она неудовлетворительная. Работа над графикой толком не началась, я хотел в первую очередь сделать так, чтобы игра была играбельной. Теперь же постепенно начну создавать графику. Уже сделал много тестовых моделек для оружия и подбираемых объектов, а также тестовую версию скайбокса. Я решил не брать готовые, а собирать с нуля и рендерить в Blender. Покажу пока, изменился багги:
Было
Стало
В графике я буду стараться держать баланс между скоростью производства, качеством моделей и текстур, и визуальным дизайном. К сожалению, у меня сейчас нет ресурсов, чтобы сделать очень хорошую графику для игры, но все же постараюсь, чтобы она была приятна глазу.
Что дальше?
Что касается платформ для релиза, пока не ясно. Изначально, как я писал выше, я планировал быстро доделать и выпустить игру в веб. От этого не отказываюсь, но пока склоняюсь к тому, что будут разные версии игры: с ограниченной графикой и, возможно, чутка меньшим количеством контента для веб-версии и необрезанная прокаченная десктопная версия. В релиз пойдет игра в состоянии MVP, если же игрокам она понравится и начнет приносить прибыль, то у меня есть много идей, как развивать игру, что добавить в нее, и речь не только о новых машинах и картах, но и о новых геймплейных механиках.
Без помощи сообщества мне будет тяжелее справиться. Помочь можно разными способами, например протестировать мою игру, или же при желании помочь с производством графического контента. Так же можно поделиться музыкой для игрового плейлиста. Ну и если у вас вдруг есть желание финансов/медийно/юридически поддержать то тоже можете мне написать.
Более подробно о том как все это сделать можно почитать здесь.
Жду ваших отзывов, реакций, комментариев. Если вам нравится то, что я делаю, распространите видео и этот пост, это мне будет как дополнительная мотивация. Не люблю давать прогнозы по срокам, так что скажу, что следующий большой дневник разработки выйдет в течение нескольких месяцев. Спасибо за прочтение!