Привет всем! Меня зовут Ш. Сергей!

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

В этой статье я постараюсь затронуть тему для всех ЯП и в своём большинстве для начинающих программистов. Так как именно они зачастую будут стоять перед выбором: "с чего же начинать?"

Зачем эта тема?

Я пишу статьи и задевать каждый раз одну и ту же тему в каждой статье - достаточно бессмысленное занятие. Согласитесь, что выбор IDE, её настройка, настройка проекта и прочие вещи желательно освещать везде. И очередная статья будет содержать много информации именно по вступлению. Люди, читающие статьи, могут быть простыми новичками (а может ещё даже не выбирали ЯП) и могут не знать многих вещей. Для этого и создаю краткую статью которая будет предварительной подготовкой к проекту. Она хоть и поможет мне (а может и не только мне) в дальнейшем, но какие-то настройки для отдельных проектов всё равно делать наверняка придётся.

С чего же надо начинать?

В настоящее время существует множество игровых движков которые позволяют делать игры не создавая ни какой код. Unity, Godot, Game Maker и другие менее популярные. Вероятно ваш выбор, изначально, должен пасть именно на них. Так как большинству будет проще начинать с чего-то более простого и более понятного. Потренируйтесь, создайте простые игры и решите для себя, подойдут они вам или нет.

Так же, я бы посоветовал новичкам создавать карты для игр, и не только карты. Взгляните на игры в которых вам позволяют создавать карты и не только (редактировать героев или ещё какие возможности). Это такие игры как Герои 3, Dota, TES III и другие.

Благодарность, SadOcean, за то что напомнил, что я упустил достаточно важную часть "игростроя"!

Если вы уже наигрались со всем этим, и вам этого мало, то тогда вам поможет программирование, где возможностей больше, но путь ещё тернистее.

Выбор ЯП

По данной теме есть куча советов, и на самом деле мне бы не стоило вообще задевать эту тему. Но... на то оно и "но".

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

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

Если вы новичок, то не гонитесь за новыми ЯП! Зачастую именно на них очень мало учебной литературы. Не гонитесь за языками, внутренний функционал которых часто меняется. То что вы изучаете сегодня, может оказаться завтра практически не нужным.

Лично моё мнение это начинать с таких языков как С (не С++) , Pascal, Basic (он сейчас используется?) возможно C#. Не считайте мои слова за основу! Возможно вам лучше подойдут такие ЯП как: Python, Java, Kotlin или другие.

Если вы не новичок и уже программируете год-три. Не уходите с данного ЯП! В большинстве случаев при таком переходе на другой ЯП вы потеряете почти весь свой прогресс в программировании. Если вы выбрали ЯП, но не научились хорошо на нём программировать, то переход на другой ЯП зачастую будет вреден. Мозг человека не всегда готов перестраиваться и вернее всего вы просто забросите это дело.

Скрытый текст

По сути этот совет достаточно бесполезный. Потому что многие как раз в этот момент и бросают программирование.

Бывалые программисты могут "скакать" с одного ЯП на другой. Многим из них приходится программировать на нескольких ЯП. Это нормально, и некоторым от этого не уйти.

Скрытый текст

Я использую в основном три ЯП: Object Pascal, ассемблер и java. Но код приходится читать на разных ЯП. Поэтому да, наверняка я могу перейти на другие ЯП, но нужно ли?

Задавайте себе этот вопрос, если решите перейти на другой ЯП.

Потому выбор ЯП это достаточно важно на начальной стадии, а для людей закалённых в боях это становится менее критичным.

Выбор среды разработки и её настройка.

IDE

Это тоже достаточно важный выбор. Если у вас мощный компьютер, то многим подойдёт Visual Studio. Новичкам надо просто узнать поддерживает ли Visual Studio выбранный вами ЯП и просто использовать его.

Если у вас не достаточно мощный компьютер, то я бы не советовал использовать Visual Studio, или как минимум вам надо будет выбрать её более раннюю версию. Visual Studio жрёт много ресурсов и вам может не понравится то, как она работает на вашем компьютере (об этом, кстати, многие забывают).

Людям, кто давно программирует сложно что-то посоветовать, потому что со временем у многих появляются свои запросы. В скорости работы IDE, в скорости компиляции проекта, ещё каких-то параметров, которых может оказаться очень много. Кому-то обычный текстовый редактор подойдёт, кому-то нестандартная легковесная IDE. И иногда люди выбирают средства разработки годами, а иногда пользуются разными для одного проекта.

Вам придётся искать по интернету какие IDE существуют для вашего ЯП, попробуйте каждый (по возможности) и выберите тот который вам понравился (возможно через некоторое время вы решите его сменить, и тут как раз кстати будет то, что вы уже проверяли какие-то IDE).

настройка

После выбора IDE вам надо её настроить. Это тоже важно, но для новичков лучше всего эту часть пропустить. На настройку IDE обычно уходит очень много времени, и это не настолько критично, чтоб прям с нуля начать настраивать IDE под себя.

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

отладчик

На начальной стадии вы можете так же пропустить эту часть. Вернее всего вам нужно будет просто запустить программу, и ни о какой отладке тут речи и быть не может.

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

По большей части это будете не вы. )))

Создание и настройка проекта.

Эта тема так же может быть как обширной, так и быть очень маленькой.

Для новичков она очень маленькая. Обычно вы открываете урок, вам указывают в какой последовательности что сделать и проект готов. Но вы должны знать, что множество IDE содержат разную функциональность по созданию проекта. Многие из них позволяют создать большое количество разновидностей проектов, в результате вы можете получить довольно не малый проект с уже готовым кодом. Этот код, зачастую, можно запустить, но не факт что вы увидите результат работы программы, потому что вы можете даже не успеть увидеть как как проект успел отработать. Потому пугаться таких моментов не надо.

Потренируйтесь в создании/закрытии проекта. Посмотрите какие вы можете создать проекты, посмотрите код, созданный в процессе создания.

Компиляция и запуск проекта.

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

Если вы не знаете что за ошибка произошла в результате попытки запуска вашей программы, то лучше всего обратиться на форум где идёт поддержка данной среды разработки. Желательно чтоб такой форум был активным и чтоб на нём ежедневно создавалось не менее 10 тем (на самом деле для некоторых ЯП есть форумы где создаётся 1-2 темы, и это будет нормально). Спрашивайте в чатах, если таковые имеются. Но в чатах не очень долго держится информация и в скором времени её уже не видно будет. Потому чаты иногда не совсем удобны, особенно если там сидит много народа. С другой стороны это может оказаться очень удобным, так как ответить могут быстрее чем на форуме.

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

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

Немного советов.

  • Перед запуском, старайтесь сохранять проект. Не все IDE сохраняют проект по умолчанию и всё что вы сделали, может потеряться в результате непредвиденных событий.

  • При изучении ЯП всегда тренируйтесь! Создание кода позволит вам быстрее понять что делает данный код.

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

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

  • Выберите игровой движок, который будет вам больше по душе. Сменить его вы всегда сможете, в любой момент времени.

Окончание.

Так это статья ближе к обучению, то она явно не завершающая, но вот пока все статьи по "Игрострою" будут не упорядочены и содержать совершенно разную информацию. У меня не мало информации скопилось в процессе создания как различных проектов, так и в процессе разработки движка ZenGL. Какую-то информацию по программированию вы можете увидеть на моём канале, тематика там может быть достаточно разнообразной и... не отсортированной. Уж извиняюсь. Так же стараюсь пока выпускать статьи, все они лежат у меня в профиле здесь. Ну и можете поддержать меня. Хотя бы лайком или дизлайком! )))

Комментарии (19)


  1. Cels
    31.08.2024 08:10
    +10

    Краткое изложение:

    Выберите яп и ide, настройте отладчик , скомпилируйте приложение, поставьте лайк.

    Как неожиданно...
    На прикол вроде не тянет и при чем здесь игрострой?


    1. Seenkao Автор
      31.08.2024 08:10

      поставьте лайк.

      надо было более полно написать: "поставьте лайк/дизлайк".

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

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

      И игрострой это так же касается.


      1. Cels
        31.08.2024 08:10

        Так тут и про этл ничего не сказано - одна вода


        1. Seenkao Автор
          31.08.2024 08:10

          Вы хотели чтоб я произвёл полный обзор всех ЯП? Всех IDE? Всех отладчиков?

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

          Вы, вероятно, забыли, как вы выбирали ЯП? Сколько IDE перепробовали пока не пришли к той, что используете?

          Новичков надо направить, а не прибить их гвоздями к какому-то пункту. Они сами "прибьются", когда решат какое направление им выбрать.


          1. Cels
            31.08.2024 08:10
            +2

            "Как выбрать холодильник? - выберите себе подходящий по вкусу и вашим требованиям." - и так у вас по каждому пункту. Везде очевидные вещи.

            Вы хотели чтоб я произвёл полный обзор всех ЯП? Всех IDE? Всех отладчиков?

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

            Вы, вероятно, забыли, как вы выбирали ЯП? Сколько IDE перепробовали пока не пришли к той, что используете?

            Первый яп был бэйсик на Spectrum ZX, затем masm32 с настроенным редактором UltraEdit32, затем C/C++ API/MFC в Visual Studio 6, perl, php, c#, java (libGDX) и т.д. - никогда проблем с выбором IDE небыло.

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


            1. Seenkao Автор
              31.08.2024 08:10

              Везде очевидные вещи.

              Я надеюсь вы умеете эти очевидные вещи доносить до всех? Почему-то очевидные вещи, для большинства оказываются не очевидными. Не скажите почему?

              зачем очередная статья?

              ответ в статье.

              В программировании в основном до всего самому доходить нужно

              в настоящее время нет. Потому что сотни ЯП, тысячи разных IDE не дадут в настоящее время нормальный вход в программирование. Может расскажите новичкам сколько на сегодняшний момент ЯП существует? Сколько сред разработки существует? Распишите всё подробно. Может тогда поймёте, что вхождение в программирование сейчас, это не то же самое что 20 лет назад, когда и выбора не было, пользовались тем что было и экспериментировали на каждом шагу.

              может это не его?

              Это не нам с вами решать. А самому человеку. многие люди для каких-то дел не созданы, но трудом и упорством достигали своей цели. Хотя все говорили что: "Это не ваше!".


              1. Cels
                31.08.2024 08:10

                Я надеюсь вы умеете эти очевидные вещи доносить до всех? Почему-то очевидные вещи, для большинства оказываются не очевидными. Не скажите почему?

                А какие вещи вы донесли в статье и для кого они неочевидные? типа, проснулся чел, почесал репу и подумал: "а не заняться ли мне сегодня программированием. мля, а что для этого нужно? ааа, оказывается нужно выбрать яп и ide, да еще и настроить. ну ни фига себе, какая полезная статья."

                в настоящее время нет. Потому что сотни ЯП, тысячи разных IDE не дадут в настоящее время нормальный вход в программирование. 

                причем здесь яп и ide? - не понял, как это вообще относятся к входу в программирование?

                Может расскажите новичкам сколько на сегодняшний момент ЯП существует?

                https://ru.wikipedia.org/wiki/Хронология_языков_программирования

                Сколько сред разработки существует? Распишите всё подробно.

                https://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments

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

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

                А где все ваши вопросы раскрыты в статье?


                1. Seenkao Автор
                  31.08.2024 08:10

                  оказывается нужно выбрать яп и ide, да еще и настроить.

                  да, новичку она полезна становится, по простой причине, что он начинает понимать что и в какой последовательности надо сделать.

                  Но я так понимаю, что вы можете предложить обзор всех ЯП чтоб я мог их приложить к статье и указать на вас, что вы сделали полный обзор и новички могут просто прочитать обзор и выбрать? Или вы всё-таки не предоставили такого обзора?

                  не понял, как это вообще относятся к входу в программирование?

                  какие интересные вопросы от не новичка? А как же по вашему должен новичок узнавать какие первые шаги надо сделать, чтоб начать программировать? Спросить у мимо проходящего человека? Пойти учится на программиста? А вы точно уверены что новичок понимает что означает профессия "программист"?

                  Вот лично я не уверен что люди понимают что такое профессия "программист". Посмотрите вакансии программиста и посмотрите что там требуют.

                  Но вы предоставляете мне претензию по статье, где расписано по шагам что надо сделать по шагам. ))))

                  А где все ваши вопросы раскрыты в статье?

                  Они и раскрыты. Человек прочитает статью и поймёт, что и в какой последовательности делать. А не будет торкаться по интернету, сам не зная какой вопрос задать.

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

                  На этом диалог завершаю. По причине вашего непонимания банальных вещей, с которыми вы сталкивались 20 лет (или более) назад и просто забыли об них.


                  1. Cels
                    31.08.2024 08:10

                    да, новичку она полезна становится, по простой причине, что он начинает понимать что и в какой последовательности надо сделать.

                    о как! вы действительно думаете что новичок в программировании не знает, что сначала нужно выбрать язык, а потом среду разработки? есть примеры, что кто-то делает наоборот?

                    Но я так понимаю, что вы можете предложить обзор всех ЯП чтоб я мог их приложить к статье и указать на вас, что вы сделали полный обзор и новички могут просто прочитать обзор и выбрать? Или вы всё-таки не предоставили такого обзора?

                    предоставил - выше ссылку давал. щелкаете на язык, читаете описание, +яндекс никто не отменял. А зачем вам описание всех языков? В игрострое для новичков, так вообще все просто: unity > c# (visual studio), unreal > c++ (visual studio), android > java (+н-р libGDX android studio).

                    какие интересные вопросы от не новичка? А как же по вашему должен новичок узнавать какие первые шаги надо сделать, чтоб начать программировать? Спросить у мимо проходящего человека? Пойти учится на программиста? А вы точно уверены что новичок понимает что означает профессия "программист"?

                    Документацию почитать, примеры посмотреть. Ваша статья это тоже не раскрывает. "Пойти учится на программиста?" - а что в этом зазорного?

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

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


                  1. KawaiiSelbst
                    31.08.2024 08:10

                    У вас есть здравые зёрна в статье, но в целом она действительно в основном состоит из воды, с синопсисом:
                    1. Выберите IDE, и язык программирования.
                    2. Научитесь создавать проект
                    3. Научитесь его собирать.
                    4. Сделайте игру.

                    В то же время

                    Мне понравился совет, начинать с создания карт и кастомок для других игр. Было бы хорошо раскрыть этот момент, по типу - начните с карт, постарайтесь придумать идею, и довести до конца. Когда станет заметно, что инструментарий редактора вам "жмёт", и какие либо фичи не реализуемы физически, переходите на игровые движки или конструкторы (в основном их будет достаточно всем, если нет цели сделать MMO на тысячи онлайна, или какие то уж очень специфичные вещи, относящиеся к бекенду игры).

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

                    Так же учите маслят думать не категориями - "вот щас изучу и буду делать игры", а - "хочу сделать конкретно вот такое, сейчас я узнаю, что мне для этого нужно, и буду делать и учиться". Будет проще и маслятам, и вам не придётся очевидные вещи повторять постоянно.


                    1. Seenkao Автор
                      31.08.2024 08:10

                      Было бы хорошо раскрыть этот момент

                      Это отдельная тема, которую тоже достаточно не просто раскрыть. По сути, если делать подробнейший разбор, то это не на одну статью. Моя задача была пробежаться, охватить как можно больше народа и постараться донести основную мысль до людей. За которую они должны зацепится и выбрать нужное направление.


                      1. KawaiiSelbst
                        31.08.2024 08:10

                        Ну может я конечно не прав. Но как раз таки это действительно хорошая база для входа, чтобы как раз ввести как можно больше народу.
                        Вы говорите отдельная тема, но при этом решили посвятить статью тому что нужно создать проект в какой то IDE на каком то языке, и сделать игру. Я уже дал синопсис, который просматривается со стороны. Опытный человек видит эту статью как набор очевидных шагов в написании любой программы в принципе, которые и так понятны, и что к играм они относятся так же. А новичок конкретики никакой тут не увидит, и вынесет для себя мол, ну надо наверное научиться писать на C++, пойду прочитаю Страуструпа или Лафоре сначала, а потом можно будет игры делать. Или будет везде искать и спрашивать, а как на Unity без кода игры делать.
                        Я видел вы в лазарусе пишете на паскале судя по всему. То есть вам близок подход когда вы пишете либо свой движок либо игру на фреймворке без редактора, показывайте тогда то о чём знаете на своём примере, там и вы больше знаете и рассказать можете и человек будет видеть что это жизнеспособный подход.


  1. SadOcean
    31.08.2024 08:10
    +2

    Статья пустовата.
    И немного однобока, потому что это про то "С чего начать в игрострое программисту."

    Для начала стоило бы очертить ЦА, потому что я бы начал ответ с сегментации.
    Вы хотите создавать игры - сначала попробуйте простое. Есть готовые движки, есть готовые платформы и конструкторы. Попробуйте сделать несколько проектов с разным уровнем погружения. Например, в зависимости от желаемого жанра и начальных навыков выберитье Unity/Godot/GameMaker или конструктор по жанру (например конструкторы визуальных новелл или JRPG)
    Если вы хотите в геймдев в целом, то нужна специализация, то разберитесь за что отвечают игровые разработчики и дизайнеры, какие навыки нужны. Попробуйте инструменты, рекомендуемые для них.
    Если вас заинтересовал какой то раздел - от геймплейных механик до инструментов и движков - то детали по нему и т.д.

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


    1. Seenkao Автор
      31.08.2024 08:10

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

      Но надо как-то умудрится и не усложнить при этом саму статью.


  1. NikitaKinyaev
    31.08.2024 08:10

    С чего же надо начинать?

    В настоящее время существует множество игровых движков которые позволяют делать игры не создавая ни какой код. Unity, Godot, Game Maker 

    ...это как это вы на Unity будете создавать игры без знания c#? Хочу подробностей


    1. Seenkao Автор
      31.08.2024 08:10

      заходим в ютуб и вбиваем: "unity без кода". Получаем интересующие ответы.


      1. Lekret
        31.08.2024 08:10

        Информации по Visual Scripting'у мало, по каким-то сторонним no-code решениям ещё меньше. Вбив "Unity without code" или "Unity visual scripting" получаем 2 ютуб канала.
        Абсолютное большинство гайдов для программиста (само слово) включают в себя работу с C#. Если новичок не умеет в C# он теряет почти весь существующий материал для обучения.
        Если брать тот-же Unreal, то там бывает сложнее найти плюсовый гайд, чем гайд на BP, а на Unity без C# делать особо нечего.


        1. KawaiiSelbst
          31.08.2024 08:10

          Ну так блочный кодинг повторяет обычный, просто в двух измерениях, там же API один и тот же.
          А C# можно учась работать в Unity и изучить, проще же учиться работать с инструментом в условиях задачи в любом случае.


  1. max-daniels
    31.08.2024 08:10

    Сижу на hh, в подавляющем большинстве - вакансии с Unity. Намного меньше - UE4/5. Иногда проскальзывает Godot.