DIY Игровая Приставка! Что она Потянет?


#Vectozavr #Gamedev #Programming
Зарегистрироваться на интенсив “Как выбрать направление в ИИ?” от GeekBrains — geekbrains.ru/link/q2~MX0
Помочь денежкой: www.donationalerts.com/r/vectozavr
tg: @vectozavr
inst: www.instagram.com/vectozavr
vk: vk.com/vectozavr
Код геймбоя: github.com/vectozavr/GameBoy_arduino

Сегодня я расскажу, как я сделал свою версию игровой приставки gameboy с помощью arduino, языка программирования C, джостика и дисплея, а потом запустил на ней pseudo3D шутер от первого лица, змейку и flappyBird, только с вектозавром. Приятного просмотра!

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

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

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

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

Я решил использовать высокоуровневую библиотеку adafruit, которая с помощью интерфейса I2C осуществляет взаимодействие с пикселями на экране.

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

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

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

3-я игра — Flappy Bird. Она достаточно простая в реализации, но очень интересная и сложная в игровом процессе.

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

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

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

Для питания я решил использовать небольшие аккумуляторы 3.7 V. Я буду использовать два таких аккумулятора, подключенных последовательно.

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

Моя любимая игра, безусловно, «flappyZavr». В нее не надоедает играть и она постоянно держит в напряжении. В змейку я бы, возможно, в будущем добавил возможность изменения уровня сложности, а в 3D игру можно было бы добавить врагов.

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.