• Hey! Guest! The 39th GMC Jam will take place between November 26th, 12:00 UTC and November 30th, 12:00 UTC. Why not join in! Click here to find out more!

GMS 2.3+ Brainstorming: How would i make a custom bullet hell??

Coffeli

Member
I want to make a rhythm game and customize bullet patterns to the sound of the music and ive been stumped for a while on how to approach it.

Only way I can think of is timers but thatd get way too tedious to time to a 5 minute song.

i really want to make something like this but in game maker, my original inspiration.

Research didnt really help either, I am new so theres probably a blatant obvious way of doing it, im just unaware of
 

Alice

Toolmaker of Bucuresti
Forum Staff
Moderator
As I see it, timers are a pretty valid approach, though maybe not the ones created via timelines or alarms.

You might want to take into account delta_time and/or current track position rather than the number of frames, or else the game might desynchronise.

Now how to make the timers not so tedious: I generally would divide the track into "sections", and try to determine how many "beats" are in each section. For example, I could determine that in section from 0:34.254352 to 1:15.6245634 there are 96 beats spread uniformly. It means that every time a 1/96th part of that section passes, another "beat" should make whatever the game has in store. Some tracks might play around with tempo, so determining timings for these might be harder, but the general idea remains the same - identify the timings of "beats" in the track, then decide what to do with specific beats (e.g. shooting a bullet at a player for each beat in the given section, or maybe moving to another position every fourth beat).

You still need to decide what happens at which beat, and the more complex patterns you want to make, the more fine-grained beat management will be. But at least now you think in terms of a sequence of discrete steps - that you can reposition in time if the need arises - rather than wobbly timestamps that are a pain to change, especially if they are at multiple positions.

Hope this helps.
 

Coffeli

Member
As I see it, timers are a pretty valid approach, though maybe not the ones created via timelines or alarms.

You might want to take into account delta_time and/or current track position rather than the number of frames, or else the game might desynchronise.

Now how to make the timers not so tedious: I generally would divide the track into "sections", and try to determine how many "beats" are in each section. For example, I could determine that in section from 0:34.254352 to 1:15.6245634 there are 96 beats spread uniformly. It means that every time a 1/96th part of that section passes, another "beat" should make whatever the game has in store. Some tracks might play around with tempo, so determining timings for these might be harder, but the general idea remains the same - identify the timings of "beats" in the track, then decide what to do with specific beats (e.g. shooting a bullet at a player for each beat in the given section, or maybe moving to another position every fourth beat).

You still need to decide what happens at which beat, and the more complex patterns you want to make, the more fine-grained beat management will be. But at least now you think in terms of a sequence of discrete steps - that you can reposition in time if the need arises - rather than wobbly timestamps that are a pain to change, especially if they are at multiple positions.

Hope this helps.
I would of never thought of that! Thannk you so much!!! i will be hard at work now!
 

HalcyonFlux

Member
With music, most songs have a 4/4 time signature. So you would want to figure out what the BPM is, and then have a way to keep track of how far the game has gotten into the song. Whenever the song is on an upbeat or downbeat, create/change whatever object you want to synchronize.

For example, say you had a BPM of 120, you would create a bullet every half-second in delta
 
Top