Продолжаю свой цикл статей о проекте torrender.net, поскольку текущая ситуация опять далека от моих прежних планов, и все самое интересное для меня, пожалуй, начнется в ближайшем будущем.
Предыдущие статьи:
История создания торрент-рендера для 3ds max
История продвижения торрент-рендера для 3ds max
Предыстория:
Итак, прошло четыре месяца с момента релиза, за это время я допилил проект до стадии, когда через MAXScript уже ничего принципиально существенного добавить стало нельзя, а именно внедрил разбивку рендера сингл-кадра по разным сидам и сбор кусочков в одну картинку на стороне лича через ImageMagick, эта фича не была готова на момент релиза и я возлагал на нее большие надежды, так как макс ведь используется преимущественно для архитектурных визуализаций, а там бывает что рендеринг одного кадра длится и по три и по четыре часа, вот уж тут-то желающие появятся и система наконец станет активной, поскольку желающих рендерить статику во много раз больше тех, кто рендерит анимацию. Но я ошибся, фича разбивки статики прошла мимо пользователей, не прибавилось ни джоб, ни сколько-нибудь значительного количества новых нод, несмотря на то, что я запостил инфу про статику на одном из популярнейших форумов «максистов-интерьерщиков» — 3ddd.ru, не помогло. И, раз так, то сама собой появилась мысль — а какой мне смысл внедрять локальный сетевой рендер, подключать пользовательские рендер-фермы (это был по плану следующий и последний этап разработки), если даже статику никто не хочет рендерить? И есть ли смысл вообще продолжать, если пользователям всего этого не надо, то тогда что им вообще говоря надо?
На вопрос такой, есть ответ простой — кнопка «отрендерить красиво»
Почитав тут и там (и на хабре в том числе) разнообразные комментарии, я пришел к следующим неутешительным для себя выводам:
- Системой не будут массово пользоваться в ее нынешнем виде
- Если продолжать, то мне придется идти по гораздо более сложному пути и переделывать все, кроме трекера
- Нет никаких гарантий успеха новой системы
В итоге торрент-клиент должен быть похож на существующие приложения для локального сетевого рендеринга (типа backburner) и работать как локальная рендер-ферма, только ноды расположены не в соседней комнате, а в где-то там в интернете. Получим: любое число нод на джобу, джобы любого размера и сложности, разбивку сингл-кадра по разным сидам (можно рендерить тяжелую статику), рейтинговую систему, режим для друзей, подключение локальных ферм, и все это бесплатно для конечного пользователя. Ну и по аналогии с торрентами: в обычных торрентах пользователь качает файл, который ему нужен и начинает его раздавать. В торрент-рендере он раздает файл джобы и скачивает файлы кадров (или фрагменты кадра) — раздает одно, качает другое.
Что придется сделать:
- Полностью переписать клиент с MAXScript на C#
- Клиент должен работать в трее Windows самостоятельно и запускать 3ds max (или другой 3D-пакет) только для рендеринга
- Скриптовая часть в максе будет заниматься только созданием джоб и этот процесс нужно максимально упростить для пользователей (сделать самосбор всех вспомогательных файлов)
- Защиту сцен переделать таким образом, чтобы совсем не передавать файлы сцен, для этого фактически придется изобретать новый формат джобы, т.е. по сути создавать скрипты, генерирующие пользовательскую сцену (или, как минимум, ее часть)
- Нужно сделать так, чтобы новый клиент был полезен пользователю даже в том случае, если он сам рендерит свои сцены, без привлечения других желающих, а именно: сделать авто-рассылку готовых изображение по email, заливку на ftp, отложенный рендер, мульти-джобы (т.е. удобный запуск на рендер нескольких сцен подряд) и прочие подобные мелочи в качестве бонуса
Почему именно С#? На самом деле я сперва хотел было пойти по простому пути и попробовать сделать на AutoHotkey, но потом вспомнил, что у меня на макскрипте полным-полно дотнетовских вставок и в C# с ними будет гораздо проще, ну и кроме того, если уж выбирать новый язык для изучения, то лучше все-таки что-то помасштабнее, чем AHK.
Обдумав все за и против, вспомнив предыдущие годы разработки и ковыряния в PHP, я понял, что идея переделки клиента по сути с нуля, плюс изучение еще одного языка мне совсем не нравится в том случае, если опять все будет только на одном моем чистом энтузиазме и вообще без гарантий успеха будущей системы. Тут бы надо вставить картинку, где у сумрачного гения в голове загорается лампочка, потому что мысль «русский краудфандинг» примерно таким образом и возникла, немедленно материализовавшись в следующий пост на 3дцентре:
В настоящее время у меня больше нет возможности продолжать разработку только на свои средства, т.к деньги и свободное время имеют свойство кончаться и поэтому проект уходит на краудфандинг, конкретную платформу выберу на днях. То, что в коде проекта нужно лично мне, я уже сделал, но пользователям подавай совсем другие фичи, я так подозреваю, поэтому ноды оффлайн и сидят. Собственно сбор средств для того и нужен чтобы осуществить пользовательские желания (свои-то я забесплатно сделал), а если не наберем — значит никому не надо, сохраню время и не буду дальше забесплатно барахтаться.
Новые фичи потребуют кучу времени на реализацию и я не хочу рисковать, впрягаясь в такие масштабы на одном голом энтузиазме:
1. Клиент перепишу с макскрипта на другой язык разработки, он будет работать в трее виндоуса незаметно и независимо от макса (как торрент-клиент)
2. Макс используется и запускается только для создания джоб и для рендера, вся логика клиента, не относящаяся непосредственно к максу и рендеру, будет работать без макса — это к тому же и задел на другие пакеты
3. Самосбор всех сопутствующих сцене файлов (текстур и т.п.) автоматом при создании джобы
4. 100%-ая защита сцен — сцен нет))) Т.е. нет макс-файлов. Если кто помнит, был такой скрипт от Бобо, который текущую сцену переводил в набор команд макскрипта, т.е. по сути генерировал скрипт, создающий при запуске аналогичную сцену — вот примерно так и сделаю. Без клиента открыть такую джобу будет физически невозможно, а поскольку клиент будет не на макскрипте, то хакерам сломать его и выдрать парсер джоб быстро не удастся (если и вообще удастся).
5. Сцены и результаты рендера можно будет раздавать не только торрентом, но и заливать на фтп или слать по емэйл.з.ы. Если краудфандинг пройдет успешно, то проекту предстоит ребрендинг, будет новое название и новый домен.
Ну, а дальше дело техники, твердо решив запустить краудфандинг, я его и собственно и запустил на planeta.ru, но за месяц проект сумел набрать только 7 тысяч из 200 тысяч рублей, осталось меньше недели, так что совсем не удивлюсь, если это дело не выгорит, и опять мне придется пыхтеть на энтузиазме в свободное время как всегда, селяви.
Автор: 1acc