Skip to content

OpenAim is a small aim trainer made in C++ and OpenGL (still in development)

Notifications You must be signed in to change notification settings

KleberPF/OpenAim

Repository files navigation

OpenAim

OpenAim is a small aim trainer made from scratch in C++, using OpenGL as the rendering backend.

Building on Linux

git clone --recurse-submodules https://github.com/KleberPF/OpenAim.git
cd OpenAim
mkdir build
cd build
cmake ..
make

To run the game

./OpenAim

Building on Windows

git clone --recurse-submodules https://github.com/KleberPF/OpenAim.git

Inside Visual Studio, open the CMake project and select the OpenAim.exe target

image

image

Media

Main Menu

image

Settings

image

Demo

demo.mp4

Scenario File Syntax

Each scenario is represented by a JSON file inside /resources/scenarios. The name shown in game for each scenario is the file name of that scenario. This is an example JSON:

{
    "weapon": "machine_gun",
    "playerPos": "0.0 1.5 8.0",
    "targets": [
        {
            "shape": "box",
            "scale": "0.3 3.0 0.3",
            "spawnCoords": "0.0 1.55 -8.0",
            "onDestroy": "die",
            "health": 200,
            "moves": true,
            "movementAmplitude": 5,
            "movementSpeed": 2
        }
    ]
}

Here are all the possible fields with their respective meanings:

  • "weapon": either "pistol" or "machine_gun" (case insensitive). Selects the type of weapon to be used in the scenario.
  • "playerPos": starting player position represented by a string with 3 numbers for the x, y and z coordinates. For now, player movement is not supported through scenario files.
  • "targets": JSON array containing the definition for each target

Target fields:

  • "shape": either "ball" or "box" (case insensitive).
  • "scale": scaling factor for the target. Can be either a string with 3 numbers for a box with sides with different lengths or one number for a ball.
  • "randomSpawn" (optional): true by default. If true, the target's initial position is a random value that falls within "minCoords" and "maxCoords"
  • "minCoords": required if "randomSpawn" is true. The smallest possible coordinate the target can have when spawning randomly.
  • "maxCoords": required if "randomSpawn" is true. The largest possible coordinate the target can have when spawning randomly.
  • "health" (optional): the target's health. 1 by default.
  • "moves" (optional): false by default. Sets if the target moves or not. For now, movement only happens horizontally.
  • "movementAmplitude": required if "moves" is set. Represents how many units the target oscillates. If set to x, the target moves from -x to x, relative to its starting position.
  • "movementSpeed": required if "moves" is set. Represents the speed of the movement of the target.
  • "onDestroy": either "die" or "move". Sets the behavior of the target when destroyed, where "die" makes it disappear while "move" moves it to a new random location.

About

OpenAim is a small aim trainer made in C++ and OpenGL (still in development)

Resources

Stars

Watchers

Forks