Сергей Александрович Курдаков  

Москва, Зеленоград ( 40 километров от Москвы), Россия
http://www.sim-ai.org sergey(_собака_)sim-ai.org

  

Не формальное, но подробное РЕЗЮМЕ   

Заголовок:   C++ программист со стажем, руководитель команды, специалист в алгоритмах искусственного интеллекта, физике, моделировании, графике,  разработчик игр,  ищет работу.

Сильные стороны : Знание огромного количества фактов из предметной области разработки игр и развитое умение  ориентироваться в незнакомых областях,  способность структурировать сложные проблемы, организовывать и мотивировать людей. Могу работать в стрессовых ситуациях. Всегда  стремился видеть ситуацию шире, много лет потратил на изучение и исследования и считаю, что в области разработки игр знаю почти все ( кроме деталей игрового процесса конкретных игр :) - я почти не играю (нет ‘рефлексов’ ) но с удовольствием смотрю , как играют другие).

 

  Цель:

Ищу работу ведущего программиста ( имею опыт  руководства командой в течении трех лет, команды, которую я сам создал с нуля. Всего в  команде было до   12 членов, большинство из которых работало в удаленном режиме со всех уголков бывшего СССР. Сайт компании www.vrtainment.de (в настоящее время, после моего ухода и внутренних проблем, команда почти полностью распалась  )) .


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


Хорошо знаю  C++,   имел опыт работы в больших и маленьких компаниях и командах. 

Считаю, своим лучшим достижением на настоящее время - создание распределенной команды разработчиков из стран бывшего СССР ( России , Украины, Беларуси) работавшей на западную компанию. За три года удалось создать несколько интересных продуктов, создать с нуля команду из 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

Munich / Berlin

 

 

Ведущий разработчик /руководитель команды

 

 

 

 

 

 

 

 

Руководитель команды разработчиков в распределенной команде - с головным оффисом в Германии, компании 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.hmelyoff.com/

http://frustum.org

http://www.homeleon.com/

http://www.elifelab.com/

http://amm-studio.boom.ru/

http://www.vinnica.ua/~bystep/pages/author.htm

http://www.funnyball2.com

Наибольшее количество сотрудников 12 было перед моим уходом. В настоящее время команда практически распалась. Основные причины проблем в команде была мискоммуникация с менеджером в Германии- с одной стороны, все решения принимал я, с другой, совершенно не советуясь со мной мой партнер пропихивал то одну идею, то другую ( не связанные с текущей ситуацией ), причем торопил, без того, чтобы спокойно оценить сроки, а срывы, при неорганизованной работе перекладывал на меня. Одним словом, на мой взгляд,  удачную идею команды, даже неплохие продукты погубила менеджерская безответственность. Кроме того, я смертельно вымотался. И хотя был в шоке от того, что собрав и развив команду все встало, был почти что рад, что все закончилось. Жаль также, что по прошествии времени и самой команды не стало - она практически исчезла.

 

Опыт, который я приобрел, работая в фирме следующий. Удаленная работа может быть очень интересной, существует возможность собирать талантливых людей из разных городов. Однако, существуют проблемы коммуникаций, есть целый ряд обычных текущих проблем, которые естественно возникают в процессе работы и  очень быстро решаются когда люди рядом, но вот при удаленной работе многое практически остается неразрешимимы, постоянными проблемами. Это огромный минус. В сущности, я думаю, в будущем удаленные проекты могут быть очень востребованы ( с развитием систем коммуникаций ).

 

 

 

 

 

 

 

 

11/1999 - 3/2001

предприниматель

Moscow Russia

 

 

software developer

 

 

 

 

 

 

 

 

написал программку  OrbSat, и пытался , совместно со знакомыми преподавателями из МАИ создать фирму ( как результатом поисков, в том числе была и идея удаленной команды). Идея была в разработке ориентированного на космос программ ( поскольку имею образование в этой сфере ). Однако после попыток, выяснилось, что это не очень перспективно.

Нашел работу ( прошел тестирование приезжавших менеджеров в Москве )в Канаде , и даже подписал контракт TopProducer , но никуда не поехал. Поскольку мечтал о разработке совсем иного софта - или игрового или инженерного с графикой, а позиция была в области баз данных и ActiveX объектов (то есть, я знал как их делать, прошел тест, но ехать работать несколько лет по неинтересной теме я как то не захотел, к тому же против были родственники).

 

 

 

 

 

 

 

 

 

 

 

 

 

1/1999 - 10/1999

Elma Silicon

Moscow Russia

 

 

софтверный консультант

 

 

 

 

 

 

 

Работал консультантом по поддержке софта на заводе, одновременно активно сам изучал тонкости  3 программирования win32, баз данных, CОM.

 

 

 

 

 

 

 

3/1998 - 1/1999

Eagle Dynamics

Moscow Russia

 

 

разработчик 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) программы.
Программа снятия данных с серийного порта и их отображение, небольшое приложение введение состава изделия и затем  составления планов изготовления для машиностроительного завода сделанное на MFC и DAО. В отделе IT был руководителем практики  двух студентов и руководить молодыми мне понравилось ( обучал их ( успешно ) win32, MFC, программированию баз данных).

Сразу института какое то время работал на рынке - для того, чтобы заработать себе на квартиру ( которую купил). Такая работа многому научила в плане предприимчивости, умению общаться с людьми.

 

 

 

 

 

 

 

9/1993 - 1/1995

НПО Лавочкина

Химки , Московская область

 

 

разработчик софта, системный инженер.

 

 

 

 

 

 

 

во время учебы в институте работал на неполной ставке (4-6 курсы )и после окончания института в 1994 на полной ставке работал инженером программистом в НПО им. Лавочкина. Программы - моделирование спуска капсулы с космического аппрата, моделирование угловой стабилизации космического аппарата ( работа сделана как лабораторная для студентов, с выводом графиков на экран ), оперативное планирование процесса съемки для спутника ( дипломный проект - разработка мат модели и программы, реализующий специальный алгоритм линейного программирования для решения данной мат модели. Программа определения времени нахождения спутника в тени земли, программу статистической обработки информации от гироскопов.
Использовал языки  FORTRAN, Modula 2 ,Pascal ( Borland Turbo Pascal), C .

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

 

 

 

Образование:

9/1987

6/1994

Московский Авиационный Институт

Москва

 

Дневное образование обучение 5 лет 10 месяцев с усиленной практикой

 

инженер системотехник по динамике космических аппаратов и их систем. Красный диплом