Author [EN] [PL] [ES] [PT] [IT] [DE] [FR] [NL] [TR] [SR] [AR] [RU] [ID] Topic: Yet another Castlevania fan-game  (Read 36869 times)

0 Members and 1 Guest are viewing this topic.

Offline Esco

  • In SERIOUS need of sprite help for the SOTN HACKED engine! PM me please if you can help.
  • Forgotten One
  • Legendary Hunter
  • ****
  • Posts: 506
  • Gender: Male
  • Awards Hack Master makes creations out of CV parts. (S)he makes Dr. Frankenstein proud.
    • Awards
  • Favorite Game: Castlevania: Symphony of the Night (PS1/SS)
  • Likes:
Re: Yet another Castlevania fan-game
« Reply #60 on: November 20, 2011, 12:50:30 AM »
0
Sad to say, but it seems that I must suspend project now.
The reason is buggy Game Maker. When quantity of sprites in my game exceeds some number game starts to glitch, freeze etc. I checked all my code, and it seems to be GM issue. The same game without some sprites run perfectly, add them and it ruines. It seems its somehow collide with FMOD wrapper also.
Maybe with some GM update problem will disappear, but until then it seems that tens of new sprites, over a hundred rooms, dialogs and monsters, new music and sound effects was a complete waste of my time.

How many sprites do you have in game so far? I have over 300 sprites (not even taking into account how many frames each has; and some of them have 20 frames) and I have not had an issue yet.

You are aware that you can also use external sprite files right? Not just internal ones, which is something I have started doing. You can also delete them as needed, so I do not comprehend how sprite # can be an issue. Also if sprite amounts was an issue I don't think that the CV3 project would got as far as it did. Are you sure that something else isn't causing your problem? O_o

As for GM being buggy no disrespect meant, but so far the majority of the bugs I have seen is due to people giving advice and not knowing what they are doing, or people just not knowing how to properly code.  I am working with 3d objects, normal sprites, views,  parallax, mp3, and ogg files, normal wav sounds, ini files, loading external images & files, scripts, sprite based fonts, multi tile layers, parents, particles, etc. etc. and I have yet to see an issue with GM itself (though I have seen issues with user coded stuff like FMOD).

And keep in mind I am only an INTERMEDIATE level coder at most, and I would honestly call myself a beginner. An expert level programmer would have done WAY more than me by now. :)

If you give more details I may be able to assist you. But right now your post doesn't make sense

P.S. Try sinbass audio; that engine is simple, yet has everything the average user could want. 8)
« Last Edit: November 20, 2011, 01:08:36 AM by Esco »
- Esco... the original New Yurican and creator of the Castlevania: SOTN Hacked Engine!

Link to the blog for the "hack:" http://sotnhacked.wordpress.com

Offline Dark Nemesis

  • Lord of Darkness
  • Master Hunter
  • *****
  • Posts: 3324
  • Gender: Male
  • Peeping your dreams....
  • Awards Town Crier: Updates the forum with many news items, often not even Castlevania. Permanent Resident: Seems to always be around to post/reply.
    • Awards
  • Likes:
Re: Yet another Castlevania fan-game
« Reply #61 on: November 20, 2011, 03:52:34 AM »
0
I was having high hopes for that game, only to hear that today........i hope that a solution will come to your aid and finish what you started!!! :)
Ruler of Chaos

Offline Donvermicelli

  • Count of the villa
  • Legendary Hunter
  • ****
  • Posts: 803
  • Gender: Male
  • Awards 2015 -  Christmas Award 3rd Place 2015-04- Sprite Contest Bronze 2015-02-Sprite Contest Runner-Up Permanent Resident: Seems to always be around to post/reply. One-Time Show: Not quite a lurker, but posts infrequently and in only few areas.
    • Awards
  • Favorite Game: Super Castlevania IV (SNES)
  • Likes:
Re: Yet another Castlevania fan-game
« Reply #62 on: November 20, 2011, 05:37:43 AM »
0
Viper, I sent you a PM if you want help with any of that.

Offline TheouAegis

  • Amateur Auteur of GMvania
  • Master Hunter
  • *****
  • Posts: 1860
  • Gender: Male
  • Awards The Retro Gamer: Has a heated passion for the oldschool VG Titles. The Great Defender will always defend the object of his or her fandom. Hack Master makes creations out of CV parts. (S)he makes Dr. Frankenstein proud.
    • GMvania Developer's Blog
    • Awards
  • Likes:
Re: Yet another Castlevania fan-game
« Reply #63 on: November 20, 2011, 09:00:26 AM »
0
Don't forget to read my post at the bottom of Page 4, too.

I'm with Esco on this. I have yet to hear of a sprite limit bug in GM, and I frequent GMC quite a bit (never read the higher level posts, though... I just assume they'd be over my head). There are bugs in GM for sure which have been noted, possibly slated to be tackled in GM8.2, but sprites isn't one of them. And to date the only game-breaking bug I've encountered is the image_xscale bug, and that one I've already created a script to partially compensate for.

Now, there have been sprite issues with GM in the past. It seems that in most of those cases, either the person was using MP3s, which sapped GM of its memory, or hundreds and hundreds of what I'm guessing were over-sized sprites (a guy tried to make a trading card game but it said he didn't have enough memory for the sprites, so I'm guessing he used some very high-quality graphics).

So there's basically one of two options for you. If you've prerendered the sprites to 2x or 3x scale, that's just plain retarded and you need to reload the sprites at 1:1 scaling. HD sprites are nice and all, but people tend to go overboard these days. The other option, which Esco mentioned, is keep certain sprites externally.

I also can't help but wonder how you're coding this that you would need so many sprites. Are you using image_xscale to mirror sprites or do you have both left-facing and right-facing sprites? Does Ralph basically use up an entire sprite sheet for all his frames of animation or is he composed of simple sprites pieced together as need be? The Vampire Killer has NEVER been a part of a Belmont's sprite; it has always been a separate sprite (or series of sprites). Are you using separate sprites for masks? Masks are a waste of space since GM8. They may have their place in some games, but they're complete trash in a platformer like Castlevania. Do you have any placeholder sprites, meaning any sprites that don't have an active bounding box? In my Castlevania engine, the stairs all have placeholder sprites, but in my case it's because I'm making a rudimentary user-friendliness in it. Ideally, my stairs would use spriteless objects and just check against relative X and Y coordinates.

The biggest problem I have with GameMaker is it doesn't teach greenhorns how to manage resources. It encourages wasteful spriting. Sprite resource sites like Shyguy Kingdom and Spriters Resource are partially to blame too. They make sprites readily available in sheets, so beginners just take the sheets and rip the sprites directly from the sheets. Or some people who rip sprites on their own - good for them! - use the screen capture method. That's a huge no-no in sprite ripping (although it's sometimes the only feasible way depending on how the ROM was coded). People nowadays, professional programmers too, think, "Oh those old systems had their limitations. We don't have those limitations nowadays so there's no need to break my sprites down like that." People need to learn that sprites are built in code, not in graphics programs. Twenty 16x16 sprites will take up a lot less memory than thirty 48x64 sprites.

Edit: Sorry, there is also the one foreseeable bug that I don't know if anyone's ever encountered. GM assigns and index value to sprites, objects, rooms, timelines, backgrounds, sound files, you name it. If the index is high enough, it may cause issues. I never reached that point, so I don't know if GM has any way of overcoming it.
« Last Edit: November 20, 2011, 09:05:13 AM by TheouAegis »
Your mom has had more floppies put in her than a Commodore 64!


Follow my lack of progress on my game at my blog:
http://gmvania.blogspot.com

Offline Esco

  • In SERIOUS need of sprite help for the SOTN HACKED engine! PM me please if you can help.
  • Forgotten One
  • Legendary Hunter
  • ****
  • Posts: 506
  • Gender: Male
  • Awards Hack Master makes creations out of CV parts. (S)he makes Dr. Frankenstein proud.
    • Awards
  • Favorite Game: Castlevania: Symphony of the Night (PS1/SS)
  • Likes:
Re: Yet another Castlevania fan-game
« Reply #64 on: November 20, 2011, 11:16:42 AM »
0
And to date the only game-breaking bug I've encountered is the image_xscale bug, and that one I've already created a script to partially compensate for.

??? I fail to see how a one pixel difference is game breaking. I in fact use image_xscale = -1 constantly and NEVER have an issue. I even tested having my character against a left wall pressed against it while facing right, and then had him turn left (image_xscale becomes -1 then). He does not get stuck. Is there something else to this bug?

On that note, I will say that the people that seem to have collisions issue in GM are people that use the internally built hspeed and vspeed values. Now those are SHITTY! But that is easily worked around by making their own. :) I do definitely hate the screen tearing in GM, as well as the fact that while your speed can be by a real #, view can only be moved in integers. Also the fact that draw rounds image_index values different than other events is odd (though easily compensated for with a floor statement in front of it).

Luckily any tiny bugs I have seen have been easily worked around. The majority of the time people call GM buggy it is because they just don't know what they are doing. I in fact find it amazing how often someone tells me it is IMPOSSIBLE to do something I wish to accomplish, and then I easily do it. I am sure you have probably ran into the same thing a couple of times as well.

Quote
Now, there have been sprite issues with GM in the past. It seems that in most of those cases, either the person was using MP3s, which sapped GM of its memory, or hundreds and hundreds of what I'm guessing were over-sized sprites (a guy tried to make a trading card game but it said he didn't have enough memory for the sprites, so I'm guessing he used some very high-quality graphics).

CPU resources management is an issue with any game that the programmer MUST taken into account. Sadly most GM users do not seem to do this. :(

Quote
The biggest problem I have with GameMaker is it doesn't teach greenhorns how to manage resources. It encourages wasteful spriting.

I agree. I in fact intend to go back and make many things more efficient after I release my demo. Hence yet another reason the code will be released about a month after it. :)

Quote
Edit: Sorry, there is also the one foreseeable bug that I don't know if anyone's ever encountered. GM assigns and index value to sprites, objects, rooms, timelines, backgrounds, sound files, you name it. If the index is high enough, it may cause issues. I never reached that point, so I don't know if GM has any way of overcoming it.

You are talking a value way higher than anyone should ever reach for ANY GAME.
- Esco... the original New Yurican and creator of the Castlevania: SOTN Hacked Engine!

Link to the blog for the "hack:" http://sotnhacked.wordpress.com

Offline Viper

  • Hunter in Training
  • **
  • Posts: 55
  • Gender: Male
    • Awards
Re: Yet another Castlevania fan-game
« Reply #65 on: November 20, 2011, 04:37:32 PM »
0
I'm not really sure it's number of sprites issue, maybe it's some specific combination of something. What makes me thinks of sprites number is when i take my last week project backup and import in it all sprites exported from current version it starts to freeze etc. If I import all other objects, scripts etc game still runs perfectly. Maybe I must try to find all sprite changes since then, and then find what sprite causes that, but it's hard work really.
Yeah, I know about image_xscale and don't use prerended sprites or something like that. Of course VK is in different sprites, I also use skeletal animation for some bosses, so I don't have something like Galamoth animation in sprites. ;D
I also know about external sprites loading but I don't really see a way to incorporate this in my current engine without painful handwriting tons of primitive code.

Just thought that i moved to GM8.1 recently. While it runs my old backup perfectly I'll still try to use program i've been told to convert project back into GM8 format and try to compile game in it.
« Last Edit: November 20, 2011, 04:45:29 PM by Viper »

Offline TheouAegis

  • Amateur Auteur of GMvania
  • Master Hunter
  • *****
  • Posts: 1860
  • Gender: Male
  • Awards The Retro Gamer: Has a heated passion for the oldschool VG Titles. The Great Defender will always defend the object of his or her fandom. Hack Master makes creations out of CV parts. (S)he makes Dr. Frankenstein proud.
    • GMvania Developer's Blog
    • Awards
  • Likes:
Re: Yet another Castlevania fan-game
« Reply #66 on: November 20, 2011, 06:23:50 PM »
0
@Esco: As I even mentioned on GMC about the image_xscale bug, it's probably not so much a bug as a fail mechanic. Sprite mirroring seems to work the same way in GM as it did on the NES, because the image_xscale "bug" is on there as well. The World -1 glitch in Super Mario Bros. was definitely caused by the sprite mirroring bug. Trevor having different collision detection when facing left than when he's facing right seems to be related to it as well (although that one I'm having trouble pinpointing the specifics of the mechanic).

Now, as for why you can't get it to glitch out in your game, I'm not sure. Maybe you just don't have the debugging skills that I do. :D It's also possible you actually did code your game in such a way that the bug will never rear it's ugly head. But every GM game that has clearly used image_xscale has had that bug in it. That little Halloween game using Gameboy graphics used image_xscale for sure, because one second I was running along happily, then the next thing I know I'm stuck in a wall by a pixel.

One pixel makes a huge difference. In my script in my engine to make sure there's nothing over Trevor's head when he jumps, I set the horizontal checking range 1 pixel less than the range for his landing. I never noticed it until I placed a block in such a way that Trevor could actually jump into that block before the collision detection kicked in. All because of ONE pixel.


@Viper: Wait, does it crash when you load the game or when you import the sprites? If it's crashing while importing sprites, um... Try restarting your computer first (RAM fail). Import sprites separate from the rest of the backgrounds and codes and such. Try not importing sprites you already have in the backup. Try exporting only one sprite directory at a time and importing it into the backup (this will take a while, but it's less intensive).
Your mom has had more floppies put in her than a Commodore 64!


Follow my lack of progress on my game at my blog:
http://gmvania.blogspot.com

Offline Viper

  • Hunter in Training
  • **
  • Posts: 55
  • Gender: Male
    • Awards
Re: Yet another Castlevania fan-game
« Reply #67 on: November 20, 2011, 06:59:55 PM »
0
Tried to convert back to .gmk and run from GM8.0. The same freeze.

@TheouAegis
Game Maker itself does not crash when i import sprites or ever. It's my compiled game which freezes and acts strange with no reason. I imported just sprites, no backgrounds etc. GM can not export sprite directory as far as i know, only all sprites, or one sprite at a time.

By the way I have 797 sprites in GMK. ;D

Tried to open GMK in LateralGM. It thinks for a couple of minute and then remains the same as i didn't open something. Opens other simple gmk i have though.
« Last Edit: November 20, 2011, 07:51:20 PM by Viper »

Offline Viper

  • Hunter in Training
  • **
  • Posts: 55
  • Gender: Male
    • Awards
Re: Yet another Castlevania fan-game
« Reply #68 on: November 20, 2011, 08:23:08 PM »
0
Haha.
I commented all FMOD wrapper scripts in game and now it runs perfectly!  ;D
So, there's two possible reason for situation: buggy FMOD or its wrapper (which i hope), or game eats too many resources which GM runner can't handle.
Next step I think to try to use sinbass audio engine Esco proposed and write substitutes for all FMOD functions i used in object codes. Does it support positioning sound instances (I think just pan support is enough as long as we have 2D-game)?

Upd: Just looked onto sinbass...it does support pan, but it seems i must manually program sound fading alongside with panning to get something similar to FMOD sound instance positioning...and it doesn't support groups and some other things i used...
Looking for another sound engine substitute now...
« Last Edit: November 20, 2011, 09:44:08 PM by Viper »

Offline Viper

  • Hunter in Training
  • **
  • Posts: 55
  • Gender: Male
    • Awards
Re: Yet another Castlevania fan-game
« Reply #69 on: November 21, 2011, 12:31:28 AM »
0
Upd2:
This is most definitely memory/resources issue. Temporary solved problem cause i found that i load music and some other ambience into memory completely. Switched it to streaming from files.
No problem for now. But what will happen when I make game even bigger...it seems loading external resources is really necessary to do for a big game...

Offline Esco

  • In SERIOUS need of sprite help for the SOTN HACKED engine! PM me please if you can help.
  • Forgotten One
  • Legendary Hunter
  • ****
  • Posts: 506
  • Gender: Male
  • Awards Hack Master makes creations out of CV parts. (S)he makes Dr. Frankenstein proud.
    • Awards
  • Favorite Game: Castlevania: Symphony of the Night (PS1/SS)
  • Likes:
Re: Yet another Castlevania fan-game
« Reply #70 on: November 21, 2011, 11:08:24 AM »
0
@Esco: As I even mentioned on GMC about the image_xscale bug, it's probably not so much a bug as a fail mechanic. Sprite mirroring seems to work the same way in GM as it did on the NES, because the image_xscale "bug" is on there as well. The World -1 glitch in Super Mario Bros. was definitely caused by the sprite mirroring bug. Trevor having different collision detection when facing left than when he's facing right seems to be related to it as well (although that one I'm having trouble pinpointing the specifics of the mechanic).

I am well aware of that Theo. But thanks for the history lesson.  ;D

Quote
Now, as for why you can't get it to glitch out in your game, I'm not sure. Maybe you just don't have the debugging skills that I do. :D It's also possible you actually did code your game in such a way that the bug will never rear it's ugly head. But every GM game that has clearly used image_xscale has had that bug in it. That little Halloween game using Gameboy graphics used image_xscale for sure, because one second I was running along happily, then the next thing I know I'm stuck in a wall by a pixel.

It is because my hitbox object is separate from my player object; which is the way it should be. My hitbox is just a red box, that has a normal size, and ducking size. It does not scale or change graphically in any way. It uses a spr_dir variable, that is then referenced by the player object, whose image_xscale is changed as needed. The hitbox controllers all controller movement and collision with tiles. The player object controls collision with enemies, items, and is mostly animation. Which is the way it should be, since almost all 2d games are programmed like this, and have been for years.

Since hitbox does not scale, the bug does not affect me. And also I can clearly see where all collisions occur in real time with it.

Quote
One pixel makes a huge difference. In my script in my engine to make sure there's nothing over Trevor's head when he jumps, I set the horizontal checking range 1 pixel less than the range for his landing. I never noticed it until I placed a block in such a way that Trevor could actually jump into that block before the collision detection kicked in. All because of ONE pixel.

Every engine has it's limits and bugs; usually minor stuff like this, so walk it off. Although I agree that it should be fixed, this is as I said not important and I think that given the option the GM makers should focus on more important stuff. :)


VIPER: I do not know what you mean by "group" when it comes to sounds, but programming in panning/fading  based an objects distance in reference to the player is quick and simple code via a parent object. And after using Sinbass I have to say that it reasonably seems to have everything that a 2d game engine needs.

..........but then again, I am definitely no sound expert!  ;D So if there is something of importance it is missing please feel free to educate me so I can learn.  8)
- Esco... the original New Yurican and creator of the Castlevania: SOTN Hacked Engine!

Link to the blog for the "hack:" http://sotnhacked.wordpress.com

Offline Viper

  • Hunter in Training
  • **
  • Posts: 55
  • Gender: Male
    • Awards
Re: Yet another Castlevania fan-game
« Reply #71 on: November 21, 2011, 04:57:29 PM »
0
Yeah...separate "wall-colliding" object is something i got on second month of development. Have to say, I'm not programmer at all, so all this stuff is kinda new for me. But as far as I can see almost all important things I realised right to this moment.
Except for room sizes, which have any size in my game, so room transitions i program by hand. :-\

I think I already know how to make sound positioning and groups with sinbass. So...if I again will meet the issue, moving onto it will be my next step.

Offline TheouAegis

  • Amateur Auteur of GMvania
  • Master Hunter
  • *****
  • Posts: 1860
  • Gender: Male
  • Awards The Retro Gamer: Has a heated passion for the oldschool VG Titles. The Great Defender will always defend the object of his or her fandom. Hack Master makes creations out of CV parts. (S)he makes Dr. Frankenstein proud.
    • GMvania Developer's Blog
    • Awards
  • Likes:
Re: Yet another Castlevania fan-game
« Reply #72 on: November 21, 2011, 06:36:21 PM »
0
But if GM allows pre-scripted hitboxes, there should be no reason to clutter the game with collision-only sprites. Why draw a box when you can just tell the program, "Hey, this sprite has a box around it with such-and-such dimensions, so don't let anything cross its boundaries"?

But whatever. Some people insist on wasting a byte or two with extraneous sprites. To each his own.
Your mom has had more floppies put in her than a Commodore 64!


Follow my lack of progress on my game at my blog:
http://gmvania.blogspot.com

Offline Viper

  • Hunter in Training
  • **
  • Posts: 55
  • Gender: Male
    • Awards
Re: Yet another Castlevania fan-game
« Reply #73 on: November 21, 2011, 07:27:11 PM »
0
But if GM allows pre-scripted hitboxes, there should be no reason to clutter the game with collision-only sprites. Why draw a box when you can just tell the program, "Hey, this sprite has a box around it with such-and-such dimensions, so don't let anything cross its boundaries"?

But whatever. Some people insist on wasting a byte or two with extraneous sprites. To each his own.
You don't get it. We have separate sprite mask for a collision with walls. What you say used for collision with enemies.
For example I have some player sprites: idle, walk, attack.
When player is in any of these states its collision with walls must remain the same, so he don't get stuck into walls etc.
But he should get hurt when he touches enemies, so his mask colliding with enemies must change. And I use that mask incorporated into sprites to do that.
Additionally: in CV when attacking player touches monsters by his hand a little he don't get hurt. So I limit mask in his attack sprite a little with GM mask parameters. The same goes for his coat when he walks etc.

Offline Esco

  • In SERIOUS need of sprite help for the SOTN HACKED engine! PM me please if you can help.
  • Forgotten One
  • Legendary Hunter
  • ****
  • Posts: 506
  • Gender: Male
  • Awards Hack Master makes creations out of CV parts. (S)he makes Dr. Frankenstein proud.
    • Awards
  • Favorite Game: Castlevania: Symphony of the Night (PS1/SS)
  • Likes:
Re: Yet another Castlevania fan-game
« Reply #74 on: November 21, 2011, 08:58:05 PM »
0
But if GM allows pre-scripted hitboxes, there should be no reason to clutter the game with collision-only sprites. Why draw a box when you can just tell the program, "Hey, this sprite has a box around it with such-and-such dimensions, so don't let anything cross its boundaries"?

See Viper's response; he perfectly explains (and I attempted to above) why game company programmers do this with the player character, and why I recommended it.

As for other things besides the player, that is a simple fix too; just set up your own movement engine (which you should do anyway), and then if a wall is 1-2 pixels away, set the object to not move closer. Simple bro.
Quote
But whatever. Some people insist on wasting a byte or two with extraneous sprites. To each his own.

....... wait you mean you are actually concerned about 1 or 2 whole bytes? O_o

OMG WHO THE HELL CARES!

P.S. Sorry Theo, but you know you had that coming.  ;)
« Last Edit: November 21, 2011, 09:00:57 PM by Esco »
- Esco... the original New Yurican and creator of the Castlevania: SOTN Hacked Engine!

Link to the blog for the "hack:" http://sotnhacked.wordpress.com

Tags: