|
8 / 8 / 1
Регистрация: 18.11.2019
Сообщений: 109
|
|
Какой движок лучше выбрать18.06.2020, 08:23. Показов 10234. Ответов 55
Метки нет (Все метки)
Здравствуйте. Имеется древний ноут с windows 7. Юнити на нём лагает (да и учить шарп как то не хочется), Unreal Engine тоже. Посоветуете какой-нибудь современный малотребовательный игровой движок для C++? А то кодить на билдере 2009 года мне уже как-то стыдно
0
|
|
| 18.06.2020, 08:23 | |
|
Ответы с готовыми решениями:
55
Какой движок лучше Какой движок выбрать 2d?
|
| 27.06.2020, 19:16 | ||||||
|
0
|
||||||
| 28.06.2020, 11:19 | ||
|
Я когда стал изучать C#, у меня такое ощущение и было, что C# - это усовершенствованный C++. Столько очень удобных штук добавилось к C++. Изучайте одновременно C++ и C# через написание простых игр. Научитесь писать простые - будут открываться пути к более сложным. Учиться определённо нужно на простых известных играх. Почитайте эти короткие статьи, особенно, статью "Make small Games": https://noobtuts.com/articles Руки нужно набивать на простых игра. Это я и к себе тоже обращаюсь, потому что я сам часто это забывал и сейчас забываю. День проходит, а вклад в конкретную игру не был сделал. Надо писать 2D-игры на SFML С++ и 2D/3D игры на Unity C#. По SFML я уже давал ссылку, какие игры можно взять за стартовые. А это ссылка на текстовые туториалы на простом английском, как делать известные игры с простой графикой на Unity: https://noobtuts.com/unity Нужно повторять эти туториалы до полного запоминания и фантазировать - добавлять и изменять по-своему.
0
|
||
| 28.06.2020, 12:03 | ||||||||||||
|
Теперь к вопросу выбора движка. Изучайте одновременно Unity и SFML. Unity вам даст умение программировать на самом высоком уровне абстракции, а SFML - немного другой подход, что нужно всё кодом, что тоже интересно и полезно. Одновременно будете изучать программирование 2D игр на С++ и 2D/3D игр на Unity. Для 2D на C++ у вас есть SFML, но я считаю, что нужно ещё изучать графический движок на C++. Я советую взять графический движок Qt3D, который встроен в Qt. За одно будете практиковаться c Qt и делать приложения с 3D графикой и с GUI на Qt. Этот графический движок можно использовать для 3D игр. Qt3D является обёрткой над OpenGL. При этом не нужно писать шейдеры и устанавливать Assimp. В Qt3D встроен Assimp. Уже многое в Qt3D реализовано, в том числе скелетная анимация, которую я ещё не пробовал. Например, реализованы контролеры для работы с камерой. К примеру, QOrbitCameraController, который поворачивает камеру вокруг объекта и QFirstPersonCameraController, который перемещает камеру, как в 3D шутерах. Можно добавить Bullet, чтобы хотя бы детектировать прикосновение объектов. По-моему, в Bullet ещё Raycast должен быть, то есть выбор объектов по клику мыши. Небольшим числом строк кода я загрузил кубик, который раскрасил в бесплатном 3D редакторе Blender. Поместил на сцену камеру и точечный источник света. Добавил управление камерой QOrbitCameraController. Как вариант, можно сделать 3D змейку, создав свои простые 3D объекты в Blender или найти их в интернете. Позже попробую загрузить объекты из Blender для которых применю физику на Bullet - падающий кубик на угол другого кубика для начала. Чем больше разнообразных практических упражнений, тем лучше.
main.cpp
0
|
||||||||||||
| 28.06.2020, 12:51 | ||
|
Не по теме:
использование JIT компиляции превратило язык в по сути тоже самое что и java, только вместо jvm тут свое, а то что сборка в ехе ни о чем не говорит (так как это не ехе а аналог jar) и появилась проблема легкого получения исходников из программы, причем еще проще чем в java (я изначально думал это особенности юнити, но как оказалось весь язык такой, проще потому что полученный код куда ближе к оригиналу чем декомпилированный java) имхо нету ничего лучше компиляции в нативный код почитайте вот отзывы начиная с Java - это недоразвитый си шарп? (два примера почему это так) имхо переход к байткоду это шаг назад, не буду разводить холивары
0
|
||
| 28.06.2020, 13:34 | ||||||
|
Добавлено через 6 минут По поводу того, что будет выпущен новый GUI фреймворк на базе .NET Core. Из группы вконтакте Metanit'а скопировал если кому-то будет интересно, но я ещё раз призываю использовать Qt C++.
0
|
||||||
| 28.06.2020, 13:56 | ||||||
|
MiKITA17, настоятельно вам рекомендую начать изучать JavaScript с переходом на язык TypeScript. Вы сможете страивать свои игры в социальные сети, такие как: вконтакте, facebook и т.д. Сможете взаимодействовать с API этих социальных сетей. На JavaScript/TypeScript самый простой способ сделать реальный мультиплеер вебсокетах и Node.js без денежных затрат, потому что есть такие бесплатные хостинги, как Heroku, OpenShift и т.д. На этих хостингах есть бесплатные базы данных: SQLite, MySQL, MongoDB, PostgreSQL и т.д. Вы сможете одновременно практиковаться в программировании клиент-серверных приложений, в использовании SQL, взаимодействии с API социальных сетей. Самый популярный бесплатный фреймворк для 2D-игр - это Phaser. Этот фреймворк позиционирует себя, как mobile-first, то есть оптимизирован для работы с мобильными устройствами. В целом, вы можете практиковаться в программировании, через игры и особой нет разницы какой язык, потому что многие принципы программирования остаются теми же самыми и могут быть перенесены с языка на язык и с движка на движок. Phaser - это игровой фреймворк, который заточен на программирование кодом, как SFML или MonoGame. Phaser является обёрткой над WebGL, то есть графика рисуется с помощью шейдеров, которые загружаются в память видеокарты. При желании можно самому писать шейдеры для Phaser.
Приведу пример анимации. Запустите пример в браузере. Смотрите, как мало кода надо: index.html
1
|
||||||
|
8 / 8 / 1
Регистрация: 18.11.2019
Сообщений: 109
|
||
| 28.06.2020, 19:00 [ТС] | ||
![]() Добавлено через 2 часа 36 минут И да, раз уж столкнулся с такой проблемой напишу сюда же. Как сделать так, чтобы не нужно было таскать за эксешником кучу dll-ок. Мало того что как по мне это не очень красиво, да ещё я не могу найти нужных dll-ок. Вылезает сообщение "this application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem." и попробуй пойми что ему нужно. Пробовал кидать dll-ки из папки plugins в Qt\Tools\QtCreator\bin которая, но это не помогло. В интернете отрыл тему на этом же форуме (Ошибка This application failed to start because no Qt platform plugin could be initialized) но в ней отсылают на сайт документации Qt, где я опять же не нашёл ничего кроме папки plugins. Какие всё таки нужны dll-ки?
0
|
||
| 28.06.2020, 20:35 | |||||
Добавлено через 54 минуты Я Virtual Box не ставил. Постепенно можно вычислить какие dll нужны. Надо выкладывать свои игрушки на форуме, просить знакомых, чтобы они запустили. После нескольких приложений или игрушек вы будете знать, какие требуются для релиза. Библиотеки нужно брать из этой папки: C:\Qt\5.15.0\mingw81_32\bin
Если вы собираете в статику, то вы можете использовать GPL и предоставлять исходники. Добавлено через 16 минут MiKITA17, я считаю, что пока не стоит тратить время на сборку Qt в статику из исходников. Не так уж и много библиотек нужно будет добавить и весить приложение будет по современным меркам не очень много. Пользователь без труда отыщет exe-файл.
0
|
|||||
|
Модератор
|
||
| 28.06.2020, 21:12 | ||
|
причем так будут вести даже на программе типа hello world это уже проходил знаю ехе в сотню мегабайт даже имхо лучше небольшого ехе но с кучей фалов в нагрузку много файлов оправданно если крупный проект, но тогда уже нужен и инсталятор хотя вон в маке приложение представляет из себя папку где в конце имени .app и такая папка является исполняемой, а внутри куча всего, программы крайне редко требуют установки (почти не встречал), распространяются в виде образа диска формата dmg который монтируется двойным кликом и имеет интерфейс (при это программу сжимает)
0
|
||
| 28.06.2020, 22:03 | ||
|
MiKITA17, если вы пишите GUI приложение на Qt, то вам нужно будет добавить из Qt всего три библиотеки: Qt5Core.dll, Qt5Gui.dll и Qt5Widgets.dll. А так же создать папку "platforms" рядом с EXE, куда положить библиотеку qwindows.dll из папки: C:\Qt\5.15.0\mingw81_32\plugins\platform s У меня новое достижение, в плане создания GUI для игр. До меня дошло, как одновременно можно изучать создание GUI на Qt C++ и тренироваться в программировании игр на SFML. Можно сделать GUI для изучения Box2D. Для учебных игр не нужно красивое GUI. Можно делать классическое GUI, которое идёт с Qt, а SFML нужно встроить внутрь окна Qt. Мы получаем всё богатство GUI и SFML графику в одном окне. Видео инструкция, которую я проверил, она работает: How to create an SFML Widget in Qt Creator Видео
0
|
||
| 28.06.2020, 22:04 | |
|
Это инструкция с официального сайта SFML, где расписано, по-моему, тоже самое, чем происходит в видео сообщением выше: Integrating to a Qt interface
0
|
|
| 28.06.2020, 22:20 | |
|
Здесь на скринште я показал, каких библиотек должно быть достаточно, а может быть какие-то лишние - у меня нет чистой операционки, чтобы проверить. По-моему, ничего страшного в этом списке нет, exe можно легко найти в нём. Хотя я предпочитаю больше веб-приложения для запуска которых нужен только один клик по ссылке. Вообще если требования позволяют запускать приложение в браузере, то лучше делать web-приложение, а не не позволяют, то в виде standalone-приложения.
Может библиотеку openal32.dll я зря включил, но она идёт вместе с SFML. На всякий случай, я её буду добавлять к своим поделкам. Кстати, выкладывание своих даже таких простых творений в виде релиз очень мотивирует. Выкладывание кода даже так не мотивирует, потому что код - это не исполняемое приложение, а EXE - это уже достижение и оформленный результат, который может запустить любой человек, даже далёкий от программирования и IT. Сборка в релиз для Windows: QSfmlWidgetDialog_Win86.rar (10.00 Мб)
0
|
|
|
8 / 8 / 1
Регистрация: 18.11.2019
Сообщений: 109
|
||
| 29.06.2020, 08:54 [ТС] | ||
|
0
|
||
| 29.06.2020, 10:47 | ||||||||||||||||||||||
|
Определённые достижения в направлении вебсокетов у меня есть. Я выполнил практическую часть инструкции: WebSockets Crash Course Видео
Я перемотал теорию - потом над ней подумаю, и написал только практику, этот код где ставлю точку останова, чтобы как в видео засечь момент, когда подключается клиент: server.js
main.cpp
0
|
||||||||||||||||||||||
| 01.04.2023, 15:21 | |||
0
|
|||
|
1 / 1 / 0
Регистрация: 01.08.2023
Сообщений: 23
|
|
| 01.08.2023, 14:04 | |
|
Перейди на vim с плагинами, по удобству не уступает современным IDE, а работает даже под DOS'ом. Только нужны минимальные знания гуглежа, английского (на уровне C++) и CMake. Я настраивал его 1 день, там тему под себя можно, горячие клавиши (там они называются мапами).
0
|
|
| 01.08.2023, 14:04 | |
|
Подскажите, какой игровой движок выбрать Какой мультиплеер лучше выбрать? Как лучше залить текстуру в массив? Какой формат текстуры лучше использовать? 3D движок вручную, какие инструменты выбрать? Выбрать движок? [Unity3D, XNA, OGRE, Wave, Delta, Axiom, Mono.] Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|