Привет, Пикабу! 🚀 Новости по Space Sandbox, моей игре в духе «Космических рейнджеров». За сутки опять накопилось много, рассказываю главное.
Сначала важное: сборку 8 нужно один раз скачать заново. Теперь каждое обновление подписано, и игра ставит только то, что подписал я, подменить его по дороге не получится. Дальше обновления снова приходят сами, сохранения остаются.
Облачные сохранения. Появилось облачное сохранение: вводишь код или сканируешь QR, и игра продолжается на другом устройстве. Начал на компе, продолжил на телефоне.
Космос. Небо теперь в цвет своей звезды, у звёзд появилось свечение, пояса астероидов стали кучнее. Добавил чёрные дыры, вокруг которых искажается свет, космическую пыль и нейтронную звезду. В плотной пыли корабль прячется от чужих сканеров, но и сам видит хуже.
Карьера пирата или война. Можно служить во флоте или уйти в пираты, в каждой ветке шесть званий, и сторону выбираешь одну. Можно дезертировать, получить амнистию или внедриться к пиратам под прикрытием, собирать сведения о логове и потом сдать его флоту.
Соперница. Появилась Ника Ремез, искательница, которая охотится за теми же находками, что и ты. Её можно опередить, выкупить у неё находку или договориться.
Сложность задания. Срок теперь выбираешь сам: подольше и дешевле или быстрее и дороже. Опоздал на сутки-двое, заплатят половину, а не провал. В каждом задании написано, что делать и где сдавать, а действующие задания открываются одной кнопкой.
Новые механики. Сброс груза, цены с орбиты, заправка от звезды, форсаж, таможня и контрабанда, маскировка под пирата, военная база. И «прыжок за еду»: можно лететь в систему напрямую, без коридоров, пока хватает еды.
Интерфейс. Управление на выбор: классическое или WASD. Клик по вещи в окне корабля открывает карточку с описанием и сравнением. У станций появились имена и значки услуг, сразу видно, где звания, экзамены, исследования или чёрный рынок. Корабли больше не дёргаются на паузе.
Ещё в меню появилась кнопка «Сообщить об ошибке»: текст, снимок экрана и журнал уходят мне одним нажатием. Багов ещё много, так что это очень выручит.
В ближайшем обновлении на кораблях появятся пушки: орудия будут стоять прямо на корпусе, и будет видно, откуда идёт каждый выстрел. А подбитые корабли начнут разлетаться на куски.
Отдельное спасибо тестировщику Никите «Валерьяновому Коту» Шпилевому, многое из этого сделано по его отзывам.
А ещё у моей дочки Маши сегодня день рождения, ей исполнилось три года! 🎂
В прошлом посте я рассказывал, как собираю свой Ragnarok Online на Godot и Python с помощью нейросетей. Там были конвертеры старых корейских форматов, сетевой протокол, поринги и попытки заставить Python выдерживать населённый мир.
Спасибо всем, кто прочитал и написал. В комментариях спрашивали, где поиграть. Пришлось дать людям клиент и посмотреть, что получится.
Если кратко, то случился деплой.
Сервер теперь живёт на отдельной виртуальной машине, у проекта есть адрес zeroro.ru, а у сообщества — форум. Клиенты лежат на странице скачивания. Пока это ранний тест. Ошибок хватает, и я постоянно бегаю по миру, выясняя, что опять сломалось. Так что если мимо пронеслась взмыленная зёпа без привет/пока, скорее всего, это я спешу что-то тестировать или исправлять.
Windows не пустила дальше запуска
В комментариях @Fymka попробовал запустить игру на Windows и получил ошибку про SSE4.2. Выясняли конфигурацию, переписывались, пересобирали клиент. Он скачал заново, ошибка осталась.
Под Wine у меня всё запускалось. Только @Fymka от этого было не легче.
В итоге для Windows подготовил две сборки: основную x64 и дополнительную x86 с SSE2, без требования SSE4.2. На странице загрузки они находятся в одной карточке; на кнопках прямо написана архитектура.
Есть и нативная сборка macOS — универсальное приложение для Intel и Apple Silicon. Правда, её не тестировал: мне не на чем. Есть тут лица с нетрадиционным выбором техники, готовые помочь протестировать клиент?
Видеокарта и драйверы всё равно должны подходить под требования Godot. А заработало ли в итоге у @Fymka, я пока не знаю (эй, отпишись!).
Там же всплыла ещё одна неприятность: человек хотел сообщить об ошибке, а форма отправки сама отвечала ошибкой. Багрепорт на багрепорт. Приехали.
Ты родился! Что дальше?
Параллельно я сел проходить начало игры обычным персонажем, KittyCat. Нейросеть смотрела сохранённые скриншоты, проверяла текущий этап задания и помогала разбирать проблемы.
И почти сразу упёрся в вопрос: куда идти?
Каюта и журнал задания: сначала ещё надо понять, где выход
Задание уже взято, только я об этом не знаю. В журнале написано, что надо попасть в академию. Осталось догадаться открыть журнал. Но сначала нужно найти выход из каюты, потом выход с корабля, потом ещё один корабль. Человек, который делает этот маршрут впервые, не обязан узнавать двери по старой памяти.
Добавили в тестовую версию маячки на мини-карте и большой карте. Они показывают ближайший нужный выход или NPC, а по мере прохождения меняются.
Потом я спросил: а если пойти назад? Вернулся в каюту, поднялся на другой этаж, заблудился по дороге. Маячки нужны и там. Этот маршрут тоже проверяем.
Собрали добычу — карта показывает путь к кораблю обратно в академию
На скриншотах нашлось ещё весёлое. Маячок правильно указывает на преподавателя в академии, а длинный текст задания всё ещё объясняет выход из каюты. Или предметы уже собраны, а описание продолжает предлагать их собирать.
Теперь сверяем и карту, и текст задания. А то одна подсказка отправляет к преподавателю, другая обратно в каюту.
А спросить ещё раз можно?
Регистратор выдал нож и больше ничего полезного не говорил. А я мог случайно закрыть диалог. Или прочитать и через минуту забыть, к кому он меня отправлял. Снова подошёл, а спросить дорогу уже нельзя.
Нож уже в инвентаре. Теперь бы ещё вспомнить, к кому с ним идти
Поправили локально: при повторном разговоре NPC напоминают следующий шаг. Лекарь объясняет здоровье и лечение, Субино — экипировку и бой, Kafra — сохранение и хранилище.
Мы прошли практику: отправились на остров, собрали три Jellopy, вернулись, отдали добычу, посетили Kafra и закончили курс. Смотрели на каждом этапе, что говорит журнал и куда указывает карта.
Первый бой на острове новичков. Поринг уже плюхнулся, остальные пока ждут
На выходе KittyCat получила выпускные 100 zeny, задание закрылось, дверь выпустила её в Излюд. Из этих скриншотов собираем пошаговую инструкцию для форума. Пока проходили, заодно выловили ошибки в подсказках.
Kafra объясняет сохранение и хранилище, затем отправляет за выпускной наградой
KittyCat после выпуска из академии
Для тех, кто знает RO наизусть, предусмотрели пропуск курса у Регистратора. Без выпускной награды, зато без обязательной лекции при создании очередного персонажа.
В комментариях спрашивали про долгую прокачку. Начинаю с первых десяти Job.
После выпуска моя KittyCat оказалась третьего базового и второго профессионального уровня. Академия закончилась, а до первой профессии ещё нужно дорасти.
Сейчас переделываю задания после академии: хочу довести новичка до Job 10 через путешествие по городам. Сначала знакомство с городской Kafra и магазинами Излюда — покупать товары для выполнения заданий не требуется. Затем Проводник предлагает два заказа на добычу, и у каждого есть альтернатива для тех, кто пока не хочет драться.
Первый заказ — пять Jellopy и два яблока с порингов. Вместо охоты можно отнести посылку северной Kafra Пронтеры, у дороги к замку. Второй — десять Clover и три морковки с лунатиков. Его альтернатива — доставка центральной Kafra Пайона. Добычу разрешено получить от других игроков. Доставки сейчас переделываем: Проводник будет выдавать посылку отдельным предметом, который нужно принести адресату.
На каждой развилке награда одинаковая для обоих способов, но получить её можно только один раз. Можно выбрать охоту в первом заказе и доставку во втором — или наоборот. До сдачи разрешено передумать и поменять вариант у Проводника.
Между городами придётся идти через поля с монстрами. Можно обойтись без платных телепортов Kafra, но смотреть по сторонам всё равно надо.
Если Job 10 ещё не достигнут, после второго заказа маршрут продолжается в Гефене: Kafra у южных ворот рассказывает о жизни курьера. Дальше — центральная Kafra Морока, разговор о весе сумки и хранении лишних вещей. Открывать платный склад ради задания не нужно. Завершает путешествие аудиенция у короля Рун-Мидгарда в замке Пронтеры — там новичка благодарят за помощь городам и выдают последнюю награду.
Пишу им разговоры. Например, гефенскую Kafra вчера спросили, можно ли доставить Fire Bolt в закрытом конверте. Пришлось объяснять, что после такого письма остаётся только адрес. А в Мороке перед походом к королю советуют стряхнуть песок с сапог: дворцовые ковры тоже чья-то работа.
Награды посчитали под Job 10: девять наград за прохождение цепочки, всего 570 Base EXP и 1151 Job EXP. Для персонажа с нуля это Base 8 и Job 10. Если десятый Job получен раньше, журнал переводит к выбору профессии, а оставшиеся награды не выдаются.
В журнале будут оба счётчика: сколько собрано Jellopy и сколько яблок. Маячок поведёт сдавать заказ, когда хватит всего. Отдельно проверяем сдачу: если яблок мало, Jellopy забирать нельзя. И получить награду второй раз повторным разговором тоже нельзя. В базе списание предметов, опыт и новый этап сохраняются вместе.
После Job 10 Проводник объясняет Basic Skill и показывает дорогу к выбранной гильдии. Очки за игрока не распределяем, профессию автоматически не выдаём. Условия и экзамены гильдии остаются отдельным этапом: например, будущему Магу ещё потребуется Base 10, а эта цепочка сама по себе его не гарантирует.
Всё это сейчас переделывается и проверяется локально. На боевом сервере готовую цепочку пока не ищите. До старших уровней я с этими квестами тоже ещё не добрался.
Зачем тогда свой клиент?
Меня об этом спрашивали под первым постом. Покажу на часах и чате: их уже можно пощупать в клиенте.
Часы для тех, кто играет на полный экран
В полном экране часов на панели задач не видно. Ради них сворачивать игру неудобно, поэтому сделали свои. Показывают время компьютера игрока, в 24-часовом формате, с секундами. Навёл мышь, увидел полную дату.
Включаются через Alt+T или в настройках: «Интерфейс» → «Панели» → «Часы». Их можно перетащить мышью туда, где они не заслоняют игру; положение и выбранный вид сохраняются.
Есть три размера:
Большие: Поринг с настоящим стрелочным циферблатом и цифровым временем под ним.
Стандартные: Поринг с табличкой, на которой время и дата.
Мини: маленький Поринг и узкая плашка со временем, если хочется оставить больше места для самой игры.
Три размера часов и все одиннадцать вариантов оформления из клиента
Всем доступны розовый Поринг, зелёный Попоринг и жёлтый Дропс. На аккаунте можно открыть ещё восемь оформлений: Девилинг, Ангелинг, Мастеринг, Гостринг, Санта, Металинг, Марин и Магмаринг. У кого крылышки, у кого корона, у кого новогодний колпак. Для картинки я собрал их все, включая ещё закрытые для нового аккаунта.
Рожки или нимб у часов на характеристики персонажа не влияют. Просто мне нравятся поринги.
Чат, в котором разговор не тонет в сообщениях о добыче
На охоте чат легко превращается в непрерывный отчёт: урон, опыт, предметы, системные сообщения. Где-то между ними напарник написал, куда идти. Хорошо бы прочитать это до того, как группа ушла в другую сторону.
В клиенте можно завести свои вкладки и отфильтровать сообщения. Например, оставить разговор группы и личные сообщения в одной вкладке, а урон, опыт и добычу — в другой. Каждой можно дать название, выбрать цветной значок и настроить, какие новые сообщения считать для уведомления.
У вкладки есть и канал отправки: для «Группы» можно выбрать групповой чат. В строке ввода есть отдельный переключатель «Всем / Группа», чтобы было видно, кому ты сейчас пишешь.
Реальный интерфейс чата: отдельная вкладка группы и настройки цветов. Сообщения демонстрационные
Шрифт, прозрачность фона и цвета сообщений настраиваются. Можно включить время возле строк и подсветку своего имени. На большом мониторе можно увеличить текст; на светлой карте — сделать фон плотнее. Окно двигается и растягивается, а замок фиксирует его, чтобы случайно не утащить мышью. Положение и настройки сохраняются.
Для личных сообщений есть поле «Кому» и список недавних собеседников. Стрелки вверх и вниз возвращают ранее набранные сообщения. Журнал выбранной вкладки можно сохранить в TXT или HTML — например, чтобы приложить понятную историю к багрепорту.
Заодно разбирались с фокусом ввода: написал сообщение, захотел продолжить играть, а клавиши всё ещё забирает чат. Сейчас Enter в пустой строке или Esc снимают фокус, щелчок по миру тоже возвращает управление игре. Иначе жмёшь клавишу умения, а пишешь букву в чат.
В планах интерфейса — показать вещь прямо в чате
В бэклоге, в группе «Доработки», есть B-121 «Ссылки на предметы в чате». Ещё не реализовано.
Хочу сделать так: перетаскиваешь вещь из инвентаря в строку сообщения — появляется ссылка [Название вещи]. Отправляешь её в общий, групповой или личный чат. Другой игрок нажимает и видит описание именно этого экземпляра: характеристики, заточку, вставленные карты и опознание.
Нашёл нож, спрашиваешь группу «кому пригодится?», и все могут посмотреть, что за нож, с какими картами и заточкой. Не надо переписывать характеристики руками или делать скриншот. Сам предмет при этом остаётся у тебя в сумке.
Что сохраняем в самой игре
Рейты у нас Х1/Х1/Х1: базовый опыт, профессиональный опыт и дроп. Крыльев с характеристиками не планирую. Из кастомного хочу делать косметику и удобства в интерфейсе.
У квестов фиксированная награда опытом, серверный множитель ради них не меняем.
Что дальше
Сначала закончу путь после академии. Нужно пройти обе ветки, проверить выдачу посылок, возвраты на старые карты и перезаходы. Потом решать, готово ли это к выпуску. Пока я сам на этом маршруте нахожу, что поправить.
В клиенте хочу заняться ссылками на вещи и обновлениями: скачивать весь большой пакет ради небольшой правки надоедает. Окна, подсказки и управление тоже будем поправлять по вашим жалобам. Проверка под Wine уже показала, что моей машины для тестирования маловато.
После первых десяти Job хочется продолжить задания. В бэклоге лежат доски объявлений и ежедневные поручения: добыча, поездки между городами, помощь NPC. С наградами ещё надо разбираться. Дальше интересуют групповые приключения, боссы, торговые лавки и аукцион. За всё сразу браться не буду, сроков пока нет.
Есть и работа с сервером: научить сервисы перечитывать конфигурацию и сделать обновления менее болезненными для тех, кто в этот момент играет. Игрок уже добрался до поринга, не хочется выкидывать его ради очередной правки.
О проблемах не забывайте написать через форму на сайте или на форуме. Не держи в себе, пиши. Я люблю вас читать :). Особенно полезно знать, где вы впервые застряли: на установке, в меню, на выходе из каюты или уже перед первым порингом.
А от тех, кто играл давно, интересно услышать: что стоило бы объяснить новичку в первые полчаса, чтобы дальше он уже мог отправиться в приключение сам? И что бы вы поменяли или дополнили в интерфейсе?
Поринги передают привет. И требуют сначала разобраться с дверями.
@ares7782, @CensorAC, @wakuorin — просили пнуть, вот пожалуйста. Пинок доставлен, урон нулевой, ссылка на клиент выше :)
@Dragonslayer666, ты просил написать, где взять клиент. Тебе тоже повестка в Пронтеру!
Всем привет! Мой никнейм Шустрый, и я создатель команды GENVIK GAMES. Звучит, конечно, пафосно, но на самом деле нас двое, и мы абсолютные новички.
Всю жизнь я играю в игры. Мне всегда нравилось погружаться в другие миры. Мне нравятся стратегии, особенно серия Total War. Я до сих пор расстроен, что Total War Arena закрыли — я не успел в нее наиграться. Также меня привлекают многопользовательские игры, там ведь тоже присутствуют тактические моменты. Тактический стратег нашелся!)))
Я несколько лет вынашивал идею о создании своих игр, мысленно крутил разные геймплеи и жанры, но боялся начать. А когда увидел анонс новой HoMM: Olden Era, то решился, что нужно пробовать.
Вопрос: реально ли это сделать, если тебе 30+, у тебя есть основная работа, есть семья и нет профильного образования? Я решил проверить это на практике.
Наша команда.
Геймдизайнер — я. Конечно, звучит громко, но как есть. Я занимаюсь техническими вопросами: кодинг, геймплей, баланс, продвижение и так далее. Но скажу честно, хорошо у меня пока что получается кодинг и геймплей.
Художник — моя вторая половинка. Она мне помогает с визуалом и некоторыми моими игровыми тупиками. Без неё мои войны всё еще топтались бы на монотонных гексах в одиночестве.
Что за игра?
Это тактическая RTS на гексах в эпоху Древней Руси. Мне интересны все древние эпохи, но Древняя Русь ближе по крови и духу. Вдохновлялся, естественно, Total War. Отряды задуманы как единый юнит на клетках, но я хочу, чтобы визуально казалось, будто это огромная армия. Графика — пиксель-арт.
Геймплей пока в базовой стадии: выбираешь отряды, изучаешь карту и управляешь боем. Я специально не усложняю механику на старте, чтобы сначала сделать крепкий фундамент. А уже потом добавлю фишки вроде особых способностей богатырей.
У меня есть базовые знания о программировании, но мне не хватает опыта. Я решил использовать современные технологии. Нашел бесплатный движок Godot (он показался мне понятнее остальных) и стал использовать ИИ-агента для написания кода.
Скажу честно: ИИ — это не волшебная палочка для всего. Дать один запрос, чтобы он сделал всю игру, не сработает. Я выступаю в роли начальника: ставлю задачу, тестирую, переделываю, прошу ИИ переписать. Это симбиоз человека и нейросети.
Помню, когда делали анимацию ударов, мне ассистент накидал неправильных значений, и мечники били куда попало. Пришлось самому разбираться больше часа.
Они, конечно же, присутствуют. Наверное, самая большая трудность — это время, но мне еще везёт, я работаю с графиком 2/2. Бывает, приходишь со смены, видишь, что у тебя есть несколько часов на игру, и думаешь: а с чего начать-то?
Еще не менее значимая трудность — это опыт. Нужно узнать, в каких размерах делать спрайты, какую архитектуру вообще закладывать в проекте, а почему ничего не работает и многое другое. А еще про семью не нужно забывать — она у меня на первом месте всё равно.
Что уже готово за месяц?
Нашими командными усилиями вот что удалось реализовать:
В идеале я хочу сделать онлайн-битвы между игроками. В планах — сюжет в виде визуальной новеллы (идея уже есть, но не знаю, зайдет ли), кампании и развитие героев.
Я прекрасно понимаю, что могу не потянуть онлайн-битвы. Страшно вложить месяцы, а потом упереться в техническое ограничение. Но я решил идти по принципу: «Глаза боятся, а руки делают». Если не получится с онлайном — сделаю крутую одиночную кампанию. Главное — не стоять на месте.
Говорят, что продвигать игру нужно уже на стадии прототипа. Поэтому я создал каналы в ВК и ТГ, где выкладываю новости по развитию проекта. Если вам интересно наблюдать за тем, как обычный парень после смены пытается сделать игру мечты — милости прошу. ВК - https://vk.ru/genvik_games ТГ - https://t.me/genvik_games
Вопрос к вам:
Игроки, как вам визуал? Что бы вы хотели видеть в такой игре в первую очередь?
Разработчики, есть ли тут те, кто делал онлайн на Godot? Буду рад любому совету.
Привет, Пикабу! 🚀 Продолжаю рассказывать про Space Sandbox, свою игру в духе «Космических рейнджеров». Со вчерашнего поста накопилось много, рассказываю главное.
Корабли. Стали объёмными: корпус ловит свет, на поворотах кренится, перед разгоном корабль разворачивается носом по курсу, а не ползёт боком. Подбитый дымит из пробоин, а когда корпус почти разбит, из них рвётся огонь. Взрыв тоже переделал: раскалённый газ, вспышка и светящиеся обломки. У каждой расы теперь свои дроны. Свой корабль больше не толкается с чужими, пролетает над ними или под ними.
Бой. Появился автобой: дерёшься до гибели цели или со всеми врагами рядом. Станции теперь сами отстреливаются, в системах стоят гарнизоны, а если на систему напали, она зовёт на помощь.
Сложность теперь настраивается. В новой игре можно выбрать «Легко», «Нормально», «Тяжело», «Невозможно» или «Свой», где всё настраиваешь сам. Заодно подкрутил баланс начала игры.
Добавил удобный поиск. Жмёшь F и ищешь что угодно: товар, оборудование, систему, станцию, человека. Работает из любого места.
Полёт. Если курс проложен, корабль летит до цели без остановок. Прыжок через гиперпространство теперь со своим экраном. Застрять без топлива больше нельзя: если заправиться негде, вызываешь заправщика гильдии.
Сохранения. Игра сама сохраняется при каждом прилёте в систему, держит три автосохранения по кругу, а слотов для своих сохранений стало пятнадцать.
Телефон. Окно новой игры подогнал под экран телефона, списки листаются пальцем. Поправил то, что сам поймал на видео: ход зависал при почти разбитом корпусе, а крупные корабли плохо выбирались тапом.
И главное: больше не надо каждый раз качать игру целиком. Обновления она скачивает сама прямо со стартового экрана, это мегабайты, а не гигабайты. Ещё появились меню с живой галактикой, музыка и настройки графики для слабых телефонов.
Я делаю фанатское продолжение «Железной стратегии» (Parkan, «Никита», 2001) на Godot 4 — стратегию, где ты не курсор над картой, а капитан, который ходит по базе и может сам сесть в любую машину. До сих пор всё было на моделях из моей копии Parkan 2. В публичную версию их брать нельзя, поэтому машины делаю свои. Первая партия готова и уже в игре: лёгкие и средние варботы на колёсах, гусеницах, ногах и летающие — восемь машин.
Лёгкий колёсный: клиновидный корпус, четыре колеса на своих рычагах, передние — в гранёных крыльях.
Лёгкий гусеничный: небольшое бронеядро и четыре гусеничных блока «пауком». Катки крутятся, лента бежит.
Лёгкий шагающий: две ноги с обратным коленом, шаг по суставам — ступни держатся за землю и не скользят.
Средний колёсный: шесть колёс, над каждым свой бронекожух.
Средний гусеничный: узкое ядро и четыре высоких гранёных гусеничных блока. Его переделывал дважды — первый вариант был плоским «кирпичом».
Средний шагающий: ноги в полуприседе с коленом вперёд, широкие раздвоенные ступни.
Средний летающий: X-образное оперение и четыре подъёмных двигателя с поворотными соплами.
Как это сделано:
— Каждую модель собирает Python-скрипт в Blender из общего набора узлов: листы брони, шарниры, гидроцилиндры, колёса, ракетные блоки. Поправить пропорцию — поменять число в скрипте, а не двигать вершины руками.
— Броня — каждая деталь одним гнутым листом со сгибами и редкими болтами. Первая версия была мозаикой из плит и выглядела как конструктор.
— Корпус, ходовая, башня и стволы — отдельные детали, поэтому повреждения по частям работают как прежде: можно отстрелить ствол или гусеничный блок.
Тяжёлых и гигантов пока нет — они следующие. Публичной сборки тоже пока нет: ранняя, но играбельная песочница. Буду рад вопросам и критике от тех, кто помнит оригинал: какую машину стоит доработать первой?
На сей раз мне захотелось раскрасить текст картинками, поэтому я буду подставлять нейро-картинки и иногда мемы чтобы.. Выглядело интереснее. Надеюсь вам понравится X)
У любого, кто пытается прикрутить нейросеть к реальному коду, рано или поздно сгорает задница от одной и той же привычки моделей: они обожают трепаться вместо того, чтобы выполнять команды.
Сижу ночью, тестирую свежую сборку Aetheria. Мой персонаж стоит на складе, рядом бочка с маслом. Мне нужно проверить, как движок отработает физику разлива и горения.
Пишу: «Бью топором по чану с маслом».
Что должен сделать нормальный скрипт? Вызвать item.damage, расколоть объект, вылить жидкость на пол.
Что делает LLM? Она включает режим великого писателя: «Ты крепче перехватываешь топорище. Холодный металл тускло блестит в полумраке склада, а в воздухе стоит тяжелый запах старой древесины и смолы. Ты чувствуешь, как напрягаются мышцы перед ударом...»
И всё. Ни вызова функции в коде, ни разбитого чана. Текст есть, действия нет.
Пишу второй раз: «Я не чувствую мышцы, я бью по бочке со всей дури, прямо сейчас». Модель: «Лезвие со свистом рассекает воздух и с глухим стуком врубается в толстые дубовые клепки! Щепки летят в стороны, чан содрогается, но дерево держится крепко. Ты ощущаешь отдачу в ладонях...»
Смотрю в дебаг-панель движка — здоровье чана 100/100, масло внутри, флаг удара не вызывался. Нейросеть просто сочинила красивую анимацию удара на словах, забыв дернуть триггер в коде. В ее воображении мы уже полчаса рубим этот несчастный чан, а в памяти движка мы просто стоим столбом посреди комнаты.
На четвертый ход я уже пишу капсом: «ПРОБЕЙ ЕГО НАХРЕН».
И только когда в системный промпт прилетел жесткий пинок по рукам («сначала вызывай инструмент в движке, а потом пиши свои поэмы»), модель наконец соизволила отправить честный JSON-запрос на урон. Чан треснул, масло залило пол, физический движок с радостью всё это поджег.
Это главная болезнь текстовых нейроигр. Модели патологически лень дергать код, ей проще родить три абзаца художественного текста ни о чем. Приходится буквально вбивать ей в голову правило: если игрок бьет, ты сначала обязана изменить состояние мира в движке, и только потом открывать рот.
В общем, после тонны таких правок, споров с ИИ и борьбы с бесконечными пожарами, мы наконец упаковали текущую версию в играбельный билд (v0.1.7-alpha) и выложили на itch:
Переоформил я недавно свой профиль. Ой, как же мне он нравится XD
Кому интересно пощупать, как это играется вживую — заходите, качайте. Предупреждаю сразу: игра работает от внешних API-моделей (лучше всего скармливать ей DeepSeek или Qwen), так что в настройках надо будет вбить свой ключ.
Если кто-то тоже пытался заставить LLM стабильно вызывать функции без пустой болтовни — делитесь в комментах, какими костылями лечили.
Привет, Пикабу! 🚀 Вчера показывал свою космическую песочницу, сегодня рассказываю, что в ней поменялось.
Старт. Теперь в начале выбираешь расу (их семь) и кем будешь: торговцем, воином, наёмником или пиратом. От этого зависит, где начнёшь, на чём полетишь и сколько денег в кармане. Пиратом стартуешь у падальщиков, и приличные державы разговаривают с тобой сквозь зубы.
Сюжет. Появилась основная история. Можно в неё вообще не лезть и просто торговать или грабить караваны. Если полезешь, сроков никто не ставит. Концовок восемь, и какая выпадет, зависит от того, как ты играл всё это время.
Станции. Экран станции переделал с нуля. Сверху кнопки «продать груз», «заправиться», «починиться», чтобы не лазить по меню ради каждой мелочи, ниже здания: рынок, верфь, бар, гильдия. В окне корабля теперь нарисован сам корабль, и видно, что где на нём стоит.
Задания. Добавил охоту за головами: дают конкретного пирата, и он не ждёт на месте, его ещё найти надо. Бывают заказы и на мирных, за них платят больше, но держава потом припомнит. А у части заданий всё идёт наперекосяк: прилетаешь, а там засада, или в посылке оказывается контрабанда.
Физика. С физикой в прошлый раз переборщил 😅 корабль болтало и проносило мимо цели. Поправил. Заодно у кораблей появился вес: набил трюм под завязку, будешь ползти.
Бой. Всё, что выпало из сбитых, теперь висит в космосе, пока кто-нибудь не подберёт. Подбирают все, кто пролетает мимо, так что после боя лучше не тормозить. На видео как раз такое: втроём валим дрононосец, потом собираем, что от него осталось.
Галактика тоже ожила. Чужие корабли заправляются, чинятся и со временем ставят себе оборудование получше. Державы сами изобретают новое оружие. Сэйлиа и узел стали полноценными державами, плюс 24 малых народа со своими станциями и просьбами в баре.
По мелочи: навыки качаются до сотни, каждые десять уровней дают перк, радар переехал в угол, звуки переделал, у игры новый значок.
Свежая сборка для Windows и Android лежит в телеграм-канале, там же выкладываю обновления: t.me/space_sandbox_game
Пишите, что сломалось и что не понравилось. Спасибо всем, кто вчера отписался в комментариях, и хвалившим, и ругавшим 🙏
Всем привет! Продолжая ностальгировать, вместе с ИИ портировал интересную и, как мне кажется, совершенно незаслуженно забытую головоломку DWEEP на Android.
Если не играли, то, по сути, это смесь головоломки и аркады. Нужно провести пушистика Двипа к его деткам, минуя различные опасные препятствия. Самое интересное, на мой взгляд, — при небольшом наборе игровых элементов уровни получаются удивительно разнообразными и сложными благодаря разным комбинациям этих элементов и возможности их совместного использования. Плюс действие происходит в реальном времени, поэтому иногда для решения требуется реакция и тайминг.
Зона смертельных лазеров
Я решил не делать последовательное прохождение уровней, как в оригинале, и теперь все уровни доступны с самого начала.
В целом, прекрасная возможность вспомнить игру и пройти все 30+1 классических уровней или же познакомиться с действительно необычной головоломкой начала нулевых, если видите её впервые.