SerChyvacho

SerChyvacho

SerChyvacho
Пикабушник
Дата рождения: 26 декабря
1823 рейтинг 1 подписчик 537 подписок 10 постов 4 в горячем
Награды:
5 лет на ПикабуС Днем рождения Пикабу!За неравнодушие к судьбе Пикабу
16

Как Я "воскрешал" старую FMV-игру...

Прошу любить и жаловать - "Рандеву с Незнакомкой: Неспортивный интерес"

Прошу любить и жаловать - "Рандеву с Незнакомкой: Неспортивный интерес"

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

В качестве игрового движка Я сразу выбрал Ren'Py - он был идеальным решением для моих задач. А для того, чтобы реализовать этот проект нужно было иметь две глобальные составляющие - текст и логику игры, и сам контент в виде видеороликов. Обе задачи Я пытался решить параллельно, но быстро понял что лучше всего сосредоточиться на чём-то одном. Справедливо рассудив, что без доступа к самому контенту разрабатывать, по сути нечего, Я решил начать с него...

Если экран имел 8 предметов для подбора, то оригинальные разработчики создали отдельный файл для КАЖДОГО состояния экрана.

Если экран имел 8 предметов для подбора, то оригинальные разработчики создали отдельный файл для КАЖДОГО состояния экрана.

Все видеоролики игры были в формате .cmk и "зашифрованы", по крайней мере, мне так казалось - они были абсолютно не читаемы всеми известными и малоизвестными проигрывателями и всеми доступными мне кодеками(Codec Tweak Tool, AVIcodec, VirtualDub, Light Alloy, DivX и т.д. и т.п.). Я считал, что должен быть алгоритм, который сможет расшифровать содержимое контейнера и поэтому начал открывать каждый такой файл в HEX-редакторе и проверять начальные строки-заголовки. Было что-то такое:

Видно, что в правой части просто бардак, а вверху нет нормальных записей

Видно, что в правой части просто бардак, а вверху нет нормальных записей

В то время как открывая нормальный файл, Я видел такую картину:

RIFF и подобные названия служат служебной информацией, благодаря которой система понимает структуру файла и может корректно прочитать видео и звук

RIFF и подобные названия служат служебной информацией, благодаря которой система понимает структуру файла и может корректно прочитать видео и звук

По итогу, Я пришёл к идее, что, возможно, хитрые разработчики из начала нулевых сместили в записях 1-2 бита в каждом блоке, а декодер просто возвращает всё обратно. Я честно пытался повторять заголовок, но результатов не было. Не помогла даже нейросеть, её алгоритмы перебивки тоже не дали результатов. Я думал о простой логике XOR (это когда работает "исключающее ИЛИ". Если биты разные - то 1, если нет - то 0). Но как понятно, попытки подобрать ключ тоже провалились. Я уже был на грани отчаяния. Я даже использовал реверс-инжиниринг, когда пытался открыть исполняемый файл через Гидру, но там такая муть, что лучше туда вообще не лезть.

Но неожиданно Я наткнулся на программу-декодер, которая как раз работала с этим типом файлов и благодаря уже ей и ffmpeg (набор утилит для работы с видеофайлами), мне удалось открыть все файлы, а после использовать Any Video Converter Ultimate, чтобы пересобрать видео в доступный формат .avi. Итак, одна проблема закрылась - на это ушло около месяца...

Что касается второго главного столпа - логики и текста, то проблема заключалась в защите StarForce, которая добавляла свои драйверы в корневую папку Винды system32. И если Вин ХР относилась к этому ещё терпимо, то современные ОС просто выдавали синий экран. Мне даже пришлось переустанавливать свою ОС 11...

Чёртова дрянь положила мою ОС

Чёртова дрянь положила мою ОС

Поэтому пытаться запустить старую игру на современном железе Я перестал и сосредоточился на эмуляции Вин ХР, мой выбор пал на VMware Workstation 16 Player. Однако и там пришлось искать старые версии Daemon Tools из rutracker чтобы они могли там работать. Как только игра была установлена, меня снова ждала неудача - чёртов StarForce видел эмуляцию и отрыто посылал меня, а ещё и до кучи все мои усилия, нахер. Он мотивировал это тем, что моя ОС не удовлетворяет базовым потребностям игры.

Но мне повезло: оказалось что на данную игру, энтузиасты выпустили кряк, который выключает защиту StarForce, однако работает он только для Вин ХР. По крайней мере, запустить игру с этим кряком на моей ОС Вин 11 не получилось.

И вот игра наконец-то запустилась и процесс официально пошёл вперёд.

Я взял таблицу Excel и пошагово переносил всю логику переходов, реплик и видеофайлов.

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

Логика игры, куда же в 21 веке без ручки и листочка?

Логика игры, куда же в 21 веке без ручки и листочка?

Понятно, что качество видеороликов с расширением 512х384 выглядит слабо, но такое качество решало сразу две проблемы:
1. Мне не нужно было апскейлить видео для лучшего качества, тратя время ещё и на это (сохраняя дух оригинала?)
2. Потенциальные игроки не будут качать 8+ ГБ игру 2006 года, где контента и так особо не много. Они лучше пойдут играть порно-пародии Genshin Inpact

Была конечно идея перевести игру на английский язык, просто добавив субтитры, но Я посчитал это уже перебором - просто потому что потребовалось ГОРАЗДО больше моего времени, а закончить хотелось побыстрее.

Лишь малый фрагмент

Лишь малый фрагмент

Уже где-то к началу лета Я полностью закрыл логику и текст игры и наступал тот самый интересный этап разработки, который идёт сразу же после сбора ассетов - сама РАЗРАБОТКА.

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

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

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

Рабочий стол 2

Рабочий стол 2

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

Чат GPT меня тоже полностью устраивает, оформив платную базовую подписку, Я закрыл все свои вопросы, о чём тоже не жалею ни разу.

Именно с ГПТ моя работа вышла на новый уровень, если в своём первом проекте Я опирался на руководство и метод "тыка", используя только базовый арсенал функций Питона, то с ГПТ, активно в работу стали включаться пользовательские экраны, пользовательские функции, кнопки и так далее. Мой проект стал лучше в логике и ярче в интерфейсе. Хотя на момент лета-осени 2025 об интерфейсе речь ещё не шла, т.к. выполнялась основная задача - перенос логики игры и тестирование.

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

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

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

На моменте создания альтернативных экранов мне пришлось осваивать Photoshop, чтобы лучше вписать наличие/отсутствие предмета на экране. Если раньше для меня это делала моя знакомая (каюсь, мне было лень разбираться), то в этот раз ради качества картинки, Я взял и эту работу в свои руки. Для этого мне с головой хватило Adobe Photoshop 2026.

После проб и ошибок, получилось что-то такое:

Коньяк на месте не выделен, коньяк при выделении и экран уже без него. Обратите внимание на тень от бутылки, Я пытался сделать её естественной

Коньяк на месте не выделен, коньяк при выделении и экран уже без него. Обратите внимание на тень от бутылки, Я пытался сделать её естественной

Я не могу сказать, что получилось идеально, однако, в целом, Я доволен результатом.

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

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

Как видно их не так много

Как видно их не так много

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

Самые разные функции на которых всё держится - от случайной очереди реплик в меню диалога, до скрытия/отображения боковых панелей во время мини-игры

Самые разные функции на которых всё держится - от случайной очереди реплик в меню диалога, до скрытия/отображения боковых панелей во время мини-игры

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

Время шло, логика переходов нуждалась в обновлении, для этого нужно было редактировать логику и сами видеоролики. Для редактирования роликов Я использовал Vegas Pro 17. Без русификатора было сложновато, но тем не менее, мне удалось сделать примитивные переходы, которые худо-бедно вписываются в игру и в общую логику повествования. Там были тоже свои заморочки - например, нужно было правильно рендерить видео, чтобы оно не расходилось с расширением остальных видео, для этого Я создал отдельный сценарий рендера:

Хотя, думаю, в игре будет заметно различие между оригинальными видео и теми, какие отрендерил Я

Хотя, думаю, в игре будет заметно различие между оригинальными видео и теми, какие отрендерил Я

И скажу сразу про звук, по моему мнению, для такого вида работ вполне хватит редактора Audacity, он закрывает все базовые потребности.

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

Ну а мы потихоньку приближаемся к отдельному этапу разработки - созданию мини-игры в шашки. Я специально оставил её на конец разработки, т.к. понимал, что это отдельная работа, на которую можно переключиться тогда когда предыдущая работа будет выполнена. И вот, когда логика игры была выстроена на 95-97% Я приступил к шашкам...

Именно таким разбитым Я себя чувствовал собирая шашки в единое целое

Именно таким разбитым Я себя чувствовал собирая шашки в единое целое

Оригинальные шашки не блистали инклюзивностью и разнообразием графики. Но надо отдам им должное - ИИ оригинала мог дать фору сегодняшнему, разрывал мои шашки только так.

Я начал с визуала - воплотить для начала саму сетку, сами шашки и просто положить их в клетки. У меня не было идей и виденья как это сделать в РенПи, но ГПТ мне помог и с этим - именно ему принадлежит идея разбить сетку на значения и просто менять их в зависимости от её статуса.

Логическое обозначение статусов клеток поля

Логическое обозначение статусов клеток поля

Оригинальная сетка уже была кривой сама по себе и наша прямоугольная сетка упрямо не хотела ровно ложиться на неё - постоянно наши поля съезжали

Оригинальная сетка уже была кривой сама по себе и наша прямоугольная сетка упрямо не хотела ровно ложиться на неё - постоянно наши поля съезжали

Мучаясь с оригинальной сеткой пару дней Я решил создать с нуля новую и после поиска в интернете нашёл нормальную ровную сетку:

Именно она стала финальным вариантом

Именно она стала финальным вариантом

Перенеся шашки/дамки и их статусы в игру, Я приступил к логике ходов. Поначалу, тестируя ходы, итоги игры и общий вывод логики в основную ветку, Я играл сам с собой, доводя вид шашек, ходов, звуков ходов, вывод текста-статуса до нормального состояния. В итоге получилось вот так:

Я специально решил добавить серию выигрышей до 2 побед из 3х игр

Я специально решил добавить серию выигрышей до 2 побед из 3х игр

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

И опять Я стал переделывать, уже в который раз - теперь обозначение в логике шашки w - на визуале чёрные, а b - белые...

Закончив с этим, Я перешёл к тому, чего раньше делал - написанию простого бота для игры. Его создание и полировка тоже потребовала много времени, но как бы Я не старался, мне не удалось создать сильного противника. Дело в том, что Я искал золотую середину - чтобы бот не был таким жёстким как в оригинале и чтобы не был полным профаном. Получилось на самом деле, так себе - бот всё-равно использует случайную тактику, но если ему повезёт и игрок зазевается, то он сможет одержать победу. Поэтому если нельзя усилить логику бота, Я решил продлить сам матч - серия до 2 побед хорошо под это подходит.

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

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

Это было далеко не так

Это было далеко не так

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

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

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

Тоже самое касалось и других экранов, например Сохранение:

Слева тоже была пустота

Слева тоже была пустота

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

Рисовать Я не умею, создавать модели в 3Д, это вообще треш, поэтому единственный для меня вариант был создание изображений через нейросеть. Я стал копаться в этом вопросе, чтобы она соответствовала моим критериям - создание изображений реалистичных людей на основе загруженных фото, например Image-to-Image (img2img) или Stable Diffusion, и создание контента 18+. Однако, Я быстро понял, что контент 18+ не так-то просто создавать на основе загруженного материала - все доступные нейронки уже сильно ругались на то, чтобы создать человека женского рода в плавательном костюме, поэтому создание такого контента Я отложил уже до следующих проектов, мне удалось, однако, создать всего 2-3 изображения, которые были внедрены в игру, остальные тестовые изображения не прошли по разным причинам, и мне жаль, что так получилось - там были неплохие картинки. На удивление, более лояльная к таким запросам была именно Sora, помянем этот сервис.

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

Изображения и их маски

Это скрин из раздела "Помощь"

Это скрин из раздела "Помощь"

Для редактирования курсора Я использовал RealWorld Cursor Editor - очень простая программа и хорошо реализована.

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

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

А что сейчас? На данный момент мне удалось создать свой блог на Бусти и выложить этот и мой предыдущий проект туда, а также выложить его на pornolab.net , где его на 9.05.26 скачало 33 пользователя. Есть версия также и для МАС.

В завершение хочу сказать самое главное - если ты разработчик, то не опускай руки. Сегодня есть много инструментов которые могут существенно облегчить тебе путь, например мне очень сильно помог ГПТ. Да, это изнурительно, тяжело и муторно, болит голова и есть желание бросить, но таков путь, особенно если делаешь всё в одиночку. Также нужно держать в голове схему логики, схему последовательности работ над проектом и двигаться по реализации одной задачи, не распыляя ресурсы сразу на 5-10. Всё у тебя получится, ведь получилось и у меня, хотя Я ни разу не профессиональный разработчик.

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

Ссылка на игру для Вин https://gofile.io/d/Ul2ssj
Для МАС https://gofile.io/d/peQiLd

Показать полностью 33
1

Пикабу исправляющий

------------
Здесь расположен виджет для сбора донатов на цель автора. Он пока не работает в приложении, но мы обязательно это исправим!
------------

Где-то вообще есть описание этих сроков?

27

Бытность бунтарской души

Бытность бунтарской души

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

8

Дом = Отдых

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

61

Начало грандиозного пути

Просто хотел поделиться своим мнением на счёт Лиги

Это сообщество очень важно, у меня не хватает слов в полной мере описать всю его значимость. Сегодня такое сообщество актуально как никогда и всем необходимо как воздух, даже если люди этого ещё не поняли.
Только представьте себе сообщество, в котором каждый из нас может делиться самыми глупыми и не стандартными мыслями и идеями, где автора никто не будет оскорблять за тупость или что-то подобное, а наоборот - захватываться его идеями, вместе их анализировать и размышлять. Я думаю, все знают, что далеко не все глупые мысли и идеи являются таковыми - некоторые из них стали поистине гениальными. Как говорится "если это работает, значит не так уж это и глупо" (или как-то так). В интернете полно всяких лайфхаков как полезных, так и не очень, Я согласен, что далеко не каждыми удобно пользоваться в тех или иных ситуациях, но некоторые из них действительно оказались полезными.
Представьте себе, что вы стоите перед огромным полем, на котором растёт огромное количество разных цветов - каждый из них, это чья-то мысль или мнение - все они сосредоточены перед вами в одном месте. Вы сами в праве решать, стоит ли они вашего внимания или нет, и это абсолютно нормально. Перед вами возникнет огромнейшее разнообразие разной цветной палитры и гаммы, кто знает - может как раз таки из всего этого вам подвернётся что-то, что тронет вас до глубины души или же натолкнёт на какую-то гениальнейшую мысль, которая в свою очередь сможет перевернуть если не жизнь, то хотя бы ваше мировоззрение. Я считаю, что такое сообщество просто находка, неважно на какой платформе она было создано. Пикабу должно гордиться, что оно сформировалось именно здесь, в такой благоприятной среде. Каждый может свободно писать здесь всё, что ему пришло на ум без оглядки на мнение окружающих, так как он может полностью быть уверен, что его поддержат и постараются ответить на возникшие вопросы и предложения.
Подводя итоги в одно место, Я также хотел бы уточнить несколько пунктов нашего славного товарищества, а именно:
1. Поддерживать авторов в их стремлении разобраться в этом мире - у каждого из нас разный жизненный опыт и разные точки зрения. Человек может хочет что-то понять о себе/людях/мире и т.д. Нужно поощрять их, может, это единственное, что волнует человека и он решился именно этим поделиться со всеми нами, поэтому негатив нужно свести к минимуму - у нас сообщество коллективного разума среднестатистических людей, а не сообщество заумных хейтеров-зануд. (Не путать с лигой зануд)

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

3. Не каждый хочет, чтобы его называли тупым, поэтому можно продумать слоганы, по типу "коллективный разум" или что-то подобное. Главное - мы не тупые, а упёртые до новых познаний.

4. Как Я уже писал в комментарии в одном из первых постов - сюда можем выкладывать не только свои мысли, но также давать на обозрение какую-либо информацию (фото, текст, видео), с которой автору тяжело разобраться. И тогда вместе мы сможем подискутировать на данную тему.

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

6. Понятные правила - в Лиге Тупых всё должно быть предельно понято, чтобы даже самым самым было сразу всё понятно, если в правилах указано "не умничать", то должно быть понятно о чём именно речь, желательно с примерами.


Я уверен, это только начало нашего грандиозного и славного пути в лиге сообществ Пикабу!
Присоединяйтесь к нам и открывайте новые грани вашего познания вместе с нами!

Показать полностью

Персональная реклама от YouTube

Только что в мобильном приложении появилась вот такая реклама. Либо препарат рекламируют не тому, либо что-то совсем пошло не по плану.

Персональная реклама от YouTube
Показать полностью 1
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества