Skip to main content

Indie game storeFree gamesFun gamesHorror games
AssetsComics
Bundles
Jobs
TagsGame Engines

How I made a Rhythm-Gravity-Platformer Game

A topic by Pedroleum created Aug 19, 2021 Views: 137
Viewing posts 1 to 1
Submitted

So this devlog might be a bit late, but I thought it's still worth writing, so here you go!

Last week I worked on a game now titled "Gravity God", which covered the constraints of the jam, (the 64x64 Res), plus one of the optional themes of "Gravity is your Enemy". You can find it here: https://itch.io/jam/lowrezjam-2021/rate/1156032. Please remember to rate the game if you're within the voting period. 

The Beginning:

Gravity God started off with the theme of Gravity is Your enemy in mind. I decided to build a platforming character that I could easily change the character of. With that, I made the background art and the player characters animations, which I thought turned out very nicely for the little time I spent on them. I had messed with creating platformers in the past, however I always felt that level design was a difficult aspect for platforming games. However, something clicked during this time and I got to work making the first introductory level. 

At this point I had a simple platforming level, but the game was lacking its prime mechanic....

The Rhythm (And Gravity):

I've seen many platforming games that use shifting gravity as the feature mechanic, such as VVVVV. Most of these platformers keep the control of gravity under the player's control, as gravity changing randomly would simply annoy the player. 

So I had two goals

1- Take gravity out of the players control, and make it an "enemy".     

2- Make that lack of control fun instead of annoying.

How would one do this? My conclusion - Rhythm, and music. I noticed I could sync up gameplay events to music quite well, (see how I did that in the programming section below) and I had also wanted to create a rhythm game for quite some time. So as with all game jams, where time is of the essence, I decided to learn completely something new. It's always risky to try something you haven't done before, especially under time restraints, but if you pull it off, the payoff is almost always great. So I added some music to my game, a HUD telling you the rhythm, and the beats of the music causing gravity in game to shift. I immediately saw the potential in this system, imagining a level with super fast paced music, where the player is flipping in all directions rapidly! That burst of inspiration got me designing the next few levels.


Nearing the Finish Line:

Lets just say I got a tad bit relaxed at this point.... maybe a bit too much. I had about 2 days left at this point, and I had 2 proper levels showcasing the mechanics of my concept. While it was a great start, I wanted to do much more, (especially with the idea of that end-game item stuck in my head). So I buckled down on some significantly harder final levels, and a final boss to finish it off. All the time I had been hiding coins in optional challenge areas for players who wanted extra challenge. I added 2 more tracks of music to accompany these levels, and an extra mechanic including that aforementioned item. However, I think I could've explored that mechanic a good bit more, if I had the time, as, as it stands, it really is only used against the final boss. Alas, the end of the jam was fast approaching, and I quickly fixed bugs and uploaded the project... and here we are now!

I hope you enjoy playing the game if you decide to, and thank you for reading this devlog! I hope to do a lot more in the future!


Oh, and for whoever cares, here's how I got the rhythm through code:

Programming Section (How the Rhythm Works):

For a basic explanation, I first got the exact position of the track currently playing. I then created a variable which would act as a bar marker. This variable would reset to 0.0 seconds every time a bar passed in the song. The way I did this, was by taking the position of the song modulo the length of a bar, giving me a perfect timescale for a bar of the music. You can then accordingly map the beats to the music. This isn't 100% accurate at all, as the software I'm using only measures song position to 2 decimal places. Hope this helped if people are interested!