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

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

02.03.2025, 22:14. Показов 7896. Ответов 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
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,447
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
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,447
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
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,447
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
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,031
Записей в блоге: 242
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
Просмотров: 100

Размер: 6.9 Кб

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



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

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

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



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



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



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

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

Размер: 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
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,447
03.03.2025, 22:06
Bogradan, появились неотложные дела, поэтому только сейчас публикую видео

Если будут вопросы, обращайся к XLAT, он лучше знает SFML
Вложения
Тип файла: zip sfml.zip (13.69 Мб, 26 просмотров)
1
 Аватар для Bogradan
8 / 7 / 1
Регистрация: 22.03.2016
Сообщений: 343
03.03.2025, 22:49  [ТС]
Спасибо большое. Я впитаю в себя все ваши знания, и стану уберкрейзи разработчик 2D шутанов.
0
Модератор
Эксперт Java
 Аватар для alecss131
2892 / 1398 / 412
Регистрация: 11.08.2017
Сообщений: 4,476
Записей в блоге: 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
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,447
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
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,447
03.03.2025, 23:22
Цитата Сообщение от Bogradan Посмотреть сообщение
Если программировать на Godot, VS можно удалять я так понял.
Если программировать на GDScript, то да, VS не нужна
GDScript это отдельный язык, созданный специально для Godot. Он похож на питон, но есть отличия. Если писать на нем, то код пишется в самом Godot и для языка доступна очень удобная документация, а сама игра запускается мгновенно, т.к. не нужна традиционная компиляция...

Цитата Сообщение от Bogradan Посмотреть сообщение
и там же С++ встроенный
нет, в Godot писать на С++ можно, но тогда сам проект нужно собрать с самим движком из исходников. Для этого уже нужна внешняя IDE, компиляция долгая, документация отсутствует, для тебя будет сложно
1
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,031
Записей в блоге: 242
03.03.2025, 23:26
Цитата Сообщение от Bogradan Посмотреть сообщение
SFML такой же, ошибки всякие и чё с ними делать не понятно.
Мою инструкцию не пробовали? Тоже ошибки? Можно узнать, что за ошибки? Чтобы я имел ввиду, что может быть не так.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,447
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
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,447
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
Ответ Создать тему
Новые блоги и статьи
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru