- Game Maker Community
- → Viewing Profile: Posts: JAk HAk
JAk HAk
Member Since 25 Apr 2008Offline Last Active May 31 2012 09:45 PM
About Me
I liked games when I was growing up. I also liked drawing things and telling stories. Telling stories got me into trouble, though, so now I don't do that as much. I went to college until I got bored of it and didn't feel like I was learning enough for the exorbitant rate I was paying, so now I work for my family business and develop games on the side.
Community Stats
- Group New Member
- Active Posts 713
- Profile Views 6569
- Member Title sepius fidelis
- Age 20 years old
- Birthday September 11, 1992
-
Gender
Male
-
Location
Newport Beach, CA, USA
-
Interests
Drawing
Writing
Programming -
Version
GM:HTML5
Posts I've Made
In Topic: AI
31 May 2012 - 06:28 PM
In SSB, the weight classes are not part of the rules, it's simply a nice way to categorize the characters. Metal Mario is his own character in that game, so he comes with his own move set and statistics. It would be cheating if he could add stock to his lives at will, or teleport to different parts of a stage, or make his shield last forever.
In Topic: platform game mechanics
31 May 2012 - 04:25 PM
Wall jumping and swimming are fine in some games, but some of my favorite games don't have either, yet others do. It's not about what moves the player has, but about how the environment challenges the player to use those skills.
One of the biggest aids to a game is proper variation. Consider MHOD's quick discourse on timing, and the variation he posited; you can be run away from something, running toward something, or running along with something. In each case, the game play is identical, but it doesn't feel like it. There's a different feeling from If I don't move fast enough, the swarm of killer nanobots will devour me to If I don't move fast enough, that pesky thief will get away! And both of those feel different from simply running along with an arbitrary clock keeping you apace.
Another fun way to add variation is to focus on only one or two of the character's abilities at a time, and come up with fun ways to challenge only those skills. If a character has abilities A B C and D, levels designed to challenge DBAC, BDAC or CBAD all start to feel the same, but levels challenging AACA or BDDD feel different, unique and memorable. Players are bound to remember that one level where you have to duck under and jump over a bunch of oncoming barrels, or that one level where you have to make a bunch of precision jumps over gaps in a rotting, icy bridge, or that one level with all the careful sidestepping of explosives.
Make the enemies significantly different. I love me some Castlevania, but those games have a hard-on for making way too many different enemies. The enemies in that game mostly don't challenge you differently from each other. Some are more affected by certain weapon types than others, but it all eventually boils down to "hit the enemy enough times." It's far more gratifying to have different enemies that have to be attacked differently, such as the mook who can be jumped on but not hit with a melee attack, or the one that can be hit with a low attack but not a high attack, or the one that can only be attacked from behind, or the one that has intermittent vulnerability, maybe switching between weak spots.
One of the biggest aids to a game is proper variation. Consider MHOD's quick discourse on timing, and the variation he posited; you can be run away from something, running toward something, or running along with something. In each case, the game play is identical, but it doesn't feel like it. There's a different feeling from If I don't move fast enough, the swarm of killer nanobots will devour me to If I don't move fast enough, that pesky thief will get away! And both of those feel different from simply running along with an arbitrary clock keeping you apace.
Another fun way to add variation is to focus on only one or two of the character's abilities at a time, and come up with fun ways to challenge only those skills. If a character has abilities A B C and D, levels designed to challenge DBAC, BDAC or CBAD all start to feel the same, but levels challenging AACA or BDDD feel different, unique and memorable. Players are bound to remember that one level where you have to duck under and jump over a bunch of oncoming barrels, or that one level where you have to make a bunch of precision jumps over gaps in a rotting, icy bridge, or that one level with all the careful sidestepping of explosives.
Make the enemies significantly different. I love me some Castlevania, but those games have a hard-on for making way too many different enemies. The enemies in that game mostly don't challenge you differently from each other. Some are more affected by certain weapon types than others, but it all eventually boils down to "hit the enemy enough times." It's far more gratifying to have different enemies that have to be attacked differently, such as the mook who can be jumped on but not hit with a melee attack, or the one that can be hit with a low attack but not a high attack, or the one that can only be attacked from behind, or the one that has intermittent vulnerability, maybe switching between weak spots.
In Topic: Optimization question
30 May 2012 - 03:48 PM
I don't think so, but the only way you can know for sure is to try.
However, I highly doubt you'll be able to improve your speed, and this is why: converting to trigonometry will cause you to use multiple function calls instead of just one. Function calls suffer in speed less from being poorly implemented, and more from being function calls. It takes a bit of time to jump around between bits of code, which is half the reason scripts were inefficient (the other half being that they always used to take 16 arguments irregardless, but that's irrelevant to this conversation).
So you might go ahead and try it, but don't count on anything too exciting. Sometimes the solution is not to make a slow thing go faster, but to use the slow thing less, so see if maybe there's a way to optimize your code elsewhere. Use variables to store values that get reused instead of calculating that again. Variables are not expensive, but processing still is.
However, I highly doubt you'll be able to improve your speed, and this is why: converting to trigonometry will cause you to use multiple function calls instead of just one. Function calls suffer in speed less from being poorly implemented, and more from being function calls. It takes a bit of time to jump around between bits of code, which is half the reason scripts were inefficient (the other half being that they always used to take 16 arguments irregardless, but that's irrelevant to this conversation).
So you might go ahead and try it, but don't count on anything too exciting. Sometimes the solution is not to make a slow thing go faster, but to use the slow thing less, so see if maybe there's a way to optimize your code elsewhere. Use variables to store values that get reused instead of calculating that again. Variables are not expensive, but processing still is.
In Topic: Storing attribute values inside of a script
30 May 2012 - 03:37 PM
@TheouAegis
The amount you save in RAM by not having variables will be lost by having the script stored in RAM, which is somewhat more extensive.
@Subjugater
Your code is fine, but there are better ways to do it.
I'd use constants for the characters' names and stick everything in arrays. Something to the effect of
What you might even try is storing that data inside of a text file akin to an INI file and having the game load the data into arrays at the start. Something like this should work:
The amount you save in RAM by not having variables will be lost by having the script stored in RAM, which is somewhat more extensive.
@Subjugater
Your code is fine, but there are better ways to do it.
I'd use constants for the characters' names and stick everything in arrays. Something to the effect of
atk[LINK] = 13; atk[GANON] = 54; spd[LINK] = 20; spd[GANON] = 7;
What you might even try is storing that data inside of a text file akin to an INI file and having the game load the data into arrays at the start. Something like this should work:
Then, while you're testing the game, you can tweak a certain value and just hit a predetermined value to instantly restart the game (using game_restart()) and reload the value, so you can get a proper feel for and easily test all the stats. Of course, you'd have to use encryption on the final product, but that's far down the line.LINK 13 20
GANON 54 7
In Topic: Pasting code unindents.
30 May 2012 - 03:23 PM
What you're experiencing is that GM will paste in only the tabs/whitespace that was on the clipboard. It doesn't take into account relative indentation, only what is strictly on the clipboard. So you'll actually experience the reverse problem if you copy a bit of code that had several tabs before it and paste it into a segment that should have no indentation.
kupo15 already posted the best solution, though. Select all of the lines that you just pasted in that didn't get spaced right (usually all but the first) and [Tab] or [Shift][Tab] them into line. If hitting [Tab] while something is highlighted makes you uncomfortable, [Ctrl][ I ] and [Ctrl][Shift][ I ] do the exact same thing.
kupo15 already posted the best solution, though. Select all of the lines that you just pasted in that didn't get spaced right (usually all but the first) and [Tab] or [Shift][Tab] them into line. If hitting [Tab] while something is highlighted makes you uncomfortable, [Ctrl][ I ] and [Ctrl][Shift][ I ] do the exact same thing.
- Game Maker Community
- → Viewing Profile: Posts: JAk HAk
- Privacy Policy
- GMC Rules and Forum Rules ·



Find content