/onna

A first try in making a platform game in Godot

Primary LanguageGDScript

onna

A first try in making a rythmic platform game in Godot

ToDo v0.3

  • make demo riff (150bpm) * done, trouble with bass export
  • does music preload ? How preload music work ? * seems to work like that
  • add icons to Beat and Grid * done
  • add a full riff counter to trigger events that span on multiple measures * done, not very elegant, maybe add it into Tempo class
  • set the music and tempo in project * done, triggered with buttons and layers wait for next measure to start.
  • make filled blocs with collisionShape * done with custom parameters but doesn't work when duplicating it to another scene
  • make blocs movements triggered by tempo data _ *done, but better with animationPlayer_
  • make areas to reach to trigger new layers of music and level * done
  • try player stick to platform (move_and_slide_with_snap) * done
  • experiment more detailed bloc movements with animationPlayer * done, by checking 'sync to physics' in collision parameter of KinematicBody
  • make different bloc behaviours * WIP
  • check how to apply tempo data to animationPlayer animation _ better be done by injecting midi data and convert tick to absolute time
  • test game mechanics

ToCheck

  • may need to make tempo with 16th
  • make tempo global, see how to connect it to any element * No, better have one tempo per song
  • have a midi parsing and then syncing or selecting trigger events on a visual GUI
  • separate X and Y line steps for grid subdivisions
  • keyboard input for the time being, make swipe after
  • have a "1,2,3,4!" when touching an area, so that player analyzes level rythm first, later in the gamedev
  • try player that moves like blocs but on user input
  • try player movement/input in sync with tempo

ChangeLog

v0.3 // Gameplay test

  • WIP

v0.2 // Refined tempo and movement mechanics :

  • better tempo algorythm, data structure and bgm sync * done, make it global
  • blocs movements not pixel-perfect, to solve * solved thanks to Tweens
  • how to have 'reaching' animations, ex: speed curve before reaching beat hit, can move on beat or reach beat * Getting closer, can trigger tween 1 quart before for example and using Expo curve for example
  • more modular bloc behaviors. ex: move 1, wait 1, back 1 use animationPlayer

v0.1 // First tests for main tempo and movement mechanics :

  • Make metronome * done, and solved latency bug by using 1 timer instead of 3
  • Metronome sends tempo data out * done
  • player receives tempo data * done
  • player moves sync to tempo * done, parameters : direction, distance and on which beat move
  • implement all eight beats scenario * done, refactoring may be needed later
  • have speed adapt to selected beat, or make it custom for each element * done, exported in inspector for now
  • make a grid * done
  • make different platform elements & behaviors * tested by duplicating in editor and works. later refactor in a more scalable design
  • make player & input (keyboard UP/LEFT/RIGHT/DOWN) * done, simple keyboard inputs
  • test a first game design with music at 120bpm * WIP, make better collision shapes