Веду блог о разработке ПО, науке и книгах: https://tiendil.org

Исторически сложилось так, что приходилось заниматься разного рода деятельностью кроме программирования, поэтому позиционирую себя именно как разработчика программного обеспечения.

Участвовал в разработке Order of War (C++ UI & логика) и WoT (Python портал worldoftanks.ru почти всё)

мобилки - Toy Defense 1,2,3 - сервера на Python, больше 10кк установок.

мобилка - My Cafe: Recipes & Stories - сервера на Python, больше 50кк установок.

С 2012 года пилю свою инди-браузерку: the-tale.org

Репозиторий: https://github.com/Tiendil/the-tale/

Сейчас нахожусь в творческом отпуске.

Открыт для общения на любые темы, особенно интересны: gamedev, геймдизайн nextgen ММО с небольшим требованием ко времени игры, процедурная генерация контента, анализ и генерация кода.
Контакты
Местоположение
Беларусь, Минская обл., Минск

Достижения

Все достижения (16)

Наибольший вклад в теги

Все теги (73)

Лучшие ответы пользователя

Все ответы (140)
  • Как найти удалённую практику для начинающего python программиста?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Присоединяйся к разработке the-tale.org

    Все исходники открыты: https://github.com/Tiendil/the-tale

    Берёшь задачу делаешь, делаешь пул-реквест, получаешь критику, пока всё правильно не будет сделано, и код попадает в рабочий проект.

    В вики на гитхабе рассказано подробнее.
    Ответ написан
  • Каков C++ в геймдеве?

    Tiendil
    @Tiendil
    Разработчик ПО.
    >За последние три месяца мне удалось освоить Python
    не удалось

    >Разобрался с гит
    не разобрались

    >линуксом на уровне пользователя
    не разобрались

    >Lua
    не разобрались

    Для начала приземлитесь. За 3 месяца вы ни в чём из этого разобраться на хорошем уровне не могли.

    >Где писать игры для портфолио
    Это делать не обязательно. Это, конечно, плюс, но не такой существенный чтобы прямо быть обязательным.

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

    Определитесь чем конкретно хотите заниматься: физика, графика, логика, сеть, утилиты, etc и делайте что-то именно в этой области (демки, например).

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

    Tiendil
    @Tiendil
    Разработчик ПО.
    Преимущество у динамически типизированных языков, конечно, не в синтаксисе, а в семантике.

    Благодаря определению типов во время исполнения программы сильно облегчается метапрограммирование. Очень сильно облегчается. Оно, в свою очередь, упрощает всю остальную работу.

    Благодаря гибкости кода в рантайме (см. тот же duck typing) и интроспекции (анализ свойств объектов и кода) получается на порядок проще и быстрее писать универсальные алгоритмы и конструкции вроде декораторов, всяческих ORM и подобных вещей. Это сильно упрощает интерфейсы библиотек, что в совокупности ведёт к более простому коду и к плавной кривой обучения новичков.

    Из моей практики (5 лет писал на C++, потом столько же на Python, эти сроки немного пересекались) могу сказать, что с точки зрения ошибок типизации (а собственно их и ставят в недостаток динамически типизированным языкам) разница минимальна — они очень редки и все отлавливаются автоматическими тестами. Конечно, если у вас руки откуда надо растут, а если не откуда надо, то эти ошибки будут далеко не самой большой проблемой. Поэтому в области разработки софта, не требовательного к производительности, такие языки рулят.

    Преимущество же статически типизированных языков в том, что, налагая дополнительные ограничения на программиста и на гибкость кода, они позволяют компилятору получить дополнительную информацию о программе и сделать более специфичные операции. Однако нынче почти везде используют JIT и это частично нивелирует разницу в производительности.

    В итоге мы получаем классическую дилемму: повышение уровня абстракции против повышения уровня специализации. У каждого пути есть свои плюсы и минусы.

    По производительности питона ссылок уже накидали, но в любом случае тут надо исходить из требований конкретной задачи — проще взять и протестировать самому.
    Ответ написан
  • Как реализовать НЕ рентгеновское зрение "врагов" в игре?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Не нужно ничего вырезать.

    Берёте все ключевые точки в области видимости (врагов, друзей, лут, ещё что-то) и проверяете есть ли препятствия на линии между ними и ботом. Т.е. проверяете, пересекает ли линия какое-либо препятствие. Если пересекает, то бот точку не видит.
    Ответ написан
  • Куда податься с идеей для игры?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Идеям цена 10 центов за дюжину. Чтобы собрать команду под идею и без денег необходимо обладать эпической харазимой.

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

    Если к геймдеву никак не относитесь — осваивайте нужную профессию или ищите деньги.
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (3)