Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
 Аватар для Bogradan
8 / 7 / 1
Регистрация: 22.03.2016
Сообщений: 343

На чём делать 2D игру?

02.03.2025, 22:14. Показов 8102. Ответов 61

Студворк — интернет-сервис помощи студентам
Уважаемые программисты с++, подскажите пожалуйста, я вот умею работать с C++/CLI .net. кроме с++ не знаю ничё. Какие библиотеки в рамках с++ можете мне посоветовать для разработки 2D компьютерной игры? Какая платформа нужна для создания игр, язык только с++. Какие инструменты? Могу ли я сделать всё используя так же WinAPi, CLI, .Net Windows Forms? или там нужен с++ совсем другие инструменты, подскажите вообщем на что ориентироваться в рамках С++ для разработки 2D игр. Спасибо за внимание. Игра будет не маленькая, очень серьёзный проект на долгие годы. Движок делать буду свой, движки не советуйте, я именно имею ввиду что поможет для собственной разработки 2D движка. Только Visual Studio, я уже сроднился с ним.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.03.2025, 22:14
Ответы с готовыми решениями:

Теория игр, массивы
Есть задание (прикрепил его в виде файла к сообщению). Есть решение для 12-ого варианта на BORLANDC, у меня 2-ой. Я изменил в начале...

Решение матричных игр. Есть у кого такая программа написанная уже...
Требуется программа по решению матричных игр... С выбором размера матрицы и выдачей решения... Может кто смогёт такую сбатцать?

Запуск приложений(старых игр) в оконном режиме
День добрый, подскажите, хотелось бы реализовать свое желание запуска старых игр windo`вых(типа StarCraft) в оконном режиме, с чего начать,...

61
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6319 / 3044 / 1054
Регистрация: 01.06.2021
Сообщений: 11,627
03.03.2025, 20:21
Студворк — интернет-сервис помощи студентам
Bogradan, не знаю, что ты не так делаешь. Я вот только что создал два проекта: один с динамической, другой со статической линковкой. Оба проекта работают, как в релизной, так и в отладочных конфигурациях. Нет ни единой ошибки.

Добавлено через 3 минуты
Bogradan, тебе нужно указать вот так, как для релизной, так и для отладочной конфигурации
Code
1
2
3
sfml-graphics.lib
sfml-window.lib
sfml-system.lib
а у тебя судя по файлу Affected zone.vcxproj
Code
1
<AdditionalDependencies>sflm-graphics-d.lib;sflm-system-d.lib;sflm-window-d.lib;%(AdditionalDependencies)</AdditionalDependencies>
эти буквы -d указываются для статической линковки отладочной конфигурации, вместе с -s
0
 Аватар для Bogradan
8 / 7 / 1
Регистрация: 22.03.2016
Сообщений: 343
03.03.2025, 20:34  [ТС]
Теперь такая ошибка
Миниатюры
На чём делать 2D игру?  
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6319 / 3044 / 1054
Регистрация: 01.06.2021
Сообщений: 11,627
03.03.2025, 20:36
Bogradan, тебе что видео снять, как настроить проект?
0
 Аватар для Bogradan
8 / 7 / 1
Регистрация: 22.03.2016
Сообщений: 343
03.03.2025, 20:43  [ТС]
Нет. Я уже делал по видео всё.

Добавлено через 5 минут
Empty project C++, new main.cpp настройки все по инструкции, даже по видео повторял. Visual Studio самая последняя версия лицензионная.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6319 / 3044 / 1054
Регистрация: 01.06.2021
Сообщений: 11,627
03.03.2025, 20:44
Bogradan, сейчас видео сделаю
1
 Аватар для Bogradan
8 / 7 / 1
Регистрация: 22.03.2016
Сообщений: 343
03.03.2025, 20:45  [ТС]
Вот всё что я установил в VS
Миниатюры
На чём делать 2D игру?  
0
 Аватар для Bogradan
8 / 7 / 1
Регистрация: 22.03.2016
Сообщений: 343
03.03.2025, 20:48  [ТС]
0
9988 / 2960 / 497
Регистрация: 05.10.2013
Сообщений: 8,116
Записей в блоге: 243
03.03.2025, 21:44
Bogradan, попробуйте параллельно вместе со мной создать CMake проект в VS на SFM 2.6.2

Скачивание SFML

Скачайте архив собранной библиотеки SFML для VS 2022, как на скриншоте ниже, по ссылке: https://github.com/SFML/SFML/releases/tag/2.6.2 (прокрутите страницу вниз)



Извлеките архив куда-нибудь, например, на диск C в папку libs. Удобно хранить все библиотеки в одной папке. Я скопировал архив в папку libs и сделал "Extract Here":

Название: 4b3764e57fe4a476a91a1426db19b65f94407529.png
Просмотров: 106

Размер: 6.9 Кб

Зайдите в указанную ниже папку и скопируйте путь:



Этот путь нужно добавить в PATH. Если не знаете, как это сделать, то пишите. В PATH этот путь нужно добавить до запуска VS.

Новый CMake проект в VS 2022

Запустите VS. Выберите "Создать новый проект":



Появится новое окно, где нужно выбрать тип проекта. Выберите "CMake Project", как на скриншоте и нажмите кнопку "Далее":



В новом окне нужно заполните поля: имя проекта, место создания проекта, поставьте галочку и нажмите кнопку "Создать":



Будет создан консольный проект c "hello world":

Название: c39a175defdf0204141fb431cd9872b9fd101cad.png
Просмотров: 100

Размер: 1.8 Кб

Вы можете его запустить на Ctrl+F5 (или пустой зелёный треугольник на верхней панели инструментов VS)

Подключение SFML

Теперь я захожу в указанную на скриншоте ниже папку и копирую путь:



Этот путь я использую в CMakePresets.json в VS, добавив такую конструкцию:

JSON
1
2
3
4
                "SFML_DIR": {
                    "value": "C:\\libs\\SFML-2.6.2\\lib\\cmake\\SFML",
                    "type": "PATH"
                }
в этой секции:
JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        {
            "name": "x64-debug",
            "displayName": "x64 Debug",
            "inherits": "windows-base",
            "architecture": {
                "value": "x64",
                "strategy": "external"
            },
            "cacheVariables": {
                "CMAKE_BUILD_TYPE": "Debug",
                "SFML_DIR": {
                    "value": "C:\\libs\\SFML-2.6.2\\lib\\cmake\\SFML",
                    "type": "PATH"
                }
            }
        }
Откройте в VS-проекте файл CMakeLists.txt и добавьте эти строки:

Code
1
2
find_package(SFML 2.6 COMPONENTS system window graphics REQUIRED)
target_link_libraries(hello-sfml sfml-system sfml-window sfml-graphics)
Откройте файл hello-sfml.cpp и замените код на следующий:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <SFML/Graphics.hpp>
 
int main() {
    sf::RenderWindow window(sf::VideoMode(800, 600), "SFML window");
    while (window.isOpen()) {
        sf::Event event;
        while (window.pollEvent(event)) {
            if (event.type == sf::Event::Closed)
                window.close();
        }
        window.clear();
        window.display();
    }
    return 0;
}
Запустите код на выполнение: Ctrl+F5
1
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6319 / 3044 / 1054
Регистрация: 01.06.2021
Сообщений: 11,627
03.03.2025, 22:06
Bogradan, появились неотложные дела, поэтому только сейчас публикую видео

Если будут вопросы, обращайся к XLAT, он лучше знает SFML
Вложения
Тип файла: zip sfml.zip (13.69 Мб, 30 просмотров)
1
 Аватар для Bogradan
8 / 7 / 1
Регистрация: 22.03.2016
Сообщений: 343
03.03.2025, 22:49  [ТС]
Спасибо большое. Я впитаю в себя все ваши знания, и стану уберкрейзи разработчик 2D шутанов.
0
Модератор
Эксперт Java
 Аватар для alecss131
2897 / 1403 / 412
Регистрация: 11.08.2017
Сообщений: 4,495
Записей в блоге: 2
03.03.2025, 22:58
Цитата Сообщение от Bogradan Посмотреть сообщение
DirectX
Ну такой себе выбор, АПИ очень похож на WinAPI, а винапи это боль да и последняя версия по сложности как вулкан. Почти все гайды/уроки очень стары и используют устаревший DirectX SDK, который уже давно не обновлялся, сейчас это часть Windows SDK, правда части там нету (больше полезных утилит).
Игры это не только графика. Это еще текст, звук, сеть (не обязательно) и главное физика. Для 2д игр хватит с лихвой библиотеки Box2D. Еще надо не забывать про свою реализацию анимаций (как покадровой так и скелетной, а у нее еще и смешивание анимаций), дерева состояний и переходов для анимаций, написание ИИ (на ифах далеко не уедешь) и тд. 2д освещение придется писать самому, если понадобится и всякие спецэффекты и частицы.
Так что самое оптимальное все использовать готовый движок и писать игру а не движок. А то дальше движка вряд ли зайдет. И будут очень больше затраты на оптимизацию, чтобы вся поделка (я про свой движок и игре на нем) выдавала нормальный фпс
1
 Аватар для Bogradan
8 / 7 / 1
Регистрация: 22.03.2016
Сообщений: 343
03.03.2025, 23:02  [ТС]
Да, вы правы. Ну мне кроме Godot и sfml остальное противно, слишком мудрёно. Я вообще фигею как сложно движок просто запустить, ни один без ошибок ещё не запускался. Попробую разобраться с этим всем. Я устанавливал себе Unreal и он работает, но в компиляторе почему-то нет и там всё на C#, бред какой-то. Godot очень понятный и простой, но тоже с ошибками. SFML такой же, ошибки всякие и чё с ними делать не понятно.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6319 / 3044 / 1054
Регистрация: 01.06.2021
Сообщений: 11,627
03.03.2025, 23:11
Цитата Сообщение от Bogradan Посмотреть сообщение
Я вообще фигею как сложно движок просто запустить, ни один без ошибок ещё не запускался.
Godot запускается из коробки, редактор скриптов на GDScript встроенный, какие могут быть проблемы?
0
 Аватар для Bogradan
8 / 7 / 1
Регистрация: 22.03.2016
Сообщений: 343
03.03.2025, 23:17  [ТС]
Я так понял Godot-ту Visual Studio вообще не нужен, он сам по себе и там же С++ встроенный. Правильно?

Добавлено через 3 минуты
Если программировать на Godot, VS можно удалять я так понял.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6319 / 3044 / 1054
Регистрация: 01.06.2021
Сообщений: 11,627
03.03.2025, 23:22
Цитата Сообщение от Bogradan Посмотреть сообщение
Если программировать на Godot, VS можно удалять я так понял.
Если программировать на GDScript, то да, VS не нужна
GDScript это отдельный язык, созданный специально для Godot. Он похож на питон, но есть отличия. Если писать на нем, то код пишется в самом Godot и для языка доступна очень удобная документация, а сама игра запускается мгновенно, т.к. не нужна традиционная компиляция...

Цитата Сообщение от Bogradan Посмотреть сообщение
и там же С++ встроенный
нет, в Godot писать на С++ можно, но тогда сам проект нужно собрать с самим движком из исходников. Для этого уже нужна внешняя IDE, компиляция долгая, документация отсутствует, для тебя будет сложно
1
9988 / 2960 / 497
Регистрация: 05.10.2013
Сообщений: 8,116
Записей в блоге: 243
03.03.2025, 23:26
Цитата Сообщение от Bogradan Посмотреть сообщение
SFML такой же, ошибки всякие и чё с ними делать не понятно.
Мою инструкцию не пробовали? Тоже ошибки? Можно узнать, что за ошибки? Чтобы я имел ввиду, что может быть не так.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6319 / 3044 / 1054
Регистрация: 01.06.2021
Сообщений: 11,627
03.03.2025, 23:40
Цитата Сообщение от Bogradan Посмотреть сообщение
SFML такой же, ошибки всякие и чё с ними делать не понятно
Ну я же показал на видео, что настройка SFML занимает пару минут. А дальше уже пишешь спокойно код... Как по мне, SFML это хороший выбор для изучения С++. Однако, создать игру на Godot и GDScript будет легче и быстрее.
Цитата Сообщение от Bogradan Посмотреть сообщение
Я устанавливал себе Unreal и он работает, но в компиляторе почему-то нет и там всё на C#, бред какой-то.
Вы писали на C++/CLI, толком не знаете С++, а вот уже хотите в Unreal Engine писать на С++. Всё нужно делать поочередно и в своё время. Рано вам туда лезть. К тому же игровой движок это не только программирование. Программирование это малая часть разработки игры. Нужно потратить определенное количество времени, чтобы ознакомиться с самим движком. В первое время можно вообще только блюпринты использовать.
К тому же, вы хотите создать 2D игру. Unreal используется больше для создания 3D игр. Нужно выбирать движок по предназначению.

Добавлено через 4 минуты
Цитата Сообщение от Bogradan Посмотреть сообщение
Я вообще фигею как сложно движок просто запустить, ни один без ошибок ещё не запускался.
Движок Unity на C#, обычно не требует никакой настройки. И в отличие от Unreal, удобен не только для 3D, но и для 2D игр
1
 Аватар для Bogradan
8 / 7 / 1
Регистрация: 22.03.2016
Сообщений: 343
03.03.2025, 23:44  [ТС]
Запустился SFML!!! СПасибо "Royal X". Мой спаситель. Всё sfml теперь моя вторая работа будет, 2D шутер буду делать.

Добавлено через 1 минуту


Добавлено через 54 секунды
У меня разрядность не правильно стояла, 64 вместо 32 которую скачал.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6319 / 3044 / 1054
Регистрация: 01.06.2021
Сообщений: 11,627
03.03.2025, 23:45
Цитата Сообщение от Bogradan Посмотреть сообщение
Запустился SFML
Если будут проблемы при написании на SFML, то создавай отдельные темы в разделе https://www.cyberforum.ru/sfml/
Если проблема будет связана с чистым С++ кодом, то можешь и в этом разделе.
Но в текущей теме больше не пиши. Так не принято на форуме. Один вопрос - одна тема.
1
 Аватар для Bogradan
8 / 7 / 1
Регистрация: 22.03.2016
Сообщений: 343
03.03.2025, 23:48  [ТС]
Понял. Вы помогли мне определиться, спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.03.2025, 23:48

Алгоритм календаря игр (например в футболе)
необходимо составить календарь футбольных матчей, допустим есть 6 команд char *teams = {&quot;TEAM A&quot;,&quot;TEAM B&quot;,&quot;TEAM...

Движок для игр
Всем привет!!!, хотел узнать возможно ли создать движок на C++ чтобы экспортировать модели из 3ds max а после в самом движке можно было...

Выбор IDE для создания 2D игр
Здравствуйте. Задача сделать пака 2ух – мерные драчки загружая в проект анимацию-как удар(ы) и реакция на удар...(лучше всего секвенцию...

Выбор учебника по программированию 3D игр
Привет. Нашёл 2 учебника и хочу что бы вы посоветовали из приведённых двух какой лучше для новичка выбрать.... (имею ввиду какой...

Книга по разработке игр
Не посоветуете мне книгу по разроботки игры. С чего начинать ? Какую книгу выбрать ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru