• Game-dev путь. Что мне делать?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Не достаточно быть программистом, чтобы сделать хорошую игру.
    Нынче (в 2020 году) в одиночку игры практически никто не делает.

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

    Конечно, немного утрирую, но всё именно так и обстоит. Крутой программист (а лучше команда) может обеспечить оптимизацию и отсутствие багов. Но чтобы игра была классной, нужно и другими крутыми профессиями в неё вложится.

    С чего начать, спрашиваешь? Начни, например, с того, чтобы понять, кто такой геймдизайнер. Через месяц, когда поймешь, что это такой человек в проекте, который просто бумажки перебирает (утрирую), у тебя будет вся жизнь впереди, чтобы им стать. Это лишь один(!) из путей войти в game-dev с хорошим бэкграундом. Ну а так можно и через тестеры попробовать, и через ПМы... Ну и через программиста тоже можно, только немного странно, потому что если соскочить на другую роль, то на программирование времени не останется, и 90% опыта улетит в трубу, а если остаться программистом, то тема игр тебя будет касаться лишь косвенно. Такие дела, брат.

    Любой может отыграть 10000 часов во всевозможные игры, но далеко не каждый может сделать это с вниманием и любовью к своему делу, имея четкую цель.
    Ответ написан
    Комментировать
  • Game-dev путь. Что мне делать?

    @majstar_Zubr
    C++, C#, gamedev
    У вас должна быть цель стать профессионалом в области. Потому что только профессионал может выбирать, с кем работать, где работать, над чем работать - над крупными проектами для правительств, над банковским софтом, над веб-проектами или над играми.

    Вот это будет правильная установка. А что учить и в каком порядке вам никто не скажет, потому что требования меняются, возможности устроится на работу у всех разные, неизменно только одно - желательно знать все и вчера. Именно с этой установкой рисуются абстрактные Programming paths, но толку от них не будет никакого, если вы не сможете обобщать знания и не будете постоянно работать над строительством своего дерева знаний. Главное - пополнять свои знания концепциями, из которых потому выводятся базовые шаблоны, шаблоны проектирования, а из них, в свою очередь, архитектурные шаблоны, методология разработки, и непосредственно связь с рынком, экономикой, психологией и прочим, и так далее. И эти концепции не только в книгах по разработке ПО, их много в теор вере, дискретной математике, физике, которые дождаться в голову только в процессе получения высшего образования, системно.

    Любовь к учению - единственное, что может поддерживать на пути, потому что путь очень долгий. Многое будет непонятно и с первого раза, и со второго. Иногда и с третьего, потому что вы на самом деле не поняли базовые вещи. Или выбрали неправильную книгу. Или начали читать правильную книгу слишком рано. А узнаете вы расхождение между объективным знанием и собственным все равно не раньше, чем столкнетесь с проблемой на практике. А по-другому никак.

    Что вы можете сейчас сделать - взять прицел. Конкретно сформулируйте профессию и специализацию. Оптимизируйте процесс полученния знаний: как бы не ругали образование в ВУЗах СНГ, все же это нехилая экономия времени, если вы сразу будете получать профильное образование.

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

    А на самом деле надо. Вы должны получать удовольствие от получения знаний, потому что иначе вы не сможете сделать игры, которые могли бы приносить новый опыт игрокам. Чтобы транслировать новый опыт через генераторы опыта - игры - нужно уметь и любить этот опыт (субъективный и эмоциональный) получать, и представлять, как его давать людям. Разработка игр - всего лишь автоматизация этого процесса.

    Так что, запасайтесь попкорном и начните с языка Си. Освойте структурное программирование. Алгоритмы, структуры данных. Архитектуру компьютера, ОС. Не торопитесь как можно быстрее неправильно понять как можно больше вещей за кратчайший промежуток времени. Перечитывание и практикуете, пока не станет понятно так, что сможете научить кого-нибудь другого. Макконнелл, Роберт Мартин, Кент Бек, Эрик Эванс, Мартин Фаулер + 1 год дополнительного быдлокодинга на java и c# и c++ и у вас появится понимание ООП, ФП, типовые устройства моделей памяти и сборщиков мусора. Ещё за год научитесь писать настоящий ООП код, читать чужой код, даже если он написан в процедурно-макаронном стиле как книгу. Но надо ли вам эти три скучных года, потерянных полностью для личной жизни? Не проще ли получить solid knowledge и постепенно получать практику в среде опытных специалистов?

    Подытожу: становитесь профессионалом, на это у вас уйдёт ~10 лет после введения привычки учится в свободное время. Периодически смотрите на требования вакансий и составляйте себе древо знаний, которое хотите получить.
    Ответ написан
    Комментировать