Code Monkey home page Code Monkey logo

kurve's Introduction

Github Actions mit license kurve Discord channel

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

To get kurve as a rolling release

$ sudo snap install kurve --edge

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 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

Build and install the project

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

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
$ ./kurve

Or from the script:

$ sh scripts/debug.sh

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)
    • 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
    • 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
    • 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

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

kurve's People

Contributors

5simon avatar hvlds avatar javiercmh avatar yd-14 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.