The Shmup Developer Thread

A place for people with an interest in developing new shmups.
Post Reply
User avatar
ForteMP3
Posts: 178
Joined: Tue Feb 01, 2005 3:15 pm
Location: Somewhere in the Midwest.

The Shmup Developer Thread

Post by ForteMP3 »

Well, we've got a few threads plugging demos, how about a thread or two to discuss the work behind making a shmup, as well as sharing ideas and theories on how to implement various features or come up with bullet patterns, find some ways to aquire graphic resources...Y'know, that kinda stuff. With some of the stuff availble on the net now, even a casual fan like me has been able to do some shmup work, although I've yet to make anything worthy of a public demo...

So anyway, let's get the ball rolling...

I'd like to pose a question...Sprite ripping. Can it make or break a shmup in your opinion? Would you care if a Gradius clone or Gradius themed shooter for example, used a fair amount of sprites/graphics from existing Gradius games?
YOU ARE APPROACHING THE TARGET OF ATTACK! THE MISSION STARTS NOW! ARE YOU READY?!
User avatar
Aggrav8d
Posts: 41
Joined: Sat Jan 29, 2005 10:01 am
Location: Vancouver, BC, Canada
Contact:

Post by Aggrav8d »

The only problem I forsee with sprite ripping is using copyrighted material. If you ask the owners of the rights for permission and make it clear that you're not trying t profit from their material then, unless they're jerks, they'll probably say ok and you're in the clear.
Dan "Aggrav8d" Royer, Owner
Marginally Clever Games
User avatar
raiden
Posts: 862
Joined: Tue Jan 25, 2005 11:41 pm
Location: Cologne
Contact:

Post by raiden »

I can just say that a shmup with ripped sprites has to be a lot better to get me to play it than one with original sprites. It´s the same with ripped music, ripped patterns or ripped gameplay mechanisms. I will always ask myself why I´m not playing the original. And if the original is an arcade game, the amateur game will usually have a damned hard task to beat that in quality.
From the few hundred doujin shmups I played, there is just one which I would really consider to be able to be put up in an arcade, and that is Bike Banditz. Maybe Tumiki Fighters. Even famous icons of the genre like Shanghai Alice or most ABA games are lacking in one or several aspects, mostly presentation, but if presentation is on par, the gameplay usually sucks (T-Zwei and such).
User avatar
nullpointer
Posts: 66
Joined: Tue Jan 25, 2005 11:12 pm

Post by nullpointer »

I agree with raiden on this too.

Making a shmup is an excuse to get creative..
So ripping sprites is generally a bit cheap.
Especially considering that its very unlikely that a sprite ripped game wil ever be as good as the game its ripping..
But this doesnt mean that people should be using rips as placeholders or just to get a concept running, but I'd rather see peopl use their own drawn sprites (crappy or not) than ripped ones.
Hell most of my early stuff just has you shooting big numbers in squares!!
and the gameplay can still be good.
Getting the gameplay and the gfx together is a real art and not something that us homebrewers can acheive easily (i hope to get better at it though!)
SOme people just concentrate more on one than the other and thats fine, but a really good shmup needs originality in both!
User avatar
Aggrav8d
Posts: 41
Joined: Sat Jan 29, 2005 10:01 am
Location: Vancouver, BC, Canada
Contact:

Post by Aggrav8d »

Raiden - interesting POV, I had not considered that.

nullpointer - IMHO you're already pretty damn good. I try to sketch ideas for my game and all I see in my mind is Endless Fire.

Speaking of which, what do you do to get inspired? I've been suffering a (artistic) creative drought the last several days and would love some advice on how to break out of this funk.
Dan "Aggrav8d" Royer, Owner
Marginally Clever Games
User avatar
ForteMP3
Posts: 178
Joined: Tue Feb 01, 2005 3:15 pm
Location: Somewhere in the Midwest.

Post by ForteMP3 »

Well, here's another question, unrelated to the previous.

Bullets. How many are too many? How do you decide the patterns they're fired in? So far, the concept of creating complex bullet patterns for bosses has eluded me, I haven't been able to think of anything that's on the same level as a manic shmup like DoDonPachi.
YOU ARE APPROACHING THE TARGET OF ATTACK! THE MISSION STARTS NOW! ARE YOU READY?!
User avatar
PepsimanVsJoe
Posts: 416
Joined: Wed Feb 02, 2005 12:32 pm
Contact:

Hmm...

Post by PepsimanVsJoe »

Bullet patterns are a tricky subject. Pretty much all of ABA's games borrow bullet patterns from other shooters.
Despite what some may think the Manic style can not be properly emulated by simply throwing a few millions on the screen and leaving it, they all must have what I consider a start point and an end point. Take the final boss in ESP Ra De for an example. The first form is the purest example of manic bullet hell. However on the statue itself each color spot releases it's own attack. And from that spot it reaches a designated point whether it's aimed at you or at some point towards the bottom(obviously in your way).

What you want to start with when creating a bullet pattern is to start with ONE bullet..Put where you want that one bullet to start and where it should go..and then add to it from there. Then go over the spread, making sure that you the developer and the testers(usually us) can handle this spread(with practice) and strike a good balance.
The basics of manic for me seem to be:
Clumps, Lines, Spreads, and Extras.

The clumps and spreads are self explanatory but I define Extras as..well..Take the helicopter boss in the bay area of ESP Ra De. While in the second form it fires it's spreads it also shoots those annoying blue shots that home in on your player. Lines can be considered closer to lasers since they can be a way to constrict players to dodge a certain attack.
For reference..the attack the 5th Boss in Dodonpachi uses where it fires the exploding missiles. That's a good combination of Clumps and Lines. Granted the Lines aren't lasers exactly but they are fired so close together they are impossible(IMO) to dodge.

Also above all..Make sure the bullets have multiple colors. Say if a boss has three different attacks that all fire at the same time. Make sure that each of these attacks has a different color(And that none of these colors match the color of your ship's weapons). It really takes a lot out of say..Progear No Arashi when the boss fires huge masses of blue clumps at you. It doesn't look visually pleasing and also doesn't help to learn the start and endpoints of each attack.

The multiple bullet colors are also useful in the designing of the game itself
since you can use them for reference when you get to creating bosses with multiple attacks at once.

If nothing else remember the ONE bullet. Once you are sure of what you want that one bullet to do feel free to put more bullets around it that do a similar fashion. As for ideas one thing I haven't seen is bullet spreads that resemble the actions of an animal. Say you have a bear swipe at something with it's claws. Now imagine the claws themselves forming into bullets. Like the boss would fire one spread(claw?) and then the other..then both at the same time). Not the best description I imagine but use your imagination is all I can say. Look at things around the house..imagine them broken down into tiny bullets and then thrown around.

Radio Zonde has some gorgeous bullet patterns that resemble flowers in bloom..If you haven't tried it already it's a free doujin shooter so it should be easy to find. Extremely manic too.
User avatar
Andi
Posts: 1425
Joined: Wed Jan 26, 2005 7:35 am
Location: Chi-town, IL

Post by Andi »

I've written a couple of games (but never shooters) and I am always very happen to see the freeware scene full of extremely slick and playable products. However, an age old bitch of mine is that most freeware games really become clones of current commercial games. I see this often even with some of the concepts here, someone will play a game they love and then be inspired to write their own shooter, but it will typically borrow many of the gimmicks of its inspiration.

Tsk. Tsk. Tsk.

Something that you can do that commercial developers can't is INNOVATE! Most of these games are written as hobbyist endeavors and are not being sold (or expecting to make a serious profit) so take some risks and make up your own gimmick and style.

If you are going to make a game too similar to a professional team's, don't bother. They'll do it better.
User avatar
raiden
Posts: 862
Joined: Tue Jan 25, 2005 11:41 pm
Location: Cologne
Contact:

Post by raiden »

very interesting analysis, PepsimanVsJoe. My approach towards bullet patterns has been to draw them in a diagram, yet the important part is not how they look, but how you dodge them. I´ll try thinking that way next time.
Something that you can do that commercial developers can't is INNOVATE! Most of these games are written as hobbyist endeavors and are not being sold (or expecting to make a serious profit) so take some risks and make up your own gimmick and style.
If you are going to make a game too similar to a professional team's, don't bother. They'll do it better.
100% agree. Looking back, all gameplay elements of Bloodrain were taken from other games: enemies leaving gold or silver medals=Dragon Blaze, sucking medals up by not shooting=Zero Gunner 2, scratch bullets to fill a special weapons gauge=Bee Storm. The only thing I can mention that is not bland is the music. The project was started soon after I began to visit EBM discos frequently, and I wanted this kind of music in the game, as I think it´s great for shmups. The first prototype version had professional bands like Armageddon Dildos and VNV Nation in it, but their permissions took too long, so I found some people contributing a similar style of music. I really dig the style of the game (which is something I´ve decided, but not created), yet the gameplay, which was my responsibility, just bores me.
Next time will be more innovative, I promise. The ideas have been waiting in my desk for some time already.
RedKnight
Posts: 33
Joined: Sun Jan 30, 2005 4:20 am
Contact:

Post by RedKnight »

Andi wrote: Something that you can do that commercial developers can't is INNOVATE!
Since when did some "American" Commercial developers do Shmup?
EA?? anyone??

the only ones are 1 or 2 from europe, and a dozen in Japan.
User avatar
Andi
Posts: 1425
Joined: Wed Jan 26, 2005 7:35 am
Location: Chi-town, IL

Post by Andi »

RedKnight wrote:
Andi wrote: Something that you can do that commercial developers can't is INNOVATE!
Since when did some "American" Commercial developers do Shmup?
EA?? anyone??

the only ones are 1 or 2 from europe, and a dozen in Japan.
I didn't think I specified American developers, silly.
User avatar
nullpointer
Posts: 66
Joined: Tue Jan 25, 2005 11:12 pm

Post by nullpointer »

it might be interesting to note how in most games there are
2 main types of bullet.
Aimed: ie the fire towards the player
Pattern: they fire without reference to the player position.
Of course there are inbetween forms but these 2 types seem to be the basis of most shmups...
Following on from this it is sometimes the practice (as in DDP) to distinguish the two types with color..
I.e pink bullets are aimed and blue blue bullets are pattern shots..
This helps loads for the player when working out how to herd/dodge etc.
I think that there is a limit to this color identity, you can only really distinguish about 4-5 different identities at once. so after that it becomes decroative rather than useful.
User avatar
Aggrav8d
Posts: 41
Joined: Sat Jan 29, 2005 10:01 am
Location: Vancouver, BC, Canada
Contact:

Post by Aggrav8d »

I think nullpointer is right. The one I can't find a simple algorithm for is the purple bending laser beam in Raiden. Anyone have any thoughts?
Dan "Aggrav8d" Royer, Owner
Marginally Clever Games
User avatar
raiden
Posts: 862
Joined: Tue Jan 25, 2005 11:41 pm
Location: Cologne
Contact:

Post by raiden »

The one I can't find a simple algorithm for is the purple bending laser beam in Raiden. Anyone have any thoughts?
that´s an interesting one. I remember Alluro stating it took him several months to build something similar for Xeno Fighters EX. My approach would be like this:
When the laser is started, get a list of all enemy coordinates. Then, starting from the player ship´s position, locate the enemy which is easiest to hit (requring the least bending). Lock onto that enemy, then search for the next enemy. Measure the length of your laser. Now, every new frame, do this algorithm again, but don´t change the laser´s path until the new path´s length is significantly different.
There is more going on with that laser, of course. It has to move sideways depending on the ship´s movement, and its bending ability increases the longer it is locked onto one or more enemies. If there are no enemies, it will leave the screen, but while hitting enemies, it ends in the last enemy it is hitting.
Anything else I forgot?
User avatar
angrycoder
Posts: 232
Joined: Mon Jan 31, 2005 1:34 pm
Location: Pennsylvania, USA

Post by angrycoder »

One thing I've been curious about while tinkering around with creating a shmup....

How do you express movement and bullet patterns? Is it just a list of shifted x and y coordinates ie, move +2 x, +1 y, then +1x, -1y, etc etc? Is it a combination of mathmatical equations leading to a destination ie, move 5 units in a straight line towards x,y , then 10 units in a 45 degree arc towards x,y etc etc.?

I'd be currious to hear how some of you have implimented this.
User avatar
nullpointer
Posts: 66
Joined: Tue Jan 25, 2005 11:12 pm

Post by nullpointer »

there are generally 2 ways to express movement in programming.. cartesian space and polar space.
castesian is vector based x,y,z and polar is angle based radius,angle
Although most incremental movement is best done with cartesian math when you want to spawn any trig based patterns you often need to ue polar.. you can convert pretty easily and this is what you do when making a circular or sprial based pattern.
As for the increments, bulletml has a good example of how this works.
but generally you set up an initial location and a frame based increment (.i.e start 10,10 and increment +1,-3)
Some systems can have acceleration per frame and some can re-trigger a new destincation/speed at particular intervals in the life of the bullet.. iei wait 100 frames and then chage angle by 90deg etc)

The same is often true for enemy craft. Ive found it best for all movement to be relative to an initial spawning point rather than absolute (e specific locations each frame) because then by moving the spawn point you can move the whole subsequenct pattern.

you can use bezier style routines for smooth curves or just use acceleration or more interspaced frames to do curves with basic vector stuff.

as for the wiggly laser from raiden, i think raiden is spot on it seems basically like a chained/multisegment homing laser. imagine the homers from ikaruga leaping from one enemy to the next etc..
RedKnight
Posts: 33
Joined: Sun Jan 30, 2005 4:20 am
Contact:

Post by RedKnight »

Aggrav8d wrote:I think nullpointer is right. The one I can't find a simple algorithm for is the purple bending laser beam in Raiden. Anyone have any thoughts?
Check my demo. :twisted:
Nullpointer wrote: as for the wiggly laser from raiden, i think raiden is spot on it seems basically like a chained/multisegment homing laser. imagine the homers from ikaruga leaping from one enemy to the next etc..
argg. That's the most horrible thing I have ever try to coded.
But there's one Japanese guy( I believe " I-Saint") who coded the same exact thing in his demo HL demo

I got tired coding that damm homing laser thing, Instead I just use a Lock on laser. which can't relock (or Homing) in to other objects, if target is destroy

Angrycoder wrote: I'd be currious to hear how some of you have implimented this.
My Method

"Homing"
{
(oh yeah NewPos, Position and Target are vectors)
NewPos = Position - Target;
Normalize it you wanted too -> NewPos
NewPos *= Speed (which is speed * game interval);
}


In my demo you see how some of the cubes move into a line formations.
and you can also see how the "Lock-On" laser make a turn to hit the target instead of going straight to it.

First: created a subvector , which the missile is going to lock on to.
Subvector should be 90 degree from the missile(Target is the center, and the missile = 0 degree)

Second: make the subvector home in to the target and the Missile should home in to the subvector.
if there isn't anything wrong with your math codes, you''ll see that the missile is making a turn before it hit the target.
You can also make subvector goes faster then the missle,
which will give you a smaller arc

well if you wanted to created a bend laser.
first:
created 4 missles each lock on to the same target, but don't fire/move it at the same time.

second: ( the hardest)
try figuring how you''ll calculate the angles. :twisted:
(Subvector = 0 degree, Missle is the center now)
because you need 8 vectors ( 2 * 4 Missles) for a Bezier curve

There's alot of calculations going around here cause you'll need to calculate the two sides.
the other 3 missle angles must also be set too.

And for Bullet Pattern.
Simple.
I use the Modified Homing Method. 8)
make a vector spin around another vector (from the point where you shoot.)
now you just have to aim your bullets at the spinning vector.

Oh you can also check my bullet demo.
http://360.digitalthinker.org/Downloads/straybullet.zip
I call this "Spinners"
I also have some Ideas for "Spreaders" and "Sweepers"


Note
Digiben (www.GameTutorials.com , now gone Selling tutorials)
Once wrote a Collision tutorials and from that tutorial I learn how to calculated the angles between two vectors.
and you'll also has to know how you convert radians in to degrees
if you wanted use glRotatef( degree, x, y, z);
which will make the bullet head point to the target.
instead of a "cheap colour ball" as a bullet. :evil:
Last edited by RedKnight on Fri Feb 04, 2005 1:32 pm, edited 1 time in total.
kemical
Posts: 580
Joined: Wed Jan 26, 2005 1:14 am
Location: Tokyo

Post by kemical »

this is kind of random, but have there been any recent shooters that involve bullets with physics? (bullets that interact with each other in a way, with mass etc) .. there's a gameplay idea that I'm thinking about.. not sure if it's already been done in a shooter though.

i'm going to give SDL a try, hopefully I can translate over from director lingo into c/c++ & SDL without much trouble. :?
Post Reply