Welcome, Guest. Please login or register. Did you miss your activation email?

Author Topic: [Bullet Hell-Game] Origin of Magic  (Read 11928 times)

0 Members and 1 Guest are viewing this topic.

masskiller

  • Sr. Member
  • ****
  • Posts: 284
  • Pointers to Functions rock!
    • MSN Messenger - kyogre_jb@hotmail.com
    • View Profile
    • Email
[Bullet Hell-Game] Origin of Magic
« on: September 14, 2012, 01:55:03 am »
I am bad with names, as soon as I have a good one I'll modifiy it.

My project (and first serious game) is a bullet hell game/danmaku. It's a vertical scrolling shooter game like many others, with the difference that the focus of this genre is difficulty, since the enemy bullets will form patterns that are (most of the times) hard to dodge but tend to make a nice view.

Of course this wasn't entirely my idea, this is mainly based on an already existing game series called touhou.
Here's a video so you can know a bit what it's like in case you don't know touhou:


My approach for this genre was to make something similar (in essence) to what the game genre and mainly touhou is, but to modify several gameplay issues, such as the power-up system and a tree-like storyline, in which your choices and score may modify what the story ends up being like and other twists that I will write once I have thought them up better.

The project is currently just starting, mainly on making the engine and learning all the possible math these kinds of games need. Once I finish with that I plan to make the art and the music, but it'll take a while until I start working with something other than the engine. I plan to make commercial games in the future and thought this kind of game would challenge my skills and give me enough experience as to make it as a preparation for a career and game making company in the future.

As I said earlier I have very little progress so currently there is nothing visible, but as I progress I will be uploading my progress. I am no expert programmer either (have around 6-7 months with c++, started with java, but just as a basic learning platform) so I'll be asking for help once my wits give in, but eventually this self-pleasure game will come through.

My current progress in the engine is mainly on math. Having programmed polar vectors and used many functions for spirals, circles and such. What I am working in right now is to make a consistent linear movement system, that is half finished, as I need a mathematical function that allows me to make the speed of all trajectory lines for bullets to be the same given any two points in the grid.
« Last Edit: January 24, 2013, 06:19:22 pm by masskiller »
Programmer, Artist, Composer and Storyline/Script Writer of "Origin of Magic". If all goes well this could turn into a commercial project!

Finally back into the programming world!

TheSilverWebsurfer

  • Newbie
  • *
  • Posts: 18
    • View Profile
Re: [Bullet Hell-Game] Still Unnamed Project
« Reply #1 on: September 14, 2012, 10:51:01 am »
Wow, good luck with that!
Bullet hell games are quite impressive to see, and even more to play with.
That's not my favorite sort of games, preferring classic shoot'em ups, but I like one from time to time.

I can't wait to see your first screenshot!

Marukyu

  • Newbie
  • *
  • Posts: 36
    • View Profile
Re: [Bullet Hell-Game] Still Unnamed Project
« Reply #2 on: September 14, 2012, 12:13:53 pm »
Sounds very nice, looking forward to seeing progress on this project.
I wish you the best of luck, and may the ⑨ be with you! :3

noobie

  • Newbie
  • *
  • Posts: 22
    • View Profile
Re: [Bullet Hell-Game] Still Unnamed Project
« Reply #3 on: September 14, 2012, 03:10:51 pm »
I got an epileptic seizure!



and the music ....

How long can u play such a game?   :o


But good luck! at first I thought the game is from you ;)

Looking forward to seeing progress on this project, too.

masskiller

  • Sr. Member
  • ****
  • Posts: 284
  • Pointers to Functions rock!
    • MSN Messenger - kyogre_jb@hotmail.com
    • View Profile
    • Email
Re: [Bullet Hell-Game] Still Unnamed Project
« Reply #4 on: September 14, 2012, 11:27:36 pm »
I haven't that much skill yet, I'm still working on stuff that normally looks easy to do, but it's not so easy when you get into it and while I have some skill improvising with my piano I am bad when trying to organize my musical ideas, so it'll be quite a while until I have something visible. If you want to check for the creator of the game in the video google ZUN and Team Shanghai Alice, there's lots of youtube material as well, the game has been getting lots of popularity recently.

Quote
How long can u play such a game?

Usually good playthroughs of a 1 credit clear (no continues) take around half and hour, but from experience in order to get to such good results you need lots of practice, mainly by memorizing patterns and practicing them effectively. It's terribly hard at first, but you slowly get used to it if you are into those kinds of games.

Sounds very nice, looking forward to seeing progress on this project.
I wish you the best of luck, and may the ⑨ be with you! :3

I'll need one of Cirno's perfect math classes to pull it off xD

Programmer, Artist, Composer and Storyline/Script Writer of "Origin of Magic". If all goes well this could turn into a commercial project!

Finally back into the programming world!

Michard

  • Newbie
  • *
  • Posts: 10
    • View Profile
    • Email
Re: [Bullet Hell-Game] Still Unnamed Project
« Reply #5 on: September 19, 2012, 08:19:04 pm »
This is mainly based on an already existing game series called touhou.

Just to let you know, you really killed me with this post, I am currently writing a SFML Touhou-based bullet-hell game too... D:
As for me, I've already written the whole Engine, except for the audio part, and got two levels playable. 
Well, good luck with your game, I'm really looking forward to playing it :)

masskiller

  • Sr. Member
  • ****
  • Posts: 284
  • Pointers to Functions rock!
    • MSN Messenger - kyogre_jb@hotmail.com
    • View Profile
    • Email
Re: [Bullet Hell-Game] Still Unnamed Project
« Reply #6 on: September 20, 2012, 07:37:32 pm »
I'm still ways from anything playable, but once I finish some classes I'll be able to start setting the level patterns, still no collision but after I make the first level pattern I'll start working on it.

btw, just out of curiosity, what did you use for position calculation? I used polar vectors, but I am interested in seeing if there are more ways to do it or find something to overcome some limitations within polar math.
Programmer, Artist, Composer and Storyline/Script Writer of "Origin of Magic". If all goes well this could turn into a commercial project!

Finally back into the programming world!

Michard

  • Newbie
  • *
  • Posts: 10
    • View Profile
    • Email
Re: [Bullet Hell-Game] Still Unnamed Project
« Reply #7 on: September 21, 2012, 03:29:17 pm »
Well, in my implementation, every moveable object has a basetime (float variable) and a move function which uses PastTime-basetime to calculate where the object is at a certain time. Move function are different from one another, so for a simple linear movement the position will be calculated with cos/-sin (sin is negative since sfml y is 0 on the top and window_height on the bottom), but when I want I can make something more complex by using the time variable, which allows me to implement curves, pauses for shooting sessions, and things like that. The best I've made until now is something which looks really similar to Mononobe no Futo's last SpellCard on Overdrive difficulty, with that sort of rotating flower with 5 petals, or something like Suwako Moriya's last one, with the circles of crossing bullets which come always more often.

btw, just out of curiosity, what did you use for position calculation?

Surely it's possible to implement movements in smarter ways, but if you think my approach is good enough for you, you can use it without any problem.

masskiller

  • Sr. Member
  • ****
  • Posts: 284
  • Pointers to Functions rock!
    • MSN Messenger - kyogre_jb@hotmail.com
    • View Profile
    • Email
Re: [Bullet Hell-Game] Still Unnamed Project
« Reply #8 on: September 21, 2012, 09:48:30 pm »
I started using polar vectors due to ease of use for making circles of bullets and streams as in stage 2 boss and stage 5 in Subterranean Animism and I am currently polishing it up, with them I can also make spirals of bullets easily and even flower-shaped patterns (making them and then shooting them in a linear way based on the angles, not actually moving them around like Futo's last spellcard).

The draw-back is that I lose control over time the time-position relationship (or rather I haven't tried to this yet) and there are things that you just can't do as a counter for being able to do some hard stuff in an easy way, so I was thinking of having more than just polar calculations so as to be able to use two forms of making patterns. For now I'll be focusing on different types of streams, which are quite easy to do, but still need a bit of testing.

I'd like to know more about base time. My linear movements use a fixed angle and go through it  by increasing the radius parameter as the program runs until the bullet goes out of bounds, the angle is either based on a point (streaming) or given (to make defined shapes before shooting), how should time come into play in something like this?

For example:


///Previously set angle.
  CurrentRadius += Speed;

 

It gives consistent time, but if I understood well you actually use time, my algorithm uses increasing distance and a sense of a certain speed is given by the loop.   
and how can sin and cos get linear movement? It's not clear to me with just looking at their function graphs (both polar and rectangular). That's all the questions I have from now.

This should be to promote my project and show results when I have them and not asking questions, but your approach got me quite curious.
« Last Edit: September 21, 2012, 09:51:19 pm by masskiller »
Programmer, Artist, Composer and Storyline/Script Writer of "Origin of Magic". If all goes well this could turn into a commercial project!

Finally back into the programming world!

Michard

  • Newbie
  • *
  • Posts: 10
    • View Profile
    • Email
Re: [Bullet Hell-Game] Still Unnamed Project
« Reply #9 on: September 21, 2012, 10:38:36 pm »
Among the other member variables, my bullets have angle and a float named basetime, which says at what time the bullet has been shoot. Every time the game loop is executed, I save the frame time in a float and add it to TotalPastTime. Doing this way I have a whole set of instruments I can use to move the bullet: for example, I could make it move straight forward to the player with something like (I'm inventing at the moment):

On bullet's constructor:
angle=-atan2f(Player.Pos.y-enemy.Pos.y, Player.Pos.x-enemy.Pos.x); //Radians
Sprite.SetRotation(angle*180/PI);
 

And on bullet's move func:
Sprite.Move(cos(Angle)*speed*FrameTime, -sin(Angle)*speed*FrameTime); //speed is usually a raw number, not a variable
 

The above, when executed, makes the bullet calculate where she has to go, aiming to the player, and then, during the loop, it moves in a linear way using cos/sin for the variable angle

The basetime usually comes when I want to make more complex patterns, such as accelerating or curving ones. For example, accelerating bullets' move func could be something like:
Sprite.Move(cos(Angle)*(100+(200*(PastTime-basetime)))*FrameTime, -sin(Angle)*(100+(200*(PastTime-basetime)))*FrameTime);
 

In this example, I have a bullet which initially has a speed of 100 but, after a second, has reached a speed of 300.

But I also could stop the bullets for a while, (like TD fairies at the beginning and end of stage 3), and this could be easily done by checking the value of PastTime-basetime.

This is how I do it. There's only one thing left I have to tell you: Good Luck with your game!!! :)

PS. Sorry for my English, it's not my main language

masskiller

  • Sr. Member
  • ****
  • Posts: 284
  • Pointers to Functions rock!
    • MSN Messenger - kyogre_jb@hotmail.com
    • View Profile
    • Email
Re: [Bullet Hell-Game] Still Unnamed Project
« Reply #10 on: September 22, 2012, 12:12:22 am »
Thanks, that will surely help me try some experiments.

Quote
PS. Sorry for my English, it's not my main language

Worry not, neither is mine.

Edit: I just noticed that your solution is quite similar to mine with only the time differences, I didn't notice it at first, but the way things are calculated  in your solution is deeply linked with the basics of polar vectors, just altered for it to work with explicit time, while mine forces a non explicit timing through constant looping. I would show you my whole code, but I made lots of wrappers to make it easy to use, therefore it's a bit hard to understand, I could still pass you the code if you want, but I still have to make some tweeks to the streams. It appears I wasn't that far off from time handling. I will try it to look for further differences as I finish the streams, circles and spirals.
« Last Edit: September 22, 2012, 01:16:24 am by masskiller »
Programmer, Artist, Composer and Storyline/Script Writer of "Origin of Magic". If all goes well this could turn into a commercial project!

Finally back into the programming world!

masskiller

  • Sr. Member
  • ****
  • Posts: 284
  • Pointers to Functions rock!
    • MSN Messenger - kyogre_jb@hotmail.com
    • View Profile
    • Email
Re: [Bullet Hell-Game] Still Unnamed Project
« Reply #11 on: October 02, 2012, 11:59:44 pm »
I bring a small update. I have nearly finished the basic patterns in my engine and having made a temporary score/gameplay screen. The game will have between 5 and 6 stages (can't decide) and 3 difficulties. Most characters are still in development and even though I have finished the design on some I still need to scan it, color it and work on it's sprites.

This update is a small screenshot of a spiral pattern and a temporary version of the score/gameplay screen for stage 1 (every stage will have a different one). I'll explain as well the not-yet implemented mana/power system.
Unlike touhou, the power system will be working in a different way. Instead of accumulating power and losing it if you die, you have mana (akin to magic power). Mana gives you a small boost in fire-power only when the gauge is full. With mana you can also bomb the patterns in order to avoid losing a life and mana is reduced after using it that way. Mana usage and amount varies, some bombs use lots of mana and have effects after the bomb while others have little effect, but can be spammed over and over.

The system for having more power in your shots is through items, as mana doesn't directly grant power. Power increases come from items, and not only power but other different skills as well. Such as ailment resistance (such as poison and such, which have a negative effect in your gameplay), increasing the capacity in the mana gauge. Also, mana doesn't pass through stages, this means that if you have a full gauge at the end of a stage you will gain extra points for it, but it will not go with you to the next stage.

Items are bought with currency points (not a proper name for it yet), the game will generally award currency points for achieving difficult feats such as living through an entire enemy pattern without attacking and grazing bullets, meaning that the better you do and the higher you score, the most buffs to your character you will be able to attain if you desire them. You can perfectly choose not to use your currency points and you will gain a hefty bonus in score if you have lots of unused currency at the end of the game.

Next time I update I'll probably present characters or the main storyline and universe the game is located in.

Note that game mechanics may change as they go through development, so this may very well be far from what the finished mechanics will be like. I also have a secret level planned which comes with a secret ending. Not sure if I'll be making something like an Extra Stage though.

http://imageshack.us/photo/my-images/15/previewbl.png/

The screenshot  in the link is the temporary gameplay/score screen and a basic spiraling pattern. This was just the test version to finally get rid of the black background. So the final screen for Stage 1 will be very different.
Programmer, Artist, Composer and Storyline/Script Writer of "Origin of Magic". If all goes well this could turn into a commercial project!

Finally back into the programming world!

TheSilverWebsurfer

  • Newbie
  • *
  • Posts: 18
    • View Profile
Re: [Bullet Hell-Game] Still Unnamed Project
« Reply #12 on: October 03, 2012, 12:57:58 am »
This mana and items system looks like a really good idea!
That will bring variety in a basic-gameplay game category.