Movement and attack presets for bullet hell game

So, recently saw JvtheWanderer’s bullet hell livestream post, which brought on a bit of nostalgia because the first game I ever made was a bullet hell, back when the most I knew about game making was a little bit of Game Maker 8. :smiley: So now, i’m kind of interested in making my own bullet hell game. At first, I thought that I’d just take a look in on what JV was doing, but he seems to be going in a different direction in terms of how the game works behind the scenes than I would (not saying i watched all 10+ hours of his livestreams, kind of had to hop around through them to get an idea of what he was doing). What I want to do is a bit more… robust, hopefully allowing for faster creation of content and interesting bullet patterns.

So, I have a few questions of what is possible and how it might be achieved.

First, I want to have multiple ‘sets’ of movement types that I could assign to an enemy when spawned, instead of building it into the enemy inherently.
I.E. Multiple movement sets, such as: move left to right, move right to left, move to point directly above ‘snapshot’ of player location, move directly at ‘snapshot’ of player location (kamikaze), move along curve or path (while being able to define the path), etc. When spawning any enemy, one of these movement schemes will be assigned to said enemy without having to have each movement type built within each enemy.

Or I could just have one single enemy (not including bosses) that has every movement preset and every attack preset inside it, as well as every ‘visual’ body (with various values, such as hp) in it, and just give the number of the body, movement, and attack you want to spawn it with when it spawns.

Not sure which one would be better, though I am sort of leaning towards the second, one enemy with everything in it, idea.

In any case, for the movement presets, I was wondering what would be the best method for having that preset of motion (with possible values put into it, such as player location). Like, would I want to use matinee (I have never used matinee before for anything and have little to no knowledge of what it is or does), or timelines, or what? Not really sure what would be the better option in this case, as I am not fully aware of the pros/cons for each method, or if there are yet other methods.

Also, for special movement types, such as moving along a path (something that cannot easily be achieved by conventional means of defining movement), how might this be done? I am not even sure how to create a curve/path in UE4, let alone how to use/reference one in relation to movement.

For the attack presets, I think that this would be similar to the movement presets, though I think that this would be a little harder as I would have to deal with particles, where the difficulty would be not only in dealing with passing variables into them, but also for using them as ‘solid objects’ that the player has to avoid, which would be difficult given the 2d nature of bullet hell projectiles (if that makes any sense? maybe i am over thinking things). Plus, would I want to create the movement of the bullets inside the particle system itself, or would I want to create that in the way/direction i spawn the particles in. Or even yet, would I want to use particles at all, worrying as I am about how difficult they would be to control (though I am not yet so scared off to think that not using particles would be the better option, but rather it is just something to keep in mind).

So, I would probably use the same preset mechanic that I end up using for the movement for the attack presets, unless someone can point out reasons for using a different system for attack presets.

And now, the final issue that I am wondering about: enemy spawn ‘Timelines’.

Back in game maker 8, i think i used something called a timeline where, over a period of time, I could specify certain things happening at certain times. These ‘events’ could have multiple initial values attached to them. I was wondering if this was possible to do in UE4 (my mind wants to connect this to matinee, but again, I have no knowledge of that yet as I have not researched it yet).

For example, I would say “at time 100, spawn enemy at location A (location being defined by an off screen actor, or just a location value, w/e), with body C, and attack pattern F (a single attack pattern, or possibly multiple attack patterns, based on the difficulty of the game mode)”

How would I do a ‘timeline’ mechanic like described?

Thank you all who find the time to help answer these questions! :smiley:

T_T bump. expected some sort of response by now.

Well, you’re asking a bunch of niche questions that pertain specifically to bullet hell games - we’re all new to this, and as far as I am aware, there aren’t many bullet hell games in development at the moment, since paper2D is still a work in progress. I really wouldn’t ‘expect’ a response, rather, hope for one!

Movement can be handled in a variety of ways. I would do it by either have multiple AI controllers, and each controller has a different movement mechanic as you mentioned, or by having one AI controller that assigns movement based on some criteria- on a tag, a class, or a mesh / graphic.

I’m sorry, but I don’t understand this question.

You can assign an actor to move in a vector easily - i.e, up, down, left, right - and define its speed. You can also vinterp to the players location, or designated locations.

For more advanced/involved movement you’d want to use matinee.

As far as timelines are concerned, the timelines for UE4 are very similar, and can trigger independent functions that could do exactly what you’re looking for at specified times in gameplay. Since timelines are more or less static, you’d want to create a timeline, create the time and curve of your timeline, and use the play timeline to trigger functions according to your curve.

you should use a json file to describe a stage