Skip to content

Alejandro3alea/HyperTwist

Repository files navigation

HyperTwist

A love letter for Rhythm games

Version Build Status

HyperTwist is a Rhythm engine, editor and game.

Game

Nowadays there are several 4-pad foot rythm games. However, I personally feel that none of them delve inough into their mechanics, leaving them for more ideas that can be exploited. This game aims to expand on these innovative features and improved gameplay that promise to engage players and enhance their experience.

Song Select Menu

Features

  • Song Processing (.sm, .ssc)
    • Song resources and properties loader
    • Chart loader (notes, difficulty...)
  • Song Conversion to (.smd, .scd)
    • .smd (Step Main Data) Saves the main info about a Song, to avoid a load overhead with charts.
    • .scd (Step Chart Data) Saves the chart data in a more compressed way than .sm and .ssc files, reducing memory space.
  • Game Loop
    • Basic game pipeline added:
    • Dev Window:
      • View and edit game config.
    • Main Menu:
    • Account Screen:
    • Mode Select:
    • Song Select:
    • Gameplay:
    • Song Results:
    • Game Results:
    • Game end:
  • UI/UX
    • Basic UI implemented
    • Some textures are temporarily placeholders.

Editor

Song Select Menu Song Select Menu

Features

  • Song Processing (.sm, .scc)
    • Song resources and properties loader
    • Chart loader (notes, difficulty...)
  • DDR/ITG/SM
    • Basic UI implemented
    • Note creation/deletion
    • Snap to measure (1/4, 1/8, 1/6...)
    • Hold and Roll notes
    • Assist tick + note ticks
    • Chart properties
  • Texture atlases
    • Instanced rendering for note rendering
  • Song serialization
  • Pauses & Gimmicks

Libraries

HyperTwist works thanks to the following libraries:

Plugin Purpose README
SDL2 Window creation & management SDL2/README.txt
GLEW Graphics programming with OpenGL glew/README.md
SFML Multimedia API SFML/README.md
FreeType Font rendering freetype/README
ImGui GUI library for C++ imgui/docs/README.md
OpenAL (Old) Audio programming openal.org

Installation

Previously, the project worked just with a Visual Studio Solution (.sln). However, with the new updates to the project, now it works a CMake project.

To configure CMake, select a build configuration, and after a successful CMake generation, compile the C++ code to execute the program.

Note: User might have to install some dependencies from the libraries mentioned above.

Development

Want to contribute? Great! Everyone is welcome to request, create a discussion/pull request, and improve the project!

CMake

The project is build using CMake, with each configuration structured as the following:

[PLATFORM] Project - Build_Config

For the future the project might support Mac, FreeBSD or other configurations.

License

The MIT License (MIT)

Copyright (c) 2022-2026 Alejandro Balea

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

Rythm game engine/editor

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors