Сергей Александрович Курдаков
Москва, Зеленоград ( 40 километров от Москвы),
Россия
http://www.sim-ai.org
sergey(_собака_)sim-ai.org
Не формальное, но подробное РЕЗЮМЕ
Заголовок: C++ программист со стажем, руководитель команды, специалист в алгоритмах искусственного интеллекта, физике, моделировании, графике, разработчик игр, ищет работу.
|
Сильные стороны : Знание огромного количества фактов из предметной области разработки игр и развитое умение ориентироваться в незнакомых областях, способность структурировать сложные проблемы, организовывать и мотивировать людей. Могу работать в стрессовых ситуациях. Всегда стремился видеть ситуацию шире, много лет потратил на изучение и исследования и считаю, что в области разработки игр знаю почти все ( кроме деталей игрового процесса конкретных игр :) - я почти не играю (нет ‘рефлексов’ ) но с удовольствием смотрю , как играют другие). |
|
Цель: |
Ищу работу ведущего программиста ( имею опыт руководства командой в течении трех лет, команды, которую я сам создал с нуля. Всего в команде было до 12 членов, большинство из которых работало в удаленном режиме со всех уголков бывшего СССР. Сайт компании www.vrtainment.de (в настоящее время, после моего ухода и внутренних проблем, команда почти полностью распалась )) .
Считаю, своим лучшим достижением на настоящее время - создание распределенной команды разработчиков из стран бывшего СССР ( России , Украины, Беларуси) работавшей на западную компанию. За три года удалось создать несколько интересных продуктов, создать с нуля команду из 12 человек, которая работала в области создания промышленных симуляторов виртуальной реальности и программ обработки видео. Одним из результатов работы в команде - утилита CapturePad - довольно известная утилита захвата экранов ( концепция, первоначальный кодинг работающего прототипа и руководство разработкой осуществлено мною)
Как альтернативный вариант—хочу написать серию книг по разработки игр - от книги по созданию простых игрушек с использованием существующих движков до книг с описанием тонкостей алгоритмов графики и искусственного интеллекта и ищу заинтересованных издателей. И наконец, ищу возможность работать исследователем ( думаю, вполне могу быть плодотворным ученым - так как обладаю комплексом знаний из самых разнообразных сфер от системного анализа, моделирования технических объектов ( самолетов, автомобилей и тд ) до графики и искусственного интеллекта ).
|
|
||||
|
Опыт работы: |
1/2005 – 6/2005 |
Разработчик-исследователь графических эффектов |
Kongsberg Maritime Norway удаленная работа |
|
||
|
|
Разработчик-исследователь графических эффектов |
|
||||
|
|
|
|
|
|
||
|
|
Благодаря нескольким постам в группе openscenegraph получил приглашение в Норвежскую фирму Kongsberg Maritime , занимающуюся разработками морских симуляторов. По телефону я не понял полностью , что они хотят, но поскольку меня пригласили - решил поглядеть , что за фирма. После визита, и предложения работать над задачами, связанными с шейдерами и исследованием графических алгормов, решил, что это будет интересно. В течении 6 месяцев создал модуль спектрального рендеринга ( полный физический просчет ) для расчета цвета морской воды в зависимости от типа воды, угла солнца. Задача достаточно нетривиальная, но я столкнулся с тем, что задачи норвежцы ставить умеют, а вот поддерживать на необходимом уровне контакты для решения проблем нет. Создал небольшое тестовое приложение с использованием openscenegraph и mfc для теста light scattering шейдеров (по ATI light scattering demo) - Шейдеры реализованы на opengl shader language. Как выяснилось, совместить предыдущий подход с тем, что реализовано в ATI шейдерах (упрощенный подход ) займет еще какое то время, без обсуждений меня переключили дальше. Занимался созданием бесконечного океана , реализация океана без морфинга между лодами работала нормально, но была поставлена задача , чтобы океан не содержал видимого popping между лодами. Пришлось изучить почти десяток алгоритмов реализации морфинга с оценкой подходимости для реализации требуемого океана, а также подходы, которые по иному решали проблему. В конце концов наиболее разумным показался подход портирования кода статьи http://www.gamedev.net/columns/hardcore/geomorph/ под openscenegraph c добавлением динамического перемещения вертексов для волн и динамического добавления чанков океана при движении камеры. Однако подход при переносе с dx на openscenegraph (что заняло довольно много времени и существенного изменения кода) оказался слишким медленным, можно было улучшить производительность. Но организация самого процесса, когда сложные задачи не возможно динамически обсуждать и решать проблемы в достаточной степени измотали меня. К тому же будучи лидером, поработав, осознал, что работать одному в удаленном режиме - очень и очень тяжело с человеческой точки зрения. Поэтому с июля месяца я взял отпуск и больше не приступал к работе с этой фирмой. До настоящего времени обсудил возможность работы в канадской Electronic arts ( но по обсуждению, когда я объяснил, что хотел бы работать лидером - мы не сошлись). И серьезно думаю над возможностью писать книги для разработчиков игр.
|
|
||||
|
|
|
|
|
|
||
|
|
4/2004 – 12 /2004 |
Независимый разработчик. |
Москва, Зеленоград, Россия. |
|
||
|
|
researcher / independent developer |
|
||||
|
|
|
|
|
|
||
|
|
См
предыдущий пункт. После работы в течении
трех лет без отпуска по созданию команды,
произошел разлад с менеджером, приехав
из Германии после встречи в Москву был
немного в шоке. У меня были планы
продолжить создание команды до развития
ее в успешную и известную фирму, но увы
см историю ниже. Походил немного по
фирмам в поисках работы, но то, что нашел
не удовлетворило, и неудача со командой,
которой я отдал столько сил во многом
определяла мою позицию не торопиться с
шагами. Решил отдохнуть. И заодно
поглядеть тему искусственного
интеллекта, поскольку физику и анимацию,
а также элементы искусственного
интеллекта - такие как конечные автоматы,
управление скоростью автомобилей для
автосимулятора (см ниже описание работы)
я уже делал и было интересно поглядеть,
что и как можно сделать в плане других
подходов искусственного интеллекта
для игр. Подумывал о
написании диссертации,
прочитал массу книг , можно
упомянуть AI Game Development
by Alex J. Champandard; AI for Game Developers
By David M. Bourg,Glenn Seeman; AI
Techniques for Game Programming by Mat Buckland;
Al Application Programming by M. Tim Jones ; Ai game programming
wisdom by Steve Rabin; Programming Believable Characters for
Computer Games by Penny Baillie-De
Byl; Programming game ai
by example by Mat Buckland; AI Game Engine
Programming by Brian Schwab собрал массу литературы по симуляции мира, и по факту, перечитал массу литературы с целью проссумировать предыдущий опыт ( симуляции автомобилей, самолетов, вертолетов, кораблей, космических аппратов и проч и проч ). Было интересно подвести после многих лет работы некий итог. Также поглядел кое что по обработке видео, но решил, что это не то, что мне будет интересно в будущем. Проглядел достаточно много книг по дизайну игр. Показались смешными :) но было интересно, что рекомендуется дизайнерам. Провел какое то время в переговорах по написанию лекций по разработке игр для американских университетов, но, поскольку фирма , как оказалось, в основном, индийская - договорится было очень сложно. Хотя сама идея написания лекций, книг или статей по разработке игр мне понравилась, раньше такой род занятий не приходил на ум. Я уже собирался устроиться разработчиком искусственного интеллекта , но получил приглашение от норвежской фирмы работать по направлению исследователя графических эффектов. Так что переход в разработчики ai несколько отложился. в конце концов для меня показалось интересным поработать с графикой, и тем более - в процессе переговоров звучали слова о будущих проектах ( это всегда дает некии перспективы ...., однако по прошествии работы, стало понятно - перспектива только одна - работать одиночкой исследователем - ну... это не очень интересно, если признаться ). |
|
||||
|
|
3/2001 - 4/2004 |
VRtainment |
|
|
||
|
|
Ведущий разработчик /руководитель команды |
|
|
|||
|
|
|
|
|
|
||
|
|
Руководитель
команды разработчиков в распределенной
команде - с головным оффисом в Германии,
компании VRtainment. История создания
команды была такова. В силу семейных
обстоятельств, решив не ехать работать в
канаду по контракту с TopProducer
я нашел в ньюзгруппе ученого в области
создания симуляторов и одновременно
предпринимателя, недавно стартовавшего
свой бизнес, и предложил ему создать
команду разработчиков - программистов и
дизайнеров на удаленной основе. В
принципе, идея
работать удаленно для меня была
достаточно естественна, поскольку я
знал компании, которые таким способом
организовывали работу с сотрудниками в
России, но она не была таковой для моего
партнера. И так, собственно, и не стала.
То есть он остался на уровне одиночки
ученого, и через его привычки, подходы
удаленно нельзя было перепрыгнуть,
несмотря на мои попытки объяснять, как
можно было бы организовывать бизнес. Тем
не менее, мы начали и первым проектом
было - начало создание библиотеки
динамики автомобиля для промышленных
симуляторов. Одновременно я написал код
сохранения видео из имеющихся
графических приложений ( симулятор
поезда
) . Потом данные проекты прервались, хотя
я придумал концепцию утилиты ( которая
впоследствии стала CapturePad)
но я пригласил первых дизайнеров и
занялся разработкой симулятора крана (
который впоследствии был полностью
продан как продукт - симулятор был
военного назначения) пришлось вникнуть
в робототехнику и приглашать кандидатов
наук как консультантов, поскольку кран
был роботоподобным. Далее, уже с
участием новых программистов
разрабатывал разные графически
приложения ( в том числе шейдерный depth
replace
сцену боя), небольшую библиотеку
анимации под OpenGL
Performer,
в чем то напоминающую http://www.vrlab.umu.se/research/replicants/rbody.html , пример можно скачать тут http://www.vrtainment.de/vrtainment_web/downloads/vravatar/av_setup.exe
- он простой - но стоит учитывать, что в
нем сделан ручной парсер .x
мешей и анимаций, скрипты и пример может
работать как под линукс ( не выложен на
сайте )так и под windows
, а также содержит код сопряжения с OpenGL
Performer,
кстати - персонаж этого примера - один из дизайнеров фирмы.
Разрабатывали свой собственный
сценеграф, вдохновителем был
http://sgl.sourceforge.net/
- но сцене граф обладал рядом
специфических особенностей с расширенной поддержкой
шейдеров, с более богатыми загрузчиками
( openflight и
тд), имел очень мощную поддержку
процесса runtime
генерации лодов. Вел разработку
небольших игр на флэше, создание утилиты
CapturePad , продолжал разрабатывать
и завершил разработку библиотеки
автомобиля . В силу часто меняющихся
требований, к сожалению, разработка шла
довольно медленно ( циклично ). Но опыт
оказался бесценным и библиотека
применялась , например http://www.sovibtech.com/simulator.htm
пользователями продуктов этой фирмы являются большинство разработчиков автомобилей. В основном мы разрабатывали заказные симуляторы с использованием OpenGL Performer, поэтому игровых продуктов, которые можно показать, на сайте нет, однако могу лишь упомянуть проекты ( они есть на сайте vrtainment )3D Driving Simulator at Volkswagen AG,Driving Simulator Projects at Simulation & Vibration Technologies ( линк сверху ),Driving Simulator at Fraunhofer Institut for Verkehrs- und Infrastruktursysteme in Dresden,Simulation Projects (кран, поезд) at Dornier GmbH. Разработал класс для джойстика для линукс и видноуз ( многие продукты из упоминаемых выше работали , прежде всего на linux , поскольку OpenGL Performer во время их написания существовал лишь под линукс ( под виндоуз он вышел когда команда перешла на собственный мультиплатформенный движок ). Линки сайтов тех, кто работал в моей фирме ( из тех, кто имеет свои сайты). http://www.vinnica.ua/~bystep/pages/author.htm Наибольшее количество сотрудников 12 было перед моим уходом. В настоящее время команда практически распалась. Основные причины проблем в команде была мискоммуникация с менеджером в Германии- с одной стороны, все решения принимал я, с другой, совершенно не советуясь со мной мой партнер пропихивал то одну идею, то другую ( не связанные с текущей ситуацией ), причем торопил, без того, чтобы спокойно оценить сроки, а срывы, при неорганизованной работе перекладывал на меня. Одним словом, на мой взгляд, удачную идею команды, даже неплохие продукты погубила менеджерская безответственность. Кроме того, я смертельно вымотался. И хотя был в шоке от того, что собрав и развив команду все встало, был почти что рад, что все закончилось. Жаль также, что по прошествии времени и самой команды не стало - она практически исчезла.
Опыт, который я приобрел, работая в фирме следующий. Удаленная работа может быть очень интересной, существует возможность собирать талантливых людей из разных городов. Однако, существуют проблемы коммуникаций, есть целый ряд обычных текущих проблем, которые естественно возникают в процессе работы и очень быстро решаются когда люди рядом, но вот при удаленной работе многое практически остается неразрешимимы, постоянными проблемами. Это огромный минус. В сущности, я думаю, в будущем удаленные проекты могут быть очень востребованы ( с развитием систем коммуникаций ). |
|
|
|||
|
|
|
|
|
|
||
|
|
11/1999 - 3/2001 |
предприниматель |
|
|
||
|
|
software developer |
|
|
|||
|
|
|
|
|
|
||
|
|
написал программку OrbSat, и пытался , совместно со знакомыми преподавателями из МАИ создать фирму ( как результатом поисков, в том числе была и идея удаленной команды). Идея была в разработке ориентированного на космос программ ( поскольку имею образование в этой сфере ). Однако после попыток, выяснилось, что это не очень перспективно. Нашел
работу ( прошел тестирование
приезжавших менеджеров в Москве )в
Канаде , и даже подписал контракт TopProducer
, но никуда не поехал. Поскольку мечтал о
разработке совсем иного софта - или
игрового или инженерного с графикой, а
позиция была в области баз данных и ActiveX
объектов (то есть, я знал как их делать,
прошел тест, но ехать работать несколько
лет по неинтересной теме я как то не
захотел, к тому же против были
родственники). |
|
|
|||
|
|
|
|
|
|
||
|
|
|
|
|
|
||
|
|
1/1999 - 10/1999 |
Elma Silicon |
|
|
||
|
|
софтверный консультант |
|
||||
|
|
|
|
|
|
||
|
|
Работал консультантом по поддержке софта на заводе, одновременно активно сам изучал тонкости 3D программирования win32, баз данных, CОM. |
|
||||
|
|
|
|
|
|
||
|
|
3/1998 - 1/1999 |
Eagle Dynamics |
|
|
||
|
|
разработчик ai , высокоуровневой графики и физики |
|
||||
|
|
|
|
|
|
||
|
|
Eagle Dynamics это разработчик авиасимуляторов линейки Flanker и Lockon Modern air combat. Я участвовал в разработке Flanker 2. Работать было достаточно тяжело - постоянно уходили сотрудники, случился известный дефолт 98 года, но зато я окунулся в мир разработки игр. Познакомился и с физикой летательных аппаратов и с высокоуровневым программированием графики и программировал системы ПВО для игры. Сказано так легко - познакомился. На самом деле работа была по 6-7 дней в неделю. И так как я жил далековато от места разработки, а транспорт плохо ходил - я вымотался и с тех пор думал о работе с меньшим временем поездки. Ну итог этих исканий вы можете прочитать. Еще один вывод по работе в фирме был следующий - для того, чтобы работать - нужно хорошо знать всю предметную область - сильно сокращает затраты. Например, столкнулся с достаточно странным явлением в коде игры: деструкторы у классов были не виртуальными, а для очистки памяти после неоднократных проблем была введена дополнительная виртуальная функция, которая вызывалась отдельно перед удалением объектов. Или, например, конечные автоматы для системы ПВО я делал через кучу if, выбирающих вызов соответствующей функции, да такой подход работал, но проблема была в том, что я попросту и не знал, как можно подойти иначе к реализации конечных автоматов. Странных повороты в коде, когда проект делают талантливые, но не во всем разбирающиеся программисты, по уходу из фирмы просто интуитивно хотелось бы избегать. Собственно, под влиянием этого желания - работать без постоянного удара лбом о уже существующие решения, желания понимать все аспекты разработки - прошли мои следующие годы как разработчика. В настоящее время чувствую себя как человек, который наконец взобрался до высоты, с которой те проблемы, которые были у разработчиков ED в момент моей работы - я мог бы быстро решать. Наверное, за столь долгие годы появилось много талантливых программистов, знающих даже больше, но я свой путь прошел. |
|
||||
|
|
|
|
|
|
||
|
|
1/1995 - 3/1998 |
Разные компании |
Москва, Зеленоград |
|
||
|
|
инженер разработчик |
|
||||
|
|
|
|
|
|
||
|
|
Работал
как MFC
программист, разрабатывал C++/MFC/serial
and
parallel
ports/database
(DAO
and
ODBC +SQL)
программы. Сразу
института какое то время работал на
рынке - для того, чтобы заработать себе
на квартиру ( которую купил). Такая
работа многому научила в плане
предприимчивости, умению общаться с
людьми. |
|
||||
|
|
|
|
|
|
||
|
|
9/1993 - 1/1995 |
НПО Лавочкина |
Химки , Московская область |
|
||
|
|
разработчик софта, системный инженер. |
|
||||
|
|
|
|
|
|
||
|
|
во
время учебы в институте работал на
неполной ставке (4-6 курсы )и после
окончания института в 1994 на полной
ставке работал инженером программистом
в НПО им. Лавочкина. Программы -
моделирование спуска капсулы с
космического аппрата, моделирование
угловой стабилизации космического
аппарата ( работа сделана как
лабораторная для студентов, с выводом
графиков на экран ), оперативное
планирование процесса съемки для
спутника ( дипломный проект - разработка
мат модели и программы, реализующий
специальный алгоритм линейного
программирования для решения данной мат
модели. Программа определения времени
нахождения спутника в тени земли,
программу статистической обработки
информации от гироскопов. |
|
||||
|
Образование: |
9/1987 6/1994 |
Московский Авиационный Институт |
Москва |
|
|
Дневное образование обучение 5 лет 10 месяцев с усиленной практикой |
||
|
|
инженер системотехник по динамике космических аппаратов и их систем. Красный диплом |
||