Skip to content
/ kurve Public
forked from hvlds/kurve

Remake of the classic game "Achtung, die Kurve!" in C++ using OpenGL and GLFW

License

Notifications You must be signed in to change notification settings

yd-14/kurve

 
 

Repository files navigation

kurve

Github Actions mit license kurve

kurve is a remake of the popular game "Achtung, die Kurve!" using C++ and OpenGL.

Table of contents

Getting Started

Install using snap

Kurve is available in the Snap Store under the name "kurve".

Get it from the Snap Store

$ sudo snap install kurve

Install from the source

Clone this project

$ git clone https://github.com/h-valdes/kurve.git

Install all the dependencies:

In Ubuntu 20.04

$ sudo apt install libglfw3-dev libfreetype-dev nlohmann-json3-dev

In archlinux or Manjaro

$ sudo pacman -Syu glfw-x11 freetype2 nlohmann-json 

Build and install the project

$ cd kurve
$ mkdir Release
$ cd Release
$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ sudo make install

Enjoy

$ kurve

Debug

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

Enjoy

$ ./kurve

Roadmap

  • 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)
    • 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
    • Create an AI to play against
    • Improve the scoring system and add a minimum differences to win
    • Change the style to differ with the Flash Remake of "Achtung, die Kurve"
    • 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

Built With

  • C++
  • OpenGL (glad)
  • glm
  • GLFW
  • FreeType2

License and Authors

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.

All future release (starting from v0.2-alpha) are developed and maintained by Hernán Valdés and licensed under the MIT License.

Screenshots

About

Remake of the classic game "Achtung, die Kurve!" in C++ using OpenGL and GLFW

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 87.3%
  • C 10.7%
  • Objective-C 1.7%
  • Other 0.3%