Thanks to visit codestin.com
Credit goes to github.com

Skip to content

ogryzko/laplace

 
 

Repository files navigation

The Laplace engine

linux-build

The quality of a real-time strategy game relies on low-latency responsiveness and vertical scalability. Vertical scalability requires parallelism on the local instance and lockstep networking. Lockstep systems require a totally deterministic engine. In addition, extensibility is a useful feature.

Laplace is an interactive multimedia framework that provides the deterministic and extensible engine with concurrency support and lockstep synchronization.

Official repository: GitHub

Work in progress...
The project is far from complete.

Dependencies

How to build

To build the project CMake 3.18, Git and Python 3 are required. Make sure your compiler supports C++20.

With provided build script

  • Execute the build script.
python3 build.py

Done!

With CMake

  • Configure and build the project.
cmake -D CMAKE_BUILD_TYPE=Release -B build -S .
cmake --build build --config Release

Laplace CMake configuration options:

  • LAPLACE_ENABLE_EXE - build the executable. ON by default.
  • LAPLACE_ENABLE_LIB - build the static library. OFF by default.
  • LAPLACE_ENABLE_TESTING - enable testing. OFF by default.
  • LAPLACE_ENABLE_COVERAGE - enable coverage reporting. OFF by default.
  • LAPLACE_VERBOSE - enable verbose logging of Laplace. ON by default.

Tests will be created if LAPLACE_ENABLE_TESTING or LAPLACE_ENABLE_COVERAGE is ON.

To build only dependencies set LAPLACE_ENABLE_EXE to OFF.

Hacking

If you want to build the source code by hand, follow the instructions below:

  • Use tools/build-deps.py to build dependencies.
  • Use tools/gen-gl.py to generate OpenGL interface files.
  • Use tools/embed.py to generate embedded data source files.
cd tools
python3 build-deps.py
python3 gen-gl.py
python3 embed.py
cd ..

Add source to the project and build manually. Required headers will be in include folder, libraries will be in lib folder.

If you want to generate Visual Studio project files, use tools/gen-vs.py.

If you change the source code files structure, use tools/gen-cmake.py to generate CMakeLists.txt files.

Contribution

To contribute, follow these steps:

  1. Find an applicable issue or create a new one with feature proposal or bug spotting.
  2. Fork the repository.
  3. Write tests for the issue.
  4. Implement your solution for the issue.
  5. Make sure all tests pass and cover your code.
  6. Make a pull-request to the dev branch or to the corresponding feature branch if there is any.

We have just started organizing the project. If you want to help, contact me.

About

A game engine focused on RTS.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 96.3%
  • Python 2.0%
  • CMake 1.3%
  • Other 0.4%