Привет, разработчики и любители экспериментов с графикой! Сегодня хочу рассказать о создании небольшой, но атмосферной игры «Рикошет во тьме» на C++20 с использованием SFML. Идея родилась из простого вопроса: можно ли построить игровой процесс вокруг одного физического действия — отражения шара от поверхности? Чтобы механика не превратилась в обычный экранный пинг-понг, я добавил темноту, ограниченную область видимости и цели, которые игрок должен находить по вспышкам света. В этой статье мы разберём...
Искусство программирования игр
Разработка игры «Сокобан» на SFML C++: ящики, лабиринты и чистая архитектура
Привет, разработчики! Сегодня предлагаю написать классическую головоломку «Сокобан» на C++20 с использованием библиотеки SFML. На первый взгляд игра кажется совсем простой: есть человек, несколько ящиков и отмеченные клетки. Ходим по лабиринту, толкаем ящики — что здесь вообще может пойти не так? А пойти не так может многое. Ящик нельзя тянуть назад. Два ящика могут заблокировать друг друга. Один неудачный толчок в угол способен сделать уровень непроходимым. Кроме того, нам понадобятся отмена хода,...
Менеджер ресурсов и динамический текст на SFML
Когда Вы только начинаете изучать игровую разработку на C++ с использованием SFML, перед многими из Вас встаёт вопрос: как правильно организовать хранение и загрузку игровых ресурсов? Сначала всё кажется просто - загружаешь текстуру здесь, шрифт там, звук где-то ещё. Но когда Ваш проект начинает расти, Вы сталкиваетесь с реальными проблемами. Одна и та же текстурная карта может загружаться в память трижды - для главного меню, для уровня и для редактора. В этом случае память расходуется неэффективно, а код превращается в спагетти из вызовов loadFromFile, разбросанных по всей кодовой базе...
Пишем калькулятор на C++ с SFML
Привет, коллеги и доброжелательные критики! Сегодня я решил отвлечься от своей громоздкой работы, чтобы написать что-то простое, но с изюминкой — калькулятор с графическим интерфейсом на C++20 и SFML. Этот проект — не претензия на что-то грандиозное, а скорее лёгкий эксперимент, чтобы вспомнить, как приятно писать код, который сразу видно на экране. Заодно я поделюсь с вами своими мыслями, подходами и парой советов. Давайте разберём, как я это закрутил и почему выбрал именно SFML. Калькулятор — это классика программирования...
