Автор
Awem

Один день из жизни программиста в Awem Games

День начат: 9.00... или 9.10? или 9.15? или… Стоп, в отличие от большинства компаний, занимающихся программированием, заполнение офиса Awem Games работниками мышки и клавиатуры обычно обходится без последнего "или". Впрочем, в любом правиле случаются исключения.

9.05. Кофе. Да, я понимаю, что жужжащая кофе-машина, встречающая вас утром, стала визитной карточкой любого офиса, но куда же без нее? Пока программисты хорошего альтернативного способа проснуться не нашли.

9.15. Рабочее место радостно смотрит на меня четырьмя мониторами (iMac, iPad и 2 от PC). Радует, что весь этот технологический понт одновременно использовать приходится не каждый день.



9.30. FireBird, FireFox, Fire... нет Redmine без Fire. Определяюсь со списком задач на сегодня. Заодно просматриваю последние новости на внутреннем сайте компании. Собрания, дни рождения (поздравить!), грядущий корпоратив.

9.45. Кажется, проснулся. Пошло обсуждение очередной идеи для игры. Предложения, отсев, опять предложения. Вспоминаю, как на старте моего первого проекта в компании в ответ на мое супер-мега-крутое предложение услышал от дизайнера ответ, ставший классикой: "Ты - не целевая аудитория". И, самое обидное - это была чистая правда. Много воды утекло с тех пор, но фраза осталась, только используют ее теперь уже программисты и по отношению к самим себе. Это помогает отсеять часть супер-мега-крутых предложений вроде 3-match шутера внутренним цензором – мы же любим наших дизайнеров.



Почти определились. Формулировка дизайнеров, как всегда, точна и подробна: "эта фишечка прилетает вот сюда и вот отсюда с бабухом вылетает красивая штучка с обалденным эффектом… нуу… таким… ты-дыщь!". В переводе на русский это означает примерно следующее: "по событию окончания движения объекта проигрывается звук, появляется эмиттер и перемещается по заданной траектории". Траектория, обещают дизайнеры, будет вот такая, как у них нарисовано, причем всегда. Первое правило программиста игр гласит: не верь дизайнерам. Это значит, если дизайнер обещает, что принятое им решение никогда-никогда не поменяется – следует усомниться и проанализировать, насколько это "никогда-никогда" реально.

На этот раз реализация оказалась простой, комит в SVN и переводим задачу в Redmine на утверждение дизайнеру.

Между делом посматриваю www.rsdn.ru, доставляя себе извращенное удовольствие, изучая очередные выверты на С++.

12.00. Дизайнеры попросили залить новый билд на iPad – не проблема, если не считать милых вопросов новой xCode - "Ой у меня страшное исключение. Закрыть xCode или будем продолжать?" И это при попытке начать компиляцию. Честно говоря, xCode умиляет своим полным несоответствием столь гламурной и вылизанной MacOS X (главное, не спрашивать, чем руководствовались разработчики, когда с настройками по умолчанию gcc не компилирует boost::shared_ptr).

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

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

14.00. Возвращаюсь к станку. В смысле, к компьютеру.

Как раз есть время посмотреть на проблему у издателя с нашей недавно выпущенной игрой. Игра из-под оболочки издателя не стартует, причем только на немецкой Windows. Пообщались с их представителем – предложили прислать нам их защиту, потому как иначе придется высылать специальные билды с расширенной отладочной информацией для упаковки. Проприетарность защиты убила надежду на первый вариант. Для второго я получил контакты разработчика. Отослал ему билд и стал ждать результата. Делать было особо нечего – решил поэкспериментировать с упакованным их защитой билдом. Увидев в списке задач постороннее приложение и убив его, обнаружил сразу две интересные вещи – защита перестала работать, и в папке с программой появился файл – наша игра. Значит, если папке поставить запрет на запись, а до этого подложить наш новый файлик… В общем, пока мне присылали запакованный билд, я уже нашел проблему, которая оказалась в их защите, попутно найдя другие их баги. Да, проприетарная защита - это, наверное, очень круто.

В процессе пришлось отвлечься – флешер, портирующий Рим 2, пришел уточнить игровую логику; на параллельном проекте возникла небольшая проблема с локализацией на французский, пришлось реанимировать свои скудные знания в UTF-8 и lua (радует, что успешно); да и скайп как-то неожиданно умер – тут уже мне пришлось беспокоить нашего сисадмина.



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



19.00. Просматриваю интернет в поисках чего-нибудь, что может пригодиться в работе. Вот, например, люди используют clang для верификации кода; а вот интересные лекции по stl от ответственного за эту библиотеку в Microsoft.

19.30. Пора домой. Завтра будет еще интереснее.