Форум программистов, компьютерный форум, киберфорум
Программирование игр
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
0 / 0 / 0
Регистрация: 14.09.2026
Сообщений: 14

Новичок в gameDev

14.09.2026, 21:30. Показов 4020. Ответов 53

Студворк — интернет-сервис помощи студентам
Ребят всем привет, я новичок в с++ и разработке движков) полгода назад загорелся идеей создать свои игру. Наверное как и все новички - свой майнкрафт на с++. В итоге получился результат, отказался от воксельного движка. Но куча проблем связанных с механиками игры. Можете кто посоветовать библиотеки для развития проекта,статьи и туториалы ) особенно острые проблемы - это работа с анимациями ( даже их вес - 1 анимация == 150мб, мб как то ужимать) и работа с картой игры? Мб какой внутренний редактор ( щас пробуем переписать библиотеку с питона для работы с ассетами из юнити). Так же если кто может просто поделится опытом - буду благодарен)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.09.2026, 21:30
Ответы с готовыми решениями:

Новичок в программировании, желание изучать GameDev
Всем доброго времени суток, меня зовут Александр, мне 17 лет, есть желание и можно сказать мечта...

Новичок в питоне, но не новичок в программирование
Привет всем! У меня есть много вопросов, и может кто-то сможет ответить на несколько из них. Я...

2D gamedev, книги
Доброго времени суток, уважаемые форумчане. Подскажите пожалуйста хорошую ( на ваш взгляд)...

53
1980 / 836 / 115
Регистрация: 01.10.2012
Сообщений: 5,252
Записей в блоге: 2
07.10.2026, 22:54
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Royal_X Посмотреть сообщение
Говорю же, для таких случаев игровой движок автоматически делает переходы (transitions), чтобы смена состояний idle -> walk -> idle не была резкой.
Если делает то как? Напр в исходниках того же Godot'а я ничего такого не видел (хотя может просто плохо смотрел)
Цитата Сообщение от Royal_X Посмотреть сообщение
Однако, самый идеальный вариант это иметь еще и промежуточные анимации для естественного старта и останова ходьбы.
Т.е. чтобы состояния не выглядели как idle -> walk -> idle, а как idle -> walk_start -> walk -> walk_stop -> idle.
Например, в Mixamo есть такие промежуточные анимации для гуманоидов. Вот с ними смена состояний выглядит настолько естественно и плавно, что даже не чувствуется, где началась / закончилась та или иная анимация.
Ну может просто следующая (анимация) продолжает предыдущую. Но так далеко не уехать

Ладно, ответ ясен, спасибо
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
7049 / 3139 / 1065
Регистрация: 01.06.2021
Сообщений: 12,191
08.10.2026, 00:10
Цитата Сообщение от Igor3D Посмотреть сообщение
Напр в исходниках того же Godot'а я ничего такого не видел (хотя может просто плохо смотрел)
если эти фичи есть в Godot (https://docs.godotengine.org/e... troduction), то значит плохо искал в исходниках

А зачем тебе смотреть на реализацию? Разрабатываешь свой игровой движок с нуля?

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

Тоже самое касается, например, звуков ходьбы на разных поверхностях. Желательно иметь десяток разных звуков для каждого материала и рандомно менять питч и громкость для еще большей реалистичности.
0
9994 / 2966 / 497
Регистрация: 05.10.2013
Сообщений: 8,160
Записей в блоге: 246
08.10.2026, 15:06
Цитата Сообщение от Igor3D Посмотреть сообщение
Да вряд ли красиво, скорее анимация поворота не предназначена для смешивания. А запастись анимациями "на все случаи жизни" не выходит. Тот же поворот: налево, направо или кругом или на 45 градусов?
Честно говоря, не понимаю, о чём речь. Может, мы имеем в виду разные типы анимаций или разные подходы? Может, мне не приходилось сталкиваться с тем, о чём вы пишите? Попробую подробно объяснить своё понимание комплексно. В моём понимании игра от первого лица - это прежде всего физика, то есть работа с физическим движком. Игрок (или ИИ врага) управляет физической капсулой, в моём случае, капсулой, созданной с помощью библиотеки Box3D (неважно какая библиотека: Jolt Physics, PhysX, Bullet Physics и т.д.). В примитивном случае для демки у капсулы есть три состояния: она может быть неподвижной, то есть находиться в покое (idle), может двигаться игроком или ИИ-врага (walk), а может поворачиваться игроком или ИИ-врага (turn). Графика и анимации - это вспомогательный инструмент, чтобы показать состояние физической капсулы, а капсулу не должен видеть игрок. Если капсула находится в покое, то мы показываем анимацию покоя (idle), если капсула поворачивается, то показываем анимацию поворота (turn), если капсула перемещается, то показываем анимацию ходьбы (walk). А в каком вы находитесь контексте?

Igor3D, попробуйте запустить мою демку в браузере. Управляйте с помощью WASD. Мы имеем в виду разные вещи?
0
9994 / 2966 / 497
Регистрация: 05.10.2013
Сообщений: 8,160
Записей в блоге: 246
08.10.2026, 15:23
Цитата Сообщение от ilya_lynev Посмотреть сообщение
Можете кто посоветовать библиотеки для развития проекта, статьи и туториалы
Очень полезная библиотека: https://github.com/recastnavig... navigation. Она для поиска пути. Для библиотеки BehaviorTree.CPP есть вводные уроки на их сайте: https://www.behaviortree.dev/. Там пишут, что эта библиотека для управления роботами, но она подходит и для игр. Я использую комбинацию recastnavigation + BehaviorTree.CPP + Box3D + ozz-animation в демке (управление WASD). В ней враги преследуют ГГ, а их поведение задаётся в XML-файле, который требует библиотека BehaviorTree.CPP.

Я написал пошаговые инструкции для установки и интеграции библиотек:
Инструкция по сборке примера с контроллером от первого лица на С++: First-Person контроллер с физикой Box3D, cgltf, SDL3, GLM и OpenGL 3.3

Если какой-то шаг в инструкциях вызвал проблему, то сразу пишите, я помогу.

Прикрепил исходники демки, которая собирается под Windows, Ubuntu, Android и WebAssembly.



GitHub репозиторий

Миниатюры
Вложения
Тип файла: zip ybot-follow-box3d-sdl3.zip (1.12 Мб, 4 просмотров)
1
1980 / 836 / 115
Регистрация: 01.10.2012
Сообщений: 5,252
Записей в блоге: 2
08.10.2026, 21:24
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Графика и анимации - это вспомогательный инструмент, чтобы показать состояние физической капсулы, а капсулу не должен видеть игрок. Если капсула находится в покое, то мы показываем анимацию покоя (idle), если капсула поворачивается, то показываем анимацию поворота (turn), если капсула перемещается, то показываем анимацию ходьбы (walk). А в каком вы находитесь контексте?
В том же самом. Да, кто-то (напр игрок) управляет "корнем" char'а, напр прокси-капсулой, с помощью физики или нет (это другой вопрос). А кости/анимации подстраиваются под это заданное движение. При этом char должен двигаться естественно, не скользить. Просто "подставить нужную анимацию" не выходит. Есть переходы (пример уже устал повторять), есть повороты (самые разнообразные), есть движение по неровной поверхности, или "хотя бы" подъем/спуск по ступенькам и.т.д. Никогда не будет готовых анимаций чтобы покрыть это все. Нужно уметь синтезировать движение(я). Люди этим давно занимаются (хотя и не кричат об этом). Есть тулзы в том же юнити (с демкой и всеми делами), есть даже прекрасный диссер на эту тему. Если Вы "не в курсе" - значит Ваш подход нужно менять
0
9994 / 2966 / 497
Регистрация: 05.10.2013
Сообщений: 8,160
Записей в блоге: 246
08.10.2026, 22:42
Цитата Сообщение от Igor3D Посмотреть сообщение
Да вряд ли красиво, скорее анимация поворота не предназначена для смешивания. А запастись анимациями "на все случаи жизни" не выходит. Тот же поворот: налево, направо или кругом или на 45 градусов?
Цитата Сообщение от Igor3D Посмотреть сообщение
Да, кто-то (напр игрок) управляет "корнем" char'а, напр прокси-капсулой
Если капсула жёстко привязана к "корню char'a", как у меня, то для смешивания подходит только зацикленная анимация поворота при данном подходе. На ozz-animation очень легко в несколько строк кода делаются переходы между анимациями через смешивание. У меня в демке выше, если нажать одновременно поворот и движение вперёд, то будут смешиваться анимации ходьбы и поворота и показываться среднее между ними. К слову сказать, на Mixamo почти все анимации поворота - это не зацикленные анимации, а зацикленная всего лишь одна (либо я пропустил одну, но я, вроде, внимательно смотрел). Называется она "Turning Right 45 degrees":
Название: turning-right-45-degrees.gif
Просмотров: 105

Размер: 80.6 Кб
Причём есть только правая, а левой нет. Я её использовал в демке выше. Но левую легко можно сделать с помощью reverse, то есть обратного проигрывания - видимо, поэтому левой нет. Обратное проигрывание также позволяет сделать анимацию для ходьбы назад, что у меня в демке выше тоже сделано.

Все анимации для демки выше я взял с https://www.mixamo.com/. Оттуда же взял робота-манекена (Y-Bot). Уменьшил ему количество полигонов в Blender с помощью модификатора Decimate и сделал новую UV-развёртку, чтобы покрасить модель заново в те же цвета. Изначальная UV нарушилась. Модель робота состояла из двух частей после скачивания с Mixamo, а я объединил её в одну в Blender. Можете использовать эту модель в своих проектах. Модели и текстуры можно в любой момент заменить, как и анимации, поэтому непринципиально, что использовать во время разработки.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
7049 / 3139 / 1065
Регистрация: 01.06.2021
Сообщений: 12,191
08.10.2026, 23:26
8Observer8, если превращаешь модельку в low-poly, то советую использовать потом Multires и запечь нормали из него. В итоге моделька будет low-poly, но с визуальным качеством high-poly.
0
1980 / 836 / 115
Регистрация: 01.10.2012
Сообщений: 5,252
Записей в блоге: 2
09.10.2026, 02:00
Цитата Сообщение от 8Observer8 Посмотреть сообщение
На ozz-animation очень легко..
Вы уже все уши прожужжали с этой ozz-animation Ну это скромная либка что позволяет быстро делать несколько простых вещей. На здоровье, но это собсно и все. И как-то Вам не хватает "масштабности", что ли. Ну нашли еще одну подходящую анимацию, ну хорошо, браво, но проблем-то это не решает.
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Можете использовать эту модель в своих проектах.
Ваша щедрость не знает границ
0
9994 / 2966 / 497
Регистрация: 05.10.2013
Сообщений: 8,160
Записей в блоге: 246
10.10.2026, 15:23
Цитата Сообщение от Igor3D Посмотреть сообщение
позволяет быстро делать несколько простых вещей
Нет, неправда, она умеет делать множество сложных вещей: Documentation - Features, Samples - Overview

Перевод списка фич на русский язык с помощью ИИ

Функционал / ВозможностьОписаниеВерсия
Сборка анимации (Animation building)Создание runtime-анимации ozz (оптимизированной, сжатой) из исходного (простого, редактируемого, оффлайн) формата анимации.0.1.0
Сборка скелета (Skeleton building)Создание runtime-скелета ozz (оптимизированного, сжатого) из исходного (простого, редактируемого, оффлайн) формата скелета.0.1.0
Сэмплирование (Sampling)Сэмплирование анимации в заданный момент времени в локальном пространстве.0.1.0
Преобразование из локального в пространство моделиПреобразование из локального пространства (трансформация кости относительно родителя) в пространство модели (относительно корня).0.1.0
Сериализация (Serialization)Сериализация структур данных скелета и анимации, поддержка порядка байтов (endianness).0.1.0
Оптимизация ключевых кадровУстранение избыточных ключевых кадров.0.1.0
Смешивание (Blending)N-направленное смешивание поз скелета в локальном пространстве.0.2.0
Частичная анимация (Partial animation)Поддержка масок анимации, сэмплирование и смешивание анимаций по маске.0.3.0
Поддержка FBXПолная поддержка пайплайна для файлов FBX (скелеты и анимации).0.4.0
Сжатие ключевых кадровУменьшение объема памяти, занимаемого анимацией.0.6.0
Скиннинг (Skinning)Поддержка скиннинга через палитру матриц (matrix palette skinning).0.7.0
Аддитивная анимацияПоддержка сборки, сэмплирования и смешивания аддитивных анимаций.0.8.0
Иерархическая оптимизация ключевых кадровПовышение качества оптимизации ключевых кадров с учетом полной иерархии суставов при оценке погрешности.0.8.0
Импорт нескольких дублей (Multi-take)Импорт всех анимаций из файла DCC одной командой.0.9.0
Пользовательские каналы (User channels)Поддержка импорта и сэмплирования дорожек пользовательских данных (float, Float3, Quaternion...).0.10.0
Настройка сжатия для отдельных суставовВозможность переопределения параметров сжатия индивидуально для каждого сустава.0.11.0
Двухкостная IK (Two bones IK)Решатель инверсной кинематики для коротких цепочек из трех суставов (двух костей).0.11.0
Aim IK (Наведение / Прицеливание)Решатель Aim IK поворачивает сустав так, чтобы он был направлен на целевую точку.0.12.0
Импорт glTFПоддержка конвертации файлов формата обмена glTF в бинарные runtime-структуры ozz.0.13.0
Оптимизация обратного сэмплированияОптимизация сэмплирования анимаций при воспроизведении назад.0.15.0
Оптимизация произвольного поиска (Random seek)Оптимизация времени перехода к произвольному кадру при сэмплировании длинных анимаций.0.15.0
Извлечение движения (Motion extraction)Поддержка создания дорожек корневого движения (root motion), извлеченных из полных анимаций.0.16.0
Извлечение движения в пространстве моделиПоддержка создания дорожек движения для некорневых суставов.Следующий релиз
Ретаргетинг анимаций (Retargeting)Перенос анимаций с одного скелета на другой.В планах
Интерполяция по градиентным полосамПример, демонстрирующий технику смешивания по двум параметрам (Gradient band interpolation).В планах
Скиннинг двойными кватернионамиТехника скиннинга, устраняющая артефакты схлопывания объёма при линейном смешивании (Dual quaternion skinning).В планах


Этой либе 11 лет. У неё: 3 тыс. звёзд, 25 контрибьюторов, 104 закрытых issue. Она работает очень быстро и её протестировало очень много людей. У неё отличная документация с примерами на официальном сайте: https://guillaumeblanc.github.io/ozz-animation/ Погружение в библиотеку тоже требует времени, но я выложил пример выше, где переключение между анимациями Mixamo происходит плавно через смешивание, и этот пример автор темы может использовать, чтобы быстро реализовать базовые вещи и двигаться дальше.

Igor3D, вам 65 лет, и это колоссальный опыт в программировании графики, поэтому вам кажется, что переключение между анимациями через смешивание по событиям - это суперлегко, а для новичка это суперсложно. Он может потерять на этом кучу времени и нервов. Для него даже парсинг иерархии костей и матриц из glb будет сложным. Эта либа подходит ему идеально, раз он твёрдо решил продолжать программировать игру на C++ и развивать свой движок и наотрез отказывается от использования готовых игровых движков. Ему надо быстренько на базовом уровне реализовать переключение между анимациями по событиям через смешивание и как можно быстрее переходить к готовому физическому движку - то есть перемещение, детектирование коллизий, рейкастинг, ragdoll и т. д.

Я перепробовал множество физических движков, и самый лучший, на мой взгляд, в плане простоты освоения - это Box3D. Видео от автора Box3D:



Цитата Сообщение от Igor3D Посмотреть сообщение
И как-то Вам не хватает "масштабности", что ли.
Я не понимаю и не хочу понимать, что вы имеете ввиду. Я против перехода на личности.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
7049 / 3139 / 1065
Регистрация: 01.06.2021
Сообщений: 12,191
10.10.2026, 16:26
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Я перепробовал множество физических движков, и самый лучший, на мой взгляд, в плане простоты освоения - это Box3D.
Но этот движок силен только в физике твердых тел. Например, если нужно сделать симуляцию падения/столкновения десяток тысяч rigid body, то это самый подходящий движок.

Однако, Box3D не предоставляет функций для работы с soft body, тканями, жидкостями, частицами, разрушениями, продвинутой системой транспорта (есть только wheel joint + базовая поддержка) и прочими вещами, с которыми отлично справляются другие движки - PhysX / Chaos
0
9994 / 2966 / 497
Регистрация: 05.10.2013
Сообщений: 8,160
Записей в блоге: 246
10.10.2026, 16:53
Цитата Сообщение от Royal_X Посмотреть сообщение
Однако, Box3D не предоставляет функций для работы с soft body, тканями, жидкостями, частицами, разрушениями, продвинутой системой транспорта (есть только wheel joint + базовая поддержка) и прочими вещами, с которыми отлично справляются другие движки - PhysX / Chaos
Его релиз был 30 июня этого года, то есть прошло всего чуть больше 3 месяцев. Из продвинутых бесплатных можно было бы рассмотреть: Jolt Physics, PhysX, или Bullet Physics, но они будут намного более сложнее и избыточнее для автора темы, так как он новичок. Ему нужно быстро и легко сделать для начала, чтобы его персонаж перемещался от первого лица, не проходил сквозь препятствия и врагов и т.д. На Box3D легко делается базовое управление камерой от первого лица. Камера закрепляется на верхнюю часть физической капсулы. Демка в браузере: https://fps-ybots-follow-box3d-sdl3.vercel.app/

Добавлено через 2 минуты
Автор Box3D сейчас участвует в большом проекте на Unreal Engine 5 по разработке шутера. Информация об этом шутере от первого лица есть на Steam. Эрин показывает это проект в конце своего видео выше. Он внедрил Box3D в Unreal Engine 5.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
7049 / 3139 / 1065
Регистрация: 01.06.2021
Сообщений: 12,191
10.10.2026, 17:31
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Автор Box3D сейчас участвует в большом проекте на Unreal Engine 5 по разработке шутера
Ну и правильно. Если сам автор Box3D понял, что приличные игры создаются в готовых игровых движках, а не в блокнотах и IDE низкоуровневой клинописью, то значит ТС тоже нужно взять игровой движок, тем более, как ты написал, он новичок.
0
9994 / 2966 / 497
Регистрация: 05.10.2013
Сообщений: 8,160
Записей в блоге: 246
10.10.2026, 21:12
Цитата Сообщение от Royal_X Посмотреть сообщение
ТС тоже нужно взять игровой движок, тем более, как ты написал, он новичок.
Автор темы объяснил, какая у него главная цель и мотивация:
Цитата Сообщение от ilya_lynev Посмотреть сообщение
Вопрос - про "лучше использовать чужой движок" - Потому что цель была таковой. Захотелось погрузиться и узнать как все работает. Мне как с 0 опыта - было интересно все , создавать игру на юнити, анриле - для меня лично не столь интересно, да и результат мб плачевным. Проект - не коммерческий , а сугубо личный) для своего опыта и приколов, как и будущая игра - только для определенных лиц, а не попытка охватить огромную аудиторию.
Royal_X, на Reddit есть большое сообщество программистов своих движков: https://www.reddit.com/r/gameenginedevs/ Если ты попробуешь ради интереса в комментариях начать уговаривать людей бросать писать свои движки и переходить на готовые, то я уверен, что ты столкнёшься с сильным сопротивлением. Скорее всего, модераторы на Reddit выдадут предупреждение, что сообщество специализируется на написании своих движков, а предложение готовых - это разведение холиваров.

Когда тема здесь на форуме создаётся с конкретной целью — написание своего движка, то уговоры бросить свой движок/язык и перейти на готовый неизбежно вызовут холивар и сопротивление автора темы. Холивара нет, потому что мало людей, которые практикуются с OpenGL, DirectX, Vulkan и т.д. Не хотят тратить время. Это если бы вы ненавидели C#, заходили в раздел C# и критиковали в каждой теме, какой C# плохой, и уговаривали переходить на другой язык. Человек, который любит C#, читает по нему книги, изучает документацию, много пишет на нём и т.д., будет либо защищать свой любимый язык и стек технологий, либо уйдёт в игнор, чтобы не тратить своё время. Точно так же, если зайти в сообщество разработчиков своих движков на Reddit и начать уговаривать их переходить на готовые движки.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
7049 / 3139 / 1065
Регистрация: 01.06.2021
Сообщений: 12,191
10.10.2026, 21:21
8Observer8,

Не по теме:

А что означает писать "свой" движок? Если ТС будет создавать игру на Box3d, то это типа он будет создавать на своём движке?
Физический движок чужой, библиотека для анимирования - чужая.
А что будет он делать? Систему рендеринга будет сам писать на Vulkan/DX? Конечно)) Vulkan же для новичков, как я мог забыть :D

Я вот сейчас форкану Godot Engine и назову форк "Royal Engine")) И буду говорить, что у меня свой движок.

***
Касательно Reddit, у меня не самые лучшие впечатления. Я не смог создать тему в разделе шахмат (хотел создать обсуждение для моей игры), у меня не хватило каких-то прав. После этого я туда больше не заходил.

0
1980 / 836 / 115
Регистрация: 01.10.2012
Сообщений: 5,252
Записей в блоге: 2
10.10.2026, 22:03
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Ему надо быстренько на базовом уровне реализовать переключение между анимациями по событиям через смешивание и как можно быстрее переходить к готовому физическому движку - то есть перемещение, детектирование коллизий, рейкастинг, ragdoll и т. д.
По сути Вы предлагаете
Ну как-то с интерполяцией работает - и ладно! Может потом, когда будет время..
Это решение для ТС. Действительно, а может его и так устроит, тем более что лучшие решения очень не просты
0
9994 / 2966 / 497
Регистрация: 05.10.2013
Сообщений: 8,160
Записей в блоге: 246
10.10.2026, 22:58
Цитата Сообщение от Royal_X Посмотреть сообщение
А что означает писать "свой" движок?
В моём понимании свой движок - это набор библиотек (например, под лицензиями MIT, zlib и т.д.), таких как SDL3, Box2D, OpenAL-Soft и т.д., скреплённых в единый механизм своим собственным кодом.
Цитата Сообщение от Royal_X Посмотреть сообщение
Систему рендеринга будет сам писать на Vulkan/DX?
Моё мнение: даже если взять для рендеринга библиотеку Ogre3D (графический движок), а остальные потребности закрыть с помощью сторонних Box3D, OpenAL-Soft и т.д., это всё равно был бы свой игровой движок.
Цитата Сообщение от Royal_X Посмотреть сообщение
Физический движок чужой, библиотека для анимирования - чужая.
Например, компания, которая развивает Unity (я погуглил, она называется Unity Software Inc.), использует чужой физический движок - Box2D. При этом компания считает Unity своей собственностью. Они создали свой движок, используя готовую стороннюю физику. Наверняка они не писали абсолютно всё с нуля, а задействовали множество готовых библиотек, как это принято во всей индустрии.
Цитата Сообщение от Royal_X Посмотреть сообщение
Систему рендеринга будет сам писать на Vulkan/DX?
Рендеринг автор темы уже реализовал на Vulkan:

Я отлично представляю, какой титанический труд он проделал, чтобы просто преодолеть входной барьер графических API и вывести такую сцену. Пусть со стороны она кажется простой, но под капотом за этим стоит огромная работа. Когда этот труд пытаются обесценить, это очень неприятно. Я прекрасно понимаю реакцию автора во второй его теме.
И когда базовая графика уже реализована, логично двигаться дальше: внедрять на базовом уровне физический движок, скелетные анимации, звук и т.д. А саму графику пока можно не трогать или дорабатывать только при острой необходимости.
Цитата Сообщение от Royal_X Посмотреть сообщение
Я вот сейчас форкану Godot Engine и назову форк "Royal Engine")) И буду говорить, что у меня свой движок.
Нет, это точно не свой движок. Возможно, юридически (по лицензии) его и можно так назвать, но фактически весь код, который скрепляет все библиотеки и подсистемы в единый рабочий механизм, написан совершенно другими людьми. Это как приклеить шильдик на готовый продукт.
0
10.10.2026, 23:38

Не по теме:

Цитата Сообщение от 8Observer8 Посмотреть сообщение
В моём понимании свой движок - это набор библиотек (например, под лицензиями MIT, zlib и т.д.), таких как SDL3, Box2D, OpenAL-Soft и т.д., скреплённых в единый механизм своим собственным кодом.
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Моё мнение: даже если взять для рендеринга библиотеку Ogre3D (графический движок), а остальные потребности закрыть с помощью сторонних Box3D, OpenAL-Soft и т.д., это всё равно был бы свой игровой движок.
Это звучит довольно странно. Т.е. когда ты берешь 20 чужих библиотек по отдельности - это почему-то "свой движок", но когда берешь одну библиотеку (игровой движок со своим API), то значит это уже "чужой движок"...
Кстати, любой "чужой движок" тоже использует под капотом n всяких библиотек.
А если дело в лицензии, то у Godot самая хорошая опенсорсная и свободная лицензия MIT. Ты можешь форкануть весь код Godot точно так же, как ты берешь какую-нибудь свободную библиотеку.

Я реально тебя не понимаю. Вот, я писал игру на Ogre3D и мне даже в голову не пришло говорить, что я пишу игру на "своём движке". Мне что кроме Ogre3D еще нужно взять 10-20 библиотек, чтобы всё вместе это называлось "свой движок"??? Именно это ты сейчас утверждаешь - прочти свои посты, которые я процитировал.

***
Как по мне, чтобы говорить о "своём движке", то хотя бы нужно что-то самому делать, например, написать свой физический движок с нуля, или написать свою систему рендеринга с нуля, используя Vulkan / DirectX / OpenGL и т.д.

Или в 2026 году программист уже не тот, кто сам пишет код, а тот, кто просто берет готовые библиотеки и просит у ИИ написать игру?

Цитата Сообщение от 8Observer8 Посмотреть сообщение
Рендеринг автор темы уже реализовал на Vulkan:
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Я отлично представляю, какой титанический труд он проделал, чтобы просто преодолеть входной барьер графических API и вывести такую сцену.
По скриншоту игры я вспомнил ТС. Я с ним общался в другой его теме.

ТС ничего не реализовал на Vulkan и всё, что ты видишь на скриншоте, это результат труда его команды. Он просто владелец проекта и лично признавался, что у него нулевой опыт в геймдеве и только начинает изучать.
Так что, я не знаю, какой ты там титанический труд представляешь, о каких входных барьерах говоришь)))
Автор - новичок не только в графических API, но и в самом C++. Ничего постыдного в этом нет, человек недавно начал изучать эту область.
Но вот только не нужно мне вешать лапшу на уши, рассказывая, мол игру на скриншоте сделал он. Это с каких пор новички в С++ пишут игры на Vulkan?
Соседняя тема автора немного объясняет всю историю с игрой на скриншоте. Как я понял, ТС собрал команду программистов, чтобы те делали игру. Он сам ноль как в С++, так и Vulkan и во всем остальном геймдеве, однако, он хочет научиться всему этому и параллельно ищет как программистов, так черпает на разных форумах полезную инфу о разных технологиях, которые пригодятся в его проекте.

***
И в теме Где найти программистов? я не поладил с ТС (видишь ли, я в отличие от тебя был к нему строг и не хвалил его за то, чего он делал). Знал бы, что автор этой темы тот же человек, то вообще игнорировал бы эту тему. И мне будет хорошо, и ему. Так что, adieu, messieurs

0
9994 / 2966 / 497
Регистрация: 05.10.2013
Сообщений: 8,160
Записей в блоге: 246
11.10.2026, 00:02
Цитата Сообщение от Royal_X Посмотреть сообщение
Как по мне, чтобы говорить о "своём движке", то хотя бы нужно что-то самому делать, например, написать свой физический движок с нуля, или написать свою систему рендеринга с нуля, используя Vulkan / DirectX / OpenGL и т.д.
Ты пишешь, что либо физический движок с нуля написать, либо написать свою систему рендеринга. Допустим, мы берём первый вариант, что человек написал физику сам, но рендеринг не стал писать, то он может всё-таки взять Ogre3D и с его физикой это уже будет свой игровой движок?
0
11.10.2026, 00:22

Не по теме:

Цитата Сообщение от 8Observer8 Посмотреть сообщение
это уже будет свой игровой движок
это будет свой физический движок
***
Честно, не хочу продолжать. Когда обсуждение превращается в простой обмен мнениями без конкретного результата, решений или действий, оно становится пустой тратой времени.

Мне не понятно, что ж тут такого зазорного в том, чтобы брать готовый движок. Я бы понимал, когда какая-то крутая ААА-студия наткнулась на какие-то ограничения готового движка (по фичам или по лицензии - типа намечается игра на лямы и не хочется тратить на роялти), поэтому она решает создавать свой собственный движок или модифицировать код готового движка. Но когда инди-разработчики отказываются от существующих вариантов и решают написать какой-нибудь посредственный собственный движок, предоставляющий графику 25-летней давности - то это странно. Хотя, если цель просто научиться новым вещам, то еще понять можно. Например, когда ты создаешь всякие проекты на Box3D или OpenGL и прочих либах, то я прекрасно понимаю, что ты это делаешь в рамках обучения. Поэтому к тебе вопросов нет.
Как понимаю, ТС & co создают игру на собственном движке тоже в этих целях. Я не сразу узнал ТС, поэтому советовал готовые движки.

Цитата Сообщение от Royal_X Посмотреть сообщение
какая-то крутая ААА-студия наткнулась на какие-то ограничения готового движка
например, раньше Roblox был на Ogre, но потом они перешли на свой движок, так как старый движок был слишком медленным и не обеспечивал нужной производительности на мобильных устройствах и слабых ПК

Цитата Сообщение от Royal_X Посмотреть сообщение
типа намечается игра на лямы и не хочется тратить на роялти
Если бы GTA 6 была создана на Unreal Engine, Rockstar Games пришлось бы выплатить компании Epic Games сотни миллионов долларов, а при долгосрочном успехе сумма могла бы превысить полмиллиарда долларов!

0
11.10.2026, 01:35

Не по теме:

Цитата Сообщение от Royal_X Посмотреть сообщение
Вот, я писал игру на Ogre3D и мне даже в голову не пришло говорить, что я пишу игру на "своём движке". Мне что кроме Ogre3D еще нужно взять 10-20 библиотек, чтобы всё вместе это называлось "свой движок"???
Да, это я ерунду написал. Чтобы графический движок Ogre3D стал частью своего игрового движка, нужно написать абстракцию (обёртку) над ним. Ogre3D является частью некоторых игровых движков - по крайней мере, двух: https://www.ogre3d.org/tag/game-engine. Похожая ситуация с игровым фреймворком Phaser, где автор использовал графический движок Pixi.js, спрятав его вглубь своего фреймворка. Есть ещё разница между игровым фреймворком и игровым движком, но в эти тонкости лучше не погружаться в этой теме - мне это не интересно.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.10.2026, 01:35

Какие возможности существуют для GameDev разработки под новую экосистему Microsoft
Здравствуйте! Встал вопрос: "А какие возможности существуют, для GameDev разработки, под новую...

Java GameDev
Господа хорошие, подскажите пожалуйста, что нужно прочесть, увидеть для геймдева. Хочу сильно в...

Паскаль и Gamedev
Есть ли какие то книги по SDL (желательно 2.0) на паскале?

Веб-программирование или Gamedev?
Здравствуйте. Интересно ваше мнение, какое из этих двух направлений для вас наиболее привлекательно...

Gamedev 2d Проверка множественных столкновений кругов и ответная реакция
Здравствуйте! Пишу 2D игру на C++. Дело дошло до того что 10 объектов (условно круглых) бегают за...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №3)
Maks 15.11.2026
Обновленная версия предыдущей обработки. Изменения коснулись букв: Ъ, Ы, Ь, Э, отображения которых зависят от положения реквизита "Транслитерация имён". Изменено отображение буквы Й. Добавлена. . .
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru