| Build Platform | Status (tests only) |
|---|---|
| MSVC 2017 x64 | |
| Linux x64 |
Om is a collection of several mini tutorial about:
- c++, gamedev, linux, crossplatform
- Modern c++ IT technology (c++23, cmake-4.0+, gradle)
- Fun 🤣
- basic shell (bash, zsh) example
- basic c++ (terminal, strings, memory, error handling)
- basic gamedev (input, render2d - vulkan/gles, sound)
- multiplatform (Linux, windows, Mac OS, Android, iOS)
- 2d on top of OpenGL 2.0 ES (3.0 ES)
- 2d on top of Vulkan 1.3
- easy building with modern cmake
Om project uses a number of open source projects to work properly:
- SDL3 - best cross-platform low level game library
- Boost - best c++ system level libraries
- GLM - best c++ math library for gamedev
Om requires Cmake v4.0+ to build.
Install the dependencies to build tutorials.
# for llvm with libc++
sudo epm install libcxx-devel
sudo epm install libcxx-devel libcxx-static
# needed for libstdc++exp.a
sudo epm install libstdc++14-devel-static
# for SDL3 (deps)
sudo epm install libwayland-client-devel libwayland-server-devel libEGL-devel
sudo epm install libGL-devel
sudo epm install libalsa-devel libjack-devel
sudo epm install libpulseaudio-devel
sudo epm install libsndio7-devel
sudo epm install libdrm-devel
sudo epm install libgbm-devel
sudo epm install libwayland-egl-devel
sudo epm install libwayland-cursor-devel
sudo epm install libxkbcommon-devel
sudo epm install libunwind-devel
sudo epm install libusb-devel
sudo epm install libudev-devel
sudo epm install libdecor-devel
# for boost (deps)
sudo epm install libffi-devel
sudo epm install libssl-devel
# for Vulkan
sudo epm install libvulkan-devel
sudo epm install glslang
sudo epm install glslang-devel
sudo epm install glslc
# to install slangc - build it with VULKAN_SDK [./vulkansdk slangc -j 8]
# and add to .zshrc - source path_to_vk_sdk/setup-env.shsudo dnf install SDL3
sudo dnf install SDL3-static- To search package
#search by package name
epm search sdl3
# search by file name ending example: (++exp.a) in package
epm filesearch \\+\\+exp\\.a - To list package content
epm filelist <package>-
To search package
# search by package name dnf search SDL3 # search by file in package dnf provides /usr/lib/libSDL3.so # search by part of file name dnf provides "*/libSDL3.so"
-
To list package contents (files list)
dnf repoquery -l SDL3 rpm -ql SDL3
-
To show compile/link/version of installed version
sdl3-config --version sdl3-config --libs sdl3-config --static-libs
On Mac OS X for c++23 compiler you have to install latest llvm from Homebrew and then use it
- install Vusial Studio Community
- or install Mingw64w
- read complete example in
support/docker{Dockerfile|readme.md} - write Dockerfile
- call
sudo systemctl start docker - call
sudo docker build -t leanid/fedora_latest . - call
sudo docker push leanid/fedora_latest
Dockerfile content:
FROM fedora:latest
RUN dnf update -y
RUN dnf upgrade -y
RUN dnf install -y gcc-c++ make cmake mingw64-gcc mingw64-gcc-c++ \
clang wine git SDL3-devel SDL3-static mingw64-SDL3 mingw64-SDL3-static \
libstdc++-static glibc-static ninja-buildOn every platform you should do same things like:
cmake . --preset ninja-llvm
cmake --build --preset ninja-llvm --config DebugAll current development is done in Doomemacs. How to install Doomemacs install How to configure and use usage
ZIP