Skip to content

RuiVarela/hIghQube

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hIghQube

Kurushi like game

demo_00.mp4

ui demo image

Controls

  • Movement - ASDW
  • SpeedUp - J
  • Pick / Trigger - K
  • Trigger Advantage Cube - I

Features

  • Cross platform renderer based on sokol
  • A big chunk of kurushi gameplay implemented
  • Level switching is implemented
  • A lot of levels
  • A debug ui based on imgui

TODO:

  • Scoring
  • Cube acceleration should move camera to the end
  • Add / remove row when puzzle end
  • Detect player crush
  • Detect fall off stage
  • Detect "Perfect"
  • General Rules
  • All Audio is missing

Development

git clone git@github.com:RuiVarela/hIghQube.git
cd hIghQube

git submodule init
git submodule update

#
# Windows macOS
#
mkdir build
cd build
cmake ..

cmake --build .

#
# iOS
#
mkdir build_ios
cd build_ios
cmake .. -G Xcode -DCMAKE_SYSTEM_NAME=iOS
open hIghQube.xcodeproj 

#
# Android
#
# use Android Studio

Helper Commands

add vendor submodule

git submodule add git@github.com:memononen/fontstash.git vendor/fontstash
git config -f .gitmodules submodule.vendor/fontstash.shallow true

generate apple icns

mkdir app.iconset
sips -z 16 16 icon.png --out app.iconset/icon_16x16.png
sips -z 32 32 icon.png --out app.iconset/icon_16x16@2x.png
sips -z 32 32 icon.png --out app.iconset/icon_32x32.png
sips -z 64 64 icon.png --out app.iconset/icon_32x32@2x.png
sips -z 128 128 icon.png --out app.iconset/icon_128x128.png
sips -z 256 256 icon.png --out app.iconset/icon_128x128@2x.png
sips -z 256 256 icon.png --out app.iconset/icon_256x256.png
sips -z 512 512 icon.png --out app.iconset/icon_256x256@2x.png
sips -z 512 512 icon.png --out app.iconset/icon_512x512.png
cp icon.png app.iconset/icon_512x512@2x.png
iconutil -c icns app.iconset
rm -R app.iconset

generate ico

# sizes=(16x16 32x32 128x128 256x256 512x512 1024x1024)
sizes=(32x32 128x128 256x256)
mkdir ico 
files=""
for size in "${sizes[@]}"; do
    file="ico/${size}.png"
    files="$files $file"
    convert icon.png -quality 100 -resize $size $file
done
files=$(echo $files | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
convert ${(z)files} app.ico 
rm -R ico

compile shaders

vendor/sokol-tools-bin/bin/osx/sokol-shdc \
    --input src/render/VisualRenderer.glsl \
    --output src/render/VisualRenderer.glsl.h \
    --slang hlsl5:metal_macos:metal_ios:metal_sim:glsl300es
.\vendor\sokol-tools-bin\bin\win32\sokol-shdc.exe `
    --input src/render/VisualRenderer.glsl `
    --output src/render/VisualRenderer.glsl.h `
    --slang hlsl5:metal_macos:metal_ios:metal_sim:glsl300es

generate a gif from video

ffmpeg -i Untitled.mov -filter_complex "[0:v] fps=6,scale=480:-1,split [a][b];[a] palettegen [p];[b][p] paletteuse" dump.gif