Code Monkey home page Code Monkey logo

quickcurver's Introduction

Quick Curver

This is a hardware accelerated implementation of the famous game "Achtung die Kurve", written in modern C++20 and Qt 6.

Continuous Integration

screenshot

Features

  • Material Design
  • Local Multiplayer
  • Online Multiplayer
  • Bots
  • Items

Installation

Compiling from source

Note: For Arch Linux users there is an AUR package, for Nix users there is a flake available.

Dependencies

First make sure, that you have the required dependencies of QuickCurver installed. These are:

  • A C++ compiler with C++23 support
  • The latest Qt
  • The following Qt Modules (in the parentheses there is an example how the package could be called for your distro (this depends on the distro!)):
    • Qt Core (qt6-base)
    • Qt GUI (qt6-base)
    • Qt Quick (qt6-declarative)
    • Qt QML (qt6-declarative)
    • Qt SVG (qt6-svg)
    • Qt Network (qt6-base)

Build instructions

Run the following commands:

git clone --recursive https://github.com/vimpostor/quickcurver.git
# If you forgot to clone with --recursive, just run git submodule update --init
cd quickcurver
cmake -B build
cmake --build build

To start QuickCurver you need to run the built executable in the build directory, for example on Linux run: build/quickcurver

Installing compiled binaries

Windows

Download the precompiled binary from the latest stable release. Extract all files and run QuickCurver.exe in the release directory.

Multiplayer

To play multiplayer, the host starts an instance and shares the port that QuickCurver is running on. The client then just has to connect to this port on the host's ip address. If you are not in the same local network, the host most likely has to use Port Forwarding to make his device available to the internet. If a firewall is the problem, you might also want to take a look at Hole Punching.

If network performance isn't good, the Server can tweak the "Network update rate" value in the settings, which causes data to be sent less frequently which may improve the network performance at the cost of update frequency. (A higher value means worse quality, but better network performance)

If you want to host Quickcurver cleanly on a separate server and do not need the GUI, you can start it with the CLI parameter -platform offscreen.

quickcurver's People

Contributors

vimpostor avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

quickcurver's Issues

Progress?

Hello there!
When is the next major update coming and what new features are planned?
Positional audio is just crazy man!

Great game but...

Hey Magnus,
your game is amazing. Big fun! But i found a lot of bugs. Let's talk about this in a private Session?

The Back button closes program

The back button (in the playing view) just closes the entire program.
this is what is printed to the terminal after pressing the back button:
“quickcurver” terminated by signal SIGSEGV (Address boundary error)

the game starts larger than my display

the game start so large that i cant se large parts of the UI. is ther any setting to set the window size? I can't resize the window with the mouse either.

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.