Designing a horizontal Shmup


  • *
  • Posts: 1667
I'm interested in making a horizontally scrolling shmup, inspired at least in part by the classic coinops and 16 bits (gradius, rtype, biometal, etc).

As a novice game designer, I'm always feeling a bit overwhelmed by the prospect of actually designing and implementing a game and making it fun. Mechanically, I think I understand how to do most of what's needed within stencyl, and I'm pretty good with graphics.

I'm interested in getting tips on how to approach designing levels and enemies and particularly bosses and their behavior if anyone has any, and specificaly I'm interested in knowing the best way to design "levels". My plan was to have one screen and simply have timed spawns ("do after" blocks in the when creating area of the scene) make enemies and things come on screen, which may work just fine, with the possible drawback if you want to control the pace of the game by having the timing of the next wave depending in some way on player action. For example, you reach certain points where the enemies don't continue coming until the player clears the screen or takes some other action.

The inelegant solution would be to make levels large scenes and scroll the camera through them. The drawback here is it's much more likely that there'd be performance issues due to how stencyl seems to work.


  • Posts: 323
The best way for you to make a shmup using Stencyl is to make the background and other elements scroll in such a way that it 'looks' like you're moving through space.

In shmups, the movement of enemies is very important. If the whole game is suited around shooting things, then much of the challenge must arise from making shooting things more difficult. Consider using 'shields' that must be worn down, fast moving ships, and different patterns of movement. Larger enemies or bosses can be given larger 'lazer' attacks for instance that sweeps a large part of the screen.

I hope these little tips were insightful for you. :]

Good luck!


  • *
  • Posts: 1667
what's the best way to plot the movements of enemies? making them go to specific coordinates in a straight line is one thing, but what if I want more curvy movements? any suggestions?


  • Posts: 14
In my understanding of the movement patterns and specific coordinates there are various ways to approach it. For curvy like motions you would be looking at using trig (sine and cosine) or even bezier curves for the plotting of it if you want to have some varying curve paths. Sadly my math in that area is terrible so I can't help much there :( But Stencyl has a "Follow Path" behavior that may help to experiment with that I have come across :)


  • *
  • Posts: 4643
I made a simple schmup in Flixel once (Flixel forum post - the game is no longer available online at the link, sadly). The enemies moved in a sine wave pattern that came directly from a tutorial that I had adapted to fit my needs.
In the update function we use a cosine function to move the alien up and down in a wave motion.
Code: [Select]
velocity.y = Math.cos(x / 50) * 50;
You should be able to reproduce that in blocks to get the desired movement - be sure to change the "50" to see how it affects the movement to better fit the screen/game.
Patience is a Virtue,
But Haste is my Life.
Proud member of the League of Idiotic Stencylers; doing things in Stencyl that probably shouldn't be done.