Казалось бы, что может один программер? Один, отдельно взятый боец, без поддержки тяжелой финансовой артиллерии корпорации, без фланговых охватов рекламой и разведданных полученных от своих спецслужб и вражеских перебежчиков. Монстры IT индустрии с миллиардными оборотами и для менее объемных проектов набирают целые дивизии таких пешек, как я. И сидят они там, крапая очередной модуль, совершенно не представляя его место в общем скелете нового продукта. Старательно и неторопливо, с перерывами на обед, нормированным рабочим днем и корпоративными оттягонами по пятницам. Вся жизнь расписана наперед, ибо плох тот Junior Developer, который не хочет стать TeamLeader.
Но, у меня нет еще одной жизни, которую можно было бы подарить любимой корпорации в обмен на подачки. Не интересна мне и зарплата, вместо денег. Даже такая, как у TeamLead. Копейки.
Так вот, что же может один программер? Оказалось, многое. И еще как может! Если его Божья искра сочетается с устремлением и достаточным количеством времени. Время же, я тратил не жалея.
На алтарь созидания первого своего игрового мира, не считая университетских наработок, я пожертвовал около трех лет своей жизни. И Серегиной тоже. Он по-прежнему частенько приходил, иногда оставаясь с ночевкой. И почти все призовые деньги.
Ближе к окончанию работы над проектом, денег стало катастрофически не хватать. А я-то думал, – сотни тысяч долларов, полученные за турнир, – баснословно огромная сумма, которой мне хватит, чуть ли не на всю оставшуюся жизнь! Куда там! Последние слезы, – несчастные восемь тысяч, я потратил на клиентское «железо». Его едва-едва хватало для оценки геймплея пятеркой игроков. Вот и все. Приехали! О глобальном развитии игрового мира без соответствующей поддержки, речь уже даже не идет.
Нет, я конечно, изначально так и предполагал, продумывая оптимальные варианты привлечения денег с наименьшей вероятностью все потерять, но теперь, похоже, созрела настоятельная потребность в адекватных спонсорах. Людях, с реальными деньгами и немалым весом по жизни.
Вопросы интеллектуальной собственности, на данном этапе меня волновали меньше всего. С приоритетами разбираться буду потом, когда все получится и новый мир заживет своей жизнью, как говорится, по ходу игры. Везде, где можно было использовать готовые наработки, я использовал без стеснения, если они меня не устраивали – переделывал, если не получалось – придумывал новые.
Сейчас я понимаю, – нужно было не плевать на интеллектуальную собственность, свою и чужую, а сразу патентовать все новое и условно-новое, но тогда, в горячке работы, все не относящееся к геймдеву, отодвигалось «на потом», на завтра, на послезавтра, и так до того самого момента, когда стало поздно.
Времени как всегда не хватало, а вопросов, требующих первоочередного решения, становилось все больше и больше, с каждым новым рабочим днем. Впрочем – тогда я был счастлив! Это были дни постоянного радостного предвкушения свершения и, не проходящей даже на время отключения от виртуала, радужной эйфории.
Наблюдать, как рождаются твои персонажи, наливаются красками и оживают ранее безжизненные, лишенные цвета и движения локации, начинают работать прописанные тобою физические законы в новом, ранее не существовавшем до твоего творения, Мире.
Я чувствовал себя самим Создателем!
И гордился собой, убирая незначительные баги, наслаждался тем как решают любые вопросы сообразительные искины (Искусственный Интеллект), ликовал от достоверности графики и звуков, казалось, даже запахи присутствовали, приходил в восторг от тактильных ощущений, которые мне дарил МОЙ Мир! Здесь я мог все!
Но, я понимал – Мир такой только до тех пор, пока в нем я, один. И он станет другим с появлением первого же игрока. Интересно, чувствовал ли Он, создавая человека, что отныне созданный Им мир больше никогда не будет принадлежать Ему, Создателю? Наверняка знал. Как и то, что человек с первого вздоха будет считать этот Мир своим и поступать с ним по своему, человеческому разумению, практически без оглядки на Него, сотворившего их обоих?
Я боялся появления этого первого игрока и в то же время ждал его с нетерпением. Даже будучи обречен после его прихода, на потерю с такой любовью и самоотдачей взлелеянного детища, я все равно не смог бы отказаться от созидания.
А игроки… Так для них, получается, и стараюсь! Не только себя и своего самолюбия ради. Без игроков, мой «Мир» – не более чем набор бессмысленных программ и никому не нужных алгоритмов, всего лишь «ding an sich», вещь в себе. Умозрительный фантом, не постигаемый чувственным восприятием.
Потратить три года такой чувственной, особенно в моем возрасте, жизни, на никому ненужный фантом? Нет уж, увольте!
Сергей, тем временем, по вечерам, по выходным, вовсю тестировал уже собранные области, помогая выявлять несоответствия, так же как и я, со счастливым, светящимся лицом, изредка выпадая из безмятежной виртуальности в эту бренную, полную бестолковых несообразностей земную реальность. Он и стал первым.
С Искусственным Интеллектом все оказалось и сложно, и просто одновременно.
Вся фишка в алгоритме, позволяющем запустить процесс самообучения этого же алгоритма с выбором наилучших, наиболее соответствующих игровому моменту вариантов отклика игровой среды, и сохранением информации в виде динамических правил, которые в свою очередь также могут изменяться в процессе самообучения и определять воздействия алгоритма на игровую среду.
Моя «Сиселия» позволяла это сделать после выделения таких алгоритмов в «улитки», так я назвал специальные блоки спиральной обработки кода, работающие параллельно, вне основного потока и возвращающие результаты туда, где ответ ожидался этим основным потоком. Причем, сбросить информацию, можно было с любого витка спирали, и это также положительно сказывалось на быстродействии.
Самым первым таким алгоритмом, на котором я учился и набивал шишки, стал Киберспонч.
Название говорит само за себя – губка, впитывающая информацию. А по-простому – Пончик. В «Мире» он выглядел, как серый с фиолетовинкой британский кот с темно-оранжевыми глазами. Поначалу я, пойдя на поводу стандартных представлений о взаимоотношениях игрока и питомца, думал привязать его к себе, в виде стандартного пета. Но, Пончик имеет совсем не стандартные функции! И я, поразмыслив на досуге, от привязки отказался, предоставив ему полную свободу действий, ограничившись предустановкой максимальной репутации в мою сторону.
О том, как до внедрения в игровую среду, я около двух лет обучал его и лично, и через всемирную паутину – отдельный разговор. Дело двигалось ни шатко, ни валко, до тех пор, пока из нескольких эзотерических языков я не синтезировал один, и не интегрировал его в «Сисю».
У меня зазвонил телефон. Кто говорит?
Да однажды зазвонил телефон. Нагло и настойчиво. Городской, по которому я, за все время после бабушкиной смерти, и двух раз не разговаривал. Недоумевая, кто бы это мог быть, я поднял трубку.
Кто-то, мне не известный, несколько минут морочил голову, представившись моим бывшим преподавателем логики искусственного интеллекта. Голос показался знакомым. Разговор перемежался шутками и сожалениями, по поводу моего отсутствия на встрече выпускников универа. Только слегка фонящие, чуть неестественные интонации в голосе, не дали принять мне его за Сергея Сергеевича.
– Да-а, Пончик… – протянул я. – А с модуляциями-то в голосовом движке, надо бы еще поработать!
Угадал! В ответ, Киберспонч гулко расхохотался с дребезгом консервной банки. Я заржал вместе с ним. Стало понятно – тест Тьюринга тот прошел.
Вот на базе алгоритма Пончика, я и разработал почти аналогичные алгоритмы для всех других игровых искинов.
Три месяца напряженного труда ушло на объединение отдельных модулей. Почти не спал. Из квартиры не выходил. Еду приносил и готовил Сергей. Убирать и стирать приходила мама. Спасибо им за понимание и поддержку. Но, всему когда-то приходит конец, даже интересному и казалось бы неподъемному. Вот и сборка «Мира» в единое целое оказалась завершена. Все что я мог сделать – было сделано. Теперь, свое слово должны сказать тестеры.