Сравнительный анализ мультимедийных библиотек для написания игрового проекта на языках программирования С/С++ | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 30 ноября, печатный экземпляр отправим 4 декабря.

Опубликовать статью в журнале

Библиографическое описание:

Сравнительный анализ мультимедийных библиотек для написания игрового проекта на языках программирования С/С++ / Е. В. Коптенок, Е. А. Сухарев, М. В. Трунников [и др.]. — Текст : непосредственный // Молодой ученый. — 2019. — № 1 (239). — С. 13-16. — URL: https://moluch.ru/archive/239/55335/ (дата обращения: 16.11.2024).



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

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

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

Сравним их по ряду критериев:

1) Удобству;

2) Простоте в использования;

3) Наличии документации;

4) Потребности в системных ресурсах;

5) Функциональных возможностях.

SDL

SDL (Simple DirectMedia Library) — свободная кроссплатформенная библиотека, написанная на языке C. Она применяется для разработки проектов на множестве языков программирования, в том числе и языке С. Библиотека предназначена для работы с графикой, звуком, для создания различных приложений, в особенности компьютерных игр. Основная часть библиотеки предлагает лишь ограниченный базовый набор функций, тогда как для использования дополнительных (таких, как вывод текста, например) необходимо подключать дополнительные расширения.

Важным фактом является то, что библиотека написана с применением процедурной парадигмы программирования, а не объектно-ориентированной. То есть, чтобы пользоваться ей, не обязательно понимать тонкости ООП, что делает ее пригодной для использования на младших курсов для студентов, только начавших изучать программирование.

SDL состоит из подсистем, таких как Audio, Video, Time и других. В дополнение к этому для дополнительной функциональности можно подключать библиотеки SDL_ttf (поддержка шрифтов), SDL_mixer (сведение звуков из разных источников), SDL_net (сетевые функции) и другие.

Из других положительных качеств стоит выделить надежность и быстроту.

В целом, SDL можно назвать удобной и понятной библиотекой. Принцип работы прост: существует SDL_Renderer, с помощью которого мы отрисовываем игровые объекты. В игровом цикле происходит пересчет различных параметров, после чего игровое поле перерисовывается (рис.1).

C:\Уроки\Научная работа. Лог. игры\Схема.png

Рис. 1. Схема типичного игрового проекта на SDL

Важно отметить, что библиотеке уже более 20 лет (версия 0.3 вышла в 1997 году) и найти всю необходимую документацию в Интернете не составит труда.

В библиотеке очень грамотно организована работа с системными ресурсами. Проблемы с памятью, которые могут возникнуть при разработке игры, скорее связаны с ошибками при выделении/очистке динамической памяти, что является следствием ошибок программиста.

Однако, данная библиотека не лишена недостатков. К примеру, рисование окружности или круга не может быть выполнено стандартными функциями SDL и требуе написание весьма непростых пользовательских функций. Очень часто код кажется громоздким. Зачастую, чтобы комфортно работать с SDL, необходимо писать свою «обёртку» — набор пользовательских библиотек, содержащих основные функции отрисовки.

SFML

SFML (Simple and Fast Multimedia Library) по праву считается одной из самых удобных графических библиотек при работе с 2D-графикой. Может быть использована для создания проектов на Windows, Linux, Max и Android.

Одно из самых главных положительных качеств SFML — это ее простота. Освоить библиотеку можно буквально за несколько дней и уже через пару недель можно начинать писать серьезный проект.

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

SFML написана с использованием объектно-ориентированной парадигмы.

Данная библиотека делится на модули, каждый из которых отвечает за определенные аспекты разработки:

– System (управление временем);

– Window (управление окнами);

– Graphics (подключает графические примитивы);

– Audio (работа со звуком);

– Network (работа с сетью).

SFML — относительно новая графическая библиотека (версия 1.0 вышла в 2007 году), но обладает хорошей документацией: обучающие уроки на официальном сайте помогут разобраться с возникающими вопросами.

SFML грамотно использует системные ресурсы. Проблемы в этой области, как правило, не возникают.

Пример игрового проекта на SFML представлен на рис.2.

Рис. 2. Пример компьютерной игры, написанной с использованием SFML

Сравнение SDL иSFML

1) Удобство

SDL написана для языка C, а SFML — для C++. То есть для удобного использования SDL бывает необходимо разрабатывать свои «обёртки», то есть пользовательские библиотеки, включающие в себя функции отрисовки и отображения информации.

2) Простота использования

И SDL, и SFML очень просты в использовании и не требуют долгого обучения. Их функционал интуитивно понятен. Однако, в ряде случаев SFML более удобен из-за своей объектно-ориентированности.

3) Наличие документации

Обе библиотеки обладают удобной документацией. Существует множество обучающих ресурсов и тематических порталов. Но из-за того, что SDL разработана гораздо раньше, чем SFML, книг и статей по ней больше.

4) Потребности всистемных ресурсах

И SDL, и SFML хорошо оптимизированы и не вызывают проблем с производительностью.

5) Функциональные возможности

Обе графические библиотеки предоставляют весь необходимый функционал для создания 2D-игр.

Выводы

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

Основное отличие между библиотеками заключается в том, что SDL процедурно-ориентированная, а SFML — объектно-ориентированная.

Литература:

  1. Коптенок Е. В., Капралова К. М., Сухарев Е. А., Черных К. С., Скворцова Н. С. Особенности программирования логических игр средствами языка СИ // Молодой ученый. — 2018. — № 19. — С. 108–111. — URL https://moluch.ru/archive/205/50155/ (дата обращения: 03.01.2019).
  2. Коптенок Е. В., Кустова Д. В., Полшкова И. В. Применение графической библиотеки SDL2.0 для программирования компьютерных игр на языке СИ // Молодой ученый. — 2017. — № 46. — С. 30–33. — URL https://moluch.ru/archive/180/46408/ (дата обращения: 03.01.2019).
  3. Коптенок Е. В., Храмченков Е. В., Храмченко В. Д. Использование средств библиотеки SFML для написания игровых проектов // Техника. Технологии. Инженерия. — 2018. — № 2. — С. 18–22. — URL https://moluch.ru/th/8/archive/85/3268/ (дата обращения: 03.01.2019).
Основные термины (генерируются автоматически): SFML, SDL, библиотека, работа, Наличие документации, ресурс, функция.


Задать вопрос