|
8 / 8 / 1
Регистрация: 18.11.2019
Сообщений: 109
|
|
Какой движок лучше выбрать18.06.2020, 08:23. Показов 10142. Ответов 55
Метки нет (Все метки)
Здравствуйте. Имеется древний ноут с windows 7. Юнити на нём лагает (да и учить шарп как то не хочется), Unreal Engine тоже. Посоветуете какой-нибудь современный малотребовательный игровой движок для C++? А то кодить на билдере 2009 года мне уже как-то стыдно
0
|
|
| 18.06.2020, 08:23 | |
|
Ответы с готовыми решениями:
55
Какой движок лучше Какой движок выбрать 2d?
|
|
8 / 8 / 1
Регистрация: 18.11.2019
Сообщений: 109
|
||||
| 22.06.2020, 08:32 [ТС] | ||||
|
Добавлено через 26 минут Однако! Решил я кликнуть правой кнопкой мыши по папке проекта -> добавить библиотеку. Пожмякал там разные кнопочки и добавил к проекту libsfml-window.a - и о чудо: ошибок стало меньше (с 20 до 7). Всё таки это была моя лажа. Вот только там можно добавить только одну библиотеку за раз, а их там много... Вот, к слову, текст, который добавила сама ide:
0
|
||||
|
8 / 8 / 1
Регистрация: 18.11.2019
Сообщений: 109
|
||
| 22.06.2020, 08:53 [ТС] | ||
|
Подредактировал я вышеупомянутые строчки, и получилось:
(Похожую картину я наблюдал, когда пытался прикрутить OpenGL к Code::Blocks) upd: Тему можно закрывать. Внимательно вчитавшись в название понял, что не хватает не sfml дллки, а std. Включив голову, пошёл я в папку bin нового компилятора, перетащил оттуда всё к эксешнику и всё заработало! Спасибо всем кто помогал. Ура! Ура! Ура!
0
|
||
| 22.06.2020, 09:20 | |||||||||
|
Я создал проект "Qt Console" (до этого создавал "Other Project" > "Empty qmake Project"). Скопировал в .pro новые настройки из прошлого проекта. Работает. Попробуйте временно разархивировать SFML, например, на диск "C", чтобы исключить проблему с путями. У меня на диске "E" есть папку "Libs", где хранятся разные библиотеки: .pro
В случае, если захотите отправить EXE кому-то, то, конечно, нужно будет скопировать эти dll'ки к EXE. Добавлено через 11 минут Очень рекомендую вам изучать так же фреймворк Qt. В интернете есть много хороших туториалов (можно скачать онлайн-книг), например: http://zetcode.com/gui/qt5/ В этот туториале показано, как рисовать с помощью QPainter, а в последних двух главах показано, как сделать две игры: Ещё на Qt, я считаю, обязательно нужно изучать OpenGL. Очень хорошие видео инструкции на русском: https://www.youtube.com/channe... bew/videos Qt + OpenGL ES 2.0 Tutorial 1 Шаблон проекта Видео
1
|
|||||||||
| 22.06.2020, 12:49 | |
|
Я уверен, что сначала нужно тренироваться на всем известных простых играх. Развивать их по своему, по мере получения знаний и навыков. По SFML есть свой раздел на киберфоруме и довольно активный: https://www.cyberforum.ru/sfml/
Посоветую вам отличный канал на русском по SFML: https://www.youtube.com/user/FamTrinli/videos Там полно исходников разных игр. Особенно мне понравился его урок по Супер Марио: Создание игр на C++: Марио (платформер). Я, правда, ещё не освоил этот урок на практике, но собираюсь в ближайшее время это начать делать. Видео
1
|
|
|
8 / 8 / 1
Регистрация: 18.11.2019
Сообщений: 109
|
|
| 23.06.2020, 11:04 [ТС] | |
|
Спасибо за советы! Кстати, порыскав в интернете я не нашёл инструкций по подключению Box2d к Qt, а сам с CMake'ом я работать не умею. Чёт там попытался собрать но ни .lib ни .a не создаётся.
0
|
|
| 23.06.2020, 14:59 | |||||||||||||||||
|
Бывает, что какие-то библиотеки у меня не собираются. Не смог собрать и не понимаю в чём проблема, не нашёл причину на зарубежных форумах. Например, графический движок OGRE не собирается у меня с помощью MinGW 32. Так же как и Assimp 32-bit крайней версии. А Assimp предыдущей версии собирается нормально. Кстати, я смотрю по исходникам Box2D, что релиз одни делали в 2014, но с другой стороны, разработка активна, потому что крайние доработки были 2 месяца назад: https://github.com/erincatto/box2d Мне нравится, когда есть релизы (на вкладке "releases") потому что собирать с самыми последними изменениями - это отсутствие привязки к версии и чревато получить ошибки. В общем, я пока писал это сообщение, у меня собирался Box2D и в результате не смог собраться. На этапе сборки (после команды mingw32-make выдало кучу ошибок). Ругается на "std::mutex mutex". Я встречал эту проблему. По-моему, насколько я помню, в компиляторе MinGW 32-bit g++ не реализована поддержка std::mutex. Я попробую поискать какой-нибудь другой 2D движок, и попробую поискать решение этой проблемы с Box2D. Такие ошибки выдаёт: Кликните здесь для просмотра всего текста
Добавлено через 5 минут Я поискал и интернете: box2d mutex errors. В первой же ссылке говориться, что это проблемы с unit-тестами. Я в CMake GUI убрал галочку BOX2D_BUILD_UNIT_TESTS и у меня сборка прошла дальше, но появились другая ошибка, связанная с модулем std::thread:
УРА! Я в CMake GUI ещё убрал галочку BOX2D_BUILD_TESTBED. Команда сборки "mingw32-make" отработала без ошибок:
0
|
|||||||||||||||||
|
Просто Икс
692 / 234 / 47
Регистрация: 15.12.2009
Сообщений: 696
|
||
| 24.06.2020, 14:57 | ||
|
Огр использует сторонние библиотеки (dependencies), которые тоже надо учитывать при сборке определенным компилятором. А так, учитывая кроссплатформенность Огра, то он должен отлично собираться на GCC (MinGW это IDE) и скорее всего надо было искать решение по версии GCC в твоем MinGW.
1
|
||
| 24.06.2020, 15:26 | |||||||||||||
Видео
Я пока сделал только первую часть его игры из урока. Записал гифку с помощью программы ScreenToGif (кстати, отличная программа!)
0
|
|||||||||||||
|
Просто Икс
692 / 234 / 47
Регистрация: 15.12.2009
Сообщений: 696
|
||||
| 24.06.2020, 16:32 | ||||
|
https://www.ogre3d.org/about/w... -to-choose Это в свое время внесло определенную путаницу и честно говоря (на мой взгляд) сыграло не на пользу самому развитию проекта. В CMake каждая настройка имеет определенный смысл, какая-то требует дополнительную стороннюю библиотеку, какая-то поддержку чего-нибудь и тд. Там надо разбираться, что включаешь или отключаешь и зачем, но в сущности ничего особо сложного в этом нет. Обычно по каждой опции можно найти информацию, что она значит и зачем нужна. Это независимо сборку чего делаешь, Огра, Bullet, Assimp или любую другую библиотеку ![]() Добавлено через 2 минуты Собственно, обычно в окне вывода пишет, что именно CMake требуется, если указать путь на какую-то библиотеку, то появляется дополнительное поле где нужно указать путь и тд.
1
|
||||
|
Модератор
|
|
| 26.06.2020, 18:15 | |
|
8Observer8, решил сам опробовать этот движок box2d для начала по вашему видео (но на джаве используя оф(?) порт jbox2d). как ни странно но я думал что он куда сложнее, а тут все куда проще в плане использования. но вот получить нужные результаты уже не так просто, с параметрами из видел у меня вышел эффект льда и низкой гравитации))) избавиться от которых не выходит. (переписал не с видео а свой другой 2д проект под этот движок, где сам пытался писать физику). зато с ооп подходом можно не переберить все body из мира а использовать то что использовалось при создании и не нужно userdata ставить. еще вместо перебора всех объектов для определения onGround хорошо работает условие getLinearVelocity().x==0, хотя по идее в максимальной точке прыжка оно тоже выполняется но проблему двойного прыжка и прыжка в падении почти решает
с версиями чтото странное у него. на гите релизов не нашел, скачал последнюю версию, снегерировал vs проект и долго пытался найти lib файлы))) в 19 студии и последней версии либы структура проекта совсем иная. в итоге нашел, подключил и все заработало, но только пришлость внести правки в код из ролика. в userdata приведение к (void *) строки, а в setLinearVelocity требовался еще один bool параметр. с портом jbox2d вышло не лучше, последняя версия .3 а на гугле .2 от 13 года, на мавене тоже .2 версия, но по начинке jar-ники различаются. а если собирать самому то не будет ни исходников ни доков. еще ради интереса попробовал libgdx который по сути оказался генератором проекта градл для программирования графики а не движком, при этрм он использует допотопные версии всего, у box2d .1 или ниже а так впечатление хорошее о движке, только надо разобраться с эффектами льда и малой гравитации пробовал порт bullet на джаву но он показался чем то недописанным и гайды с плюсов не подошли. надо поискать замену а то раз с 2д у меня самописное ужасно работает то что о 3д говорить а что такого в этом qt? ведь по сути на связке sfml+box2d можно писать игры
0
|
|
| 27.06.2020, 01:08 | ||||||||
0
|
||||||||
|
Модератор
|
|
| 27.06.2020, 09:28 | |
|
8Observer8, это была не притензия, а просто вопроос ради интереса, я в плюсах не разбираюсь и не понимаю зачем использовать несколько вещей с похожим функционалом. а если про opengl говорить то не вижу смысла вообще в чем либо кроме необходимых библиотек (glad/galogen, glfw, stb, glm и в этом духе).
повозился я вчера с движком bullet, с трудом смог собрать lib файлы (либо найти) пришлось в студии открывать не sln а cmake файл проекта и руками static библиотеки собирать, но вот в проекте они требуют флагов mt mtd а с md mdd не работают как бы я их не собирал. и судя по hello world примеру он не сильно отличается от box2d по принципу использования. хоть мне привычней джава но похоже придется пересесть на плюсы (порт в пакете lwjgl странный и не полностью повторяет а гайдов/примеров нету). хотя и так уже больше чем ожидал пишу на плюсах)) а автор да, похоже решил юнити выбрать, думаю больше изза графического редактора проекта, а то на этих вариантах ничего не увидеть без запуска проекта, а так же нету проблем со сборкой и подключением библиотек. кстати все чаще замечаю что чаще попадаются игры на этом движке использующе il2cpp
0
|
|
| 27.06.2020, 13:00 | |||||||||||||
|
Вряд ли программист C++ сразу начнёт зарабатывать себе на хлеб с помощью игр. В этом плане Qt предоставляет широкой диапазон разработки приложений, начиная от GUI и заканчивая поддержкой баз данных и TCP-сокетов. Qt является наиболее распространнённым фреймворком для GUI C++. Можно изучать SFML, добавляя что-то нужное из Qt и тем самым дополнительно изучать Qt. Например, можно придумать игру, где нужна база данных. К примеру, для хранения рекордов игры. В Qt поддержка базы данных идёт прямо из коробки. Пример, как создать и открыть базу данных:
В Qt для OpenGL есть много облегчающих штук. Например, шейдеры и текстуры можно добавить в ресурсы, чтобы никто не мог просто так заменить текстуры или случайно/специально испортить шейдеры. Ещё можно в одну строчку создать программу, подключить шейдер, слинковать и проверить её. Если ошибка, то выведется сообщение в консоль отладки:
0
|
|||||||||||||
| 27.06.2020, 13:49 | |||||||||||||||||||||||||||||||
|
Если сравнить, сколько занимает C++ приложение на OpenGL, например, с созданием окна на GLFW, то можно обнаружить, что на Qt даже приложение с рисованием одного треугольника будет весить чуть больше 30 МБайт. Меня такая ситуация нисколько не смущает. Сейчас подавляющее большинство пользователей этого размера не заметит, даже не обратит внимания. Сжимается такой архив до 9 МБайт, что отлично вписывается в прикрепления CyberForum, который позволяет прикреплять до 25 МБайт. К слову сказать, сборки на Unity весят от 19 МБайт - в крайнем случае, сборку приложения в релиз можно развить на несколько архивов.
Рисование треугольника на OpenGL 3.3 собранное в релиз на Qt:
Исходники
main.cpp
widget.h
widget.cpp
vShader.glsl
fShader.glsl
ColoredTriangleQtOpenGL33Cpp.pro
Вполне себе вариант для игр с простой графикой на OpenGL + Qt, либо для неигровых 3D приложений, где сочетаются GUI + OpenGL. Всё в одной экосистеме. Много чего ставить не надо. Всё что нужно есть в Qt.
0
|
|||||||||||||||||||||||||||||||
| 27.06.2020, 14:51 | |
|
0
|
|
| 27.06.2020, 15:11 | |
|
0
|
|
|
8 / 8 / 1
Регистрация: 18.11.2019
Сообщений: 109
|
||
| 27.06.2020, 16:47 [ТС] | ||
|
QtCreator, кстати мне понравился. Удобный и приятный глазу интерфейс, при чём весит она намного меньше той же VS.
1
|
||
| 27.06.2020, 17:38 | ||||||||||
|
Мне здесь напомнили про Bullet. Это физический движок для 3D физики. Я решил подключить Bullet к QtCreator и запустить пример "Hello, World" из официального репозитория: https://github.com/bulletphysi... oWorld.cpp Рано или поздно всё равно нужно изучать 3D физику, это точно пригодится и это интересно должно быть. Bullet я собрал через CMake GUI, отключив все галочки, кроме Bulllet3. Собралось нормально с помощью MinGW. Я создал пустой проект в QtCreator: "File" > "New File or Project..." > "Other Project" > "Empty qmake Project". Это проект на чистом C++, без использоания фреймворка Qt. Создал файл main.cpp с содержимым из официального репозитория: https://github.com/bulletphysi... oWorld.cpp main.cpp
Подключение Bullet к среде QtCreator в файле .pro:
0
|
||||||||||
|
Модератор
|
|
| 27.06.2020, 18:05 | |
|
8Observer8, я bullet собирал в студии и с горем пополам, пришлось открывать как cmake проект, в итоге удалось собрать только вариант работающий только с /mt /mtd, для чего пришлсь и glfw с этими ключами пересобирать
но до сих пор вылазят предупреждение про pbd хотя они есть (как их получал другая история)) но зато на основе этого helloworld написал прыгающий кубик)) графику рисую сам на чистом opengl 4.6, пока с простым освещением Блинн-Фонга и одним точечным источником света без затухания. Зато работает) Только в примере сфера после всего деактивируется и не прыгает (точнее не реагирует на setLinearVelocity), а к тушкам не применены флаги, а по хорошему стоит, как минимум для статика и кинематика (для динамик нету). По первому впечатлению движок очень похож на box2d, и по сути изучив бокс можно на пулю без особых проблем перейти. Создаешь мир с гравитацией, в 3д поболее настроек и параметров надо, но пойдут и дефолтные. Для объектов создаешь shape body положение в мире, только опять же больше проомежуточных шагов, наприер localInertity у динамических объектов. Попробуй превратить прыгающий кубик в стартовую карту от анреала для первого лица но без оружия. Unreal вечит не много, в пределах 16гб, а качать не более 8, это со стартовыми ассетами, но только под винду и без символов отладки. Он вроде требует студию, с другими не знаю. А то что требовательный это да, помню 4.20 бегал куда быстрее чем 4.25 и не все полезные плагины обновляются на новые версии. Но на блюпринтах и без плагинов не из магазина можно и без компилятора собирать. В последних версиях вырезали сборку в html, можно добавить но надо собирать движок самому из комьюнити версии. Юнити не только 2д и мобильные. Дофига компьютерных игрв 3д на юнити и как уже говорил все чаще с использованием il2cpp, то есть с компиляцией шарпа в нативный си код. Порой встречаются неплохие проекты. Только для геймдева учить движки и программирование не достаточно, я бы сказал что это треть максимум (или половина если свой движок), для 2д игр надо уметь рисовать либо находить картинки, а для 3д моделить или находить и уметь соединять с анимацией (либо прикручивать с нуля). Для меня создание игр (а точнее попытки создания) это хобби и мне куда интереснее чистый opengl/vulkan нежели нечто готовое по типу sfml/ogre. Надо будет разобраться в тенях.
0
|
|
|
8 / 8 / 1
Регистрация: 18.11.2019
Сообщений: 109
|
|
| 27.06.2020, 18:44 [ТС] | |
|
0
|
|
| 27.06.2020, 18:44 | |
|
Подскажите, какой игровой движок выбрать Какой мультиплеер лучше выбрать? Как лучше залить текстуру в массив? Какой формат текстуры лучше использовать? 3D движок вручную, какие инструменты выбрать? Выбрать движок? [Unity3D, XNA, OGRE, Wave, Delta, Axiom, Mono.] Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|
|
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы
## О чём эта статья
В процессе построения ОДУ-модели (система дифференциальных. . .
|
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет)
Содержание проекта
Симуляция вековой (50 лет) экологической сукцессии в почве леса
Основные участники: АМ-гриб, ЭКМ-гриб,. . .
|
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов
Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
|
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация
В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
|