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