Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
 Аватар для Mr_den
12 / 10 / 2
Регистрация: 06.09.2022
Сообщений: 436

Проблемы с подключением Allegro 5 к DEV C++ 5.11

14.06.2026, 13:15. Показов 18528. Ответов 257
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Allegro 5 - это библиотека для 2D игр типа SFML только низкоуровневая, решил в ней покопаться, потому что там графика идёт на любой видяхе даже без драйверов.
Не находит библиотеку allegro_image.h ! Где это взять ? У кого то вообще Allegro 5 присоединялась к DEV C++ 5.11 ,,,,,,???
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.06.2026, 13:15
Ответы с готовыми решениями:

Dev-C++, а именно allegro
И снова здравствуйте:) изучаю с++, работаю в Dev-C++. Чтобы начать работать с allegro, достаточно...

Проблемы с Allegro на MinGW
Всем привет. Установил MinGW (версия указана на скриншоте) на Windows 10, запустил CMD и попробовал...

Есть ли разница между подключением статической библиотеки и подключением одного только файла
Есть ли вообще разница между подключением статической библиотеки, например с файлом Unit1.h и...

257
9993 / 2965 / 497
Регистрация: 05.10.2013
Сообщений: 8,150
Записей в блоге: 244
09.08.2026, 19:03
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Igor3D Посмотреть сообщение
Впечатление что Вы хотите меня обмануть Ведь эту тему я пробовал обсуждать на этом форуме не раз (и не два), и Вас там никогда не было. А тут вдруг "приоритет". Как-то не очень верится
У меня было большим препятствием реализация плавных переключений между анимациями. Я не знал о существовании такой прекрасной библиотеки, как ozz-animation, которая как раз реализует такое переключение. У меня не хватало времени и мозгов, чтобы самому написать смешивание анимаций. Следующий логичный шаг — это Box2D и/или Box3D, потому что персонажем нужно управлять, а для начала двигать, чтобы он не проходил через препятствия.

Цитата Сообщение от Igor3D Посмотреть сообщение
Было бы чудесно, просто замечательно найти толковую либу где это уже реализовано. Вот только таковая не находится. Не делает это ozz (хотя, справедливости ради, я смотрел ее уже несколько лет назад)
Ozz делает смешивание анимаций. В Ozz это называется Animation blending. Здесь страничка с официальной документацией: Animation blending. У меня выше пример, где две анимации — ходьбы и бега, и они смешиваются при движении слайдера. Я на гиф-анимации выше меняю коэффициент смешивания анимаций от 0 до 1. Если слайдер слева, то проигрывается анимация ходьбы, если слайдер справа, то проигрывается анимация бега, а если он посередине, то анимация ходьбы и бега смешиваются 50 на 50 процентов.

Цитата Сообщение от Igor3D Посмотреть сообщение
Blending/смешивание работает для "однотипных" анимаций, напр walk/run. Эта простая операция которую, на мой взгляд, лучше реализовать самому, не связываясь ни с какими либами.
Самому реализовывать смешивание анимаций долго, много нервов потребует. Ozz делает это легко в несколько строк. Вы сами себе противоречите. Вы сначала пишете, что нужно брать готовое, чтобы не писать тонны кода и не тратить время, а потом пишете, что смешивание лучше писать самому. Ozz не только умеет смешивать анимации, но и много чего ещё; например, инверсная кинематика там есть и ещё куча всего, чего я не пробовал. Но за одно только смешивание анимаций им огромное спасибо.

Цитата Сообщение от Igor3D Посмотреть сообщение
Нужно не блендить, а "синтезировать" этот полушаг, вот для этого либы я не нашел. Делать самому - возможно, но это не просто
А что вы не взяли Unreal Engine, Unity, Godot и т.д.? Зачем тратили время на поиск либы или думали о том, чтобы писать самому?

Цитата Сообщение от Igor3D Посмотреть сообщение
Хотя основная идея "ходьбы" довольно прозрачна. Во время любого шага стопа одной из ног стоит неподвижно на земле, пока не начинается новый шаг этой ногой, тогда другая(ие) стопы будут неподвижны. Напр, при повороте, char не должен поворачиваться как солдат "на каблуках". Отсюда кстати ясно что блендить/смешивать walk/idle = глупость
Переход от idle к walk должен быть плавным, иначе это выглядит очень плохо — происходит резкий рывок от idle в walk. Это сразу бросается в глаза. Коэффициент смешивания анимаций за определённый короткий промежуток времени должен измениться от 0 до 1, чтобы персонаж плавно перешёл от idle в walk.

Цитата Сообщение от Igor3D Посмотреть сообщение
Какой еще фантазии? Скатывание в 2D мне всегда казалось чем-то типа "параолимпиады"
Для меня так выглядит скатывание до графических 2D API таких библиотек, как SDL, SFML, Allegro, MonoGame, libGDX, Pygame, Pixi.js, Phaser.js и т.д. Для скелетной анимации и скиннинга на OpenGL вообще без разницы, находятся вертексы в 2D плоскости или в 3D пространстве. Этим мне и нравится шейдерный OpenGL, что он очень простой и очень универсальный. На нём не только игрушки можно делать с простой графикой, но и рисовать графики функций в 2D и 3D, изучать геометрию в 2D и 3D, изучать линейную алгебру, делать неигровые приложения по сети, где можно ходить от первого лица через клиент-сервер и т.д. Он прекрасно работает на самых старых устройствах на разных платформах: Desktop, Android, Web и т.д. А графические 2D-библиотеки ограничены только 2D, и они скрывают математику, а с базовой линейной алгеброй и геометрией самому полезно работать.
0
1980 / 836 / 115
Регистрация: 01.10.2012
Сообщений: 5,232
Записей в блоге: 2
09.08.2026, 21:56
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Переход от idle к walk должен быть плавным, иначе это выглядит очень плохо — происходит резкий рывок от idle в walk. Это сразу бросается в глаза. Коэффициент смешивания анимаций за определённый короткий промежуток времени должен измениться от 0 до 1, чтобы персонаж плавно перешёл от idle в walk.
Почему я не вижу примера такого перехода (idle <-> walk) ни у Вас ни в ozz? Просто потому что такой фичи там нет. Зачем утверждать что ozz это делает если нет? Он успешно смешивает walk/run, так это все делают, тут ума много не надо

Слово "плавность" здесь ни о чем не говорит. Вот idle, обе стопы стоят на земле неподвижно. Делается шаг одной ногой, в результате ее стопа ставится/приземляется в положение walk. Вероятно этот шаг будет короче обычного. Потом делается шаг другой, ее стопа тоже займет на земле положение walk. Все, idle полностью вытеснено, char начал ходьбу. Это не выглядит слишком сложным, но "смешиванием" это не решается. Нужно уметь самому делать/синтезировать шаги на основании заданных

Цитата Сообщение от 8Observer8 Посмотреть сообщение
А что вы не взяли Unreal Engine, Unity, Godot и т.д.?
Ну как.. "брать" пытался, вот только не очень дали/получилось Выцепить код из движка крайне трудно, даже при наличии исходников. А общение с тыкающими представителями игрового мира - лучше не надо. Кстати, насколько помню, код Unity Animator имеется, можете попробовать
0
1980 / 836 / 115
Регистрация: 01.10.2012
Сообщений: 5,232
Записей в блоге: 2
13.08.2026, 07:53
Ну вот, поговорить об интересном опять не получилось Ладно, пожуем простые вещи
Цитата Сообщение от 8Observer8 Посмотреть сообщение
У меня не хватало времени и мозгов, чтобы самому написать смешивание анимаций. Следующий логичный шаг..
Собсно смешивание/блендинг - простая арифметическая операция. Для каждого интерполируемого кадра есть дерево/контейнер бонов исходных анимаций. Элемент контейнера - кватернион поворота и смещение (обычно нулевое). Просто интерполируем кватернион, функция для этого есть. Небольшая тонкость - исходные анимации имеют разную продолжительность, напр 30 кадров для walk и 20 для run. Нужно получить 25 новых кадров (переход walk/run). Используем релятивное время. Напр, считаем новый кадр 10

Релятивное время t = 10 / 25 = 0.25
Извлекаем данные первой анимации для кадра frame1 = 30 * t = 7.5
Извлекаем данные второй анимации для кадра frame2 = 20 * t = 5.0
Интерполируем эти данные (кватернионы и смещения) по каждой боне, веса известны, напр 0.25
Новый кадр 10 готов

Увы, это работает только для "однотипных" анимаций. Обе (walk и run) движение, обе содержат по одному шагу левой и правой ногой, в обеих движение начинается с то же ноги. Так да, работает, и неплохо. Но вот для др случаев анимаций разного типа, хотя бы idle/walk - ничего хорошего не выйдет. Поэтому заниматься очковтирательством и показывать, мол, "смешиваем анимации" не стоит. А то поймают - хуже будет

Чтобы скучно не было, вопросик: как улучшить этот расчет? Для исходных walk/run анимаций. Без всякой теории, читать статьи здесь не нужно.
0
9993 / 2965 / 497
Регистрация: 05.10.2013
Сообщений: 8,150
Записей в блоге: 244
27.08.2026, 00:44
Цитата Сообщение от Igor3D Посмотреть сообщение
Собсно смешивание/блендинг - простая арифметическая операция.
Если сравнивать на чём проще отобразить на экране скелетную анимацию со смешиванием: Unity, "ozz-animation" или написать с нуля, то с первым вашим замечанием я согласен, что на Unity попроще, чем самому с нуля, несмотря на то, что, как вы пишете - смешивание анимаций - это простейшая арифметическая операция. Значит, я такой глупый, что у меня не получилось написать смешивание анимаций с нуля. Правда, я мало пытался и шаг за шагом, может быть, нейронка помогла бы даже мне это сделать, но времени и нервов ушло бы куча. В том числе для таких глупых и ленивых, как я, придумали реализацию смешивания анимаций в Unity (и др. движках) и "ozz-animation" (если писать на OpenGL, Vulkan, DirectX и т.д.).

На "ozz-animation" скелетная анимация со смешиванием делается за несколько десятков строк кода, которые можно найти в документации или, ещё проще - нейронки безошибочно генерируют код для этой библиотеки - по крайней мере, Gemini отлично это делает. Базовый код для загрузки анимаций, проигрывания анимаций, смешивания анимаций - она сделала буквально с первого раза. Значит, нейронка очень хорошо изучила код базовых примеров "ozz-animation" на GitHub. А если нейронку попросить написать код для простого проигрывания анимаций (даже без смешивания), то вместо нормальной анимации будет такое жуткое деформирование проигрываться. Намного проще на OpenGL взять библиотеки: ozz-animation и cgltf, чем самому писать парсер glTF с нуля и реализовывать скелетную анимацию с нуля. Даже на этапе извлечения необходимых данных для анимаций из glTF это сложно, особенно без cgltf, а уж проигрывать и тем более смешивать анимации - это колоссальная потеря нервов и времени.

Цитата Сообщение от Igor3D Посмотреть сообщение
Почему я не вижу примера такого перехода (idle <-> walk) ни у Вас ни в ozz?
Я не ожидал никакой проблемы и её не было. На моей следующей демке "idle <-> walk" и "walk <-> idle" работают нормально: демка в браузере: https://ybot-movement-box3d-sdl3.vercel.app Управление - WASM (либо клавиши-стрелки)



На мобильных появляется виртуальный джойстик (если в браузере запускать или поставить APK). Перемещение сделал с помощью библиотеки Box3D, а виртуальный Joystick - с помощью библиотеки Dear ImGui:





Миниатюры
Вложения
Тип файла: zip ybot-movement-box3d-sdl3.zip (3.01 Мб, 3 просмотров)
Тип файла: zip ybot-movement-box3d-sdl3-exe.zip (5.50 Мб, 3 просмотров)
Тип файла: zip ybot-movement-box3d-sdl3-apk.zip (7.45 Мб, 3 просмотров)
Тип файла: zip ybot-movement-box3d-sdl3-wasm.zip (2.40 Мб, 3 просмотров)
0
9993 / 2965 / 497
Регистрация: 05.10.2013
Сообщений: 8,150
Записей в блоге: 244
27.08.2026, 01:17
Я не сразу ответил, потому что хотелось демку сделать, чтобы не быть голословным. Возникла проблема, что веб-демка через раз нормально масштабируется на мобильном браузере. Чаща всего сцена отображается в маленьком размере в нижнем левом углу. Так я до сих пор и не решил проблему, но время от времени пытаюсь. Она может возникать сразу, а может после поворота телефона. Мне такая возможность нужна, чтобы можно было запускать на мобильном браузере очень быстро - через сканирование QR-кода с последующем переходом по ссылке.

Вы просто сканером телефона наводитесь на QR-код, он показывает ссылку, вы по ней тыкаете. Открывается мобильный браузер. Через несколько секунды отрывается веб-приложение. Есть виртуальный джойстик для управление. Должно работать так же на iPhone. Очень удобно, что не нужно тратить время на установку приложения, чтобы в интерактивном режиме повзаимодействовать с приложением самому.

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

Размер: 3.0 Кб
0
9993 / 2965 / 497
Регистрация: 05.10.2013
Сообщений: 8,150
Записей в блоге: 244
27.08.2026, 01:30
Цитата Сообщение от Mr_den Посмотреть сообщение
В общем я решил в SDL2 копаться - там проекты вообще весят по 5 mb !
По поводу темы, то вместо SDL2 надо использовать SDL3. Она должна работать на вашей Windows 7, хотя официально семёрка почти никем давно не поддерживается. Я помню, вроде в прошлом году я собирал SDL3 для Windows 7 на старом компьютере и собиралось нормально. Кто использует SDL - почти все перешли на SDL3. На запрещённом в РФ Discord, на официальном канале SDL основатель SDL на писал, что SDL2 объявляется deprecated в пользу SDL3 (deprecated - значит больше не развивается, баги не исправляются и не рекомендуется к использованию). Правда, он написал, что возможно будут выпускать критические исправления, но здесь ключевое слово "возможно", а возможно - не будут. Всё-равно, весь фокус внимания разработчиков будет на SDL3.



От так же написал на официальном форуме SDL тот же текст здесь:

**SDL 2.0 future support**

Хотя мы будем принимать пулл-реквесты на GitHub и, возможно, будем выпускать критические исправления, у нас больше нет запланированных релизов SDL 2.0.

Для новых разработок мы рекомендуем начинать с SDL 3.0. Для проектов, в которых необходимо продолжать использовать SDL 2.0, мы рекомендуем `sdl2-compat`, которая совместима как на уровне ABI (прямая бинарная замена), так и на уровне API.

Многие проблемы в SDL 2.0 были решены в `sdl2-compat`, и если после перехода вы всё ещё сталкиваетесь с базовой проблемой, пожалуйста, сообщите о ней!

Всего наилучшего!
P.S. Цитата выше - это перевод с помощью нейронки Gemini от Google.

Миниатюры


Для меня графический 2D-API SDL3 - это переходный этап к OpenGL для моих туториалов или ответов на форуме. На нём быстро можно что-то простое сделать и это быстрый старт для новичков на C, С++ и Python. Но ещё несколько шагов дальше и этот API начинает сильно ограничивать. Часто то, что на OpenGL делается легко на 2D-API превращается в долгую борьбу. И так на каждом шагу. 2D API скрывает всю простую базовую математику, которую легко заменить на библиотеку cglm (библиотека для работы с векторами и матрицами) на OpenGL.
0
9993 / 2965 / 497
Регистрация: 05.10.2013
Сообщений: 8,150
Записей в блоге: 244
27.08.2026, 13:05
Продолжу в этой теме: Анимация простой человекоподобной модели на примере модели пигмея

0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6700 / 3110 / 1064
Регистрация: 01.06.2021
Сообщений: 12,015
09.09.2026, 17:43
Цитата Сообщение от 8Observer8 Посмотреть сообщение
официально семёрка почти никем давно не поддерживается
Я бы советовал ТС брать Godot 3. Многим кажется, что раз давно уже существует Godot 4, то значит Godot 3 это deprecated движок. На самом деле, это не так.

Как бы странно не звучало, но Godot 3 продолжает получать обновления. Так крайняя версия Godot 3.6.3 вышла 22 августа 2026, т.е. всего лишь несколько недель назад.
Т.е. несмотря на то, что актуальная версия Godot это 4.7.2 и что она в разы мощнее и круче, чем Godot 3, разработчики не оставили без внимания третью версию. Конечно, каких-то больших обновлений для Godot 3 не стоит ожидать, но это даже хорошо, т.к. обновления не портят совместимость и не повышают системные требования. По сути, все эти обновления для Godot 3, кроме исправления мелких багов, лишь для того, чтобы даже в 2026 году без проблем экспортировать под Android и iOS, публиковать в Google Play и пр.

Именно Godot 3 неплохо бы подошел ТС-у, поскольку данная версия:
- позволяет делать игры даже для OpenGL ES 2.0 / OpenGL 2.1, а ТС как раз хотел, чтобы игры запускались на старинных устройствах.
- cам редактор, а также игры, требуют всего лишь Windows 7 + (64-bit и 32-bit).
0
 Аватар для Mr_den
12 / 10 / 2
Регистрация: 06.09.2022
Сообщений: 436
09.09.2026, 18:49  [ТС]
8Observer8, я копаться закончил с ним. Основной минус - это на каждую хрень надо писать свою библиотеку, чтобы код не вырос до длинны туалетной бумаги Чтобы кнопки делать, своя библиотека, движение по A Star логике - своя библиотека, а катати в результате этой возни написал програмку для сокрытия ресурсов. Можно прятать звуки, картинки, блоки какие то - если кому интересно: https://www.youtube.com/watch?v=CWgt5-GPSw0 Там и пример оставил как доставать их
А вывод простой: если есть движок, то лучше им пользоваться, а SDL хорошо использовать для оформления каких то своих windows приложений например.

Добавлено через 3 минуты
Royal_X, в Godot 3 был A Star гавёный, в 4 й версии его доработали нормально !
0
 Аватар для Mr_den
12 / 10 / 2
Регистрация: 06.09.2022
Сообщений: 436
09.09.2026, 20:12  [ТС]
Да, наверно для стратегий GODOT 4 лучший остаётся
Как по весу так и по интерфейсу
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6700 / 3110 / 1064
Регистрация: 01.06.2021
Сообщений: 12,015
09.09.2026, 20:23
Mr_den, кстати, если вырезать из шаблона экспорта Vulkan и DX12, оставив только OpenGL, то размер игры будет вообще маленьким.
1
9993 / 2965 / 497
Регистрация: 05.10.2013
Сообщений: 8,150
Записей в блоге: 244
09.09.2026, 20:45
Цитата Сообщение от Mr_den Посмотреть сообщение
А вывод простой: если есть движок, то лучше им пользоваться
Каждый сам делает вывод для себя, что конкретно в его обстоятельствах подходит лучше всего. Есть немало людей, которые выбирают конструкторы игр, где вообще не нужно писать код: GameMaker, GDevelop, Construct 3 и т. д. Бывает, что на выбор влияет язык программирования. Например, человеку не нравится по каким-то причинам C#, и поэтому он отказывается от Unity. Бывает, что человеку очень нравится C++ и фотореалистичная графика для топовых видеокарт, поэтому он выбирает Unreal Engine 5. Вариантов может быть масса.

Выбор в пользу SDL (SFML, Raylib, Allegro и т. д.) может быть сделан, если человеку принципиально хочется программировать на C++ (или C) какие-то очень маленькие игры с простой графикой. Лично мне на данный момент нравится изучать и практиковаться с WebGPU, Box3D, ozz-animation, cgltf, OpenAL-Soft и т. д., а SDL я взял для окна, событий мыши/клавиатуры и для легкой сборки с помощью CMake из одной кодовой базы для Windows, Android и WebAssembly. Библиотеки же SDL_image и SDL_ttf я использую для работы с картинками и текстом на WebGPU.

Цитата Сообщение от Mr_den Посмотреть сообщение
Чтобы кнопки делать, своя библиотека, движение по A Star логике - своя библиотека
В целом программирование на чистом C/C++ выглядит именно так: программы создаются как конструктор из разных библиотек. Из огромной массы мелких и крупных библиотек на C/C++ выбираются подходящие, если не брать в расчет готовые фреймворки типа Qt, где есть почти все, что нужно из коробки. Действительно, SDL - это только окно (события обработки мыши, клавиатуры, джойстика и т. д.), 2D-API для рисования примитивов и SDL-модули для работы с картинками (SDL_image), текстом (SDL_ttf), звуками (SDL_mixer) и сетью (SDL_net). Все остальное - GUI, алгоритмы поиска путей, работа с базами данных, парсинг JSON/XML и т. д. - это все отдельные библиотеки на GitHub, которые вы собираете сами с помощью CMake.

Цитата Сообщение от Mr_den Посмотреть сообщение
А вывод простой: если есть движок, то лучше им пользоваться, а SDL хорошо использовать для оформления каких то своих windows приложений например.
Для интереса загрузил вашу фразу в нейронку Gemini:

Фраза **несовсем верна** и отражает распространенное заблуждение о назначении SDL.

Правильное соотношение ролей выглядит с точностью до наоборот:

* **Для игр:** Вывод про движки абсолютно верен — если есть готовый движок (Godot, Unity, Unreal), для создания игр лучше использовать его, чтобы не изобретать заново физику, рендеринг, сцены и импорт ассетов.
* **Для Windows-приложений:** Фраза **ошибочна**. SDL (Simple DirectMedia Layer) — это низкоуровневая мультимедийная библиотека для работы с графикой, вводом и звуком. В ней **нет** готовых системных элементов UI (кнопок, текстовых полей, выпадающих списков, вкладок). Верстать на «чистом» SDL обычное Windows-приложение — это крайне трудоемкий процесс, так как каждый элемент интерфейса и обработку текста придется рисовать с нуля.

---

### Для чего на самом деле нужен SDL?

* **Создание собственных игровых движков / эмуляторов:** SDL берет на себя рутину инициализации окон, работы с DirectX/Vulkan/OpenGL, геймпадами и аудио.
* **Игровые утилиты и медиаплееры:** Приложения, где весь экран — это холст для рендеринга (например, медиаплеер VLC использует элементы SDL).
* **Связка с GUI-библиотеками:** SDL используют как «фундамент» (создание окна и контекста), поверх которого накладывают интерфейсные библиотеки вроде **Dear ImGui** (для эдиторов и утилит) или **RmlUi**.

---

### Сводная таблица применения

ЗадачаПодходящий инструментРоль SDL
Обычные Windows-приложенияWinUI 3, Qt, wxWidgetsНе подходит (нет готового GUI)
Создание игрGodot, Unreal Engine, UnityНе нужен (в движках уже есть свой уровень абстракции)
Свой движок / Эмулятор / ИнструментC++ + SDL3 + ImGuiИдеален (дает полный контроль над окном и железом)

**Верная формулировка мысли:**

> *«Если делаешь игру — лучше берешь готовый движок. А SDL нужен не для оформления обычных Windows-приложений, а для низкоуровневой работы с графикой, звуком и вводом, когда пишешь свой движок или специализированный мультимедийный софт».*
В целом я согласен с ответом нейронки, но только если смотреть под определенным углом по поводу движков и разработки игр, потому что игры бывают разными и требования к играм бывают разными. Например, у меня цель изучать WebGPU, линейную алгебру (в рамках программирования компьютерной графики) и собирать для WebAssembly, Android и Windows из одной кодовой базы на C и C++, поэтому для меня SDL - идеальный выбор и лично мне не подходят никакие готовые игровые движки. Мне не нравится прыгать с практики на C/C++ на игровые движки и обратно. Мне и так достаточно веб-программирования на JavaScript/HTML/CSS/Bootstrap и WebGPU на C/C++ и SDL3. Я уверен, что с использованием SDL и WebGPU можно писать определённые 2D/3D-игры, как для хобби сейчас, так и для монетизации в будущем.

Добавлено через 4 минуты
Меня ещё радует, что сборка в WebGPU должна работать на старых компьютерах тоже, потому что wgpu-native переключается на OpenGL, если на компьютере нет ни Vulkan, ни DirectX 12, но есть OpenGL 3.3
0
 Аватар для Mr_den
12 / 10 / 2
Регистрация: 06.09.2022
Сообщений: 436
10.09.2026, 15:43  [ТС]
8Observer8, Если писать без движка, то для упрощения кода всё равно придётся самому свой движок писать ! И тут не важно на каком языке пишешь . На Game maker НЕТ системы A Star - ты не сделаешь пошаговой стратегии, это только платформеры. Проекты на Unreal и Unity весят как проекты Cryengine, качество графики на порядок ниже, а вес такой же
Вот движок от игры WOW поражает, можно открывать кучу окон и это почти никак не сказывается на производительности графики ! Как Blizzard этого достигли непонятно. Он вроде тоже на С++ писался
0
9993 / 2965 / 497
Регистрация: 05.10.2013
Сообщений: 8,150
Записей в блоге: 244
10.09.2026, 16:29
Цитата Сообщение от Mr_den Посмотреть сообщение
Если писать без движка, то для упрощения кода всё равно придётся самому свой движок писать !
Смотря что иметь в виду под словом "движок", какие игры и какая цель. Если просто раскидать код по файлам или классам, то это не движок, а просто проект. Одни могут взять готовый физический движок Box2D/Box3D, а другие могут поставить себе цель написать свой физический движок. У всех интересы и цели разные. Конечно, если у человека цель - написать фотореалистичную 3D-игру в команде, чтобы она выжимала максимум из самых топовых видеокарт, то он возьмёт UE5 или что-то типа того. Никто не будет сначала писать копию или убийцу UE5, а только потом начинать делать игры на своём движке для создания AAA-игр.

Цитата Сообщение от Mr_den Посмотреть сообщение
И тут не важно на каком языке пишешь .
На данный момент для меня принципиально писать игрушки и 3D-приложения на C++ и WebGPU, с GUI на ImGui. Иногда на Си, но Си только для обучающих примеров для начинающих. Потому что на Си очень сложно искать библиотеки типа ImGui, OpenAL-Soft, simdjson, pugixml, IXWebSockets, ozz-animation и т. д.

Цитата Сообщение от Mr_den Посмотреть сообщение
На Game maker НЕТ системы A Star - ты не сделаешь пошаговой стратегии, это только платформеры.
Я никогда даже не пробовал GameMaker. Спросил нейронку - я не знаю, врёт она или нет, но она пишет, что ваше утверждение неверно: там есть алгоритмы поиска пути, которые базируются на A*, и есть готовые плагины для GameMaker:

В GameMaker **есть встроенный алгоритм поиска пути** - это система `mp_grid` (Motion Planning Grid). Под капотом она использует вариацию **A*** (A-Star) по сетке, поэтому писать собственный алгоритм с нуля чаще всего не требуется.

Ниже описаны два основных решения: использование встроенной сетки и подключение готовой собственной реализации.

---

### Вариант 1. Встроенный mp_grid (Рекомендуемый)

`mp_grid` создает сетку ячеек, где можно отметить препятствия, а затем построить кратчайший путь.

1. **Создание сетки:** При старте комнаты / уровня.
Создайте управляющий объект (например, `obj_grid`) и инициализируйте сетку:

```gml
// Create Event в obj_grid
var cell_width = 32;
var cell_height = 32;
var hcells = room_width / cell_width;
var vcells = room_height / cell_height;

// Создаем сетку
global.grid = mp_grid_create(0, 0, hcells, vcells, cell_width, cell_height);

// Добавляем все объекты-препятствия в сетку (например, obj_wall)
mp_grid_add_instances(global.grid, obj_wall, false);


```

2. **Проверка работы сетки:** Визуальная проверка.
Чтобы проверить, правильно ли добавились стены, убедитесь в успехе с помощью события отрисовки (`Draw Event` у `obj_grid`):

```gml
// Draw Event
draw_set_alpha(0.3);
mp_grid_draw(global.grid);
draw_set_alpha(1);


```

3. **Построение пути:** В объекте врага или персонажа.
В событии движения персонажа (например, по клику мыши или по таймеру):

```gml
// Создаем путь
path = path_add();

// Вычисляем путь по алгоритму A* (true = разрешить диагонали)
if (mp_grid_path(global.grid, path, x, y, mouse_x, mouse_y, true)) {
path_start(path, 4, path_action_stop, false);
}


```

---

### Вариант 2. Собственная реализация A* или готовые библиотеки

Если вам нужен чистый A* по взвешенному графу (например, с разной стоимостью перемещения по траве, воде или через болото):

* **Готовые скрипты из GameMaker Marketplace / GitHub:** Вы можете найти библиотеки `AStar GML` на GitHub (например, репозитории с реализацией A* на GML), которые работают с графами узлов.
* **Собственные массивы/структуры:** Реализуйте алгоритм вручную с помощью списков `ds_priority` (очередь с приоритетом идеально подходит для открытого списка A*).
Цитата Сообщение от Mr_den Посмотреть сообщение
Проекты на Unreal и Unity весят как проекты Cryengine, качество графики на порядок ниже, а вес такой же
От игр и целей зависит, что выбирать. У кого терабайты SSD, им вообще неважно, сколько весят проекты - пусть даже 100-200 ГБ. Если у вас цель - стремление к наибольшему качеству графики, то выбирайте движки типа CryEngine, UE5 и т. д. Если принципиально убеждены, что CryEngine лучше, чем UE5, то никто не сможет вас переубедить. Это тоже хорошо, когда вы сосредоточены на одном инструменте, любите его больше других и убеждены на 100%, что он самый лучший для вас. Тогда вы не будете распыляться на SFML, Allegro, SDL, Godot и т. д.

Цитата Сообщение от Mr_den Посмотреть сообщение
Вот движок от игры WOW поражает, можно открывать кучу окон и это почти никак не сказывается на производительности графики ! Как Blizzard этого достигли непонятно. Он вроде тоже на С++ писался
Я не в курсе, но если верить нейронке, то у Blizzard 4 штуки своих собственных движков, которые они развивают под разные свои проекты, переписывая их раз в сколько-то лет чуть ли ни с нуля или с нуля. Очевидно, у них для каждого движка своя команда разработчиков, которые только и занимаются развитием движков. Для таких AAA-игр, как у Blizzard, конечно, нужны большие команды, деньги, время для написания движков, а ещё отдельные команды, которые пишут сами игры на этих готовых для них движках.

Да, это верно. У Blizzard **нет одного единого движка** на все случаи жизни — они разрабатывают собственные (проприетарные) движки под свои ключевые франшизы:

* **World of Warcraft:** Создан на базе собственного движка (исторически вырос из технологических наработок *Warcraft III*). За 20 лет он был кардинально переписан и доработан.
* **Overwatch / Overwatch 2:** Работает на собственном движке (Statesman / Tank engine), разработанном специально под динамичные сетевые шутеры.
* **StarCraft II и Heroes of the Storm:** Используют собственный движок Blizzard для RTS.
* **Diablo III и Diablo IV:** Работают на собственных проприетарных движках, написанных под изометрические Action-RPG.

Единственным заметным исключением стала **Hearthstone** — её Blizzard разработала на стороннем движке **Unity** для ускорения разработки и легкого портирования на мобильные устройства. Но крупные проекты компаний уровня WoW и Overwatch созданы исключительно на своих технологиях.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6700 / 3110 / 1064
Регистрация: 01.06.2021
Сообщений: 12,015
10.09.2026, 16:51
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Я никогда даже не пробовал GameMaker
Цитата Сообщение от 8Observer8 Посмотреть сообщение
конструкторы игр, где вообще не нужно писать код: GameMaker,
А вот я пробовал, но это было очень давно, когда я был полным нубом. Повелся на всякие байки, мол существуют движки, на которых можно создавать игры, не написав ни одной сроки кода. Сейчас не знаю, как обстоят дела с такими движками, но тогда лидером был GameMaker, поэтому выбирал именно его. Он был очень дорогим, но я пираткой пользовался. Конечно, какие-то простые вещи без программирования можно было делать и мне даже сперва этот GameMaker очень понравился, но как только я начал создавать полноценную 2d игру, то постепенно пришлось скрипты использовать. Там есть язык, называется GML. Потом, когда познакомился на форумах с экспертами GameMaker (которые на этом движке делали игры даже на продажу), то понял, что 100% из них использовали только GML. Так что, GameMaker лишь заманивает людей рекламой, мол можно создать игру без кода, но в реальности код писать придется. А поскольку в наше время есть бесплатный Godot, который очень крут в 2d, то не понимаю, кому этот проприетарный GameMaker может пригодиться в 2026, раз так или иначе нужно писать код.
0
9993 / 2965 / 497
Регистрация: 05.10.2013
Сообщений: 8,150
Записей в блоге: 244
10.09.2026, 17:50
Цитата Сообщение от Royal_X Посмотреть сообщение
Конечно, какие-то простые вещи без программирования можно было делать
Цитата Сообщение от Royal_X Посмотреть сообщение
но в реальности код писать придется
Я знаю, как обстоят дела с визуальным программированием, и что игры простейших жанров вроде визуальных новелл геймдизайнеры действительно могут делать без глубоких знаний кода. Точно такую же ситуацию я наблюдал с Blueprints, когда знакомился с Unreal Engine 4. В идеале визуальное программирование лучше всего сочетать с традиционным кодом.

Цитата Сообщение от Royal_X Посмотреть сообщение
Так что, GameMaker лишь заманивает людей рекламой, мол можно создать игру без кода, но в реальности код писать придется.
Я бы перефразировал это так: конструкторы игр привлекают этим либо новичков, нацеленных на быстрый старт, либо художников и геймдизайнеров, далеких от программирования. Последние могут быстро собрать прототип, а затем привлечь программистов, специализирующихся на конкретном движке. Уверен, что в определенных жанрах (тех же визуальных новеллах) геймдизайнер или художник действительно способен сделать полноценную игру без единой строчки кода. Яркие примеры - Ren'Py или Twine, где, судя по описанию, вся логика сводится к ветвлению диалогов и смене спрайтов.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6700 / 3110 / 1064
Регистрация: 01.06.2021
Сообщений: 12,015
10.09.2026, 17:57
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Blueprints
на блюпринтах можно создать полноценную игру, но вот инструменты визуального программирования GameMaker той версии, которую я использовал, имели ограничения и годились лишь для самых банальных задач. Поскольку с тех пор прошло очень много времени, я не знаю, позволяет ли актуальная версия GameMaker действительно обойтись без скриптов.
0
9993 / 2965 / 497
Регистрация: 05.10.2013
Сообщений: 8,150
Записей в блоге: 244
10.09.2026, 18:44
Цитата Сообщение от Royal_X Посмотреть сообщение
Он был очень дорогим, но я пираткой пользовался.
Сейчас у них есть бесплатная версия для некоммерческого использования: https://gamemaker.io/en/get. А если человек начал зарабатывать на своих играх, то он должен купить платную версию за €97.50 (примерно 9,5 тыс. рублей) либо оформить подписку за €67.99 (примерно 6,6 тыс. рублей). Я привёл примеры с популярными на данный момент конструкторами игр: GameMaker, GDevelop и т. д., чтобы донести мысль, что есть множество людей, выбирающих тот или иной набор инструментов в своих определённых обстоятельствах и считающих для себя это лучшим выбором на данный момент.

Цитата Сообщение от Royal_X Посмотреть сообщение
на блюпринтах можно создать полноценную игру
Я думал, что игру типа Atomic Heart невозможно было бы написать 100% на чистом Blueprint без единой строки кода на C++, но оказывается, если верить нейронке, то возможно. Скорее всего, большую часть Atomic Heart делали на Blueprint, а остальную часть на C++. Нейронка пишет, что игр на Blueprint довольно много. Большинство из них - это инди-хиты созданные одним человеком или небольшой командой:

Игры, созданные **«чисто на Blueprint»** (100% без C++) или **практически полностью на нодах** (90–95%), существует довольно много. Большинство из них — это инди-хиты, созданные разработчиками-одиночками или совсем небольшими командами, которым важна была скорость разработки.

### 1. Известные игры, созданные на 100% (или почти на 100%) на Blueprint:

* **Mortal Shell**
Успешный и красивый Soulslike-экшен, созданный небольшой инди-студией Cold Symmetry. Разработчики в интервью неоднократно подчеркивали, что вся игра от начала до конца построена на Blueprint. C++ практически не привлекался, что позволило малой команде за рекордные сроки выдать визуал и геймплей уровня AA-проектов.
* **The Solus Project**
Именитый симулятор выживания от первого лица на загадочной планете. Разработчик Святослав Черняковский создал эту масштабную игру целиком на Blueprint в Unreal Engine 4. Он доказал сообществу Unreal, что на нодах можно сделать сложную систему погоды, инвентаря, выживания и атмосферный сюжет без единого C++ скрипта.
* **Bright Memory (и Bright Memory: Infinite)**
Динамичный футуристичный шутер с великолепной графикой, созданный китайским разработчиком-одиночкой (FYQD Personal Studio). Первая часть была создана им на 100% на Blueprint в свободное от работы время, что принесло игре вирусную популярность во всем мире.
* **Choo-Choo Charles**
Шутер-хоррор про паровоз-паук, ставший абсолютным хитом в Steam и YouTube. Игра создана solo-разработчиком Гэвином Айзенбейсом (Gavin Eisenbeisz) полностью на Blueprint.
* **A Short Hike** *(версия/прототипирование)*
Хотя оригинальная версия была сделана на Unity, ее автор и многие другие разработчики часто используют Blueprint-only подход для создания аналогичных атмосферных медитативных игр без программистов в команде.
* **Abzû**
Живописное медитативное подводное приключение от арт-директора *Journey*. Значительная часть логики взаимодействия с миром, базовые механики плавания и сценарии уровней были собраны на Blueprint художниками и геймдизайнерами.

---

### 2. Масштабные проекты с доминированием Blueprint (90–95%):

* **Clair Obscur: Expedition 33**
Высокобюджетная пошаговая RPG от студии Sandfall Interactive. На GDC разработчики вызвали бум в индустрии, признавшись, что их масштабная игра примерно на **95% написана на «чистых» Blueprints** и использует «ванильный» Unreal Engine без глубоких переработок движка на C++.

---

### Почему эти авторы выбрали «100% Blueprint»?

1. **Скорость итерации (Solo/Small dev):** Разработчик-одиночка не тратит время на сборку кода, ошибки компиляции и C++ синтаксис, а сразу видит результат на экране.
2. **Арт-фокус:** Авторы многих из этих игр (*Bright Memory*, *Mortal Shell*) изначально были художниками или 3D-моделлерами, а не программистами. Blueprint дал им возможность реализовать свои задумки в одиночку.
Цитата Сообщение от Royal_X Посмотреть сообщение
я не знаю, позволяет ли актуальная версия GameMaker действительно обойтись без скриптов.
В 2022 году появился GML Visual: https://gamemaker.io/en/blog/release-2022-3 На википедии написано, что визуальное программирование - это вспомогательный инструмент, который сочетается с текстовым скриптингом. А нейронка пишет, что можно:
**Как дела обстоят в актуальной версии GameMaker:**

В современных версиях GameMaker старый DnD полностью переработали и переименовали в **GML Visual**.

* **Стало ли возможно обойтись без кода?** Технически — **да, практически на 100%**. Нынешний GML Visual — это уже не просто набор готовых действия («проиграть звук»), а полноценное визуальное представление кода GML. Каждому блоку логики соответствует своя строка кода. На нем теперь можно реализовывать массивы, сложные циклы, структуры данных и пользовательские функции.
* **В чем подвох?** Поскольку GML Visual стал полностью дублировать логику текстового программирования, для работы с ним **все равно нужно уметь программировать** (понимать алгоритмы, переменные, условия и области видимости). Из-за этого мысль автора остается верной по сути: вы избавляетесь от набора текста на клавиатуре, но **не от самого программирования**. И как только проект вырастает, писать текстом на GML оказывается банально в разы быстрее, чем расставлять блоки мышкой.
Проверять дальше не стал. Может она врёт. Я не топлю за GameMaker и за конструкторы. Просто поделился информацией.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6700 / 3110 / 1064
Регистрация: 01.06.2021
Сообщений: 12,015
10.09.2026, 19:14
Цитата Сообщение от 8Observer8 Посмотреть сообщение
у них есть бесплатная версия для некоммерческого использования
много лет назад бесплатная версия тоже существовала, но была крайне урезанной и ограниченной. Мне вот сейчас стало интересно и я загуглил. Оказывается, со временем разрабы движка стали чуть "добрее", особенно после приобретения движка компанией Opera. Хотя, куда бы они делись? В наше время, когда есть десятки бесплатных 2d движков, их коммерческий продукт потерял популярность. Так что, они вынужденно стали "добрее", типа чтобы не терять старых клиентов.
Но я не советовал бы GameMaker новичку, который в 2026 году пытается войти в геймдев и разработать 2d игру. Лучше сразу изучать Godot / Unity - имхо, самые лучшие движки для 2d игр.


Цитата Сообщение от 8Observer8 Посмотреть сообщение
Я не топлю за GameMaker и за конструкторы. Просто поделился информацией.
да, я понимаю. Но ты делишься ответами нейронки, а я своим опытом, хоть и не совсем актуальным...


Цитата Сообщение от 8Observer8 Посмотреть сообщение
но оказывается, если верить нейронке, то возможно
ну вот, выше я тоже писал, что на блюпринтах можно создать полноценную игру. Блюпринты это нормальный мощный инструмент. Благодаря неплохой оптимизации, проделанной в последние годы эпиками, при обращении к API движка блюпринты уже имеют такую же скорость, что и С++. Последний выигрывает лишь в чистых вычислениях. Но поскольку вся тяжелая логика игры это больше про API движка, а не просто про какие-то вычисления, то выбор "блюпринты или С++" никак не влияет на производительность игр в современной разработке. Т.е. С++ выбирают не ради скорости, а потому что большим компаниям С++ удобнее для совместной работы, использования готовых наработок. К тому же, в этих ААА-студиях много опытных программистов, которые привыкли к написанию кодов и они не в восторге от блюпринтов. Но вот для инди-разраба блюпринты вполне годная вещь. Есть смешные мемы про блюпринты-спагетти, но к реальности это не имеет отношения. Код на С++ тоже можно писать криво. Блюпринты можно красиво организовать и этих спагетти не будет даже в самых больших проектах.
Но вот самый идеальный подход - это использование блюпринтов и С++ одновременно.

Цитата Сообщение от 8Observer8 Посмотреть сообщение
Ren'Py
насколько наслышан, все равно там нужно писать скрипты, хотя ничего сложного там нет

Цитата Сообщение от 8Observer8 Посмотреть сообщение
писать игрушки и 3D-приложения на C++ и WebGPU, с GUI на ImGui
у тебя уже есть готовая игра, чтобы тестировать? или всё еще демки делаешь? У меня вот 2 недоделанных игры на юнити, еще несколько таких же незавершенных игр на годот. Всё никак не найду времени. На днях было свободное время, смог выпустить маленькое обновление для 3d шахмат, которые на итче.
0
9993 / 2965 / 497
Регистрация: 05.10.2013
Сообщений: 8,150
Записей в блоге: 244
10.09.2026, 19:25
Цитата Сообщение от Royal_X Посмотреть сообщение
Оказывается, со временем разрабы движка стали чуть "добрее", особенно после приобретения движка компанией Opera
Они не стали чуть-чуть добрее из-за Opera. Обрати внимание, когда появилась полноценная бесплатная версия GameMaker. Она вышла сразу после скандала с Unity. Они воспользовались крупным мировым скандалом вокруг Unity, когда владельцы Unity что-то там сделали с бесплатной лицензией - что-то ужесточили.

Цитата Сообщение от Royal_X Посмотреть сообщение
Но я не советовал бы GameMaker новичку, который в 2026 году пытается войти в геймдев и разработать 2d игру. Лучше сразу изучать Godot / Unity - имхо, самые лучшие движки для 2d игр.
Разные бывают люди. Например, есть, те, кто хочет приходить в офис, программировать игры за зарплату. Для этого сейчас всё есть. В моём районе есть коммерческая школа программирования игр на Unity для детей. Школьники ходят туда, изучают C# и Unity, потом идут в ВУЗ, а дальше в офис - программировать игры и получать зарплату, зарабатывать пенсионный стаж и т.д. Это один из самых простых путей - пойти в офис стажёром. Сейчас этих контор, особенно на Unity, полно в любых более или менее крупных городах. Работа и живое общение лучше способствую изучению, чем если человек раз в неделю на выходных сам пытается написать игру.

Но есть множество других вариантов. Может человек изучает C и\или C++, читает книги по этим языкам. Ему принципиально хочется программировать игры на C/C++. Поэтому большое количество людей в Мире используют: Raylib, SDL, SFML и т.д.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.09.2026, 19:25

Подключение библиотеки в Dev C++
Как подключить библиотеку SerialGate к компилятору Dev C++ ? Строчку #include &quot;SerialGate.lib&quot; я...

Подключение dll к проекту в среде Dev C++
Добрый день, Первый день с Dev c++ Мне нужно к проекту подключить dll библиотеку. Как это...

Подключение в Dev C++
Всем привет,можете объяснить как подключить вот эту библиотеку ? #include &lt;vcl.h&gt;

Подключение статической библиотеки в dev c++
Подскажите пожалуйста как подключить библиотеку к проекту где она будет использоваться? Я...

Подключение libcrul к Dev C++
Всем привет, прошу вашей помощи. Появилась необходимость работать с POST/GET запросами, в связи с...


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

Или воспользуйтесь поиском по форуму:
240
Ответ Создать тему
Новые блоги и статьи
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него. https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952 Инструкция внутри. https:/ / youtu. be/ VpfFZSUDGnQ. . .
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru