No description
Find a file
Eidolon 53832edafc Move old data/profiles to .bak before writing
The hypothesis for this patch is that the operating system has not actually
finished writing the file to disk when moving the tmp file into place. The
move operation is atomic, but the write is not, even when flushed or using
unbuffered IO. So we reorder these operations, make the old save .bak
atomically and write the new save in place.

I doubt saving this backup will actually be useful given the frequency of
saves in the game, but at the very least it leaves _some_ backup in place in
the event of failure.
2024-05-19 12:03:12 -05:00
.circleci
.gitlab/ci Put the apt-cache in build/ 2024-05-16 17:52:26 -05:00
android
assets
cmake
custom-git-commands
debian-template
deployer
docs
scripts
src Move old data/profiles to .bak before writing 2024-05-19 12:03:12 -05:00
thirdparty Merge branch 'remove-libvpx-overlay' into 'master' 2024-05-12 01:42:44 +00:00
tools
.clang-format
.editorconfig
.gitattributes
.gitignore
.gitlab-ci.yml Make pipelines auto-interruptible by default 2024-05-17 16:16:01 -05:00
.travis.yml
alias-bootstrap.sh
Android.mk SRB2 2.1 release 2014-03-15 13:11:35 -04:00
appveyor.yml
CMakeLists.txt Always make debuglink .debug in CI 2024-05-16 15:42:04 -05:00
CMakePresets.json
comptime.bat
comptime.sh Starting from scratch. SRB2 v2.1.15 2016-07-06 00:10:19 -04:00
debian_template.sh
LICENSE
LICENSE-3RD-PARTY.txt
README.md
srb2.png
srb2banner.png
vcpkg-configuration.json Update vcpkg baseline, remove libvpx overlay 2024-05-11 15:03:37 -05:00
vcpkg.json Update vcpkg baseline, remove libvpx overlay 2024-05-11 15:03:37 -05:00

Dr. Robotnik's Ring Racers

Dr. Robotnik's Ring Racers logo

Dr. Robotnik's Ring Racers is a kart racing video game originally based on the 3D Sonic the Hedgehog fangame Sonic Robo Blast 2, itself based on a modified version of Doom Legacy.

Ring Racers' source code is available to users under the GNU General Public License version 2.0 or higher.

Disclaimer

Dr. Robotnik's Ring Racers is a work of fan art made available for free without intent to profit or harm the intellectual property rights of the original works it is based on. Kart Krew Dev is in no way affiliated with SEGA Corporation. We do not claim ownership of any of SEGA's intellectual property used in Dr. Robotnik's Ring Racers.

Development

Building from Source

Ring Racers is built using a compatible C++ toolchain (GCC, MinGW, Clang and Apple Clang as of this writing), CMake, and Microsoft vcpkg. The compiler and runtime libraries must support the ISO C++17 standard and ISO C11 standard.

On Linux platforms, you will need the following libraries available on the system.

  • libcurl
  • zlib
  • libpng
  • libogg
  • libvorbis
  • libvpx
  • libyuv
  • SDL2

On Windows and macOS, you will need to install vcpkg instead to build these dependencies alongside the game.

To configure and build the game, there are CMake presets (declared in CMakePresets.json). These presets require the ninja build script tool in addition to cmake and your C++ toolchain. Here is a non-exhaustive list of them:

  • ninja-debug: non-optimized, assertions enabled
  • ninja-develop: optimized, assertions enabled
  • ninja-release: optimized
  • ninja-x86_mingw_static_vcpkg-debug
  • ninja-x86_mingw_static_vcpkg-develop
  • ninja-x86_mingw_static_vcpkg-release
  • ninja-x64_osx_vcpkg-debug
  • ninja-x64_osx_vcpkg-develop
  • ninja-x64_osx_vcpkg-release
  • ninja-arm64_osx_vcpkg-debug
  • ninja-arm64_osx_vcpkg-develop
  • ninja-arm64_osx_vcpkg-release

These presets depend on the VCPKG_ROOT environment variable being specified before the first run of the cmake command. Their build directories are pre-configured as subdirectories of build/.

After all prerequisites are set-up, configure and build using the following commands, adjusting according to your target system:

cmake --preset ninja-x86_mingw_static_vcpkg-develop
cmake --build --preset ninja-x86_mingw_static_vcpkg-develop

Contributing

We welcome external contributions from the community. If you are planning on making a large feature you intend to contribute to the project, please consider reaching out to us in the Kart Krew Dev public Discord server so we can coordinate with you.

Our primary source repository is hosted on the SRB2 Gitlab. The Github repository is a mirror of this. If you submit a Pull Request to the Github repository, please keep in mind that we do not consistently monitor that mirror and may not see your request.

All contributions must be made available under the GPL General Public License version 2.0, or public domain. Integrations for third party code must be made to code which is compatibly licensed.