|
8 / 8 / 1
Регистрация: 18.11.2019
Сообщений: 109
|
|
Какой движок лучше выбрать18.06.2020, 08:23. Показов 10173. Ответов 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.] Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет
Новости компьютерного мира и их обсуждение (4)
Салют, шампанское, овации!
:drink:
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|
|
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2.
Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|