Читать книгу Делаем PC игру вместе - Ар'лан ис'Дрекхэм - Страница 6
«Делаем PC игру вместе»
3. Глубина погружения
ОглавлениеЧтобы хорошо ориентироваться в том как будет работать создаваемая игра необходимо понять, что любая компьютерная программа (видеоигра это прежде всего программа) на любых компьютерах на Земле выполняется процессором сверху вниз последовательно, команда за командой (многопоточность и несколько ядер процессора мы рассматривать не будем). Программа это набор записей в блокноте, строчками сверху вниз, точно также как школьная тетрадь по русскому языку с сочинением на тему стихотворений Сергея Есенина. Только вместо художественного текста сочинения программист записывает в тетрадь команды для процессора на выбранном языке программирования. После запуска такой программы, процессор выполняет ее как я уже говорил сверху вниз, последовательно, команда за комнадой. В последние десятилется в программировании появились понятия: объекты, экземпляры, методы и т.д., однако, суть исполнения программы не изменилась – сверху вниз, последовательно.
Среда разработки Unity3d предоставляет создателю возможность делать его игру расставляя объекты и события как бы отдельно: здесь можно поставить персонажа с отдельной программой управления (в Unity3d это называется скрипт (от англ. script) или сценарий), здесь магазин продуктов с отдельной программой, а тут дверь ведущую в другой уровень со своей программой переноса в уровень. Необходимо запомнить, что это сделано только для удобства создателя игры, и на самом деле все эти «отдельные» программы выполняются процессором по порядку одна за другой, строка за строкой.
Как же происходит это выполнение? Микропроцессор компьютера выполняет программу циклами. Допустим, в программе есть 10 строк кода. Выполняется она сверху вниз точно также как вы читаете текст этой книги. Причем, до тех пор пока в недрах процессора и памяти компьютера не закончатся вычисления, например третьей строки кода, до тех пор все оставшиеся строки начиная с четвертой и до десятой никогда не выполнятся. Все эти как может показаться простые нюансы крайне важны как основа. Зная такие нюансы вы сможете сосредоточиться на творчестве, на придумывании «что можно воплотить в игре», а не думать «как же это сделать, не будет ли здесь ошибки и зависания игры?». Так вот, когда выполнение закончится после десятой строки цикл повторяется снова с первой, и так до бесконечности, пока не произойдут какие-то иные события, например, игрок просто выйдет из игры.
Продолжим. Описанные только что бесконечные циклы повторяются каждый кадр во время игры. Чем больше этих циклов успеет вычислить микропроцессор за одну секунду времени, тем лучше и быстрее работает игра. Если процессор успевает вычислить, например 60 таких циклов за 1 секунду, значит игра работает со скоростью 60 FPS (от англ. Frames Per Seconds – кадры в секунду) и на экране монитора игрока изображение игры меняется 60 раз за 1 секунду, т.е. 60 кадров в секунду. Такая игра воспринимается глазом играющего приятно, плавно, без рывков и притормаживаний. И наоборот, чем меньше циклов за 1 секунду выполняет процессор, тем ниже FPS игры и качество ее работы. Также необходимо иметь ввиду, что процессору в этих вычислениях помогает видеокарта. Можно сказать, что это второй процессор компьютера, но рассчитанный только на обработку графики, проще говоря, только на рисование всех картинок и 3д объектов игры.
Хочу отметить, что не нужно гнаться за высокими показателями FPS при разработке игры, так как на сегодняшний день процессоры компьютеров способны справляться с разными нагрузками одинаково успешно. Сосредоточтесь на творчестве и на создании того, что вы задумали, а не тратьте время на ненужные поиски «спасения» дополнительных 10 кадров в секунду. В конце концов, компьютерные технологии развиваются столь динамично, что в отрезке 2—3 года то, что сегодня работает несколько медленно, завтра будет работать совершенно нормально. Думайте о творчестве, а не о FPS.