Найти тему
Красный Паладин

Делаем оружие для игры||Часть 1

Красный паладин, нарисованный криворуким мной за 15 минут.
Красный паладин, нарисованный криворуким мной за 15 минут.

Итак, допустим, вы хотите создать игру.
У вас есть идея игры: стрелялка про роботов, зомби и демонов. У вас есть куча идей о том, как оно всё будет выглядеть, как будет играться, и как оно будет работать. Вы берёте в охапку эти идеи, садитесь за компьютер и устанавливаете игровой движок, и садитесь творить.
Что может пойти не так?
Всё. Передвижение настолько ужасное, что сломать его не составляет никакого труда, враги настолько глупые, что могут убить себя сами, карты, на которых должно происходить действие, ужасны настолько, что Daikatana нервно курит в сторонке, частота кадров в секунду не переваливает за 20 даже на самом мощном компьютере, который только можно достать, а багов столько, что исправлять их будет дольше, чем делать новую игру.
И приходите вы к программисту и спрашиваете: «Почему моя игра не работает?»
И тут начинается…
Оказывается, код был настолько «дырявым», что через него буквально можно было ходить насквозь. Переменные, которые использовались в игре, вызывались, и так и оставались, занимая оперативную память, что пошло отнюдь не на пользу производительности. В коде было несколько бесконечных циклов, которые очень сильно замедляли программу, а десять тысяч строчек кода укладываются в всего лишь пять сотен.
В этом и заключается вся сложность создания игр. Ты не можешь просто написать код и сказать, что игра готова, код нужно оптимизировать и привести в порядок, а также нужно уметь пользоваться особыми способами программирования, которые заметно сильно упрощают задачу для программиста и компьютера.
Один из таких способов – объектно-ориентированное программирование. Методы объектно-ориентированного программирования заключаются в том, что программу можно разделить на виртуальные объекты, которые могут выполнять какие-то функции. Главной же фишкой является возможность создания классов – свойств и функций, которые могут наследовать сразу несколько виртуальных объектов, что позволяет с лёгкостью создавать разные объекты, со одинаковыми качественно, но разными количественно свойствами.
Итак, но как же именно нам может помочь объектно-ориентированное программирование? Мы создадим класс, который будет хранить все свойства и функции необходимые для огнестрельного оружия, для того, чтобы иметь возможность легко и быстро создать оружие для игры, а также разберём процесс программирования класса.