DBY are you talking about branch misprediction? If so, if-statements aren't slow. Branch misprediction is slow.. I also don't understand why you think looping is slow too... I know you did research on cache, so you should know that looping over large amounts of contiguous data is pretty fast. ~But I have no clue how GM compiles it's code, so I'm not even sure if cache optimization is practical in GM.
Ah, thanks for the correction! It's not that I don't know that, but I don't explain things very well . Corrected it in this post. And GMS compiles GML.
Yes, branching is slow in a loop if the data is not in a predictable pattern. If you make a game with several ten-thousands of objects that are being processed every frame with a lot of branching, then yes, there is going to be a lot of branch mispredictions if the data the branch tests is not in a predictable pattern (and it's in fact most likely unpredictable). There are a lot of other details I want to go into, but I don't have much time for that.
@Hello I'm going to give you one more chance of help. I know you listened to others' feedback about comments and formatting, but you can make your engine even better like you did previously. That's the point of open-source, right? If you don't listen to anyone, you'll be teaching GM programmers who modify your engine bad examples. It's your choice, though.
Hello wrote:
Adding powerups is not hard at all. Most of it is just adding your new sprites and powerup objects to a bunch of switch statements, and then maybe a few minor changes to obj_mario depending on what the powerup does. There is no good reason to use enums over globals, and inheritance for powerups would just make things messy. (Inheritance is already used where it makes sense, like with enemies, holdable stuff, etc.) And you say if statements are slow, but the engine can easily run at hundreds of fps on my 5 year old laptop...
And this is a bad example to new GM coders (teaching them that there is only one best way to do things)!
Adding may be easy, but let's say I want to remove the hammer powerup. I have to remove this: Spoiler:
obj:mario:201
Code:
else if global.powerup = cs_hammer and instance_number(obj_hammer) { firing = 9 with instance_create(x,y+16,obj_hammer) hspeed = 1.5*other.direct+other.hspeed }
obj_mario:312
Code:
else if global.powerup = cs_hammer and instance_number(obj_hammer) with instance_create(x,y+16,obj_hammer) hspeed = -1.5*other.direct
And this: obj_mario:360
Code:
else if global.powerup = cs_hammer and instance_number(obj_hammer) < 2 with instance_create(x,y+16,obj_hammer) hspeed = 1.5*other.direct
And this: obj_mario:616
Code:
or global.powerup = cs_hammer
And this: scr_mariocarry
Code:
case cs_hammer: return spr_mario_hammer_carry
And this: scr_marioclimb
Code:
case cs_hammer: return spr_mario_hammer_climb
And this: scr_marioduck
Code:
case cs_hammer: return spr_mario_hammer_duck
And this: scr_mariogoal
Code:
case cs_hammer: return spr_mario_hammer_goal
And this: scr_mariohold
Code:
case cs_hammer: return spr_mario_hammer_hold
And this: scr_mariojump
Code:
case cs_hammer: return spr_mario_hammer_jump
And this: scr_mariokick
Code:
case cs_hammer: return spr_mario_hammer_kick
And this: scr_mariomap
Code:
case cs_hammer: return spr_mapmario_hammer
And this: scr_marioride
Code:
case cs_hammer: return spr_mario_hammer_ride
And this: scr_mariorun
Code:
case cs_hammer: return spr_mario_hammer_run
And this: scr_mariorunjump
Code:
case cs_hammer: return spr_mario_hammer_runjump
And this: scr_marioshoot
Code:
case cs_hammer: return spr_mario_hammer_shoot
And this: scr_marioskid
Code:
case cs_hammer: return spr_mario_hammer_skid
And this: scr_marioslide
Code:
case cs_hammer: return spr_mario_hammer_slide
And this: scr_marioswim
Code:
case cs_hammer: return spr_mario_hammer_swim
And this: scr_mariowalk
Code:
case cs_hammer: return spr_mario_hammer_walk
And this: scr_mariowarp
Code:
case cs_hammer: return spr_mario_hammer_warp
And maybe more. Now don't say that's easy to do. I'm too lazy to talk about what you can do about it, but there's already a post in here about what you can do about that. viewtopic.php?f=10&t=16916&start=37
[quote="TheShyGuy"]DBY are you talking about branch misprediction? If so, if-statements aren't slow. Branch [i]misprediction[/i] is slow.. I also don't understand why you think looping is slow too... I know you did research on cache, so you should know that looping over large amounts of contiguous data is pretty fast. ~But I have no clue how GM compiles it's code, so I'm not even sure if cache optimization is practical in GM.[/quote]
Ah, thanks for the correction! It's not that I don't know that, but I don't explain things very well :whoops: . Corrected it in this post. And GMS compiles GML.
Yes, branching is slow in a loop [i]if[/i] the data is not in a predictable pattern. If you make a game with several ten-thousands of objects that are being processed every frame with a lot of branching, then yes, there is going to be a lot of branch mispredictions if the data the branch tests is not in a predictable pattern (and it's in fact most likely unpredictable). There are a lot of other details I want to go into, but I don't have much time for that.
@Hello I'm going to give you one more chance of [b]help[/b]. I know you listened to others' feedback about comments and formatting, but you can make your engine even better like you did previously. That's the point of open-source, right? If you don't listen to anyone, you'll be teaching GM programmers who modify your engine bad examples. It's your choice, though.
[quote="Hello"]Adding powerups is not hard at all. Most of it is just adding your new sprites and powerup objects to a bunch of switch statements, and then maybe a few minor changes to obj_mario depending on what the powerup does. There is no good reason to use enums over globals, and inheritance for powerups would just make things messy. (Inheritance is already used where it makes sense, like with enemies, holdable stuff, etc.) And you say if statements are slow, but the engine can easily run at hundreds of fps on my 5 year old laptop...[/quote]
And [i]this[/i] is a bad example to new GM coders (teaching them that there is only one best way to do things)!
Adding may be easy, but let's say I want to remove the hammer powerup. I have to remove this:
[spoiler]obj:mario:201
[code]
else if global.powerup = cs_hammer
and instance_number(obj_hammer)
{
firing = 9
with instance_create(x,y+16,obj_hammer) hspeed = 1.5*other.direct+other.hspeed
}
[/code]
obj_mario:312
[code]
else if global.powerup = cs_hammer
and instance_number(obj_hammer)
with instance_create(x,y+16,obj_hammer) hspeed = -1.5*other.direct
[/code]
And this:
obj_mario:360
[code]
else if global.powerup = cs_hammer
and instance_number(obj_hammer) < 2
with instance_create(x,y+16,obj_hammer) hspeed = 1.5*other.direct
[/code]
And this:
obj_mario:616
[code]
or global.powerup = cs_hammer
[/code]
And this:
scr_mariocarry
[code]
case cs_hammer: return spr_mario_hammer_carry
[/code]
And this:
scr_marioclimb
[code]
case cs_hammer: return spr_mario_hammer_climb
[/code]
And this:
scr_marioduck
[code]
case cs_hammer: return spr_mario_hammer_duck
[/code]
And this:
scr_mariogoal
[code]
case cs_hammer: return spr_mario_hammer_goal
[/code]
And this:
scr_mariohold
[code]
case cs_hammer: return spr_mario_hammer_hold
[/code]
And this:
scr_mariojump
[code]
case cs_hammer: return spr_mario_hammer_jump
[/code]
And this:
scr_mariokick
[code]
case cs_hammer: return spr_mario_hammer_kick
[/code]
And this:
scr_mariomap
[code]
case cs_hammer: return spr_mapmario_hammer
[/code]
And this:
scr_marioride
[code]
case cs_hammer: return spr_mario_hammer_ride
[/code]
And this:
scr_mariorun
[code]
case cs_hammer: return spr_mario_hammer_run
[/code]
And this:
scr_mariorunjump
[code]
case cs_hammer: return spr_mario_hammer_runjump
[/code]
And this:
scr_marioshoot
[code]
case cs_hammer: return spr_mario_hammer_shoot
[/code]
And this:
scr_marioskid
[code]
case cs_hammer: return spr_mario_hammer_skid
[/code]
And this:
scr_marioslide
[code]
case cs_hammer: return spr_mario_hammer_slide
[/code]
And this:
scr_marioswim
[code]
case cs_hammer: return spr_mario_hammer_swim
[/code]
And this:
scr_mariowalk
[code]
case cs_hammer: return spr_mario_hammer_walk
[/code]
And this:
scr_mariowarp
[code]
case cs_hammer: return spr_mario_hammer_warp
[/code][/spoiler]
And maybe more. Now don't say that's easy to do. I'm too lazy to talk about what you can do about it, but there's already a post in here about what you can do about that. http://phpbb.mfgg.net/viewtopic.php?f=10&t=16916&start=37
If people would stop using this as a ""Create Your Game" or "Create Your Level" and learn from it, it'll be great. I mean take the best of it and improve it, not just copy it.
But you see, that's the exact problem; the engine is too complicated for a beginner to edit and premade engines are, not always, but ALMOST always, used by beginners. For example, in what I'd consider an ideal engine for beginners, each powered up form of Mario would be its own object, and there'd be a simple framework of global variables used in the create events for preserving momentum when powering up or down.
Is it the most streamlined way? No, it's not, and some glitches might happen, but it would also make it a lot, and I mean a lot easier for beginners to edit and add new power ups. Also, practically every line of code would be commented.
Hello Engine's design promotes "SMW hack"-style game development. It's the truth. There's so many things already present that actually coding any new enemies seems pointless, and most people probably wouldn't even think to bother with deleting the premade enemies and creating their own versions (In my opinion, this would do away with A LOT of the tedium in all of the clones; that and editing Mario's physics.) I mean seriously, over 100 enemies?
Speaking of Mario's physics, allow me to make an actual suggestion for the engine.
Basically, all of Mario's movement and jumping variables could all depend on a list of variables defined in Mario's (or any other applicable object's) create event. For example, one of the variables could be jumpheight. Instead of setting the vspeed to...whatever it's set to when Mario jumps (yeah, it just occurred me that I've never actually figure out what scripts handles Mario's movement despite the fact I've had various versions of this engine sitting around on my computer for several years...that's not a good start for a "user friendly" engine.) it could do
vspeed = jumpheight *-1
The same things could be done with gravity, maximum fall speed, move speed, friction...you name it. That would make personalizing the game's overall feel and handling much easier. The player could make it play like SMB3, Super Mario world...heck, they could even give the game mathematically-accurate earth physics if they wanted to!
[quote="EDGE"]If people would stop using this as a ""Create Your Game" or "Create Your Level" and learn from it, it'll be great. I mean take the best of it and improve it, not just copy it.[/quote]
But you see, that's the exact problem; the engine is too complicated for a beginner to edit and premade engines are, not always, but ALMOST
always, used by beginners. For example, in what I'd consider an ideal engine for beginners, each powered up form of Mario would be its own object,
and there'd be a simple framework of global variables used in the create events for preserving momentum when powering up or down.
Is it the most streamlined way? No, it's not, and some glitches might happen, but it would also make it a lot, and I mean [i]a lot[/i] easier
for beginners to edit and add new power ups. Also, practically every line of code would be commented.
Hello Engine's design promotes "SMW hack"-style game development. It's the truth. There's so many things already present that actually
coding any new enemies seems pointless, and most people probably wouldn't even think to bother with deleting the premade enemies and creating
their own versions (In my opinion, this would do away with A LOT of the tedium in all of the clones; that and editing Mario's physics.)
I mean seriously, over 100 enemies?
[i][b]Speaking of Mario's physics, allow me to make an actual suggestion for the engine.[/b][/i]
Basically, all of Mario's movement and jumping variables could all depend on a list of variables defined in Mario's (or any other applicable
object's) create event. For example, one of the variables could be [i]jumpheight[/i]. Instead of setting the vspeed to...whatever it's set to
when Mario jumps (yeah, it just occurred me that I've never actually figure out what scripts handles Mario's movement despite the fact I've
had various versions of this engine sitting around on my computer for several years...that's not a good start for a "user friendly" engine.)
it could do
vspeed = jumpheight *-1
The same things could be done with gravity, maximum fall speed, move speed, friction...you
name it. That would make personalizing the game's overall feel and handling much easier. The
player could make it play like SMB3, Super Mario world...heck, they could even give the game
mathematically-accurate earth physics if they wanted to! :laugh:
_________________
Most people don't think that they're always right, they just think that people who disagree with them are always wrong.
@Hello I'm going to give you one more chance of help. I know you listened to others' feedback about comments and formatting, but you can make your engine even better like you did previously. That's the point of open-source, right? If you don't listen to anyone, you'll be teaching GM programmers who modify your engine bad examples. It's your choice, though.
The point of open source is that anyone is free to make whatever changes they want to the engine.
DarkBlueYoshi wrote:
Adding may be easy, but let's say I want to remove the hammer powerup. I have to remove this: Spoiler:
obj:mario:201
Code:
else if global.powerup = cs_hammer and instance_number(obj_hammer) { firing = 9 with instance_create(x,y+16,obj_hammer) hspeed = 1.5*other.direct+other.hspeed }
obj_mario:312
Code:
else if global.powerup = cs_hammer and instance_number(obj_hammer) with instance_create(x,y+16,obj_hammer) hspeed = -1.5*other.direct
And this: obj_mario:360
Code:
else if global.powerup = cs_hammer and instance_number(obj_hammer) < 2 with instance_create(x,y+16,obj_hammer) hspeed = 1.5*other.direct
And this: obj_mario:616
Code:
or global.powerup = cs_hammer
And this: scr_mariocarry
Code:
case cs_hammer: return spr_mario_hammer_carry
And this: scr_marioclimb
Code:
case cs_hammer: return spr_mario_hammer_climb
And this: scr_marioduck
Code:
case cs_hammer: return spr_mario_hammer_duck
And this: scr_mariogoal
Code:
case cs_hammer: return spr_mario_hammer_goal
And this: scr_mariohold
Code:
case cs_hammer: return spr_mario_hammer_hold
And this: scr_mariojump
Code:
case cs_hammer: return spr_mario_hammer_jump
And this: scr_mariokick
Code:
case cs_hammer: return spr_mario_hammer_kick
And this: scr_mariomap
Code:
case cs_hammer: return spr_mapmario_hammer
And this: scr_marioride
Code:
case cs_hammer: return spr_mario_hammer_ride
And this: scr_mariorun
Code:
case cs_hammer: return spr_mario_hammer_run
And this: scr_mariorunjump
Code:
case cs_hammer: return spr_mario_hammer_runjump
And this: scr_marioshoot
Code:
case cs_hammer: return spr_mario_hammer_shoot
And this: scr_marioskid
Code:
case cs_hammer: return spr_mario_hammer_skid
And this: scr_marioslide
Code:
case cs_hammer: return spr_mario_hammer_slide
And this: scr_marioswim
Code:
case cs_hammer: return spr_mario_hammer_swim
And this: scr_mariowalk
Code:
case cs_hammer: return spr_mario_hammer_walk
And this: scr_mariowarp
Code:
case cs_hammer: return spr_mario_hammer_warp
And maybe more. Now don't say that's easy to do. I'm too lazy to talk about what you can do about it, but there's already a post in here about what you can do about that. viewtopic.php?f=10&t=16916&start=37
The reason all those scripts are there is to simplify the addition of new powerups, since that is what I feel is more important. The most time consuming part of me adding that new wall jump powerup was inserting the sprites into the editor. The code part could be done a lot quicker thanks to the way the engine is designed.
Most of the scripts in your posts are scr_mariopose scripts, which are for defining all of Mario's sprites in one place. The other scripts in your post are for throwing hammers. If you want to remove the hammer suit, all it would take is removing the cs_hammer cases from a bunch of switch statements, and then, removing the hammer projectile code from obj_mario. That's it.
soopakoopa wrote:
But you see, that's the exact problem; the engine is too complicated for a beginner to edit and premade engines are, not always, but ALMOSTalways, used by beginners. For example, in what I'd consider an ideal engine for beginners, each powered up form of Mario would be its own object, and there'd be a simple framework of global variables used in the create events for preserving momentum when powering up or down.
Is it the most streamlined way? No, it's not, and some glitches might happen, but it would also make it a lot, and I mean a lot easier for beginners to edit and add new power ups. Also, practically every line of code would be commented.
Using a different object for every powerup would lead to messier code, and could potentially make the engine harder to modify. Also practically every line of code is already commented...
soopakoopa wrote:
Hello Engine's design promotes "SMW hack"-style game development. It's the truth. There's so many things already present that actually coding any new enemies seems pointless, and most people probably wouldn't even think to bother with deleting the premade enemies and creating their own versions (In my opinion, this would do away with A LOT of the tedium in all of the clones; that and editing Mario's physics.) I mean seriously, over 100 enemies?
There is nothing wrong with "SMW hack-style game development", if that is what people want to do.
soopakoopa wrote:
Basically, all of Mario's movement and jumping variables could all depend on a list of variables defined in Mario's (or any other applicable object's) create event. For example, one of the variables could be jumpheight. Instead of setting the vspeed to...whatever it's set to when Mario jumps (yeah, it just occurred me that I've never actually figure out what scripts handles Mario's movement despite the fact I've had various versions of this engine sitting around on my computer for several years...that's not a good start for a "user friendly" engine.) it could do
vspeed = jumpheight *-1
The same things could be done with gravity, maximum fall speed, move speed, friction...you name it. That would make personalizing the game's overall feel and handling much easier. The player could make it play like SMB3, Super Mario world...heck, they could even give the game mathematically-accurate earth physics if they wanted to!
Jump height code can be found in User Event code. There are three different jump heights used, depending on Mario's speed. The "user friendly engine" comment of mine only applies to versions 6+ of my engine.
[quote="DarkBlueYoshi"]@Hello I'm going to give you one more chance of [b]help[/b]. I know you listened to others' feedback about comments and formatting, but you can make your engine even better like you did previously. That's the point of open-source, right? If you don't listen to anyone, you'll be teaching GM programmers who modify your engine bad examples. It's your choice, though.[/quote]
The point of open source is that anyone is free to make whatever changes they want to the engine.
[quote="DarkBlueYoshi"]Adding may be easy, but let's say I want to remove the hammer powerup. I have to remove this:
[spoiler]obj:mario:201
[code]
else if global.powerup = cs_hammer
and instance_number(obj_hammer)
{
firing = 9
with instance_create(x,y+16,obj_hammer) hspeed = 1.5*other.direct+other.hspeed
}
[/code]
obj_mario:312
[code]
else if global.powerup = cs_hammer
and instance_number(obj_hammer)
with instance_create(x,y+16,obj_hammer) hspeed = -1.5*other.direct
[/code]
And this:
obj_mario:360
[code]
else if global.powerup = cs_hammer
and instance_number(obj_hammer) < 2
with instance_create(x,y+16,obj_hammer) hspeed = 1.5*other.direct
[/code]
And this:
obj_mario:616
[code]
or global.powerup = cs_hammer
[/code]
And this:
scr_mariocarry
[code]
case cs_hammer: return spr_mario_hammer_carry
[/code]
And this:
scr_marioclimb
[code]
case cs_hammer: return spr_mario_hammer_climb
[/code]
And this:
scr_marioduck
[code]
case cs_hammer: return spr_mario_hammer_duck
[/code]
And this:
scr_mariogoal
[code]
case cs_hammer: return spr_mario_hammer_goal
[/code]
And this:
scr_mariohold
[code]
case cs_hammer: return spr_mario_hammer_hold
[/code]
And this:
scr_mariojump
[code]
case cs_hammer: return spr_mario_hammer_jump
[/code]
And this:
scr_mariokick
[code]
case cs_hammer: return spr_mario_hammer_kick
[/code]
And this:
scr_mariomap
[code]
case cs_hammer: return spr_mapmario_hammer
[/code]
And this:
scr_marioride
[code]
case cs_hammer: return spr_mario_hammer_ride
[/code]
And this:
scr_mariorun
[code]
case cs_hammer: return spr_mario_hammer_run
[/code]
And this:
scr_mariorunjump
[code]
case cs_hammer: return spr_mario_hammer_runjump
[/code]
And this:
scr_marioshoot
[code]
case cs_hammer: return spr_mario_hammer_shoot
[/code]
And this:
scr_marioskid
[code]
case cs_hammer: return spr_mario_hammer_skid
[/code]
And this:
scr_marioslide
[code]
case cs_hammer: return spr_mario_hammer_slide
[/code]
And this:
scr_marioswim
[code]
case cs_hammer: return spr_mario_hammer_swim
[/code]
And this:
scr_mariowalk
[code]
case cs_hammer: return spr_mario_hammer_walk
[/code]
And this:
scr_mariowarp
[code]
case cs_hammer: return spr_mario_hammer_warp
[/code][/spoiler]
And maybe more. Now don't say that's easy to do. I'm too lazy to talk about what you can do about it, but there's already a post in here about what you can do about that. http://phpbb.mfgg.net/viewtopic.php?f=10&t=16916&start=37[/quote]
The reason all those scripts are there is to simplify the addition of new powerups, since that is what I feel is more important. The most time consuming part of me adding that new wall jump powerup was inserting the sprites into the editor. The code part could be done a lot quicker thanks to the way the engine is designed.
Most of the scripts in your posts are scr_mariopose scripts, which are for defining all of Mario's sprites in one place. The other scripts in your post are for throwing hammers. If you want to remove the hammer suit, all it would take is removing the cs_hammer cases from a bunch of switch statements, and then, removing the hammer projectile code from obj_mario. That's it.
[quote="soopakoopa"]But you see, that's the exact problem; the engine is too complicated for a beginner to edit and premade engines are, not always, but ALMOSTalways, used by beginners. For example, in what I'd consider an ideal engine for beginners, each powered up form of Mario would be its own object, and there'd be a simple framework of global variables used in the create events for preserving momentum when powering up or down.
Is it the most streamlined way? No, it's not, and some glitches might happen, but it would also make it a lot, and I mean [i]a lot[/i] easier for beginners to edit and add new power ups. Also, practically every line of code would be commented.[/quote]
Using a different object for every powerup would lead to messier code, and could potentially make the engine harder to modify. Also practically every line of code is already commented...
[quote="soopakoopa"]Hello Engine's design promotes "SMW hack"-style game development. It's the truth. There's so many things already present that actually coding any new enemies seems pointless, and most people probably wouldn't even think to bother with deleting the premade enemies and creating their own versions (In my opinion, this would do away with A LOT of the tedium in all of the clones; that and editing Mario's physics.) I mean seriously, over 100 enemies?[/quote]
There is nothing wrong with "SMW hack-style game development", if that is what people want to do.
[quote="soopakoopa"]Basically, all of Mario's movement and jumping variables could all depend on a list of variables defined in Mario's (or any other applicable object's) create event. For example, one of the variables could be [i]jumpheight[/i]. Instead of setting the vspeed to...whatever it's set to when Mario jumps (yeah, it just occurred me that I've never actually figure out what scripts handles Mario's movement despite the fact I've had various versions of this engine sitting around on my computer for several years...that's not a good start for a "user friendly" engine.)
it could do
vspeed = jumpheight *-1
The same things could be done with gravity, maximum fall speed, move speed, friction...you name it. That would make personalizing the game's overall feel and handling much easier. The player could make it play like SMB3, Super Mario world...heck, they could even give the game mathematically-accurate earth physics if they wanted to! :laugh:[/quote]
Jump height code can be found in User Event code. There are three different jump heights used, depending on Mario's speed. The "user friendly engine" comment of mine only applies to versions 6+ of my engine.
The reason all those scripts are there is to simplify the addition of new powerups, since that is what I feel is more important. The most time consuming part of me adding that new wall jump powerup was inserting the sprites into the editor. The code part could be done a lot quicker thanks to the way the engine is designed.
Most of the scripts in your posts are scr_mariopose scripts, which are for defining all of Mario's sprites in one place. The other scripts in your post are for throwing hammers. If you want to remove the hammer suit, all it would take is removing the cs_hammer cases from a bunch of switch statements, and then, removing the hammer projectile code from obj_mario. That's it.
Or you could use an array, thus removing most of the code needed to insert the new sprites for each powerup. Removing the hammer powerup in obj_mario does remind me of violating this if I remember correctly. Did you read the post from the link I gave you? I see that other people here are more open-minded to better ways of doing things than you are just by looking at the replies to that post.
Wait, no, why am I wasting time writing this post? You obviously aren't going to do anything. Sorry for helping you. I shouldn't be bothering you.
[quote="Hello"]The reason all those scripts are there is to simplify the addition of new powerups, since that is what I feel is more important. The most time consuming part of me adding that new wall jump powerup was inserting the sprites into the editor. The code part could be done a lot quicker thanks to the way the engine is designed.
Most of the scripts in your posts are scr_mariopose scripts, which are for defining all of Mario's sprites in one place. The other scripts in your post are for throwing hammers. If you want to remove the hammer suit, all it would take is removing the cs_hammer cases from a bunch of switch statements, and then, removing the hammer projectile code from obj_mario. That's it.[/quote]
Or you could use an array, thus removing most of the code needed to insert the new sprites for each powerup. Removing the hammer powerup in obj_mario does remind me of violating [url=http://www.codeproject.com/Articles/613119/SOLID-Principles-The-Open-Closed-Principle-What-Wh]this[/url] if I remember correctly. Did you read the post from the link I gave you? I see that other people here are more open-minded to better ways of doing things than you are just by looking at the replies to that post.
Counter to Hello's next reply: [size=120][url]http://phpbb.mfgg.net/viewtopic.php?f=10&t=16958&start=7[/url][/size]
Wait, no, why am I wasting time writing this post? You obviously aren't going to do anything. Sorry for helping you. I shouldn't be bothering you.
Last edited by DarkBlueYoshi on Sun Feb 15, 2015 11:29 pm, edited 3 times in total. _________________
But you see, that's the exact problem; the engine is too complicated for a beginner to edit and premade engines are, not always, but ALMOST always, used by beginners. For example, in what I'd consider an ideal engine for beginners, each powered up form of Mario would be its own object, and there'd be a simple framework of global variables used in the create events for preserving momentum when powering up or down.
Is it the most streamlined way? No, it's not, and some glitches might happen, but it would also make it a lot, and I mean a lot easier for beginners to edit and add new power ups. Also, practically every line of code would be commented.
Last GameMaker I used was GM8, I remember fixing that problem. With just one object and one Global value. I understand what everyone is saying, the Engine could use MAJOR work. Yes, I know GameMaker Studio has new features that make it easier and would probably cut in half the codes needed to run the Engine. It just seems pathetic that people cry about adding or removing a feature and at the same time cry about how this is poorly coded. The Engine is to learn from and as all of you know it's not the final version, as there is from what I know about more than 6 Versions by now. So he is working on them and trying to improve, I'm sure he has a life so it'll take time. Demanding and helping is different. It's easy to sit there pointing fingers and crying but it's better to suggest something and show what can be done (No, saying "This is a mess" or "It can be better" doesn't count)
soopakoopa wrote:
Hello Engine's design promotes "SMW hack"-style game development. It's the truth. There's so many things already present that actually coding any new enemies seems pointless, and most people probably wouldn't even think to bother with deleting the premade enemies and creating their own versions (In my opinion, this would do away with A LOT of the tedium in all of the clones; that and editing Mario's physics.) I mean seriously, over 100 enemies?
The problem is, a Mario game will always have the same enemies. Unless one bothers to make original ones. I don't think there is anything wrong with adding all the enemies he can, in fact someone can look through the codes and make their own. Clones are inevitable, doesn't matter if they use Hellos Engine or a SMW Hack Tool. The cloning doesn't depend on an Engine but on the User's creativity.
None of what I said is directed at anybody in particular, it just seems to me that we are making Hello look like a bad guy and the reason for all these Clone games when it's not the truth. A good example of what I mean is CatezeeY (Who I believe goes by the name of Gatete now), I know for a Fact he used to use Hello's Engine. Now he made his own Engine and even made some awesome Games, look at Mario's Timeless Picross.
[quote="soopakoopa"]
But you see, that's the exact problem; the engine is too complicated for a beginner to edit and premade engines are, not always, but ALMOST
always, used by beginners. For example, in what I'd consider an ideal engine for beginners, each powered up form of Mario would be its own object,
and there'd be a simple framework of global variables used in the create events for preserving momentum when powering up or down.
Is it the most streamlined way? No, it's not, and some glitches might happen, but it would also make it a lot, and I mean [i]a lot[/i] easier
for beginners to edit and add new power ups. Also, practically every line of code would be commented.
[/quote]
Last GameMaker I used was GM8, I remember fixing that problem. With just one object and one Global value.
I understand what everyone is saying, the Engine could use MAJOR work.
Yes, I know GameMaker Studio has new features that make it easier and would probably cut in half the codes needed to run the Engine.
It just seems pathetic that people cry about adding or removing a feature and at the same time cry about how this is poorly coded.
The Engine is to learn from and as all of you know it's not the final version, as there is from what I know about more than 6 Versions by now.
So he is working on them and trying to improve, I'm sure he has a life so it'll take time.
Demanding and helping is different. It's easy to sit there pointing fingers and crying but it's better to suggest something and show what can be done (No, saying "This is a mess" or "It can be better" doesn't count)
[quote="soopakoopa"]
Hello Engine's design promotes "SMW hack"-style game development. It's the truth. There's so many things already present that actually
coding any new enemies seems pointless, and most people probably wouldn't even think to bother with deleting the premade enemies and creating
their own versions (In my opinion, this would do away with A LOT of the tedium in all of the clones; that and editing Mario's physics.)
I mean seriously, over 100 enemies?
[/quote]
The problem is, a Mario game will always have the same enemies. Unless one bothers to make original ones. I don't think there is anything wrong with adding all the enemies he can, in fact someone can look through the codes and make their own.
Clones are inevitable, doesn't matter if they use Hellos Engine or a SMW Hack Tool. The cloning doesn't depend on an Engine but on the User's creativity.
None of what I said is directed at anybody in particular, it just seems to me that we are making Hello look like a bad guy and the reason for all these Clone games when it's not the truth.
A good example of what I mean is CatezeeY (Who I believe goes by the name of Gatete now), I know for a Fact he used to use Hello's Engine. Now he made his own Engine and even made some awesome Games, look at Mario's Timeless Picross.
The people who make clones wouldn't make games if engines ti clone didn't exist. What people seem to be suggesting would do little more than prevent people from making anything.
The people who make clones wouldn't make games if engines ti clone didn't exist. What people seem to be suggesting would do little more than prevent people from making anything.
Or you could use an array, thus removing most of the code needed to insert the new sprites for each powerup. Removing the hammer powerup in obj_mario does remind me of violating this if I remember correctly. Did you read the post from the link I gave you? I see that other people here are more open-minded to better ways of doing things than you are just by looking at the replies to that post.
There is nothing that makes using arrays better than using switch/case statements. Both would be used to do the exact same thing, and both would take the same amount of effort to add to.
[quote="DarkBlueYoshi"]Or you could use an array, thus removing most of the code needed to insert the new sprites for each powerup. Removing the hammer powerup in obj_mario does remind me of violating [url=http://www.codeproject.com/Articles/613119/SOLID-Principles-The-Open-Closed-Principle-What-Wh]this[/url] if I remember correctly. Did you read the post from the link I gave you? I see that other people here are more open-minded to better ways of doing things than you are just by looking at the replies to that post.[/quote]
There is nothing that makes using arrays better than using switch/case statements. Both would be used to do the exact same thing, and both would take the same amount of effort to add to.
What's new in 6.1? 16:9 Widescreen Default Resolution New Powerup: Wall Jump Shroom Various New Features: Bomb Bricks, Propeller Blocks, Blue POW Blocks, New Net Koopa and Piranha Plant Variations, etc. Various Bug Fixes: This includes all YoYoCompiler related issues, so you can use YYC export options without encountering any problems.
A new version is available for download!
[b]What's new in 6.1?[/b]
[b]16:9 Widescreen Default Resolution[/b]
[b]New Powerup:[/b] Wall Jump Shroom
[b]Various New Features:[/b] Bomb Bricks, Propeller Blocks, Blue POW Blocks, New Net Koopa and Piranha Plant Variations, etc.
[b]Various Bug Fixes:[/b] This includes all YoYoCompiler related issues, so you can use YYC export options without encountering any problems.
What GameMaker version was 6.1 compiled on? Either my version is too old or the .gmk file is corrupted.
6.1 is the Studio version; as far as I know, Hello isn't going to make any new versions of the engine compatible with legacy Game Maker.
[quote="CatoNator"]What GameMaker version was 6.1 compiled on? Either my version is too old or the .gmk file is corrupted.[/quote]
6.1 is the Studio version; as far as I know, Hello isn't going to make any new versions of the engine compatible
with legacy Game Maker.
_________________
Most people don't think that they're always right, they just think that people who disagree with them are always wrong.
What GameMaker version was 6.1 compiled on? Either my version is too old or the .gmk file is corrupted.
6.1 is the Studio version; as far as I know, Hello isn't going to make any new versions of the engine compatible with legacy Game Maker.
I kind of wish he would bring back the one compatible with GMS 1.2.
[quote="soopakoopa"][quote="CatoNator"]What GameMaker version was 6.1 compiled on? Either my version is too old or the .gmk file is corrupted.[/quote]
6.1 is the Studio version; as far as I know, Hello isn't going to make any new versions of the engine compatible
with legacy Game Maker.[/quote]
I kind of wish he would bring back the one compatible with GMS 1.2.
What GameMaker version was 6.1 compiled on? Either my version is too old or the .gmk file is corrupted.
6.1 is the Studio version; as far as I know, Hello isn't going to make any new versions of the engine compatible with legacy Game Maker.
Yes, indeed, but I meant Studio version. It gives me a "Failed reading assets from GMXfile" on boot.
[quote="soopakoopa"][quote="CatoNator"]What GameMaker version was 6.1 compiled on? Either my version is too old or the .gmk file is corrupted.[/quote]
6.1 is the Studio version; as far as I know, Hello isn't going to make any new versions of the engine compatible
with legacy Game Maker.[/quote]
Yes, indeed, but I meant Studio version. It gives me a "Failed reading assets from GMXfile" on boot.
Yes, but importing the file as a .gmz files causes the bug. lol i don't care i didn't want hello engine anyways really
[quote="Mors"]Because it's a GMZ file, not GMX.[/quote]
Yes, but importing the file as a .gmz files causes the bug.
[ispoiler]lol i don't care i didn't want hello engine anyways really[/ispoiler]
What GameMaker version was 6.1 compiled on? Either my version is too old or the .gmk file is corrupted.
I used 1.4.1522, but I don't think the format changed, so you should be able to use any 1.4 version...
Willsaber wrote:
I kind of wish he would bring back the one compatible with GMS 1.2.
There is no reason to, since all Studio users get free upgrades to all 1.X versions, and the newer ones are better.
Gatete wrote:
You might want to take a look onto this thing, Hello
Not a bug. If you approach a level panel from a certain direction, it unlocks that direction to use later. You can't skip levels with it.
[quote="CatoNator"]What GameMaker version was 6.1 compiled on? Either my version is too old or the .gmk file is corrupted.[/quote]
I used 1.4.1522, but I don't think the format changed, so you should be able to use any 1.4 version...
[quote="Willsaber"]I kind of wish he would bring back the one compatible with GMS 1.2.[/quote]
There is no reason to, since all Studio users get free upgrades to all 1.X versions, and the newer ones are better.
[quote="Gatete"]You might want to take a look onto this thing, Hello
[img]http://i.imgur.com/52yIO07.gif[/img][/quote]
Not a bug. If you approach a level panel from a certain direction, it unlocks that direction to use later. You can't skip levels with it.
What GameMaker version was 6.1 compiled on? Either my version is too old or the .gmk file is corrupted.
I used 1.4.1522, but I don't think the format changed, so you should be able to use any 1.4 version...
That explains it, I haven't updated to 1.4 yet, I don't like my projects getting wonky after updates.
[quote="Hello"][quote="CatoNator"]What GameMaker version was 6.1 compiled on? Either my version is too old or the .gmk file is corrupted.[/quote]
I used 1.4.1522, but I don't think the format changed, so you should be able to use any 1.4 version...[/quote]
That explains it, I haven't updated to 1.4 yet, I don't like my projects getting wonky after updates.
Alright... I messed around with the codes and got rid of almost all the scripts by adding a few codes on obj_mario. Anybody that wants to use this Engine and save space and make it easier to work with go ahead and read my crazyness. Spoiler:
First of all, I went ahead and changed all the global.state codes. Why confuse yourself with numbers, global.state=0, global.state=1,etc. I just changed them to:
Changed every sprite_index=sprite_image_here to sprite="pose here". For example, instead of having this:
Code:
if global.state = 0 sprite_index = spr_mario_small_walk if global.state = 1 sprite_index = spr_mario_big_walk if global.state = 2 sprite_index = spr_mario_fire_walk if global.state = 3 sprite_index = spr_mario_hammer_walk if global.state = 4 sprite_index = spr_mario_leaf_walk if global.state = 5 sprite_index = spr_mario_tanooki_walk if global.state = 6 sprite_index = spr_mario_frog_walk if global.state = 7 sprite_index = spr_mario_bomb_walk if global.state = 8 sprite_index = spr_mario_ice_walk if global.state = 9 sprite_index = spr_mario_super_walk if global.state = 10 sprite_index = spr_mario_carrot_walk if global.state = 11 sprite_index = spr_mario_ninja_walk if global.state = 12 sprite_index = spr_mario_bee_walk if global.state = 13 sprite_index = spr_mario_shell_walk if global.state = 14 sprite_index = spr_mario_penguin_walk
All you need is this:
Code:
sprite="walk"
The Code on the Drawing Event will take care of everything. As long as the sprites are named like you have them: Let's say you wanna make Mario show the small walking sprite:
Quote:
spr_mario_small_walk
All you have to do is this:
Code:
sprite="walk"
Just the last part of the sprite's name. No need to make a code for each power up either since the are all named the same. The Drawing event draws "spr_" Plus the global.character Plus the Powerup/State he is in Plus "sprite" which is the pose, If you Add another Character like let's say, Luigi. All you have to do is rename the sprites where it says mario to luigi, ex:
Quote:
spr_mario_small_walk spr_luigi_small_walk
And have an event/code change the global.character="mario" to global.character="luigi". You can even use that global.character to have specific features for each character in just one object(obj_mario). It's kind of basic, can be done easier but at least with just those 3 Lines of Code (2 on the create event and 1 on the drawing event) you can get rid of:
PS: This will make it easier to add power ups later too, let's say you add... the squirrel power up. just name the sprites with all the poses like the ones on the engine already are:
Quote:
spr_mario_fire_walk
Into:
Quote:
spr_mario_squirrel_walk
And have an item that makes mario's global.state turn into:
Quote:
global.state"squirrel"
The rest is Self-explanatory
Alright... I messed around with the codes and got rid of almost all the scripts by adding a few codes on obj_mario.
Anybody that wants to use this Engine and save space and make it easier to work with go ahead and read my crazyness.
[spoiler]First of all, I went ahead and changed all the global.state codes.
Why confuse yourself with numbers, global.state=0, global.state=1,etc. I just changed them to:
[code]global.state="small"
global.state="big"
etc[/code]
On The Create Event Added:
[code]sprite="walk"
global.character="mario"[/code]
On the Drawing Event
[code]execute_string("sprite_index=spr_"+global.character+"_"+global.powerup+"_"+sprite)[/code]
Changed every sprite_index=sprite_image_here to sprite="pose here". For example, instead of having this:
[code]if global.state = 0
sprite_index = spr_mario_small_walk
if global.state = 1
sprite_index = spr_mario_big_walk
if global.state = 2
sprite_index = spr_mario_fire_walk
if global.state = 3
sprite_index = spr_mario_hammer_walk
if global.state = 4
sprite_index = spr_mario_leaf_walk
if global.state = 5
sprite_index = spr_mario_tanooki_walk
if global.state = 6
sprite_index = spr_mario_frog_walk
if global.state = 7
sprite_index = spr_mario_bomb_walk
if global.state = 8
sprite_index = spr_mario_ice_walk
if global.state = 9
sprite_index = spr_mario_super_walk
if global.state = 10
sprite_index = spr_mario_carrot_walk
if global.state = 11
sprite_index = spr_mario_ninja_walk
if global.state = 12
sprite_index = spr_mario_bee_walk
if global.state = 13
sprite_index = spr_mario_shell_walk
if global.state = 14
sprite_index = spr_mario_penguin_walk[/code]
All you need is this:
[code]sprite="walk"[/code]
The Code on the Drawing Event will take care of everything.
As long as the sprites are named like you have them:
Let's say you wanna make Mario show the small walking sprite:
[quote]spr_mario_small_walk[/quote]
All you have to do is this:
[code]sprite="walk"[/code]
Just the last part of the sprite's name. No need to make a code for each power up either since the are all named the same.
The Drawing event draws "spr_" Plus the global.character Plus the Powerup/State he is in Plus "sprite" which is the pose,
If you Add another Character like let's say, Luigi. All you have to do is rename the sprites where it says mario to luigi, ex: [quote]spr_mario_small_walk
spr_luigi_small_walk[/quote]
And have an event/code change the global.character="mario" to global.character="luigi".
You can even use that global.character to have specific features for each character in just one object(obj_mario).
It's kind of basic, can be done easier but at least with just those 3 Lines of Code (2 on the create event and 1 on the drawing event)
you can get rid of:
[quote]scr_mariowalk
scr_mariojump
scr_mariorun
scr_mariorunjump
scr_marioclimb
scr_mariohold
scr_mariocarry
scr_mariowap
scr_mariogoal
scr_marioslide[/quote]
And Turn:
[quote]scr_smallmario
scr_bigmario
scr_firemario
scr_hammermario
scr_leafmario
scr_tanookimario
scr_frogmario
scr_bombmario
scr_icemario
scr_supermario
scr_carrotmario
scr_ninjamario
scr_beemario
scr_shellmario
scr_penguinmario[/quote]
Into just one script.
PS: This will make it easier to add power ups later too, let's say you add... the squirrel power up. just name the sprites with all the poses like the ones on the engine already are:
[quote]spr_mario_fire_walk[/quote]
Into:
[quote]spr_mario_squirrel_walk[/quote]
And have an item that makes mario's global.state turn into:
[quote]global.state"squirrel"[/quote]
The rest is Self-explanatory[/spoiler]
Alright... I messed around with the codes and got rid of almost all the scripts by adding a few codes on obj_mario. Anybody that wants to use this Engine and save space and make it easier to work with go ahead and read my crazyness. Spoiler:
First of all, I went ahead and changed all the global.state codes. Why confuse yourself with numbers, global.state=0, global.state=1,etc. I just changed them to:
Changed every sprite_index=sprite_image_here to sprite="pose here". For example, instead of having this:
Code:
if global.state = 0 sprite_index = spr_mario_small_walk if global.state = 1 sprite_index = spr_mario_big_walk if global.state = 2 sprite_index = spr_mario_fire_walk if global.state = 3 sprite_index = spr_mario_hammer_walk if global.state = 4 sprite_index = spr_mario_leaf_walk if global.state = 5 sprite_index = spr_mario_tanooki_walk if global.state = 6 sprite_index = spr_mario_frog_walk if global.state = 7 sprite_index = spr_mario_bomb_walk if global.state = 8 sprite_index = spr_mario_ice_walk if global.state = 9 sprite_index = spr_mario_super_walk if global.state = 10 sprite_index = spr_mario_carrot_walk if global.state = 11 sprite_index = spr_mario_ninja_walk if global.state = 12 sprite_index = spr_mario_bee_walk if global.state = 13 sprite_index = spr_mario_shell_walk if global.state = 14 sprite_index = spr_mario_penguin_walk
All you need is this:
Code:
sprite="walk"
The Code on the Drawing Event will take care of everything. As long as the sprites are named like you have them: Let's say you wanna make Mario show the small walking sprite:
Quote:
spr_mario_small_walk
All you have to do is this:
Code:
sprite="walk"
Just the last part of the sprite's name. No need to make a code for each power up either since the are all named the same. The Drawing event draws "spr_" Plus the global.character Plus the Powerup/State he is in Plus "sprite" which is the pose, If you Add another Character like let's say, Luigi. All you have to do is rename the sprites where it says mario to luigi, ex:
Quote:
spr_mario_small_walk spr_luigi_small_walk
And have an event/code change the global.character="mario" to global.character="luigi". You can even use that global.character to have specific features for each character in just one object(obj_mario). It's kind of basic, can be done easier but at least with just those 3 Lines of Code (2 on the create event and 1 on the drawing event) you can get rid of:
PS: This will make it easier to add power ups later too, let's say you add... the squirrel power up. just name the sprites with all the poses like the ones on the engine already are:
Quote:
spr_mario_fire_walk
Into:
Quote:
spr_mario_squirrel_walk
And have an item that makes mario's global.state turn into:
Quote:
global.state"squirrel"
The rest is Self-explanatory
I...after all of this time...never even knew that you could use words as values for variables as long as you put them in quotes. I thought it had to be a number.
[quote="EDGE"]Alright... I messed around with the codes and got rid of almost all the scripts by adding a few codes on obj_mario.
Anybody that wants to use this Engine and save space and make it easier to work with go ahead and read my crazyness.
[spoiler]First of all, I went ahead and changed all the global.state codes.
Why confuse yourself with numbers, global.state=0, global.state=1,etc. I just changed them to:
[code]global.state="small"
global.state="big"
etc[/code]
On The Create Event Added:
[code]sprite="walk"
global.character="mario"[/code]
On the Drawing Event
[code]execute_string("sprite_index=spr_"+global.character+"_"+global.powerup+"_"+sprite)[/code]
Changed every sprite_index=sprite_image_here to sprite="pose here". For example, instead of having this:
[code]if global.state = 0
sprite_index = spr_mario_small_walk
if global.state = 1
sprite_index = spr_mario_big_walk
if global.state = 2
sprite_index = spr_mario_fire_walk
if global.state = 3
sprite_index = spr_mario_hammer_walk
if global.state = 4
sprite_index = spr_mario_leaf_walk
if global.state = 5
sprite_index = spr_mario_tanooki_walk
if global.state = 6
sprite_index = spr_mario_frog_walk
if global.state = 7
sprite_index = spr_mario_bomb_walk
if global.state = 8
sprite_index = spr_mario_ice_walk
if global.state = 9
sprite_index = spr_mario_super_walk
if global.state = 10
sprite_index = spr_mario_carrot_walk
if global.state = 11
sprite_index = spr_mario_ninja_walk
if global.state = 12
sprite_index = spr_mario_bee_walk
if global.state = 13
sprite_index = spr_mario_shell_walk
if global.state = 14
sprite_index = spr_mario_penguin_walk[/code]
All you need is this:
[code]sprite="walk"[/code]
The Code on the Drawing Event will take care of everything.
As long as the sprites are named like you have them:
Let's say you wanna make Mario show the small walking sprite:
[quote]spr_mario_small_walk[/quote]
All you have to do is this:
[code]sprite="walk"[/code]
Just the last part of the sprite's name. No need to make a code for each power up either since the are all named the same.
The Drawing event draws "spr_" Plus the global.character Plus the Powerup/State he is in Plus "sprite" which is the pose,
If you Add another Character like let's say, Luigi. All you have to do is rename the sprites where it says mario to luigi, ex: [quote]spr_mario_small_walk
spr_luigi_small_walk[/quote]
And have an event/code change the global.character="mario" to global.character="luigi".
You can even use that global.character to have specific features for each character in just one object(obj_mario).
It's kind of basic, can be done easier but at least with just those 3 Lines of Code (2 on the create event and 1 on the drawing event)
you can get rid of:
[quote]scr_mariowalk
scr_mariojump
scr_mariorun
scr_mariorunjump
scr_marioclimb
scr_mariohold
scr_mariocarry
scr_mariowap
scr_mariogoal
scr_marioslide[/quote]
And Turn:
[quote]scr_smallmario
scr_bigmario
scr_firemario
scr_hammermario
scr_leafmario
scr_tanookimario
scr_frogmario
scr_bombmario
scr_icemario
scr_supermario
scr_carrotmario
scr_ninjamario
scr_beemario
scr_shellmario
scr_penguinmario[/quote]
Into just one script.
PS: This will make it easier to add power ups later too, let's say you add... the squirrel power up. just name the sprites with all the poses like the ones on the engine already are:
[quote]spr_mario_fire_walk[/quote]
Into:
[quote]spr_mario_squirrel_walk[/quote]
And have an item that makes mario's global.state turn into:
[quote]global.state"squirrel"[/quote]
The rest is Self-explanatory[/spoiler][/quote]
I...after all of this time...never even knew that you could use words as values for
variables as long as you put them in quotes. I thought it had to be a number.
_________________
Most people don't think that they're always right, they just think that people who disagree with them are always wrong.
switch(global.state) { case("small"): scr_mario_small();break; case("big"): scr_mario_big();break; case("fire"): scr_mario_fire();break; case("leaf"): scr_mario_leaf();break; case("tanooki"): scr_mario_tanooki();break; ///bunch of more power up things goes here default: scr_mario_big();break;//worst case scenario just make sure Mario animates for debugging }
I agree that would help out a lot of rookie gml developers. Anyways I personally don't like to use this:
[syntax=gml]if (global.state == 0)
{
scr_mario_small();
}
if (global.state == 1)
{
scr_mario_big();
}
///etc...[/syntax]
Instead using [b]switch [/b] can not only be convenient but also teaches rookies how a switch function works.
This is just an example:
[syntax=gml]switch (global.state)
{
case ("small"): scr_mario_small(); break;
case ("big"): scr_mario_big(); break;
case ("fire"): scr_mario_fire(); break;
case ("leaf"): scr_mario_leaf(); break;
case ("tanooki"): scr_mario_tanooki(); break;
///bunch of more power up things goes here
default: scr_mario_big(); break; //worst case scenario just make sure Mario animates for debugging
}[/syntax]
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum