Kurve is a remake of the popular game "Achtung, die Kurve!" using C++ and OpenGL.
Kurve is available in the Snap Store under the name "kurve".
$ sudo snap install kurve
To get kurve as a rolling release
$ sudo snap install kurve --edge
Clone this project
$ git clone https://github.com/h-valdes/kurve.git
In Ubuntu 20.04
$ sudo apt install libglfw3-dev libfreetype-dev nlohmann-json3-dev cmake
In archlinux or Manjaro
$ sudo pacman -Syu glfw-x11 freetype2 nlohmann-json
In Fedora
$ sudo dnf install glfw-devel freetype-devel json-devel mesa-libGLw mesa-libGLU-devel
Install from the bash script (default on /usr/local)
$ sudo sh scripts/install.sh
Build and install manually:
$ cd kurve
$ mkdir Release
$ cd Release
$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ sudo make install
Enjoy
$ kurve
To play without installing the game in your computer (you still need to install the dependencies):
$ cd kurve
$ mkdir Debug
$ cd Debug
$ cmake -DCMAKE_BUILD_TYPE=Debug ..
$ make
$ ./kurve
Or from the script:
$ sh scripts/debug.sh
- v0.1-alpha
- Minimal working implementation of "Achtung, die Kurve". It has all the features from the 1995 DOS version
- Random start position of the players
- Random length of lines (defined in a specific range)
- Menu to select the players
- Game Over screen
- v0.2-alpha
- Sort the name of the players in the Game Over screen depending on the number of points
- Make the terminal output less verbose when the build type is release
- Read the configuration of the players from a json file
- Generate a snap package (.snap) with snapcraft
- End the game when pressing Escape in the Menu
- Full Screen support
- Generate a debian package (.deb) with cmake
- Migrate from the self built classes Point and Vector to GLM
- v0.3-alpha
- Use a constant or max. fps. In Manjaro was unplayable, because the fps were too high
- Add a starting direction arrow in the transition zone (before starting)
- Improve the scoring system and add a minimum differences to win
- Reorganize the static files and structure of the repository
- Improve the font rendering and the class Font in general. Add blinking text throught the class, different types of font (bold, italic, etc) and different sizes
- Create an AI to play against
- Add a new general Menu (to choose between different options: config, exit the game, etc)
- Create an abstraction for the Scenes and a SceneManager replacing the changes in the class Game
- Change the style to differ with the Flash Remake of "Achtung, die Kurve"
- Generate an AppImage package
- Generate a Flatpak package
- Render textures (images) for example the logo of kurve in the main Menu
This Project started as a final project for the class Multimedia at the TU Bergakademie Freiberg by Simon Al Nomer and Hernán Valdés. The final version for the class corresponds the Release v0.1-alpha.
The class was taught by Jonas Treumer and Ben Lorenz and inside of the project are still traces of the C code programmed by them as an example of the functionality of OpenGL and GLFW.