
Двигатель Fling стремится стать игровым двигателем Vulkan, который будет экспериментировать со следующим:
Есть несколько основных шагов для составления бросков на вашу платформу.
Этот проект требует CMAKE 3.13 или выше, вы можете установить его здесь.
Этот проект использует GLFW, поэтому вам нужно будет установить эти библиотеки на свою машину. GLFW также зависит от наличия доксигена, так что вы можете иметь это тоже.
Ubuntu:
sudo apt-get update
sudo apt-get install doxygen
sudo apt-get install -y libglm-dev libxcb-dri3-0 libxcb-present0
sudo apt-get install -y libpciaccess0 libpng-dev libxcb-keysyms1-dev
sudo apt-get install -y libxcb-dri3-dev libx11-dev libmirclient-dev
sudo apt-get install -y libwayland-dev libxrandr-dev
sudo apt-get install -y libglfw3-dev
sudo apt-get install -y xorg-dev
Очевидно, что этот проект строится с помощью Vulkan, поэтому вам нужно будет установить его перед компиляцией или запуска программы.
Вы можете скачать SDK с сайта Lunarg здесь.
Если у вас проблемы с Vulkan SDK, ознакомьтесь с некоторыми из этих ресурсов:
Init.bat и Init.shПосле установки SDK вы можете просто запустить один из предоставленных сценариев.
Запуск любого из этих сценариев просто получит все подмодули и внешние библиотеки, которые использует двигатель, и создаст папку с названием build . В папке build будет иметь конкретные файлы сборки на платформе (Visual Studio, Makefiles и т. Д.).
Для простоты разработки и итерации пути файла к активам (шейдеры, текстуры, модели и т. Д.) - все это абсолютные пути, генерируемые Cmake. Если вы хотите получить копию вашего исполняемого с помощью пути активов по сравнению с программой, то сгенерируйте файлы проекта с помощью CMake с этим флагом:
cmake -DDEFINE_SHIPPING=ON -B build .
Обратите внимание, что опция -DDEFINE_SHIPPING установлена ON . Это устанавливает определение, которое вы можете использовать в C ++:
#ifdef FLING_SHIPPING
// Do some nice stuff
#else
// Do non-shipping code, perhaps with a lot of log messages
#endifЕсли у вас есть какие -либо вклады или исправления, которые вы хотите внести, не стесняйтесь открывать проблему или запрос на тягу! Я рад рассказать о проекте, так что не стесняйтесь обращаться со мной в Твиттере или здесь, на GitHub. В конечном итоге цель состоит в том, чтобы иметь более конкретные шаблоны PR/стандарты кодирования, но сейчас это не приоритет.
Мы используем довольно основную стратегию ветвления. Сделайте фиксацию функции из Main для чего-то вроде «Add-поддержка-для-X», и затем эта функция выполнена и протестирована, создайте запрос на притяжение, чтобы ввести его в Main.
Мы создадим стабильные ветви «выпуск» и соответствующим образом отметим их стабильными версиями сборки.
Некоторые замечательные ресурсы - это учебник в Вулкане и репо Saschawillems с различными примерами Vulkan