Author Topic: All Star Remake & Java Danmaku Engine  (Read 12501 times)

All Star Remake & Java Danmaku Engine
« on: October 25, 2014, 10:17:15 PM »
Hey everyone, java2hu here.

A while back, a nico nico user by the name of "yuke" uploaded a video where pretty much every touhou character from the windows era (Up to TD) had a spellcard on after another. (Video: http://www.youtube.com/watch?v=85bE4NlzrLE)
I felt like this was a great idea, and a cool project to give homage to all touhou characters, but why stop with the characters that yuke used, all characters related to touhou with significant canon impact should get a place :)
So it'll contain characters from the PC98 era too, manga, even characters that have shown no ability to create danmaku (looking at you Rinnosuke)

Along with that, I felt much more comfortable with Java instead of danmakufu, I just didn't like it and couldn't get around with it, so I also decided to build this All Star game on an engine I wrote myself.
So why not make that open source and give potential developers in the same quarrel as I a well documented and easy to use framework.

With that I made "Java2hu", an open source danmaku engine, in java.
Java2hu is built on LibGDX, and provides all it's utilities and code along with it.
All code is carefully documented, and will get a full blown tutorial on how to use it.
For a bit more info on the engine, open the old thread on the bottom of this post.

However, to provide the best experience, I've decided not to release the engine until after the All Star Remake is done, so you won't have missing features when you start using it.

The All Star Remake is the game built on the engine, having it's own storyline, and fighting pretty much every touhou character over the course of 10 days.
Every day, you will visit a location with it's own 3d background, stage part, and possible dialogue around the story, and fight a part of the Touhou cast, each with their own dedicated "mini fight" (Usually a non-spell with a spell card)

Currently, I expect the All Star Remake to release within a year from now, and that's a broad guess, depending on counter-progress, it could be in Q1 2015.

I do however release demo's every once in a while, usually after I release a new "day" (read below).

Current demo download: Demo 2 ( Day 8 ) (Known issues: FPS on Shou/Byakuren, Keystrokes being counted twice, leading to weird menu navigation)

Video of the last demo: https://www.youtube.com/watch?v=KIu6zKCxGgI

So far, the game contains these characters:

Day 1 (Mist Lake): Wakasagihime
Day 2 (Bamboo forest): Kagerou Imaizumi, Fujiwara no Mokou
Day 6 (???): Sekibanki
Day 7 (Thunder Storm above Gensokyo): Seija Kijin, Sukuna Shinmyoumaru, Raiko Horikawa
Day 8 (Makai (COMPLETE)): Mai & Yuki, Shou Toramaru, Yumeko, Alice Margatroid, Byakuren Hijiri, Shinki, Gengetsu & Mugetsu
Day 9 (???): Yuuka Kazami

I hope you enjoy the demo, let me know what you think or if you run into any issues.
Latest Java 7 is required.

Are you a developer, eager to already see how the engine works?
Feel free to decompile the project and take a look, it's not obfuscated (Though some stuff may be messy, needing rework).

I also run a dev blog on java2hu.tumblr.com, and a twitter mostly reposting from the dev blog twitter.com/java2hu

Note: We have tried to contact ZUN through official and non-official channels for his take on our project, but to no avail.

Before you reply with a question, check the old thread to see if I haven't answered it already!
Old Thread (Dead): https://www.shrinemaiden.org/forum/index.php/topic,16989.msg1117530.html

Uruwi

  • Nightmare of Torrential Precipitation
  • 478 million goober
Re: All Star Remake & Java Danmaku Engine
« Reply #1 on: October 26, 2014, 03:43:15 AM »
I tried to run this on Linux but it doesn't work:

Code: [Select]
MediaException: UNKNOWN : com.sun.media.jfxmedia.MediaException: Could not create player! : com.sun.media.jfxmedia.MediaException: Could not create player!
at javafx.scene.media.MediaException.exceptionToMediaException(MediaException.java:146)
at javafx.scene.media.MediaPlayer.init(MediaPlayer.java:511)
at javafx.scene.media.MediaPlayer.<init>(MediaPlayer.java:414)
at java2hu.util.MusicUtil$1.run(MusicUtil.java:42)
at java2hu.J2hGame$1.run(J2hGame.java:316)
Caused by: com.sun.media.jfxmedia.MediaException: Could not create player!
at com.sun.media.jfxmediaimpl.NativeMediaManager.getPlayer(NativeMediaManager.java:222)
at com.sun.media.jfxmedia.MediaManager.getPlayer(MediaManager.java:104)
at javafx.scene.media.MediaPlayer.init(MediaPlayer.java:467)
... 3 more
foo = foldl $ flip ($)
Highest difficulty 1CCed for each game, by shot type in the original order. (-: never 1CCed on any difficulty, or never used; E: easy, N: normal, H: hard, L / U: lunatic / unreal.)
EoSD [NNNE] PCB [EE--N-] IN [NEEE + Ex Border] PoFV [Mystia N, Mystia E no charge] MoF [EN--H- + Ex Marisa B] SA [N-----] UFO [----EN] TD [NENE] DDC [EE-EHE + Ex Marisa B & Sakuya A] LoLK [PD --N- Legacy ---N] EE [N- + Ex Yabusame] EMS [N-- + Ex Yabusame] RMI [NHN + Ex YaoSuku]
Avelantis (demo) Easy YuukiB 426,077,200

Trickysticks

  • What am I? TRICKYSTEAKS I AM!
  • A stick of the tricky variety.
Re: All Star Remake & Java Danmaku Engine
« Reply #2 on: October 26, 2014, 04:02:44 AM »
Oh, I recognize you.

The demo looks promising so far, though the return of the cheeto lasers is pretty ominous. Hoping for more!
Interested in playing some boss fights I made? Have Danmakufu? Then check out my Danmakufu creations!

Re: All Star Remake & Java Danmaku Engine
« Reply #3 on: October 26, 2014, 03:30:18 PM »
I tried to run this on Linux but it doesn't work:

Code: [Select]
MediaException: UNKNOWN : com.sun.media.jfxmedia.MediaException: Could not create player! : com.sun.media.jfxmedia.MediaException: Could not create player!
at javafx.scene.media.MediaException.exceptionToMediaException(MediaException.java:146)
at javafx.scene.media.MediaPlayer.init(MediaPlayer.java:511)
at javafx.scene.media.MediaPlayer.<init>(MediaPlayer.java:414)
at java2hu.util.MusicUtil$1.run(MusicUtil.java:42)
at java2hu.J2hGame$1.run(J2hGame.java:316)
Caused by: com.sun.media.jfxmedia.MediaException: Could not create player!
at com.sun.media.jfxmediaimpl.NativeMediaManager.getPlayer(NativeMediaManager.java:222)
at com.sun.media.jfxmedia.MediaManager.getPlayer(MediaManager.java:104)
at javafx.scene.media.MediaPlayer.init(MediaPlayer.java:467)
... 3 more

Ah, this has to do with a difference between Linux' and Windows file systems...
Give me some time to figure that out and I'll see if I can send you a fixed demo.

Oh, I recognize you.

The demo looks promising so far, though the return of the cheeto lasers is pretty ominous. Hoping for more!

Glad you like it, and the cheetos lasers were requested heavily, so I added them

ShadowNCS

  • Prinny Overlord
  • Highly Responsive to Jinxes
Re: All Star Remake & Java Danmaku Engine
« Reply #4 on: October 26, 2014, 11:49:52 PM »
Oh, so you've been quite diligent during the time you've been absent.
Nice to see your project making progress. ^^

I played your new demo. It looks great so far. ^^
I see you're using Json to store your config data. Did you use Gson for persistence, or did you write something yourself?

You had a lot of fun with the credits, didn't you? ^^

I loved how the fairies fire projectiles with the beat of the song. Nice touch! ^^
... But I just noticed that your "Give up and retry" option just deletes everything on screen, but doesn't really restart... I think you broke something there. xD;
But speaking of broken (uh oh), in your spell practice menu, the back button doesn't work at times and I need to press it multiple times until I can actually go back to the days selection. And even then, I sometimes automatically start Day 8 when I select that day, rather than being able to choose who I want to fight. Don't know what is causing that, but it's there.

Um... okay, I seem to find all the bugs now. xD
So, retrying, then leaving the level and re-entering it causes... weird effects.
And I've got a video of it! :D
And then, the game suddenly crashed, with only the music remaining. Weird.


From time to time, retrying and returning to title crashes the game.
According to the console, it's a ConcurrentModificationException.
http://puu.sh/crS43.png
Those usually happen when you try to write (or delete) and read a List at the same time.
Happened to me quite a bit as well. A CopyOnWriteArrayList can help with that problem, but, since a lot of copying is involved, can make the game slower (it hasn't affected my game by much, even though I use that kind of list for my projectiles (and every other kind of object)).

The background does not reset upon returning to the main menu.


Okay, enough of the bugs. I don't want to sound too negative (too late).
Aside the technical bugs, the rest of your game looks really good, pattern-wise as well as graphics-wise (I really need to learn OpenGL from the looks of it). ^^

Regarding Shou's patterns, I find her non-spell far more difficult than her actual spell card. xD;
Probably because the curved lasers are far more prominent in the non-spell.
But I really like the idea behind Shou's spell. Nice job on that. ^^

Ah, and before I forget it, was it intended that that Shinki's lasers during Devil's Recitation are so wavy at the top?

Anyway, great job on your engine and the game!

LunaWillow

  • >Everyone: Pose as a team
  • The world is real.
Re: All Star Remake & Java Danmaku Engine
« Reply #5 on: October 29, 2014, 05:55:51 PM »
I'd love to play it, but sadly, MediaFire seems to not load for me.
Normal 1cc: EoSD, PCB, IN, PoFV, MoF, SA, UFO, TD, DDC, HSiFS
Hard 1cc: PoFV
Extra Clear: PCB, IN, PoFV, MoF
Other Stuff: ISC all clear

Sage Ω (Ultima)

  • CEO at Team Eternal Desire
  • ??? X
Re: All Star Remake & Java Danmaku Engine
« Reply #6 on: October 31, 2014, 04:13:16 AM »
I haven't played it (yet), but by watching the video, there seems to be some kind of potential. If I can point out the most major flaw it would be the danmaku and your poor usage of sound effects.

I don't want to sound mean but the stage needs alot of work, it looks put together in one try, there's also the lack of enemy variety (everything is just blue fairies?). Alot of the bosses seem to have patterns derived from the character's original patterns with not alot of originality put in it, such as when you copied mokou's spell from Yuke's All Star (which wasn't really all that to begin with and was more of a joke than anything else). Other moments when the danmaku isn't inspired, its probably unfair, and doesn't look like it was designed for anything except show rather than someone playing and enjoying the fight (Gengetsu and Mungetsu).

I also want to discuss how you shouldn't use just any sound effect you please for danmaku. The enemy death sound being played for every bullet shot during a pattern is incredibly annoying. You generally want to stay within the 6 to 8 shot sounds zun uses, or you can adapt from other games such as CtC.

In other words, I think it would benefit not only you, but the players especially, if you were to take a moment and focus on the gameplay aspect alittle more. Aesthetics such as the bgs and other effects are really nicely done but in all honesty it seems to me like its the only thing you really put effort into.

So with all that being said, I hope you take this into consideration and the next demo or video showcases better danmaku. A game isn't good just because it can produce pretty pictures, there needs to be an established equilibrium of Gameplay, Visual, and Sound. Right now, you have visuals on point.

Like I said at the beginning of this post, there's some potential, so don't let this negativity get you discouraged. Good Luck.

FlamingRok

  • Rena is pleased with your efforts.
Re: All Star Remake & Java Danmaku Engine
« Reply #7 on: November 01, 2014, 06:06:19 PM »
I loved how the fairies fire projectiles with the beat of the song.

I also adore this little touch, however the bullets that are just clumped together when the fairies shoot just look ugly. Also, I know that this is still a WIP, but the lack of a HUD really bothers me (once again, I realize this is a WIP, and will probably be included sometime later, just a personal thing). I can also agree that you need some more enemy variety. In the entire stage, there was I believe one phantom, and many MANY blue fairies.

I look forward to the future of this project, but I can't quite fully enjoy it in it's current state.

Re: All Star Remake & Java Danmaku Engine
« Reply #8 on: November 06, 2014, 12:24:57 PM »
So sorry for the late replies!

Oh, so you've been quite diligent during the time you've been absent.
Nice to see your project making progress. ^^

I played your new demo. It looks great so far. ^^
I see you're using Json to store your config data. Did you use Gson for persistence, or did you write something yourself?

You had a lot of fun with the credits, didn't you? ^^

I loved how the fairies fire projectiles with the beat of the song. Nice touch! ^^
... But I just noticed that your "Give up and retry" option just deletes everything on screen, but doesn't really restart... I think you broke something there. xD;
But speaking of broken (uh oh), in your spell practice menu, the back button doesn't work at times and I need to press it multiple times until I can actually go back to the days selection. And even then, I sometimes automatically start Day 8 when I select that day, rather than being able to choose who I want to fight. Don't know what is causing that, but it's there.

Um... okay, I seem to find all the bugs now. xD
So, retrying, then leaving the level and re-entering it causes... weird effects.
And I've got a video of it! :D
And then, the game suddenly crashed, with only the music remaining. Weird.


From time to time, retrying and returning to title crashes the game.
According to the console, it's a ConcurrentModificationException.
http://puu.sh/crS43.png
Those usually happen when you try to write (or delete) and read a List at the same time.
Happened to me quite a bit as well. A CopyOnWriteArrayList can help with that problem, but, since a lot of copying is involved, can make the game slower (it hasn't affected my game by much, even though I use that kind of list for my projectiles (and every other kind of object)).

The background does not reset upon returning to the main menu.


Okay, enough of the bugs. I don't want to sound too negative (too late).
Aside the technical bugs, the rest of your game looks really good, pattern-wise as well as graphics-wise (I really need to learn OpenGL from the looks of it). ^^

Regarding Shou's patterns, I find her non-spell far more difficult than her actual spell card. xD;
Probably because the curved lasers are far more prominent in the non-spell.
But I really like the idea behind Shou's spell. Nice job on that. ^^

Ah, and before I forget it, was it intended that that Shinki's lasers during Devil's Recitation are so wavy at the top?

Anyway, great job on your engine and the game!

Ah, yeah, I've had some trouble with the menu's for a bit now, and I might have messed something up just before releasing it, my bad!
That same issue is with the spell practise menu, lol.
The problem is that in the current system, key-pressed can be passed on for quite some time and result in menu's opening and multiplicating like bacteria.
Don't worry though, I managed to fix the issue somewhere last week, it'll be good in the next demo.

I've got to say, that video made my laugh my ass off when I viewed it yesterday, I'm like "shit, this is my work", and "shit, that's a funny overlap".
I'll definitely needed to get those menu's fixed before releasing.

That error is also related to the menu's I'm afraid, I'm (unintentionally) trying to delete the stage while the stage is being read. But also on my to fix list. (I have used CopyOnWriteArrayLists in the past, but for a reason I can't recall atm, I switched back)

The background resetting is because the game doesn't yet reset it's internal tick loop for every stage, so it's practically starting at the end, on my to do list :P

Shou's non-spell is really easy once you figure out the lasers pattern, it's completely static, you can always know where a laser is going to go after the like 1 second idle time before they go completely out, doing that leaves only not getting caught and the expanding circle of orbs.
I can't take any credit aside from some changes though, that card is from yuke's All Star.

It was an unintended side effect of a boss aura I implemented, but because that aura proved very intensive I've removed it for now :(

I haven't played it (yet), but by watching the video, there seems to be some kind of potential. If I can point out the most major flaw it would be the danmaku and your poor usage of sound effects.

I don't want to sound mean but the stage needs alot of work, it looks put together in one try, there's also the lack of enemy variety (everything is just blue fairies?). Alot of the bosses seem to have patterns derived from the character's original patterns with not alot of originality put in it, such as when you copied mokou's spell from Yuke's All Star (which wasn't really all that to begin with and was more of a joke than anything else). Other moments when the danmaku isn't inspired, its probably unfair, and doesn't look like it was designed for anything except show rather than someone playing and enjoying the fight (Gengetsu and Mungetsu).

I also want to discuss how you shouldn't use just any sound effect you please for danmaku. The enemy death sound being played for every bullet shot during a pattern is incredibly annoying. You generally want to stay within the 6 to 8 shot sounds zun uses, or you can adapt from other games such as CtC.

In other words, I think it would benefit not only you, but the players especially, if you were to take a moment and focus on the gameplay aspect alittle more. Aesthetics such as the bgs and other effects are really nicely done but in all honesty it seems to me like its the only thing you really put effort into.

So with all that being said, I hope you take this into consideration and the next demo or video showcases better danmaku. A game isn't good just because it can produce pretty pictures, there needs to be an established equilibrium of Gameplay, Visual, and Sound. Right now, you have visuals on point.

Like I said at the beginning of this post, there's some potential, so don't let this negativity get you discouraged. Good Luck.

The stage is WIP, just released in it's most basic version so it showcases the idea and the more important parts of the day, the characters.
Blue fairy is the first and only stage entity I implemented so far, so that's why, hahaha.

You shouldn't take the videos as a benchmark for the cards anymore, I've realized a while back that cards were that way, and turned down most oppressive cards over time.
The point of the game is also to honor the characters from the games, so naturally they will contain quite a lot of elements from their previous cards.
And I've said before that not taking cards directly from yuke's all star would probably increase the time to make the whole game with like 2 years, I have life/job/school though, so that's not an option, plus I think those cards suffice well enough.

I'll look at the sound effects, but you're actually the first person ever to mention this, even I don't get distracted by them.
Spellcard quality is something that's heavily on the design side, and I've said before that I'm not a design guy, but heavily an engineering guy, but if anybody's interested in helping to make better cards, I'm all ears.
I always strife to make better spellcards, but they're just outside my ability border.

Thanks for your feedback though, I'll try to do something with it :)

I also adore this little touch, however the bullets that are just clumped together when the fairies shoot just look ugly. Also, I know that this is still a WIP, but the lack of a HUD really bothers me (once again, I realize this is a WIP, and will probably be included sometime later, just a personal thing). I can also agree that you need some more enemy variety. In the entire stage, there was I believe one phantom, and many MANY blue fairies.

I look forward to the future of this project, but I can't quite fully enjoy it in it's current state.

The game won't actually get a hud :P Aside from a few aesthetics for the score and deaths taken.
It's part of the idea behind this game.

In case you missed what I said above, the blue fairies are placeholders.

I guess I need to give those bullets an order to draw, so that they look better.

Ozzy

  • Veteran Danmakufu Scripter
  • Currently working on a full Touhou fangame!
Re: All Star Remake & Java Danmaku Engine
« Reply #9 on: November 06, 2014, 03:33:06 PM »
Also, I know that this is still a WIP, but the lack of a HUD really bothers me (once again, I realize this is a WIP, and will probably be included sometime later, just a personal thing).

The fact that you're wondering why there isn't a HUD makes me wonder if you're familiar with the source material.

He's basing it off of this, more or less.

Failure McFailFace

  • I'm h...a...p...p...y...
  • Impor
Re: All Star Remake & Java Danmaku Engine
« Reply #10 on: November 13, 2014, 08:02:51 PM »
Whoop, bug report!

Right after Yuki and Mai:

Code: [Select]
java.lang.NullPointerException
        at java2hu.util.BossUtil$4.onDraw(BossUtil.java:571)
        at java2hu.object.StageObject.draw(StageObject.java:255)
        at java2hu.J2hGame.render(J2hGame.java:839)
        at java2hu.allstar.AllStarGame.render(AllStarGame.java:107)
        at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:206)
        at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114)
1cc Easy: DDC (all) | 1cc Normal: UFO (SanA autobomb),  DDC (ReiA, SakA) , LoLK (Sanae PD)| EX clears: DDC (MarB Ultra) | Puzzle Games: StB: 10-X, DS: Hatate unlock, ISC: All clear

Re: All Star Remake & Java Danmaku Engine
« Reply #11 on: December 16, 2014, 07:14:28 PM »
First of all, this game is great!
It doesn't lag on my crappy computer + The danmaku patterns are pretty awesome  :D

So, the game crashed after I defeated Mai. Somewhere during the phase where the screen turns white in a cool pattern.
Also, when I run the .jar file, the menu shows up but if I don't deselect the right hand bottom corner option, (The one that says "Show on startup")
the game just won't start. (P.S  I set the "Samples" to 0, just in case that's somewhat important, and my resolution was 1366x768 with fullscreen)

Is there a way to turn down the ingame sounds a little? I can't hear the epic music!  ;)