Author Topic: A replacement for Danmakufu?  (Read 245528 times)

Re: A replacement for Danmakufu?
« Reply #510 on: February 05, 2010, 11:08:52 AM »
I tried running it, all i get is a blue screen, even after i installed SDL.NET.
I don?t get it... why isn?t it working?

Nuclear Cheese

  • Relax and enjoy the danmaku.
    • My homepage
Re: A replacement for Danmakufu?
« Reply #511 on: February 05, 2010, 05:17:49 PM »
I tried running it, all i get is a blue screen, even after i installed SDL.NET.
I don?t get it... why isn?t it working?

"Blue screen" as in your computer goes boom and crashes (would be very bad), or the window pops up and stays blue?

I should note that the window turns solid blue when it first comes up, while it's loading the initial data.  It should cut to the menu after a few seconds (how long exactly depends on your computer's specs and what else is running at the time).
If the window just stays solid blue, then it could be a bug.

Please try the following steps to get a debug log file:

  • Create a shortcut to the Musuu no Danmaku executable, in the same directory
  • Edit the shortcut, and add "-l" (that's a lowercase L; don't include quotes) after the program executable name, with a space to separate the program name with the "-l".
  • Run the program using the shortcut.
  • Once you're sure the program has stalled (make sure to give it at least like 10-15 seconds, just to be certain), close the program.
  • Look for a new text file in the program's directory - it'll be named something to the effect of "Musuu no Danmaku Log <year> <month> <day>.txt" - this is the log file that was just created.  Post the contents of this logfile so I can see how far the program is getting and/or any errors that could be occuring.
to quote Naut:
"I can see the background, there are too many safespots."
:V

Re: A replacement for Danmakufu?
« Reply #512 on: February 05, 2010, 06:11:17 PM »
Code: [Select]
Musuu no Danmaku version 0.1.3683.32116
Starting logging file ...
2010 Feb 05 19:08:17.548 - Reading config file ...
2010 Feb 05 19:08:17.618 - Finished reading config file.
2010 Feb 05 19:08:17.618 - Initializing engine ...
2010 Feb 05 19:08:17.669 - Initializing graphics: 800x600 windowed, hardware surfaces enabled
2010 Feb 05 19:08:20.804 - Initializing font ...
2010 Feb 05 19:08:20.838 - Error during initialization: Die DLL "freetype6.dll": Das angegebene Modul wurde nicht gefunden. (Ausnahme von HRESULT: 0x8007007E) kann nicht geladen werden.
Stack trace:
   bei Tao.FreeType.FT.FT_Init_FreeType(IntPtr& alibrary)
   bei Musuu_no_Danmaku.Font.Init_Font()
   bei Musuu_no_Danmaku.Graphics.Initialize()
   bei Musuu_no_Danmaku.Program.Main(String[] args)

The program will close now.

did you forget to update your zip?
because it seems that a certian DLL is still missing.
« Last Edit: February 05, 2010, 06:13:47 PM by By »

Nuclear Cheese

  • Relax and enjoy the danmaku.
    • My homepage
Re: A replacement for Danmakufu?
« Reply #513 on: February 05, 2010, 07:52:28 PM »
Code: [Select]
Musuu no Danmaku version 0.1.3683.32116
Starting logging file ...
2010 Feb 05 19:08:17.548 - Reading config file ...
2010 Feb 05 19:08:17.618 - Finished reading config file.
2010 Feb 05 19:08:17.618 - Initializing engine ...
2010 Feb 05 19:08:17.669 - Initializing graphics: 800x600 windowed, hardware surfaces enabled
2010 Feb 05 19:08:20.804 - Initializing font ...
2010 Feb 05 19:08:20.838 - Error during initialization: Die DLL "freetype6.dll": Das angegebene Modul wurde nicht gefunden. (Ausnahme von HRESULT: 0x8007007E) kann nicht geladen werden.
Stack trace:
   bei Tao.FreeType.FT.FT_Init_FreeType(IntPtr& alibrary)
   bei Musuu_no_Danmaku.Font.Init_Font()
   bei Musuu_no_Danmaku.Graphics.Initialize()
   bei Musuu_no_Danmaku.Program.Main(String[] args)

The program will close now.

did you forget to update your zip?
because it seems that a certian DLL is still missing.

Yeah, freetype6.dll ... Prime2.0 also found that I had forgot to include it.  You can google for a download for it.  Just throw it in the same directory and it should work.

I have to head out soon, but if I remember I'll update the test build to add the dll (and post here to indicate I did so).


One more question though - the way you described it, were you indicating that the program doesn't close on its own when it is erroring?  If so, that's something that needs to be fixed.
to quote Naut:
"I can see the background, there are too many safespots."
:V

Re: A replacement for Danmakufu?
« Reply #514 on: February 05, 2010, 08:10:25 PM »
One more question though - the way you described it, were you indicating that the program doesn't close on its own when it is erroring?  If so, that's something that needs to be fixed.

It just shows a blue screen and then closes on it?s own. It would be helpful to get a "DLL-Missing" box, kinda like the Touhou games have.

EDIT: got the .dll now.
It would be kinda helpful if there was an .html file whice has all the functions explained...
because i don?t know whice of these things does what, and i don?t feel like searching for them on the 17 pages of this topic (18th page not counted as there aren?t any informative posts here, yet)

EDIT?: oh btw... i just made the first (to my knowledge) customed character in the history of Musuu no Danamku.
Download here!(link removed, due to updated version - keep on reasing through this topic and you will find it...)
Zip includes: player script(of course), shot(:V) and sprite(whice looks messed up inside the program for some wierd reason).

EDIT?: also... i noticed (while playing around and making a script on my own) that, depeding on how much there is on the screen it slows down and that INCLUDES the text function (especially the amount of letters used in them). hopefully it is just my computer...
« Last Edit: February 07, 2010, 09:43:34 AM by By »

PT8Sceptile

  • All hail Giant Catfish!
Re: A replacement for Danmakufu?
« Reply #515 on: February 06, 2010, 11:08:46 AM »
EDIT?: also... i noticed (while playing around and making a script on my own) that, depeding on how much there is on the screen it slows down and that INCLUDES the text function (especially the amount of letters used in them). hopefully it is just my computer...

Yes. The program starts to slow down at certain object amounts, which due to the code not being optimized enough are somewhat low (for bullet hell standards). For me it's about 1000 objects onscreen on my newer computer and about 500 on an older one. A major part of this is most probably the still-unoptimized collision checking, since the slowdown stops whenever the player character dies, even if I don't set the code to clear the bullets upon death, but also starts up again when the player character respawns. Danmakufu has similar limits, but only much higher (about 4000 small bullets on my newer computer). I haven't tried text drawing functions yet but I do know they cause higher amounts of slowdown than ordinary images, since the same happens with Danmakufu, too.

This however does prove that the collision checking code (and possibly even other parts of the program like graphics rendering) are in need of optimization. I assume this will be done once the initial features are added in and the developers can start planning on releasing a stable release.

Also, concerning these "initial features", could it be useful to piece together a to-do list on whatever should be finished before the initial "stable" release, or possibly even the releases afterwards. There's been a lot of suggestions flying around in this topic but one has yet to gather them together in a single list. It could help people get an idea on what still has to be done, and having one for the initial release could help developers to decide on when to stop adding features and start fleshing out the program (more user-friendly error handling, code optimization and stuff like that). Then, after the program has a stable user-friendly release, all the useful extra features that aren't necessary for the first release could be added in.

Re: A replacement for Danmakufu?
« Reply #516 on: February 06, 2010, 07:07:23 PM »
Oh yeah -- after fooling around with SimSynth a bit, I have managed to produce an SFX which is almost, but not quite, enturely unlike the Touhou death SFX.
Found it!

And here's a sort-of spellcard sound and a mediocre charge-up sound.
« Last Edit: February 06, 2010, 07:22:34 PM by KimikoMuffin »

Re: A replacement for Danmakufu?
« Reply #517 on: February 06, 2010, 09:19:26 PM »
here's a sort-of spellcard sound and a mediocre charge-up sound.

SCARD.wav sounds like the spell finishes.
CHARGEUP.wav sounds kinda accaptable through very basic.
Spoooon.ogg sounds kinda like the megaman death sound from Megaman, only unlooped.

Nuclear Cheese

  • Relax and enjoy the danmaku.
    • My homepage
Re: A replacement for Danmakufu?
« Reply #518 on: February 06, 2010, 11:47:09 PM »
It just shows a blue screen and then closes on it?s own. It would be helpful to get a "DLL-Missing" box, kinda like the Touhou games have.

Okay, at least it's working as it's currently intended to.

Popping up a message box is trickier than you probably think, since it's pretty API-specific (for instance, there is a Windows-specific MessageBox function), and one of the main goals of this project is to keep it able to run on multiple platforms (with minimal, if any special-case code).

Also, this is a generic error-catch, so it's not just there for a missing DLL, but any possible error during initialization.  This could include missing font file, missing necessary graphics, etc.

Any suggestions on a better way to indicate a statup error?

Pre-Post EDIT:

MediaFire cooperated enough for me to download this.  Looks like the graphical weirdness is due to the smoothing that is applied to graphics in the game.  Perhaps we need to add an option to disable said smoothing on certain graphics?

It might be fixable in the image file, though.  I pulled your image up in GIMP, and noticed that all of the pixels in the transparent areas are white.  This makes the smoothing function fade the edges to white.  You can recolor this invisible area to better fit the borders of your image, and that makes it look a bit better (in my view, at least).

PS - a couple comments on your script (not being mean, just some hints and possible improvements):
  • Not sure if it's intended or not, but you make no reference to Hitbox.png
  • You're not correctly reassigning the player sprite to danielu2.png, so that image is never shown either.  You need to call SetImage again with the new image name; simply reassigning the variable player won't work.
    Also, you might want to take the image assignment outside of the if statement, so that the image will reassign even if the player isn't firing.

Pretty good for a first try with crap documentation, though. ;)



EDIT: got the .dll now.
It would be kinda helpful if there was an .html file whice has all the functions explained...
because i don?t know whice of these things does what, and i don?t feel like searching for them on the 17 pages of this topic (18th page not counted as there aren?t any informative posts here, yet)

SonicBHOC is going to start putting together some documentation for this project.  I've been in contact with him via email.

In the meantime, unfortunately there isn't any decent documentation yet.  This is still a pretty new, work-in-progress project, so we haven't got everything fleshed out yet.  Sorry for the inconvenience.



EDIT?: oh btw... i just made the first (to my knowledge) customed character in the history of Musuu no Danamku.
Download here!
Zip includes: player script(of course), shot(:V) and sprite(whice looks messed up inside the program for some wierd reason).

I would have downloaded and checked this out, but MediaFire hates me.

Could you describe/show what you mean by the sprite looking messed up in the program?  It might be a bug in the graphics code.



EDIT?: also... i noticed (while playing around and making a script on my own) that, depeding on how much there is on the screen it slows down and that INCLUDES the text function (especially the amount of letters used in them). hopefully it is just my computer...

Yes. The program starts to slow down at certain object amounts, which due to the code not being optimized enough are somewhat low (for bullet hell standards). For me it's about 1000 objects onscreen on my newer computer and about 500 on an older one. A major part of this is most probably the still-unoptimized collision checking, since the slowdown stops whenever the player character dies, even if I don't set the code to clear the bullets upon death, but also starts up again when the player character respawns. Danmakufu has similar limits, but only much higher (about 4000 small bullets on my newer computer). I haven't tried text drawing functions yet but I do know they cause higher amounts of slowdown than ordinary images, since the same happens with Danmakufu, too.

This however does prove that the collision checking code (and possibly even other parts of the program like graphics rendering) are in need of optimization. I assume this will be done once the initial features are added in and the developers can start planning on releasing a stable release.

Correct, there is still some decent amounts of optimization to do in the collision detection code.  Specifically, in the code that decides what particular pairs of objects need to be collision-checked.

With the sheer number of objects on screen, it would be CPU suicide to collision-check every possible pair of objects, especially when so many potential collisions don't even yield anything important (two enemy bullets collided?  WHOOP-DE-FREAKIN'-DOO ...).  The code instead has code to build a list of what object pairs would actually have some meaning if they collide, and then uses that list to run collision detection.

The main issue right now is that the program dynamically rebuilds the list each frame, which is certainly not very efficient (but less prone to stupid errors in the code).  So, yeah, I'm gonna have to go back and optimize it at some point.



Also, concerning these "initial features", could it be useful to piece together a to-do list on whatever should be finished before the initial "stable" release, or possibly even the releases afterwards. There's been a lot of suggestions flying around in this topic but one has yet to gather them together in a single list. It could help people get an idea on what still has to be done, and having one for the initial release could help developers to decide on when to stop adding features and start fleshing out the program (more user-friendly error handling, code optimization and stuff like that). Then, after the program has a stable user-friendly release, all the useful extra features that aren't necessary for the first release could be added in.

This is probably a good idea.  Admittedly, I tend to be a bit disorganized with my projects. :V



Found it!

And here's a sort-of spellcard sound and a mediocre charge-up sound.

More MediaFire links.  Dammit.

Pre-Post EDIT:
MediaFire is actually cooperating with me?  Wow.

These effects remind me of stuff from the Atari era of video game consoles (not a bad thing!).  We can use these, at least as samples to throw in the test releases.

I'm kinda intrigued as to why SCARD and CHARGEUP are in WAV format, while Spooon is in OGG ...





Unfortunately, this weekend is pretty much shot for progress, since I'm busy.  Next weekend is looking iffy as well.
I really hate having to bum out on working on this, but unfortunately sometimes this "real life" thing just gets in the way.* >__>
(* See also - almost every weekday of the past five-or-so months <__<)

At least there's Test release 4.1.
Just added in the missing .dll file.
to quote Naut:
"I can see the background, there are too many safespots."
:V

Re: A replacement for Danmakufu?
« Reply #519 on: February 07, 2010, 12:59:09 AM »
I'm kinda intrigued as to why SCARD and CHARGEUP are in WAV format, while Spooon is in OGG ...
Um ... because I forgot I'd converted spoon into OGG before. |3

Re: A replacement for Danmakufu?
« Reply #520 on: February 07, 2010, 02:12:33 AM »
At least there's Test release 4.1.
Just added in the missing .dll file.

I tried this, but I'm still getting a window to pop up with a blue background, then it closes (on linux). Maybe I need freetype6.dll.config? I can't seem to find it anywhere though. I did copy the other .config files for the tao framework though.

Nuclear Cheese

  • Relax and enjoy the danmaku.
    • My homepage
Re: A replacement for Danmakufu?
« Reply #521 on: February 07, 2010, 05:36:55 AM »
I tried this, but I'm still getting a window to pop up with a blue background, then it closes (on linux). Maybe I need freetype6.dll.config? I can't seem to find it anywhere though. I did copy the other .config files for the tao framework though.

What's the logfile say?

I don't think the .config files are necessary, to be honest, but if everything else fails it might be worth a try.
to quote Naut:
"I can see the background, there are too many safespots."
:V

Re: A replacement for Danmakufu?
« Reply #522 on: February 07, 2010, 09:23:03 AM »
PS - a couple comments on your script (not being mean, just some hints and possible improvements):
  • Not sure if it's intended or not, but you make no reference to Hitbox.png
  • You're not correctly reassigning the player sprite to danielu2.png, so that image is never shown either.  You need to call SetImage again with the new image name; simply reassigning the variable player won't work.
    Also, you might want to take the image assignment outside of the if statement, so that the image will reassign even if the player isn't firing.
I accidentaly added Hitbox.png in there, sorry.
I tried to make the second sprite appear in many different ways, this was one of the only things that worked and didn?t crash the program.
I put it here:
Code: [Select]
   tick
   {
      count = count-1;
      SetImage(player, true, 20);
      if (count <= 0 && GetKeyState(key_shot))
      {
and it crashes, as soon as i call the playerscript.

EDIT: After some playing around with the script, i got it to work but i don?t know how...
Code: [Select]
//set variable to unfocused sprite here
         player = "danielu.png"
         if (GetKeyState(key_focus))
         {
//set variable to focused sprite here
player = "danielu2.png"
         }
SetImage(player, true, 20);

will update the scriptfile now and re-upload it.

EDIT2: Download my MusuuNoDanmaku Character, whice nobody will care of anymore, as it has nothing special to it.
« Last Edit: February 07, 2010, 10:45:00 AM by By »

PT8Sceptile

  • All hail Giant Catfish!
Re: A replacement for Danmakufu?
« Reply #523 on: February 07, 2010, 10:08:04 AM »
Oh, in case we're uploading our player characters:

PT8's awesomeface character you may have seen already in this thread.

Features respawning (it has infinite lives as of now, I planned on implementing a life counter but I'm currently too lazy for that), visible hitbox (both when focused and unfocused), initial invincibility upon respawning and options. The sprite and the options aren't made by me, but the shots and the hitbox are. Also comes with a custom death SFX I made that may be reused as you see fit.

Nuclear Cheese

  • Relax and enjoy the danmaku.
    • My homepage
Re: A replacement for Danmakufu?
« Reply #524 on: February 07, 2010, 10:30:25 AM »
I accidentaly added Hitbox.png in there, sorry.
I tried to make the second sprite appear in many different ways, this was one of the only things that worked and didn?t crash the program.
I put it here:
Code: [Select]
   tick
   {
      count = count-1;
      SetImage(player, true, 20);
      if (count <= 0 && GetKeyState(key_shot))
      {
and it crashes, as soon as i call the playerscript.

EDIT: After some playing around with the script, i got it to work but i don?t know how...
Code: [Select]
//set variable to unfocused sprite here
         player = "danielu.png"
         if (GetKeyState(key_focus))
         {
//set variable to focused sprite here
player = "danielu2.png"
         }
SetImage(player, true, 20);

will update the scriptfile now and re-upload it.

EDIT2: Download the first MusuuNoDanmaku Character that has an visable hitbox if focused.

The problem with your first example is that you don't define the variable player.  Unless you've defined it as an object or global variable, a variable is local scope and "disappears" as soon as that particular script finishes executing.  Danmakufu does this similarly, except that Danmakufu still requires you to explicitly declare local variables.

In your second example, you define the player variable right within the scope of the tick function, so when you go to use it, it's got a value in it.

This is certainly, at least partly, due to a lack of documentation as well as the currently crap error reporting that MnD has.


PS - Hate to bust your proverbial bubble, but I think PT8Sceptile beat you to the "MnD player with a visible hitbox when focused" thing when he gave :awesome: a nose. :V



Oh, in case we're uploading our player characters:

PT8's awesomeface character you may have seen already in this thread.

Features respawning (it has infinite lives as of now, I planned on implementing a life counter but I'm currently too lazy for that), visible hitbox (both when focused and unfocused), initial invincibility upon respawning and options. The sprite and the options aren't made by me, but the shots and the hitbox are. Also comes with a custom death SFX I made that may be reused as you see fit.

... speaking of :awesome: ...
to quote Naut:
"I can see the background, there are too many safespots."
:V

Re: A replacement for Danmakufu?
« Reply #525 on: February 07, 2010, 10:38:32 AM »
[...] PT8Sceptile beat you to the "MnD player with a visible hitbox when focused" thing [...]

crud...
At least i have the Power of brofists on my side.

EDIT: I made some spellcards out of boredom.
« Last Edit: February 07, 2010, 11:18:47 AM by By »

SupahVee1234

  • Koishi isn't cute
  • would you like some deathbomb
Re: A replacement for Danmakufu?
« Reply #526 on: February 07, 2010, 12:55:10 PM »
Anyway, I'm interested in how your scripting engine works... Will you release the source code, or at least the scripting language part of the source code?

PT8Sceptile

  • All hail Giant Catfish!
Re: A replacement for Danmakufu?
« Reply #527 on: February 07, 2010, 01:54:36 PM »
Anyway, I'm interested in how your scripting engine works... Will you release the source code, or at least the scripting language part of the source code?

The source code has been released for a while in the Google Code repository. Also, the program apparently uses a tool called ANTLR to translate the scripting language into a simpler language it can read, so researching that might also have some advantages in understanding the grammar file of the program (or more like may be necessary to understand it, since I can understand the rest of the code with no prior C# experience but can't figure out how the grammar file works at all since I haven't studied how ANTLR works).
« Last Edit: February 07, 2010, 01:56:38 PM by PT8Sceptile »

Nuclear Cheese

  • Relax and enjoy the danmaku.
    • My homepage
Re: A replacement for Danmakufu?
« Reply #528 on: February 08, 2010, 03:04:45 AM »
The source code has been released for a while in the Google Code repository. Also, the program apparently uses a tool called ANTLR to translate the scripting language into a simpler language it can read, so researching that might also have some advantages in understanding the grammar file of the program (or more like may be necessary to understand it, since I can understand the rest of the code with no prior C# experience but can't figure out how the grammar file works at all since I haven't studied how ANTLR works).

To clarify on ANTLR:

ANTLR is a program that takes a grammar and translates it into code that reads said grammar.

The grammar file specifies the format and structure of the script language being read, as well as what snippets of code to run when it finds certain strucutures.

In the case of Musuu no Danmaku, the grammar specifies the syntax of mdScript, and translates each possible command into an equivalent set of mdBase commands for the actual script engine to parse.


You can check the ANTLR site for some more info.
Specifically, this project uses ANTLR version 3.



EDIT: I made some spellcards out of boredom.

Apparently, the secret to getting MediaFire to cooperate is to just keep clicking the link until it works right >__>
Some niffy stuff here, even if a bit simple.  Nice to see some legit danmaku in the program.



EDIT:

Just as a performance guage, as long as I have nothing else major running (I'm looking at you, FireFox!), these scripts all run without slowdown on my desktop:

AMD Sempron 3000+ (or was it 3300+)
1GB RAM
ATI Radeon HD2600XT 512MB
« Last Edit: February 08, 2010, 03:51:31 AM by Nuclear Cheese »
to quote Naut:
"I can see the background, there are too many safespots."
:V

Re: A replacement for Danmakufu?
« Reply #529 on: February 08, 2010, 04:14:39 AM »
What's the logfile say?

I don't think the .config files are necessary, to be honest, but if everything else fails it might be worth a try.

Code: [Select]
Musuu no Danmaku version 0.1.3683.32116
Starting logging file ...
2010 Feb 07 23:12:25.936 - Reading config file ...
2010 Feb 07 23:12:25.965 - Finished reading config file.
2010 Feb 07 23:12:25.966 - Initializing engine ...
2010 Feb 07 23:12:26.082 - Initializing graphics: 800x600 windowed, hardware surfaces enabled
2010 Feb 07 23:12:27.409 - Initializing font ...
2010 Feb 07 23:12:27.443 - Error during initialization: freetype6.dll
Stack trace:
  at (wrapper managed-to-native) Tao.FreeType.FT:FT_Init_FreeType (intptr&)
  at Musuu_no_Danmaku.Font.Init_Font () [0x00000]
  at Musuu_no_Danmaku.Graphics.Initialize () [0x00000]
  at Musuu_no_Danmaku.Program.Main (System.String[] args) [0x00000]

The program will close now.

As I suspected, it has to do with freetype6.dll...

Nuclear Cheese

  • Relax and enjoy the danmaku.
    • My homepage
Re: A replacement for Danmakufu?
« Reply #530 on: February 09, 2010, 03:25:15 AM »
Code: [Select]
Musuu no Danmaku version 0.1.3683.32116
Starting logging file ...
2010 Feb 07 23:12:25.936 - Reading config file ...
2010 Feb 07 23:12:25.965 - Finished reading config file.
2010 Feb 07 23:12:25.966 - Initializing engine ...
2010 Feb 07 23:12:26.082 - Initializing graphics: 800x600 windowed, hardware surfaces enabled
2010 Feb 07 23:12:27.409 - Initializing font ...
2010 Feb 07 23:12:27.443 - Error during initialization: freetype6.dll
Stack trace:
  at (wrapper managed-to-native) Tao.FreeType.FT:FT_Init_FreeType (intptr&)
  at Musuu_no_Danmaku.Font.Init_Font () [0x00000]
  at Musuu_no_Danmaku.Graphics.Initialize () [0x00000]
  at Musuu_no_Danmaku.Program.Main (System.String[] args) [0x00000]

The program will close now.

As I suspected, it has to do with freetype6.dll...

Huh.  Strange that it doesn't give any more information.  I'm not sure what to suggest at the moment. :-\
to quote Naut:
"I can see the background, there are too many safespots."
:V

Re: A replacement for Danmakufu?
« Reply #531 on: February 10, 2010, 10:14:13 PM »
So, I tried to create a danmaku in Musuu no Danmaku.
And it worked.  It crashed if I tried to play music, but, oh well.

Here it is.  I don't know what it is, but it's there.

Some things that I really hope you add:
  • Some way to get the ids of all objects of a given type (e.g. not just all Effects, but all Effects named "Option")
  • Some way to get the id of the boss
  • Some way to set the hit box of default bullets

All that being said, Musuu no Danmaku is awesome.  Keep up the good work!

(P.S. The music crash didn't bring up anything in the log.  I don't know whats up with that.)

Nuclear Cheese

  • Relax and enjoy the danmaku.
    • My homepage
Re: A replacement for Danmakufu?
« Reply #532 on: February 11, 2010, 02:56:38 AM »
So, I tried to create a danmaku in Musuu no Danmaku.
And it worked.  It crashed if I tried to play music, but, oh well.

Here it is.  I don't know what it is, but it's there.



(P.S. The music crash didn't bring up anything in the log.  I don't know whats up with that.)

I'm on my laptop right now, so I can't check out your script at the moment, unfortunately.


What exactly were you trying when the music command crashed?  Right now the error handling is a bit lax (read: very crappy and almost nonexistant :V), so it isn't to nice about some things.
Also, crash as in the program closes out, or crash as in returns to the menu?  It should do the latter in case of an in-script error.

For the log file, just in case you missed it, you need to add "-l" as a parameter when running the program in order for it to create a log file.

Other things to note about music: right now, it'll error if the indicated music file doesn't actually exist.  Also, MP3 is not supported.  I made a post earlier about what formats are supported, but basically anything SDL supports; I'd recommend OGG.



Some things that I really hope you add:
  • Some way to get the ids of all objects of a given type (e.g. not just all Effects, but all Effects named "Option")

Already there - use the same command, but with the name of a specific object type to get only the IDs of that object type.

Furthermore, you can even get a list of IDs for every object currently existing by passing the command an empty string.



  • Some way to get the id of the boss

You can again use the command that gets a list of object IDs to get this.  Use "Boss" to get the IDs of all possible boss enemies, or the specific name of the boss object's object type to only get the ID of a specific boss type.



  • Some way to set the hit box of default bullets

This is planned, as a bullet definition file, where you can define a bullet by image, hitbox, and a few other basic properties.

Technically, it is possible right now, but you'd have to use mdBase to do it, and I honestly don't recommend it.



All that being said, Musuu no Danmaku is awesome.  Keep up the good work!

Glad to hear the feedback.  I certainly intend to keep pushing this project forward (even if family, friends, and work chew through my time during the week and half the weekend >__>).
to quote Naut:
"I can see the background, there are too many safespots."
:V

Re: A replacement for Danmakufu?
« Reply #533 on: February 11, 2010, 04:13:10 AM »
The particular command that caused the crash was
Code: [Select]
PlaySfx("PlayerDeath.ogg");And it did cause the whole program to quit.  This code is inside of the Awesomeface player character, and the download for that includes "PlayerDeath.ogg".
The error doesn't appear in the log.  However, I do have a whole bunch of weird stuff in the logs, so I'll just show you the log after the crash.  Here you go:
Code: [Select]
Musuu no Danmaku version 0.1.3683.32116
Starting logging file ...
2010 Feb 10 23:09:04.875 - Reading config file ...
2010 Feb 10 23:09:04.937 - Finished reading config file.
2010 Feb 10 23:09:04.937 - Initializing engine ...
2010 Feb 10 23:09:04.984 - Initializing graphics: 800x600 windowed, hardware surfaces enabled
2010 Feb 10 23:09:10.234 - Initializing font ...
2010 Feb 10 23:09:11.125 - Graphics init completed.
2010 Feb 10 23:09:11.125 - Loading script objects ...
2010 Feb 10 23:09:11.359 - Creating new Game object ...
2010 Feb 10 23:09:13.640 - Error building file list: The process cannot access the file 'C:\Documents and Settings\Bille\Desktop\Musuu no Danmaku\Musuu no Danmaku log file starting 2010 Feb 10 2309.txt' because it is being used by another process.
Stack trace:
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
   at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize)
   at System.IO.StreamReader..ctor(String path)
   at Musuu_no_Danmaku.Menu.Fill_In_File_List(Boolean select_players)
2010 Feb 10 23:09:13.750 - Starting main loop ...
2010 Feb 10 23:09:17.406 - Loading script file: TheEnemy.txt
2010 Feb 10 23:09:17.625 - Loaded Object_Type - TheEnemy of type Boss
2010 Feb 10 23:09:17.640 - Loaded Object_Type - EvilShot of type Enemy_Shot
2010 Feb 10 23:09:17.656 - Error building file list: The process cannot access the file 'C:\Documents and Settings\Bille\Desktop\Musuu no Danmaku\Musuu no Danmaku log file starting 2010 Feb 10 2309.txt' because it is being used by another process.
Stack trace:
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
   at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize)
   at System.IO.StreamReader..ctor(String path)
   at Musuu_no_Danmaku.Menu.Fill_In_File_List(Boolean select_players)
2010 Feb 10 23:09:18.390 - Loading script file: Awsumface.txt
2010 Feb 10 23:09:18.390 - Loaded Object_Type - ThePlayer of type Player
2010 Feb 10 23:09:18.390 - Loaded Object_Type - Respawner of type Effect
2010 Feb 10 23:09:18.390 - Loaded Object_Type - Hitbox of type Effect
2010 Feb 10 23:09:18.406 - Loaded Object_Type - LeftOption of type Effect
2010 Feb 10 23:09:18.406 - Loaded Object_Type - RightOption of type Effect
2010 Feb 10 23:09:18.437 - Spawning an object of type TheEnemy as the enemy.
2010 Feb 10 23:09:18.656 - Spawning an object of type ThePlayer as the player.

Other than that, The fact the GetObjectList() works like that is great.  I'll be able to make better options now. 
I'll be off making more weird danmaku then.  Don't work to hard.  You're awesome!

(Oh wait! P.S.!  Is there are rand() function or something.  Because I need a rand() function.  My above script uses the players x location as some sort of hobo's rand(), but a real rand() would super awesome.)

(P.S. II!  I've created a Notepad++ syntax for mdScript, and I can post that too.)
« Last Edit: February 11, 2010, 04:19:03 AM by phi2dao »

Nuclear Cheese

  • Relax and enjoy the danmaku.
    • My homepage
Re: A replacement for Danmakufu?
« Reply #534 on: February 11, 2010, 05:00:51 AM »
The particular command that caused the crash was
Code: [Select]
PlaySfx("PlayerDeath.ogg");And it did cause the whole program to quit.  This code is inside of the Awesomeface player character, and the download for that includes "PlayerDeath.ogg".

Odd ... I haven't tested using OGG for sound effects, but I'm guessing PT8Sceptile had it working if it was included.  I'll try to take a look at this once I get back to my desktop.



The error doesn't appear in the log.  However, I do have a whole bunch of weird stuff in the logs, so I'll just show you the log after the crash.  Here you go:
<t3h log>

Nothing important here.  The only errors it's reporting are when it's grabbing the list of files for the menu - it's trying to check the log file that it's writing.  It's a piece of "dumb" code that shouldn't affect anything aside from having this extra error mentioned here.



(Oh wait! P.S.!  Is there are rand() function or something.  Because I need a rand() function.  My above script uses the players x location as some sort of hobo's rand(), but a real rand() would super awesome.)

Random number functionality is, of course, planned (I did make NTSD, after all), but not yet implemented.



(P.S. II!  I've created a Notepad++ syntax for mdScript, and I can post that too.)

Sounds cool.  I've never used Notepad++, but I hear it has some niffy features.

The basic syntax of mdScript should be pretty much fixed at this point; only things that I can see changing in the near future would be if we add in new keywords.
(Technically, the functions that you call from your scripts aren't defined in mdScript, but rather in an aggregate list of function scripts defined in the program itself.)





Oh, and arcanesign - gave a bit of thought to your weird DLL issue ... are you using the DLL from test release 4.1, or did you download the DLL from somewhere?  That might have something to do with it, if you did grab a different one.
to quote Naut:
"I can see the background, there are too many safespots."
:V

PT8Sceptile

  • All hail Giant Catfish!
Re: A replacement for Danmakufu?
« Reply #535 on: February 11, 2010, 02:01:10 PM »
The particular command that caused the crash was
Code: [Select]
PlaySfx("PlayerDeath.ogg");And it did cause the whole program to quit.  This code is inside of the Awesomeface player character, and the download for that includes "PlayerDeath.ogg".
Odd ... I haven't tested using OGG for sound effects, but I'm guessing PT8Sceptile had it working if it was included.  I'll try to take a look at this once I get back to my desktop.

Yes, I can confirm it's working for me. As long as the file is in the same folder with the game it should play as usual. However, figuring out the problem here might be difficult since it doesn't even leave any traces of an error in the log file. You could of course try out if other sound effects work (possibly something weird happened to the file during upload), if sound effects of other file types such as .wav work and does the same happen with music playing.



Also, as for the To-Do -list for the initial release I suggested, here's something to start with (since no-one else is apparently creating one):

  • Bullet definition files
  • Additional functions for:
    • Random numbers
    • Improved audio control (loop points, pausing/resuming, possibly fadein/fadeout)
    • Possibly some improved bullet shooting functions like CreateShotA to avoid having to script overtly simple patterns with objects
  • Default support for:
    • Lives/respawning
    • Points/Graze (partially implemented with -dt, but needs to be shown on the interface and lack handling functions like GetGraze() and SetPoints())
    • Bombs (altough I could see these being already scripted with some cleverness in player scripts, these probably need a default implementation, too)
    • Power system
  • Plural files, stage files, possibly game files?
  • Dialogue events
  • Lasers
  • Effect objects with vertices, possibly 3D drawing (altough I'm not sure if 3D drawing needs to be in the initial release, but that's your call).
  • User-defined functions/subroutines (tasks can probably be simulated well enough with dummy objects).
  • Inter-object messaging
  • Replays
  • Various bugfixing
  • Code optimization to make the program run faster
  • Better error handling

That's pretty much all I can think of in the moment that Musuu needs to obsolete Danmakufu. If I've forgotten something, just add it to the list, and if you consider something on the list too irrelevant/tricky to implement for the first release, feel free to exclude it. This is just something to help people get a better idea on the amount of work left.

...Also, considering that this has been worked on for about half a year pretty much only during weekends, I'm really surprised on how short that list is.
« Last Edit: February 11, 2010, 02:02:46 PM by PT8Sceptile »

Re: A replacement for Danmakufu?
« Reply #536 on: February 11, 2010, 02:35:32 PM »
All I would add to that would be:
  • Custom collisions
  • Documentation
  • More bullet graphics

Oh, and I'll probably have a new danmaku up sometime today.

Re: A replacement for Danmakufu?
« Reply #537 on: February 11, 2010, 08:26:13 PM »
Oh, and arcanesign - gave a bit of thought to your weird DLL issue ... are you using the DLL from test release 4.1, or did you download the DLL from somewhere?  That might have something to do with it, if you did grab a different one.

I used the one in the 4.1 release, downloaded the whole thing from the google code page.

MaronaPossessed

  • I am free to dream of my own dream
  • and so I shall dream
Re: A replacement for Danmakufu?
« Reply #538 on: February 12, 2010, 03:33:47 AM »
Tried the test file and so far you're doing a great job!

I intend to wait for this to be done so I can hire a group of people to do a game with that engine^^

Re: A replacement for Danmakufu?
« Reply #539 on: February 12, 2010, 03:52:35 AM »
Well, here's my second  danmaku.  Unlike the last one, this one isn't terrible. 

Something I noticed: A GetAngleToPlayer() or a GetAngleToObj() function would be really nice.  having to type:
Code: [Select]
if (player_id > -1)
{
xdiff = player_id->x - id->x;
ydiff = player_id->x - id->y;
if (xdiff == 0 && ydiff == 0) ydiff = 1;
angle - atan2(ydiff, xdiff)l
}
gets tiring after a while.

I'll keep making stuff.  Have a nice day/night.