Castlevania Dungeon Forums

The Castlevania Dungeon Forums => Fan Stuff => Topic started by: Esco on June 06, 2011, 04:30:47 AM

Title: Since so many people here seem to use game maker.....
Post by: Esco on June 06, 2011, 04:30:47 AM
I was just wondering since so many people here seem to use game maker, why no one here has actually tried to recreate castlevania: symphony of the night on it? After seeing what so many people here have made with the greatest of ease, I decide to download version 8 and give it a try. I was amazed at the fact that I was able to recreate stage 0 (the intro stage) in about 30 minutes with no problem.

Sadly I know NOTHING about gamemaker, so I just basically created the rooms with tiles and a few sprites. I have no idea if the collisions work (though I used the trick in the help document of using tiles for the background, and a 16x16 invisible solid object for each tile that I wanted to be solid) at all. But I am definitely willing to learn if it would make the hack a better game to just use this engine instead. And if it is this simple to make a stage, I can tell you now that I would definitely be able to accomplish it VERY quickly compared to the hack.

My question is this for those of you who have experience with this program: would it be able to fully recreate castlevania, symphony of the night? If not, what CAN'T it do and why? How would it do with the music, the sounds, the transparency and the particle effects? And with those questions being asked, who here could actually take a little bit of time to show me the basic of this program, for things like the player sprite, putting in an enemy or two, and controlling the player?

I know how all of the AI works in SOTN, the speeds and framerates for animations, and basically EVERYTHING that I would need to recreate it, so if you guys want to show me how to use this thing, I am willing to give it a real try, and see if it can do what I need it to do.
Title: Re: Since so many people here seem to use game maker.....
Post by: Claimh Solais on June 06, 2011, 04:37:12 AM
I actually wanted to try and do this. Like, recreate a lot of the things in the game, too. Your hack actually inspired the idea, but I know NOTHING about how to code in Game Maker, so I just gave the idea up until the day I learn how to.

But I really want to try this some day, and someone SHOULD take up the job. Like, improve graphics, music, and all that.
Title: Re: Since so many people here seem to use game maker.....
Post by: X on June 06, 2011, 04:55:44 AM
I have tried to use game maker but there are some visual elements that I just cannot grasp. It sucks serious @$$ knowing you can't make your own game even though you have the tools to do so.

-X
Title: Re: Since so many people here seem to use game maker.....
Post by: Inccubus on June 06, 2011, 04:58:37 AM
I've messed around with GM since version 5.

Coding in game maker is quite easy actually. Since the built in language is based on pascal/C it should be a snap if you've learned any C language. My best suggestion is to do the tutorials and read the section of the help file that explains all the language conventions and built in functions. (That's like 1/2 the file, long read.) Of course the engine has bugs of it's own to deal with, not to mention it has a reputation for being a bit of a cow system resource wise. The good thing is, that if you don't like the way a function works you can just make your own script or extension package to replace it. I don't even use the drag'n'drop system except to call my scripts and code most of the time.

Investing in the standard edition is recommended if you really like the lite version. You can get tons of help at the GM forums too. Tons of extension packages to download too. The best part of GM though has to be the fact that if you get into making your own games you can publish through Yo-yo games to iPhone for profit. They kick you in the balls profit wise, but you get some profit, exposure, and most importantly full rights to you IP.

It can recreate pretty much anything that was in SotN provided you can program it in. Plus you wouldn't have to be slave to the original game's limitations like having to load specific enemies into each stage. Everything is object based so you can put any instance of any object anywhere you like at any time you like. It handles most kinds of digital music including midi, wav, and mp3. Videos too. I can answer some questions for you, but you can always just read the help file or go to the forums too.
Title: Re: Since so many people here seem to use game maker.....
Post by: Esco on June 06, 2011, 05:27:45 AM
I've messed around with GM since version 5.

Coding in game maker is quite easy actually. Since the built in language is based on pascal/C it should be a snap if you've learned any C language. My best suggestion is to do the tutorials and read the section of the help file that explains all the language conventions and built in functions. (That's like 1/2 the file, long read.) Of course the engine has bugs of it's own to deal with, not to mention it has a reputation for being a bit of a cow system resource wise. The good thing is, that if you don't like the way a function works you can just make your own script or extension package to replace it. I don't even use the drag'n'drop system except to call my scripts and code most of the time.

If you don't use the drag n drop system, how do you create rooms and place objects then, and in a way that uses less resources than the drag n drop system? O_o

Quote
Investing in the standard edition is recommended if you really like the lite version. You can get tons of help at the GM forums too. Tons of extension packages to download too. The best part of GM though has to be the fact that if you get into making your own games you can publish through Yo-yo games to iPhone for profit. They kick you in the balls profit wise, but you get some profit, exposure, and most importantly full rights to you IP.

I have the pro edition.... nuff said :)

Quote
It can recreate pretty much anything that was in SotN provided you can program it in. Plus you wouldn't have to be slave to the original game's limitations like having to load specific enemies into each stage. Everything is object based so you can put any instance of any object anywhere you like at any time you like. It handles most kinds of digital music including midi, wav, and mp3. Videos too. I can answer some questions for you, but you can always just read the help file or go to the forums too.

The help me file is shit (I read thru it, lol), and I have considered asking for help on the forums but I figured that I would start here since I know people have already made 2d platforming Castlevania games with this. What I need is one of the people who have done this, and don't mind sitting on aim/msn/yahoo messenger to tutor me thru the basics for a few. I have watched a few videos and read quite a bit already and I still feel lost. So with that being said, would you mind helping me out a little bit? I assure you that I am not lazy and once I know how to do things I can start practicing and learning.

So far all I have done is recreate the stage 0 map perfectly (my map editor for SOTN helped with this), and put in a few non animating sprites. I made an animation for richter, but I have a LOT of questions about this.

I figure that the first thing I need to make is a basic player sprite to test with (one that walks, jumps, ducks, runs, and slides), then make a room with various collisions to test in, then lastly once I know collisions work properly, finish making richter, then start on other various sprites like enemies, candles, breakables, etc. This should all be within my ability to do, but I need some help getting started here.  8)
Title: Re: Since so many people here seem to use game maker.....
Post by: Kale on June 06, 2011, 05:38:01 AM
Don't think pirate talks are allowed here.

That said.... what would we really do with it? Someone said improve the graphics... but tah would require someone to redraw or edit it themselves. That's ALOT of work. And SOTN, while not new, isn't in a state where it just looks completely aged and keeling over like the NES Games... SotN would be fun to do, but the other games are much more.... attractive in terms of improvement.
Title: Re: Since so many people here seem to use game maker.....
Post by: Esco on June 06, 2011, 05:50:50 AM
Don't think pirate talks are allowed here.

That said.... what would we really do with it? Someone said improve the graphics... but tah would require someone to redraw or edit it themselves. That's ALOT of work. And SOTN, while not new, isn't in a state where it just looks completely aged and keeling over like the NES Games... SotN would be fun to do, but the other games are much more.... attractive in terms of improvement.

What pirate talks? O_o Are you high man? If so, can I have some?  :P

The reason I am trying out game maker is (to be blunt), that the ways things are going with the hack right now while I am making a LOT of progress, I don't see this thing being totally done for a few more YEARS!!!  :o And I really don't want to make everyone wait that long.

Not to mention when I go back to work (I am currently unemployed) I will have at most about 16 hours a week to mess with it IF I AM LUCKY! And it can take days sometimes to get one thing working right; mostly because IGA's code is absolute shit and jumps EVERYWHERE! It also does a lot of redundant and pointless things that make no sense. Making my life a living, breathing, fiery hell. :(

3 people that are WAAAAAAAY better than me have tried following and documenting his code... all 3 gave up and said the same thing that i just did. That is really not good.

As for what I would do with it? How about putting Maria in the game with her own inventory, relics, etc.? Or putting in more music tracks to replace some of the ones used OVER AND OVER in the 2nd castle? Or giving the particle and flame effects and upgrade? Or putting in more enemies from other stages which I cannot do in my hack?

There are a lot of extra things that can be done with this thing once I finished it. And I am sure that it would also be MUCH EASIER for people to change things in my hack with something like that, than it would be to look thru countless lines of commented c code in memhack.  8)
Title: Re: Since so many people here seem to use game maker.....
Post by: Inccubus on June 06, 2011, 05:54:40 AM
If you don't use the drag n drop system, how do you create rooms and place objects then, and in a way that uses less resources than the drag n drop system? O_o

I was referring to the drag'n'drop in the object editor. Although, if you wanted to you could have a blank room and make a script in it's creation code that populates the tiles, BG, and objects on it's own. Hell, I'm pretty sure there are functions for creating rooms too. That could cut down on resources, but then again we're talking about a PC game here. I wouldn't worry too much about resources. Just don't like load the whole game at once in one room. That might kill the RAM.


The help me file is shit (I read thru it, lol), and I have considered asking for help on the forums but I figured that I would start here since I know people have already made 2d platforming Castlevania games with this. What I need is one of the people who have done this, and don't mind sitting on aim/msn/yahoo messenger to tutor me thru the basics for a few. I have watched a few videos and read quite a bit already and I still feel lost. So with that being said, would you mind helping me out a little bit? I assure you that I am not lazy and once I know how to do things I can start practicing and learning.

I use that help file as my GM bible, but sure I can help you out some. You're on the East coast, right? Just give me a time and date and I'll make a messenger account.


So far all I have done is recreate the stage 0 map perfectly (my map editor for SOTN helped with this), and put in a few non animating sprites. I made an animation for richter, but I have a LOT of questions about this.

The easy way to do animations in GM is to make a different sprite for each action and call these sprites at the appropriate times with the correct variables.


I figure that the first thing I need to make is a basic player sprite to test with (one that walks, jumps, ducks, runs, and slides), then make a room with various collisions to test in, then lastly once I know collisions work properly, finish making richter, then start on other various sprites like enemies, candles, breakables, etc. This should all be within my ability to do, but I need some help getting started here.  8)

That's a good plan and I'll help however I can. Making the game from scratch is a bit more work than a hack, but then again if you're gonna use a script utility to hack that makes it require play on PC, then it's a fair trade off for not having to deal with the limitations of the emulator.


There are a lot of extra things that can be done with this thing once I finished it. And I am sure that it would also be MUCH EASIER for people to change things in my hack with something like that, than it would be to look thru countless lines of commented c code in memhack.  Cool

If you want people to be able to change things around in your version of the game I suggest that you program it with a map editor in mind. Or if you want to release it later as a GM project file I'd be extra careful fully documenting your own code and making simple to edit template enemies people can easily work with.
Title: Re: Since so many people here seem to use game maker.....
Post by: Esco on June 06, 2011, 06:23:55 AM
I was referring to the drag'n'drop in the object editor. Although, if you wanted to you could have a blank room and make a script in it's creation code that populates the tiles, BG, and objects on it's own. Hell, I'm pretty sure there are functions for creating rooms too. That could cut down on resources, but then again we're talking about a PC game here. I wouldn't worry too much about resources. Just don't like load the whole game at once in one room. That might kill the RAM.


I use that help file as my GM bible, but sure I can help you out some. You're on the East coast, right? Just give me a time and date and I'll make a messenger account.

Ok... I'll be U2U'ing you in a moment.

Quote
The easy way to do animations in GM is to make a different sprite for each action and call these sprites at the appropriate times with the correct variables.

I don't know how to call sprites (yet) for each action, but I figured the same thing. Heck I couldn't even figure out how to make frame 1 last for 180 ticks, frame 2 last for 120 ticks, and frame 3 last 240 ticks, which I figured would be VERY easy. Luckily, I have a very good concept of game design, and once I know how to do things, doing them will be very quick and easy in most cases for me.

Quote
That's a good plan and I'll help however I can. Making the game from scratch is a bit more work than a hack, but then again if you're gonna use a script utility to hack that makes it require play on PC, then it's a fair trade off for not having to deal with the limitations of the emulator.

Trust me.... NOTHING can be more work than the hack.  :'( And thanks, I would greatly appreciate the help.

Quote
If you want people to be able to change things around in your version of the game I suggest that you program it with a map editor in mind. Or if you want to release it later as a GM project file I'd be extra careful fully documenting your own code and making simple to edit template enemies people can easily work with.

That was my intention.... but believe it or not, most enemies in SOTN already follow a basic template, so I know most of them inside out. Heck I could easily tell you stuff like the exact vspeed a bat increments by when first flying down, how many frames he fidgets for before attacking, AND how long each frame lasts. And if I didn't know, a few minutes with memhack would tell me.  8)
Title: Re: Since so many people here seem to use game maker.....
Post by: Inccubus on June 06, 2011, 06:48:13 AM
Well, I'd certainly find that info on enemy movement helpful.

Title: Re: Since so many people here seem to use game maker.....
Post by: BMC_War Machine on June 06, 2011, 08:56:15 AM
Another great program to try out is Multimedia Fusion 2.  That's what i am using for Vamprotector.  I bought Game Maker 7 and although i dug how it worked, i found MMF2 to be much more straight forward.  It takes A LOT of the coding out and uses more logic based style events.  For example, say you're going to set up a collision to end the current frame and start the next, you run an event like this:

Collision between "Player" and "End of Frame Sensor" = End Frame

Only downside is that the full version runs about 120 USD, whereas Game Maker runs around 20 USD (or at least it used to).  I would say give the MMF2 demo a shot though, its pretty gnarly!
Title: Re: Since so many people here seem to use game maker.....
Post by: Inccubus on June 06, 2011, 09:00:55 AM
It's 25 now but I think it's going up soon. I've never tried MMF2, but it is the other *big* game making engine out there.
Title: Re: Since so many people here seem to use game maker.....
Post by: Aridale on June 06, 2011, 11:55:46 AM
yeah you can do pretty much whatever you want in GM as long as its win or mac (with GMMac) based. I use it daily to make programs for work. Ive been usin it since 5 came out and Ive been usin scripting for just about as long... I dont even remember how to mess with the drag and drop. The only DnD action I know is Execute Code lol.

My suggestion for starting out is do the platform tutorials. Then start to change lil things in your tutorial files to see the changes ingame and learn how and what does what it does and expand from there. Tweak things just like workin on your hack and youll start to pick up how it all works pretty quickly. Then you start to move away from a "template" like the platform tutorial and make your own basic engine from scratch.

Dont be confused tho... Its not easy. Platform games like SoTN arent a walk in the park. Im sure you know that from workin on your hack but until you try to recreate perfectly all the ways Richter or Alucard can move and the things they can do... youll realize just how much work it is
Title: Re: Since so many people here seem to use game maker.....
Post by: Inccubus on June 06, 2011, 12:15:45 PM
LOL you use GM for ork? Nice!
Title: Re: Since so many people here seem to use game maker.....
Post by: Esco on June 06, 2011, 04:33:44 PM
yeah you can do pretty much whatever you want in GM as long as its win or mac (with GMMac) based. I use it daily to make programs for work. Ive been usin it since 5 came out and Ive been usin scripting for just about as long... I dont even remember how to mess with the drag and drop. The only DnD action I know is Execute Code lol.

My suggestion for starting out is do the platform tutorials. Then start to change lil things in your tutorial files to see the changes ingame and learn how and what does what it does and expand from there. Tweak things just like workin on your hack and youll start to pick up how it all works pretty quickly. Then you start to move away from a "template" like the platform tutorial and make your own basic engine from scratch.

Dont be confused tho... Its not easy. Platform games like SoTN arent a walk in the park. Im sure you know that from workin on your hack but until you try to recreate perfectly all the ways Richter or Alucard can move and the things they can do... youll realize just how much work it is

Good suggestion... but you never actually told me WHERE I could find the tutorials. ;)
Title: Re: Since so many people here seem to use game maker.....
Post by: BMC_War Machine on June 06, 2011, 04:44:23 PM
Good suggestion... but you never actually told me WHERE I could find the tutorials. ;)
It's been awhile since I have been on there, but if I remember right yoyogames.com is full of different styles of tutorials for game maker. Check that out.
Title: Re: Since so many people here seem to use game maker.....
Post by: Esco on June 06, 2011, 04:56:38 PM
It's been awhile since I have been on there, but if I remember right yoyogames.com is full of different styles of tutorials for game maker. Check that out.

Great! I actually found 2 already, so thanks for the heads up. And I have to say that looking thru the coding for one which has things like wall jumping, jumping thru platforms, and properly working wall collisions and slopes, that it looks very, VERY simple compared to what I am doing now. I can even understand the code just by looking at it for the most part, which is amazing to me.

I am also amazed at the precision of the hitboxes for sprites in the game; I had no idea that they could be pixel perfect like this. I always figured that they had to be square (that is how they work in SOTN and most games). .
Title: Re: Since so many people here seem to use game maker.....
Post by: BMC_War Machine on June 06, 2011, 05:08:01 PM
Lol no problem man! Just make sure to take baby steps with it though, if you jump in head first your gonna split your melon! Lol! Good luck!
Title: Re: Since so many people here seem to use game maker.....
Post by: TheouAegis on June 06, 2011, 09:43:40 PM
Also something to point out is GM's built-in functions are fail in many cases. Collision detection is a beast (the bad kind) in GM and you're better off programming your own collision detection scripts (GM8 made this easier to do, so you see a lot of custom scripts in GM8 games now). And the movement engine is useful but buggy, so I think a majority of games built these days are done with custom movement scripts as well.

What I'd like to see in GM is fast palette swapping. There are some custom scripts out there that simulate it, but they're slow.
Title: Re: Since so many people here seem to use game maker.....
Post by: Esco on June 07, 2011, 12:32:23 AM
Also something to point out is GM's built-in functions are fail in many cases. Collision detection is a beast (the bad kind) in GM and you're better off programming your own collision detection scripts (GM8 made this easier to do, so you see a lot of custom scripts in GM8 games now). And the movement engine is useful but buggy, so I think a majority of games built these days are done with custom movement scripts as well.

What I'd like to see in GM is fast palette swapping. There are some custom scripts out there that simulate it, but they're slow.

You sound like you know a bit about the intricacies of GM; would you mind helping to teach me a few things?

Right now I am trying to figure out what DLL I need to use mp3 music & sounds in my game and where to get it from (WAV files are just WAAAAAY too big and use up too many system resources).
Title: Re: Since so many people here seem to use game maker.....
Post by: Kale on June 07, 2011, 12:47:45 AM
I would think wave uses less resources as it doesn't have to decompress to play but plays as is... though I agree it would take up a lot of space.
Title: Re: Since so many people here seem to use game maker.....
Post by: TheouAegis on June 07, 2011, 02:22:41 AM
Waves are for sound effects. MP3s I think use NullSoft (WinAmp plug-in). You could probably just search GMC for "play mp3" and find them. There's a universal one that also lets you play (to a limited extent) NSF and SPC (Nintendo and Super Nintendo sound files).
Title: Re: Since so many people here seem to use game maker.....
Post by: Esco on June 07, 2011, 02:24:56 AM
Waves are for sound effects. MP3s I think use NullSoft (WinAmp plug-in). You could probably just search GMC for "play mp3" and find them. There's a universal one that also lets you play (to a limited extent) NSF and SPC (Nintendo and Super Nintendo sound files).

I searched for play mp3 and I found nothing already. :(
Title: Re: Since so many people here seem to use game maker.....
Post by: Inccubus on June 07, 2011, 10:00:59 AM
When you create a sound it lets you choose an MP3 and it is automatically set to be played by your default multimedia player on your system. They don't work as great as wav's or midi's for the purposes of looping and audio effects, but they make your game package smaller. There are extension packages that have support for other sound formats too though. IIRC you can use .ogg files too.
Title: Re: Since so many people here seem to use game maker.....
Post by: TheouAegis on June 08, 2011, 01:08:36 AM
GMSPC.dll lets you play SPC files. I forgot what I"m using for NSF files.
I would suggest going OGG though, since that seems to be more popular these days.
Title: Re: Since so many people here seem to use game maker.....
Post by: Esco on June 08, 2011, 01:15:07 AM
Well after some checking in SOTN itself, and with a LOT of help from Inccubus on how Gm works, I managed to so far exactly duplicate how richter walks, and jumps perfectly.

Also after looking thru the debugger in pcsx I now understand why everybody says that all of the engine's out there for movement like this in gamemaker feel somehow a little bit "off." Because it appears that so far, all of them might be missing some very tiny stuff involving movement.

But what they are missing seems so insignificant and funny that I honestly didn't think anything of it until I actually implemented it. Then I quickly could feel the difference in the controls.

Also judging by the coding and the fact that I did something in about 45 lines of code and in 30 minutes, that would take me about 500 lines of code hacking wise, and hours of hell, this may be the better option for the hack. But I won't know for sure until I try some more stuff. And I can already tell that the few 3d things in the game are going to give me a HUGE fukkin headache. lol

Quote from: TheouAegis
GMSPC.dll lets you play SPC files. I forgot what I"m using for NSF files.
I would suggest going OGG though, since that seems to be more popular these days.

I honestly don't care what is "popular," lol. What is most important to me is what is the most efficient framerate, processing, and ram wise (in that order). If you have any suggestions for TECHNICAL reasons I would love to hear them. I could use all the help I can get, man.  8)
Title: Re: Since so many people here seem to use game maker.....
Post by: Claimh Solais on June 08, 2011, 01:19:13 AM
Well, if you did it this way, it wouldn't be a hack anymore necessarily. It'd be a PC remake of the game. Which I honestly think would be cool for the reason that Game Maker doesn't take up as much RAM on my computer as a PSX emulator.

And also, if you did it this way, you could add a bunch of other stuff in that would have been too hard to do with the hack. For example, Maria as a playable character. Or maybe a way to choose which outfit of Richter's you play in. Not that I'm saying you have to, that'd be all up to you.

And I don't know shite about code, but I do believe that even the slightest thing missing can make a big difference. It's kinda like the butterfly effect, if you will. (:
Title: Re: Since so many people here seem to use game maker.....
Post by: Esco on June 08, 2011, 01:44:31 AM
Well, if you did it this way, it wouldn't be a hack anymore necessarily. It'd be a PC remake of the game. Which I honestly think would be cool for the reason that Game Maker doesn't take up as much RAM on my computer as a PSX emulator.

My understanding of GM resources wise is that how much ram it takes up is based on how much is in the game, and how much the coder himself takes resources into account (I am big on this; I like code that is efficient, concise, and only used as needed). So it could potentially take up more resources than an emulator. But as of now, I don't know. No worries there though, if it takes up a lot I can just ask what to improve on to make it take up less.

The good thing about this verses the hack is I have a lot of people to turn to for help when I need it.

Quote

And also, if you did it this way, you could add a bunch of other stuff in that would have been too hard to do with the hack. For example, Maria as a playable character. Or maybe a way to choose which outfit of Richter's you play in. Not that I'm saying you have to, that'd be all up to you.

Richter already has his old outfit in the intro of the hack, and the new one in the rest of the game. ;)

Quote
And I don't know shite about code, but I do believe that even the slightest thing missing can make a big difference. It's kinda like the butterfly effect, if you will. (:

Lol, yup! That is definitely true.
Title: Re: Since so many people here seem to use game maker.....
Post by: Claimh Solais on June 08, 2011, 03:03:28 AM
There are some pretty darn big Game Maker games out there, but they load up flawlessly on my computer (one being bigger than a gig, that's bigger than SotN). Whereas with PSX, the emulator itself takes like 20 minutes to load. Don't get me started about the CGI scenes at the beginning of SotN. D:

Well, what I meant for the outfit was, like, for Richter mode. Like, when selecting him or typing in his name or whatever, you get a choice on what outfit he's wearing. Cuz you know, some people prefer the original RoB design over Ayami's (not me, I'm a big Ayami fan).
Title: Re: Since so many people here seem to use game maker.....
Post by: Kale on June 08, 2011, 10:10:37 AM
There are some pretty darn big Game Maker games out there, but they load up flawlessly on my computer (one being bigger than a gig, that's bigger than SotN). Whereas with PSX, the emulator itself takes like 20 minutes to load. Don't get me started about the CGI scenes at the beginning of SotN. D:

Well, what I meant for the outfit was, like, for Richter mode. Like, when selecting him or typing in his name or whatever, you get a choice on what outfit he's wearing. Cuz you know, some people prefer the original RoB design over Ayami's (not me, I'm a big Ayami fan).

What game is that? I've never really notice any game maker games around.
Title: Re: Since so many people here seem to use game maker.....
Post by: Claimh Solais on June 08, 2011, 10:31:26 AM
Please be more specific, Kale. There are numerous games made on Game Maker out there. I don't have any downloaded anymore other than Super Castlevania III and Inccubus' Demon Castle stage 1 test. A lot of them were rather forgettable, too, and played terribly.
Title: Re: Since so many people here seem to use game maker.....
Post by: Aridale on June 08, 2011, 11:43:26 AM
if you played a well made game made with game maker odds are you wouldnt ever know the difference unless someone told you
Title: Re: Since so many people here seem to use game maker.....
Post by: Claimh Solais on June 08, 2011, 12:40:13 PM
Well made, but I didn't necessarily like them. I'm not sure what you mean by difference.
Title: Re: Since so many people here seem to use game maker.....
Post by: Kale on June 08, 2011, 01:00:09 PM
He means, if it's made well, then you can't tell if someone used GM to make it or not.

That said... Super Castlevania 3?


Can you guys name some more?
Title: Re: Since so many people here seem to use game maker.....
Post by: Claimh Solais on June 08, 2011, 01:24:16 PM
Well, there's also the fact that it has the GM loadup thing also.

SCV3 isn't done yet, nor is it a big game at the moment, about 26MB, so... yeah. That's three stages and two characters. I can imagine when it's done being about... I dunno, 130?

But SCV3 and another game called The Adventures of Kyoob are the only two GM games I can name off the top of my head. I remember a card battler one, but I don't remember the name.
Title: Re: Since so many people here seem to use game maker.....
Post by: Aridale on June 08, 2011, 09:34:20 PM
well if someone left the GM loading splash and bar in their game they released they probably didnt do too good a job in other areas either...
Title: Re: Since so many people here seem to use game maker.....
Post by: TheouAegis on June 08, 2011, 09:58:10 PM
The loading screen is entirely customizable. If you disable it, GM games look like any other computer game when loading up.

Which brings me to my next tip: Use splash screens for preloading resources and setting global variables. My CV3 engine currently sets variables in a transition room, but I'll probably change that later and handle that in the Konami logo screen room.

Also, on the issue of resources: Delete them when they're no longer needed. Eases the RAM.

On the topic of movement, you really do need to use your own movement engine. GM's is just bad, in my opinion. Once you start using a custom movement script, you'll never want to use GM's again. Check out the Grandma Platformer Engine, which has one of the more popular custom styles.

Also, collision detection is so much easier with collision_line() and collision_rectangle(), although you have to be careful with them as they are as slow or even slower than place_meeting(). Collision_point() is useful too, but most of the time you'll need to check more than a single point. You just have to be careful not to call them when not needed, so imbed them inside complex conditionals (like in my engine).
Title: Re: Since so many people here seem to use game maker.....
Post by: Claimh Solais on June 08, 2011, 11:45:39 PM
The loading screen is entirely customizable. If you disable it, GM games look like any other computer game when loading up.

Everyone that I've downloaded a game from leaves it exactly the same, and the games always show up in a 320x240 window on my screen. There's also a fadeout everytime you walk into a a new area (but that can be confused with MMF2).

But believe me, I'll know a GM game when I see one. ^.^

Speaking of which, I'm learning code to use this thing. It sounds sw33t from what you all have been doing with it.
Title: Re: Since so many people here seem to use game maker.....
Post by: Esco on June 09, 2011, 03:37:40 AM
The loading screen is entirely customizable. If you disable it, GM games look like any other computer game when loading up.

Which brings me to my next tip: Use splash screens for preloading resources and setting global variables. My CV3 engine currently sets variables in a transition room, but I'll probably change that later and handle that in the Konami logo screen room.

Also, on the issue of resources: Delete them when they're no longer needed. Eases the RAM.

On the topic of movement, you really do need to use your own movement engine. GM's is just bad, in my opinion. Once you start using a custom movement script, you'll never want to use GM's again. Check out the Grandma Platformer Engine, which has one of the more popular custom styles.

Also, collision detection is so much easier with collision_line() and collision_rectangle(), although you have to be careful with them as they are as slow or even slower than place_meeting(). Collision_point() is useful too, but most of the time you'll need to check more than a single point. You just have to be careful not to call them when not needed, so imbed them inside complex conditionals (like in my engine).

Figures.... I see your post, after I made another LONG one asking for help on the gm forums.

Thanks for the advice, I will try to follow it. Can you give me a few small examples of using those collision variables? And how do I "delete resources" in game, and is there any way to delete some of those variables that are always declared by GM but that I will not be using?
Title: Re: Since so many people here seem to use game maker.....
Post by: Aridale on June 09, 2011, 11:56:22 AM
unless its something your loading thru code you shouldnt have to worry about clean up in GM cause its all handled for ya. If a rooms not set to persistent everything in that room is cleared from memory when your no longer in that room. That includes any objects not persistent and graphics sounds etc. And when the game ends its all flushed as well. The only time you specifically need to worry about it is if you use a DLL that has a deinit function then you should use that deinit in the game end event. But if your using Extensions (better in every way than dlls with scripts) as long as whoever made the extension setup its deinit function if it has one then itll be run automatically just like any init functions
Title: Re: Since so many people here seem to use game maker.....
Post by: Esco on June 09, 2011, 04:14:39 PM
unless its something your loading thru code you shouldnt have to worry about clean up in GM cause its all handled for ya. If a rooms not set to persistent everything in that room is cleared from memory when your no longer in that room. That includes any objects not persistent and graphics sounds etc. And when the game ends its all flushed as well. The only time you specifically need to worry about it is if you use a DLL that has a deinit function then you should use that deinit in the game end event. But if your using Extensions (better in every way than dlls with scripts) as long as whoever made the extension setup its deinit function if it has one then itll be run automatically just like any init functions

So far the only DLL I have is one for using ogg music. And I haven't even tested it yet; I haven't gotten that far with my lessons yet. :)
In fact I am still trying to get collisions to work. The bottom, top and right sides work but not the left side for some reason; my character can still get stuck when jumping near the wall. Here is my current file if ANYONE wants to take a look and help: http://www.mediafire (http://www.mediafire)...zkzf17d5bzeszk7

Thanks for the info though, that makes things easier for me. The reason I am concerned so much about performance is that we have quite a few small common enemies like skeleton that when killed spawn about 6-10 pieces to be used in their death animation. And this can quickly become a LOT of sprites when you take solid objects used for collision with walls into account. SOTN can sometimes have about 90 sprites on screen (for the enemies and player things) so I want to make sure I code this in a way that there are not performance issues.

On the good side of things: so far I have coded richter to be EXACTLY like SOTN, walking, running, jumping, and dashing wise. Down to the very image_speeds it is an exact duplicate.

*First I had to set the gamemaker version to 60 fps
*Then for the image speeds I just take 1/image_speed in the original game
*And for actual movement it is SOTN speed/65536

Nice and simple.

I am also thinking of making the collision for richter (with solid blocks) a separate sprite that is glued to him. It would give me a LOT more flexibility with him (this is done in symphony of the night, and as you can see it is VERY effective).

Title: Re: Since so many people here seem to use game maker.....
Post by: Aridale on June 09, 2011, 10:17:59 PM
that links jacked up. Paste the one without the file name included.

As far as collisions for animated objects goes you need to have a mask. The mask needs to be rectangular and roughly outline the sprite. If the sprites origin is in the center (it should be centered on the x axis but either on the bottom or top of the sprite on the y axis) then make sure your mask is the same number of pixels width on each side of the center (if its 12x32 and centered make sure theres 6 on each side of the middle) You can be 1 or maybe 2 off center and it might not effect the getting stuck in stuff but its best if its centered. You can assign this mask sprite to the object itself or you can switch between multiple masks based on whatever in the code (stand,duck,jump,etc)

The mask is what will control all collisions for the object and its far easier than tryin to use collision data in the sprites. Ill check out your file if you get a workin link up
Title: Re: Since so many people here seem to use game maker.....
Post by: TheouAegis on June 09, 2011, 11:10:52 PM
I don't use masks. GM8 has much more flexibility in sprite collisions. I set bounding boxes for each sprite and use the dimensions of the bounding boxes for setting the coordinates in collision_line and collision_rectangle. Sure, there is the problem of bbox_left and bbox_right changing when image_xscale=-1, but that's easily compensated for (although I'm still tweaking the universal code). However, you cannot change bounding boxes mid-game or have multiple bounding  boxes in a sprite, like you can with masks, so you do need to spend more resources on additional sprites in order to share their bounding boxes. However, you're already spending resources on the masks if you use masks, so I think the trade-off is fair.

Keep also in mind that the sprite's origin affects position when image_xscale or image_yscale is negated. A sprite with origin (0,0) will be rotated around its very left edge, whereas a 16x16 sprite with its origin at (8,8) will be rotated around its middle. What this means is a sprite with its origin centered will stay in place when flipped, but a sprite with its origin at (0,0) will appear to jump when flipped.

Beware place_meeting() and collision_rectangle() check the entire box, so if there is even a single pixel collision, it passes as true (or returns an ID, which makes it "true" basically). The thing to be aware of especially with collision_rectangle() is that the check collisions IN AND AROUND the parameters. So collision_rectangle(bbox_left,bbox_top,bbox_left,bbox_bottom,obj_wall) will check a 16x16 sprite with a full bounding box to see if any obj_wall bounding box is present between (-1,-1) and (16,16). Keep in mind that a 16x16 sprite has a bbox_bottom of 15, not 16. This means the very bottom row of pixels will not collide.
Title: Re: Since so many people here seem to use game maker.....
Post by: Esco on June 10, 2011, 02:32:46 AM
that links jacked up. Paste the one without the file name included.

As far as collisions for animated objects goes you need to have a mask. The mask needs to be rectangular and roughly outline the sprite. If the sprites origin is in the center (it should be centered on the x axis but either on the bottom or top of the sprite on the y axis) then make sure your mask is the same number of pixels width on each side of the center (if its 12x32 and centered make sure theres 6 on each side of the middle) You can be 1 or maybe 2 off center and it might not effect the getting stuck in stuff but its best if its centered. You can assign this mask sprite to the object itself or you can switch between multiple masks based on whatever in the code (stand,duck,jump,etc)

The mask is what will control all collisions for the object and its far easier than tryin to use collision data in the sprites. Ill check out your file if you get a workin link up

Well for the most part I FINALLY got collisions working, but if you test the file out as you can see there are still some issues (which I could use help with).

For collisions with things like solid objects that represent tiles, I created a separate red box object to be used (which seems to be what you mentioned too), and aligned it properly to the player based on what frame and action he is taking. It's bed time for me, so right now the only actions the hitbox is set up accurately for is walking, standing still and running

Anyway, here is my file... I tested this link, so I know that it works this time: http://www.mediafire.com/?cb39hdp3yarknv3 (http://www.mediafire.com/?zzhn550tcbycn4b)

By all means if you have any advice or things that will help, I would be more than happy to check them out. I am still very green to this whole GM thing, but so far I like it a LOT. And the sooner I get this basic stuff done, the sooner I can get to the fun stuff. Next I have to figure out how to set up damage type collision between sprites, and getting one object to create another when it is destroyed. And I should probably figure out how to change rooms and pause the game too. lol
Title: Re: Since so many people here seem to use game maker.....
Post by: Aridale on June 10, 2011, 11:57:07 AM
invalid or deleted file do you have it set as private?

For pausing thats easy. In your main controller object (the one that controls major aspects of the game and should be separate from your player object) make a var for pause. Since the games either paused or its not a boolean value is perfect. GM doesnt specifically let you make bools but you since you can name vars however you want as long as it doesnt start with a number you can prefix a var with a 'b' to show that its a boolean value. So Id name it bPaused

Then in the step event do a keyboard_check_released (or pressed but never ever just check cause that runs as long as the keys pressed. Released is best cause it happens when the player lets go of the key after pressing it) all you have to do is bPaused = not bPaused. When you define bPause in the create event for the controller object it should be false.

Then in every object that should be effected by pausing the game in its step event put if ControlObject.bPaused break;

You could even make it a global by defining it as global.bPaused then you just access with global.bPaused regardless of object
Title: Re: Since so many people here seem to use game maker.....
Post by: X on June 10, 2011, 04:18:12 PM
On the good side of things: so far I have coded richter to be EXACTLY like SOTN, walking, running, jumping, and dashing wise. Down to the very image_speeds it is an exact duplicate.

Does that also include his drawing of the whip just before he attacks? I've noted in SotN that Richter has a set of three destinct whip draws bfore his main attack ensues. And if Richter turns to face the apposite direction while drawing the whip, he will execute a fourth animation that isn't shown in the basic attack stance. It looks something like a half-circle.
Title: Re: Since so many people here seem to use game maker.....
Post by: TheouAegis on June 10, 2011, 06:42:00 PM
You can use globalvar bPause when you declare it, then you don't need to prefix it ever again. The globalvar function turns the variable into a universal, like how scores and lives are.
Title: Re: Since so many people here seem to use game maker.....
Post by: Aridale on June 10, 2011, 10:21:27 PM
yes unless you use another var in the local scope with the same name... Its still good practice to prefix global variables with global. if for no other reason than to help you remember theyre global
Title: Re: Since so many people here seem to use game maker.....
Post by: Esco on June 11, 2011, 02:40:07 AM
I'll have to try that out for pausing guys, thanks for the advice.  8)

And I re-uploaded the file again today with a LOT more changes; I got room transitions working properly, as well as collisions working about 85%. I also figured out how SOTN lays out it's rooms and used a similar technique (since the player's vpos must be < 0, or > room_height to change rooms up or down; the same for the hpos, which is x).

Here is the file: http://www.mediafire.com/?3vftau5noh387ae (http://www.mediafire.com/?3vftau5noh387ae)

I wanted to make sure before I put this file up that I could give great details on my problems, so here are some issues that I am having problems with:

*If you dash close to a solid block, he slowly edges forward a little each time
*I cannot figure out how to get the moon to work like it does in SOTN (like a background layer that only moves a certain amount)
*I put in a 16x8 block at the entrance to dracula's room; yet it still behaves likes a 16x16 tile.
*Going up slopes is messed up; I believe that hitting my head against them is a bit off too
*I cannot figure out how to duplicate SOTN's camera; I.E. how it will stop falling the player's y when it reaches a certain value, at a certain spot, and then alters the X, unless the player backtracks through that spot. I know in SOTN a seperate object can disable & re-enable y scrolling and x scrolling. My views as of now are still messed up, though I got the camera size pixel perfect.

If you guys can help or have any advice, I'm all up for it. Right now I am working on putting in the gfx for things like common candle drops, as well as the candle types that are still left.
Title: Re: Since so many people here seem to use game maker.....
Post by: Aridale on June 11, 2011, 03:08:15 AM
well I dont have much time to look at it  right now Ill have to check it out more tomorrow but at a fast glance

1) Your collision object and your player object are two totally separate objects... they really shouldnt be theres no reason. You only need to mask the players object with a shape like the collision one and handle collisions that way no need for 2 different objects
2) your problem with the 16x8 block looked like it was cause the mask for it was set to 16x16
3) the view will follow whatever object you tell it to follow that doesnt really mean it has to be the player object
Title: Re: Since so many people here seem to use game maker.....
Post by: Esco on June 11, 2011, 03:38:52 AM
Thanks for such a quick response; it is appreciated. I messaged Metroidquest too, and I am hoping that he can show me a bit about the basics of his engine so that I can learn from it.

well I dont have much time to look at it  right now Ill have to check it out more tomorrow but at a fast glance

1) Your collision object and your player object are two totally separate objects... they really shouldnt be theres no reason. You only need to mask the players object with a shape like the collision one and handle collisions that way no need for 2 different objects
2) your problem with the 16x8 block looked like it was cause the mask for it was set to 16x16
3) the view will follow whatever object you tell it to follow that doesnt really mean it has to be the player object

No worries, check it out when you can. I will probably be busy with my girl most of tomorrow anyway.

The reason I used 2 sprites is because one is for the player when he comes into contact with solid tiles (the red outline), while the other (the player itself) is for when he comes into contact with enemies. If you have another way to do this I am all ears because I basically need 2 separate masks for the player's object. The reason is when jumping for example, he has once frame where he uses a crouching sprite, and if they shared one mask, either the hitbox would be too big when facing enemies, or when it came to collisions with tiles, it would not act correctly (basically here the mask for enemy collisions should be about 14, while the one for tile collisions should be about 28 so he lands on the block correctly).  8)

My issue with the view is that in SOTN if you play it you qill quickly notice that the view is NOT of the entire room, but once the player gets past a certain X&Y values, it will not scroll anymore EVEN though there is more of the room left to see. After you play with my file, you will quickly see my issue. :)

Oh and I double checked the 16x8 tile; it's mask is only 16x8. So I don't know what is up with it.

Quote from: x
Does that also include his drawing of the whip just before he attacks? I've noted in SotN that Richter has a set of three destinct whip draws bfore his main attack ensues. And if Richter turns to face the apposite direction while drawing the whip, he will execute a fourth animation that isn't shown in the basic attack stance. It looks something like a half-circle.

The whip code in SOTN is absolute trash! It will not be the same. For example when first attacking the whip will be maybe 3 images so it only has 3 hitxboxes. Once extended it will be 2 (one for the body, one for the head; in sotn it is 16!). Now if you are referring to richter's animation, then yes it probably will be. :)

As for brandishing the whip, that will also be different. Since I will have whips that don't have straight round or square bits (like the leather one)/
Title: Re: Since so many people here seem to use game maker.....
Post by: X on June 11, 2011, 03:47:25 AM
It was the whip animation that I was referring to. I just loved they way they did it  :)
Title: Re: Since so many people here seem to use game maker.....
Post by: Esco on June 11, 2011, 05:35:44 AM
It was the whip animation that I was referring to. I just loved they way they did it  :)

Ok.... I promise not to F it up then. lol
Title: Re: Since so many people here seem to use game maker.....
Post by: TheouAegis on June 12, 2011, 05:56:49 AM
I forgot what Richter looks like when jumping, but the sprite hit box issue isn't as big of a deal as you think. Don't make the jumping sprite one whole sprite if the hitbox has to change. If they do jumps like in old CV games, the jump sprite is the ducking sprite until the Belmont attacks, then it becomes a standing whip attack followed by a normal standing stance. It wouldn't surprise me if they're using different sprites for jumps nowadays, but the method is the same: don't give the jump sprite multiple frames if each frame is going to have different hitboxes, use multiple sprites instead.

For the view, place a conditional in either a controller object or Richter that checks if view_xview and view_xview+view_wview are within a certain bounds of the room's dimensions.
Title: Re: Since so many people here seem to use game maker.....
Post by: Esco on June 12, 2011, 06:40:20 AM
I forgot what Richter looks like when jumping, but the sprite hit box issue isn't as big of a deal as you think. Don't make the jumping sprite one whole sprite if the hitbox has to change. If they do jumps like in old CV games, the jump sprite is the ducking sprite until the Belmont attacks, then it becomes a standing whip attack followed by a normal standing stance. It wouldn't surprise me if they're using different sprites for jumps nowadays, but the method is the same: don't give the jump sprite multiple frames if each frame is going to have different hitboxes, use multiple sprites instead.

I am just preparing in advance for what I know will be needed later. I have an outstanding view of what I need to do, and how to do it in general, but my biggest issue is not knowing HOW to do it in this program itself. I am used to memhack and using an emulator, so stuff that I can do in 3 seconds there, I have to relearn how to do in GM. :)


Quote
For the view, place a conditional in either a controller object or Richter that checks if view_xview and view_xview+view_wview are within a certain bounds of the room's dimensions.

This sounds like what I want to do, but I have no idea what the syntax would be. I spent hours yesterday experimenting and I still could not get it right. But an example would easily help me to do so. Can you give me a code snippet for it or point me towards one? Something that gives me a quick example of:

if (players.xpos < NUM) {change view to be only a box that is 256x206, and will only move HORIZONTALLY with the player and is locked vertically in place}
else {the view should be a 256x206 box that moves both vertically AND horizontally}

I could also use an example of if (player.xpos <num)  {view will no longer move at all and is now locked in place}

From that I could figure out how to do it in relation to the vpos (Y value) easily and modify it as needed.
Title: Re: Since so many people here seem to use game maker.....
Post by: Dengo vlad tepes on June 12, 2011, 08:17:59 AM
haha i made the first 3 stages in one day XDDD

well the only problem is idk how can change the value of the money/hearts or HP
Title: Re: Since so many people here seem to use game maker.....
Post by: Aridale on June 12, 2011, 01:24:57 PM
view_xview and view_yview are the location of the current view. view_wview and view_hview are the width and height of the current view. x+view_xview is the x position relative to the view in the room. view_object is the object the view follows same as setting it in the room properties. You can change any of these during the game

Its a bit trickier to control the view and make it smoothly stop and start moving. What Id suggest to do is instead of tryin to work in absolute values to stop the view make objects that when touched lock the view to their location. Either stop the view all together or make the object the view_object when touched.

A more elegant solution is a camera object that the view follows that in turn follows the player but can be stopped by collision with special blocks to control the actual viewable area. Thats what I did in my old CV2 Remake demo so I could stop the view at screen transitions even tho the actual room was much bigger
Title: Re: Since so many people here seem to use game maker.....
Post by: Esco on June 14, 2011, 06:45:25 AM
view_xview and view_yview are the location of the current view. view_wview and view_hview are the width and height of the current view. x+view_xview is the x position relative to the view in the room. view_object is the object the view follows same as setting it in the room properties. You can change any of these during the game

Its a bit trickier to control the view and make it smoothly stop and start moving. What Id suggest to do is instead of tryin to work in absolute values to stop the view make objects that when touched lock the view to their location. Either stop the view all together or make the object the view_object when touched.

A more elegant solution is a camera object that the view follows that in turn follows the player but can be stopped by collision with special blocks to control the actual viewable area. Thats what I did in my old CV2 Remake demo so I could stop the view at screen transitions even tho the actual room was much bigger

Cool, I will mess around with that a bit tomorrow (my computer has been f-ed for the last day and a half, so I didn't get almost anything done). Have you gotten to look at my file yet and examine the slopes on the ground? I cannot seem to get them to work right.
Title: Re: Since so many people here seem to use game maker.....
Post by: Aridale on June 14, 2011, 11:52:53 AM
nope havent had time I might get a chance later tonight sometime
Title: Re: Since so many people here seem to use game maker.....
Post by: Esco on June 14, 2011, 09:17:51 PM
nope havent had time I might get a chance later tonight sometime

No problem, I appreciate any help I can get.

BTW I found the issue with the 16x8 tile: the mask was right in the sprite, but in the OBJECT itself it was wrong. Which I remember you mentioning the mask before, so thanks for that.

ALSO the file has been updated; now my only issue is with walking up and down tiles on the floor. I fixed the rest. Here is the newest file:

http://www.mediafire.com/?k5pt0yldmce3u9o (http://www.mediafire.com/?k5pt0yldmce3u9o)