MODERN-MAYHEM'S PROFILE
Search
Filter
[RM2K3] How to make an intentionally terrible game?
Some games for inspirations:
Dr. Jekyll and Mr Hyde (NES) You start out as Dr. Jekyll, and your weapon is some kind of club/cane thing. Women attack you, and you realize your cane does nothing. Then after a few moments, the screen turns dark, a lightning bolt hits you and you become Mr. Hyde. For a few seconds you enjoy your dark quasi powers, then another lightning bolt hits you.... DEAD. What I love about this? There is no visual timer in the HUD for when this happens. Really bad :P
Brandish (SNES) Ok cool still graphics in the opener to FOOL YOU into thinking this game isn't total crap. Then the game, with a view system that is useless, makes no sense, and makes monsters disappear when not in view (but they can still damage you out of view). Really really bad....
7th Saga (SNES) The pointless grind to end all pointless grinds. But that's not what makes this game so horrible... it's the oversized tiles. It would be like playing legos your whole life and then switching to oversized toddler blocks. This game is sending me back to the womb?!?! NOOO! Super bad :P
Ultimate Weapon (PS1) Ripped straight out of the movie Predator, an alien race is watching the MC ( a professional boxer ) and thinks HE is the ultimate weapon, so they take him to their planet. What makes this so bad is the controls and UI. For some reason the ultimate weapon can't step over a crack in the ground 2 inches deep. He just stops, staggers, and utters the voice sample "No way!". Retarded bad :P
Dr. Jekyll and Mr Hyde (NES) You start out as Dr. Jekyll, and your weapon is some kind of club/cane thing. Women attack you, and you realize your cane does nothing. Then after a few moments, the screen turns dark, a lightning bolt hits you and you become Mr. Hyde. For a few seconds you enjoy your dark quasi powers, then another lightning bolt hits you.... DEAD. What I love about this? There is no visual timer in the HUD for when this happens. Really bad :P
Brandish (SNES) Ok cool still graphics in the opener to FOOL YOU into thinking this game isn't total crap. Then the game, with a view system that is useless, makes no sense, and makes monsters disappear when not in view (but they can still damage you out of view). Really really bad....
7th Saga (SNES) The pointless grind to end all pointless grinds. But that's not what makes this game so horrible... it's the oversized tiles. It would be like playing legos your whole life and then switching to oversized toddler blocks. This game is sending me back to the womb?!?! NOOO! Super bad :P
Ultimate Weapon (PS1) Ripped straight out of the movie Predator, an alien race is watching the MC ( a professional boxer ) and thinks HE is the ultimate weapon, so they take him to their planet. What makes this so bad is the controls and UI. For some reason the ultimate weapon can't step over a crack in the ground 2 inches deep. He just stops, staggers, and utters the voice sample "No way!". Retarded bad :P
[RMMV] Master! We are out of variables!
Oh yeah!! I was asked to explain stuff! There's 4 things. Enjoy. (I learned accessing array values are the way to go, that's the route I'm taking.)
1) The 50th game by Tecmo (or Taito?). It's called Bakugan: the Forbidden City. A highly underrated gem, the opening sequence is filming an opening movie of your character sprite's moves, unbeknownst to the player! The first time you experience this it's unforgettable: "Whoa! I look like a fool!"
When you know it's coming, you try to make an opening movie so flashy you will want to brag about it and show others, too smiley to speak.
In rpg maker, this can be very easy or very hard.
Very easy if you make a plugin that records a movie file of the players' actual lucid gameplay (or a LOT of screenshots for a slideshow).
Very hard with eventing. Turn based combat and tile-by-tile movement can be recorded (and easily recreated) every 4 frames or so. Eating up 5000 variables, one every 4 frames, (Ed. my math was WAY off) you get just under 6 minutes. What if you had a real time rpg with combat like Seiken Densetsu or Golden Axe? The character sprites have more varied positions now, and recording your movements would step UP, perhaps every frame.
2) I attempted to make a fantasy card game like Yugi-Oh, Pokemon, MTG etc. The bare mechanics of these games are all based on zone changes, the cards moving to other zones. The interpretation of these zone changes make up victory, defeat, and everything else. Suppose your card limit is 60 in 4 zones and 1000 in the 5th zone (1-999 cards in play. 1000 represents infinity, the only zone that allows it). That's 1,240 variables PER player! For more fun, 300 max cards in the first 4 zones + 1000 = 2,200 variables. That's not counting other variables used for remembering zone sizes, not to mention variables for rpg elements not found in the actual card matches! Trihan provided invaluable help here with a script command to handle all the zone changes:
temp = $gameVariables.value($gameVariables.value(1));
$gameVariables.setValue($gameVariables.value(1), ($gameVariables.value($gameVariables.value(2))));
$gameVariables.setValue($gameVariables.value(2), temp);
All the developer has to do is provide the var IDs beforehand, where 1 represents "FROM" and 2 is "TO". Most commonly, "FROM" is set to the var ID of the top card of a player's deck! (Drawing a card). In this case, "TO" would be the var ID for "top card" of player's hand + handsize. (This is so the first card in their hand isn't overwritten.) Also, note that the value of the var stored in "TO" is always 0, representing empty space. When the above script is executed, the top card of the deck goes to the player's hand, while the top card of the deck becomes 0. After this is done, I have another common event that detects all the empty spaces in card zones and make them pile up neatly, with positive values on top (tangible cards) and values of 0 (lack of cards) on the bottom.
I use Trihan's script AGAIN, except this time it is iterated over and over = to cards in zone. Every iteration increases the values of "FROM" and "TO" by 1. The 0 on top of the zone ends up on the bottom. I like this method because no values are lost, just switched. I could overwrite them all to the next var ID up with only 1 line of code, but then I have to set the proper amount of bottom cards to 0 too. All card shuffle/switch events operate on the principle that the "top card" of each zone (Deck, Hand, Discard Pile, Special Pile, Cards in Play) have a positive value.
(This is why I got frustrated with the Custom Variables plugin I tried! It wouldn't function with a variable value in the index argument. As you can see above, it's a must-have for this kind of thing.)
3) "Ogre Battle" style campaign battles!!! (Big ones). Have you played this Atlus game? It would be variable CRAZY if remade today! You could take the data encrytpion tutorial's example a step further and have a patriotism level for each unit corresponding to each country in your game. This could easily push variables to 6 digits.
Ex: If one or more of your unit hails from a region that you are invading, the desertion rate is high and morale is low. Conversely, if you are attacking the nation that killed your unit's family, the morale will soar and they will fight to the death.
4) VISUAL NOVELS. I understand they are more popular these days (tried Renpy, liked it) but found that the variable use on these are severely undertapped. Let's say you are making a high school/mystery type game like Persona. In the beginning you fill out a very extensive questionnaire that creates your character. Every answer sets a variable that determines the hair type, or nose type, or eye color and so on in sequence for each actor/NPC until a full Bust graphic is defined. Then repeat this for EVERY character. You manipulate json files checking variable values for these attributes. Teachers, cops, housewives, students, family members, pets, everyone! Just think of the thousands of combinations...
It also determines character stats as well. Here's where ORANGE time-system plugin comes in:
You have a set of variables for everything, for the duration of one day. The next day, another set of variables like the first, evaluating them all for changes and so on for 365 days x years allowed in your game. If you recorded like this, you could do VERY complex achievements.
Ex: You want to create a special achievement for being the best athlete at the high school. What if the requirements were to:
1. Not miss a single practice all season long, AND pass by the complex where practice is held at EACH different one hour interval within your game on different days. This means you would have to visit the complex between 11:00 and 12:00 one day, then between 12:00 and 1:00 a different day, until all possibilities have been visited.
2. Within practices, certain stats have to decrease over the course of a few days out of failure, then improve dramatically over the following 2 weeks with success! (by certain values). In other words, you have to make a falling, then ascending graph of your stats over time (To show you were broken down, but improved more than your peers.)
3. Retain a certain average of points scored over a span of time, retain it at summer training camp, then surpass it your senior year, which happens to be the following season! For example, average 6 or more points per game over the course of 2 weeks in your junior season, then retain that during summer training camp. Next year at high school, retain a higher points per game over 2 weeks to satisfy the requirement.
4. On the 20th of each month of the school year, your character (or an ally) must attend student council, and press your concerns for the athletic clubs. What if you had to evoke 3 positive and 3 negative responses from the student council one semester, then either boycott them completely or have them eating out of your hand the next semester? Either route here could satisfy requirement 4.
You could use also this concept for adjusting experience points received when whomping weak enemies that are no challenge to you over time, or summoning rare or super powerful enemies when you are dominating everything over time!
Thanks for thoughts!
Ed. Wow duh! I just realized I could use a variable's ID in the database as a queue (for the card zone thing), to only set variables I needed and not skip over long sequences of zeros in the database of variables I'm not using. I'm an idiot.
1) The 50th game by Tecmo (or Taito?). It's called Bakugan: the Forbidden City. A highly underrated gem, the opening sequence is filming an opening movie of your character sprite's moves, unbeknownst to the player! The first time you experience this it's unforgettable: "Whoa! I look like a fool!"
When you know it's coming, you try to make an opening movie so flashy you will want to brag about it and show others, too smiley to speak.
In rpg maker, this can be very easy or very hard.
Very easy if you make a plugin that records a movie file of the players' actual lucid gameplay (or a LOT of screenshots for a slideshow).
Very hard with eventing. Turn based combat and tile-by-tile movement can be recorded (and easily recreated) every 4 frames or so. Eating up 5000 variables, one every 4 frames, (Ed. my math was WAY off) you get just under 6 minutes. What if you had a real time rpg with combat like Seiken Densetsu or Golden Axe? The character sprites have more varied positions now, and recording your movements would step UP, perhaps every frame.
2) I attempted to make a fantasy card game like Yugi-Oh, Pokemon, MTG etc. The bare mechanics of these games are all based on zone changes, the cards moving to other zones. The interpretation of these zone changes make up victory, defeat, and everything else. Suppose your card limit is 60 in 4 zones and 1000 in the 5th zone (1-999 cards in play. 1000 represents infinity, the only zone that allows it). That's 1,240 variables PER player! For more fun, 300 max cards in the first 4 zones + 1000 = 2,200 variables. That's not counting other variables used for remembering zone sizes, not to mention variables for rpg elements not found in the actual card matches! Trihan provided invaluable help here with a script command to handle all the zone changes:
temp = $gameVariables.value($gameVariables.value(1));
$gameVariables.setValue($gameVariables.value(1), ($gameVariables.value($gameVariables.value(2))));
$gameVariables.setValue($gameVariables.value(2), temp);
All the developer has to do is provide the var IDs beforehand, where 1 represents "FROM" and 2 is "TO". Most commonly, "FROM" is set to the var ID of the top card of a player's deck! (Drawing a card). In this case, "TO" would be the var ID for "top card" of player's hand + handsize. (This is so the first card in their hand isn't overwritten.) Also, note that the value of the var stored in "TO" is always 0, representing empty space. When the above script is executed, the top card of the deck goes to the player's hand, while the top card of the deck becomes 0. After this is done, I have another common event that detects all the empty spaces in card zones and make them pile up neatly, with positive values on top (tangible cards) and values of 0 (lack of cards) on the bottom.
I use Trihan's script AGAIN, except this time it is iterated over and over = to cards in zone. Every iteration increases the values of "FROM" and "TO" by 1. The 0 on top of the zone ends up on the bottom. I like this method because no values are lost, just switched. I could overwrite them all to the next var ID up with only 1 line of code, but then I have to set the proper amount of bottom cards to 0 too. All card shuffle/switch events operate on the principle that the "top card" of each zone (Deck, Hand, Discard Pile, Special Pile, Cards in Play) have a positive value.
(This is why I got frustrated with the Custom Variables plugin I tried! It wouldn't function with a variable value in the index argument. As you can see above, it's a must-have for this kind of thing.)
3) "Ogre Battle" style campaign battles!!! (Big ones). Have you played this Atlus game? It would be variable CRAZY if remade today! You could take the data encrytpion tutorial's example a step further and have a patriotism level for each unit corresponding to each country in your game. This could easily push variables to 6 digits.
Ex: If one or more of your unit hails from a region that you are invading, the desertion rate is high and morale is low. Conversely, if you are attacking the nation that killed your unit's family, the morale will soar and they will fight to the death.
4) VISUAL NOVELS. I understand they are more popular these days (tried Renpy, liked it) but found that the variable use on these are severely undertapped. Let's say you are making a high school/mystery type game like Persona. In the beginning you fill out a very extensive questionnaire that creates your character. Every answer sets a variable that determines the hair type, or nose type, or eye color and so on in sequence for each actor/NPC until a full Bust graphic is defined. Then repeat this for EVERY character. You manipulate json files checking variable values for these attributes. Teachers, cops, housewives, students, family members, pets, everyone! Just think of the thousands of combinations...
It also determines character stats as well. Here's where ORANGE time-system plugin comes in:
You have a set of variables for everything, for the duration of one day. The next day, another set of variables like the first, evaluating them all for changes and so on for 365 days x years allowed in your game. If you recorded like this, you could do VERY complex achievements.
Ex: You want to create a special achievement for being the best athlete at the high school. What if the requirements were to:
1. Not miss a single practice all season long, AND pass by the complex where practice is held at EACH different one hour interval within your game on different days. This means you would have to visit the complex between 11:00 and 12:00 one day, then between 12:00 and 1:00 a different day, until all possibilities have been visited.
2. Within practices, certain stats have to decrease over the course of a few days out of failure, then improve dramatically over the following 2 weeks with success! (by certain values). In other words, you have to make a falling, then ascending graph of your stats over time (To show you were broken down, but improved more than your peers.)
3. Retain a certain average of points scored over a span of time, retain it at summer training camp, then surpass it your senior year, which happens to be the following season! For example, average 6 or more points per game over the course of 2 weeks in your junior season, then retain that during summer training camp. Next year at high school, retain a higher points per game over 2 weeks to satisfy the requirement.
4. On the 20th of each month of the school year, your character (or an ally) must attend student council, and press your concerns for the athletic clubs. What if you had to evoke 3 positive and 3 negative responses from the student council one semester, then either boycott them completely or have them eating out of your hand the next semester? Either route here could satisfy requirement 4.
You could use also this concept for adjusting experience points received when whomping weak enemies that are no challenge to you over time, or summoning rare or super powerful enemies when you are dominating everything over time!
Thanks for thoughts!
Ed. Wow duh! I just realized I could use a variable's ID in the database as a queue (for the card zone thing), to only set variables I needed and not skip over long sequences of zeros in the database of variables I'm not using. I'm an idiot.
[RMMV] Master! We are out of variables!
Wow! I'm relieved (and surprised) that 2 or more other members thought the 19k variable goal was OVERKILL! After reading tutorial 1133 that Link just posted, it blew my mind. Can't wait to try it on RMMV!
[RMMV] Master! We are out of variables!
RMMV gives you 5000. I need 19,500. I have lots of questions...
1) Saving variables as strings. Strings typically begin set to a game variable or a game parameter, and in the end it usually becomes a case of $gameVariables.setValue(string, string). I'm still eating up game variables. See I've fallen into the custom of using the text command \V in a message to check their values. Is there a smarter approach here? I'm still new at this!
2) The Custom Variables plugin by SoulPour777. If anyone has gotten a variable value to work in the index argument AT ALL, please let me know how you did it! This is frustrating because a variable value in the value argument works just fine (for both script AND plugin command). I already messaged the developer and hadn't received a reply yet, so I'm posting about it here. If I use a constant value in the index argument, it works. If I try to access a variable one, it does nothing. If you attempt it via plugin command instead, it throws the reference error "val is not defined". I've tried phrasing it several different ways.
Despite this, I have found it to be a useful tool... I can access custom variable values for any event command that needs one, all while not using a single game variable. Nice!
3) Access arrays. Do save game files remember an array's values? One single array could potentially provide more than enough variables... for the purpose of checking their values for events etc.. But how do you edit them and check their values?
4) Is this as simple as just going into rpg_objects.js and upping the cap amount of max variables? In other words... if you try to access a variable with an ID of 5001 (or more) will it throw you an error and crash?
Advanced members never have the problem of running out of variables, so I wanted to hear their thoughts on this.
1) Saving variables as strings. Strings typically begin set to a game variable or a game parameter, and in the end it usually becomes a case of $gameVariables.setValue(string, string). I'm still eating up game variables. See I've fallen into the custom of using the text command \V in a message to check their values. Is there a smarter approach here? I'm still new at this!
2) The Custom Variables plugin by SoulPour777. If anyone has gotten a variable value to work in the index argument AT ALL, please let me know how you did it! This is frustrating because a variable value in the value argument works just fine (for both script AND plugin command). I already messaged the developer and hadn't received a reply yet, so I'm posting about it here. If I use a constant value in the index argument, it works. If I try to access a variable one, it does nothing. If you attempt it via plugin command instead, it throws the reference error "val is not defined". I've tried phrasing it several different ways.
Despite this, I have found it to be a useful tool... I can access custom variable values for any event command that needs one, all while not using a single game variable. Nice!
3) Access arrays. Do save game files remember an array's values? One single array could potentially provide more than enough variables... for the purpose of checking their values for events etc.. But how do you edit them and check their values?
4) Is this as simple as just going into rpg_objects.js and upping the cap amount of max variables? In other words... if you try to access a variable with an ID of 5001 (or more) will it throw you an error and crash?
Advanced members never have the problem of running out of variables, so I wanted to hear their thoughts on this.
[RMMV] Rotate Picture bug
I would love to be joking about this, but trust me I'm not. I just tried it again vanilla, no plugins. The counter-clockwise rotate picture didn't move at all, which was weird! Before.. (w/ plugins) it turned clockwise regardless of the value you gave it.
Created a new project, tested it... and to my relief it worked just fine.
Problem solved!
I was serious about the RMXP thing by the way. The mouse hover help says: "Even values for cw, Odd values for ccw" Not making this up.
Created a new project, tested it... and to my relief it worked just fine.
Problem solved!
I was serious about the RMXP thing by the way. The mouse hover help says: "Even values for cw, Odd values for ccw" Not making this up.
[RMMV] Rotate Picture bug
I'm running version 1.3.4 of RMMV, and I'm familiar with this function. Positive values give you clockwise rotation, 0 makes it stop, and negative values give you .... erm well, still clockwise rotation. Come to think of it, found it broken in RMXP too (but not RM2k). How does one achieve counter-clockwise rotation?
[SCRIPTING] [RMMV] conditional branch script
Very good explanation on how to understand
1)how a loop functions and
2)how to implement it!
I'm not going to stop trying this until it works properly. I learned:
A decent editor really helps! Color coding on sublime text makes it all more legible and catches some mistakes too. Just wish copied and pasted stuff into the game editor didn't get chopped off! It may instill lazy habits...
How did you think I came up with the first train wreck I posted?
1)how a loop functions and
2)how to implement it!
I'm not going to stop trying this until it works properly. I learned:
A decent editor really helps! Color coding on sublime text makes it all more legible and catches some mistakes too. Just wish copied and pasted stuff into the game editor didn't get chopped off! It may instill lazy habits...
How did you think I came up with the first train wreck I posted?
[SCRIPTING] [RMMV] conditional branch script
Thanks yet again! You should be paid to teach this sort of thing.
EDIT: I keep getting the reference error:
Invalid left-hand side in assignment
All the stuff is closed in. Also tried the loops:
while (;;)
ok how does this work? Is it..
while (;;) {code to be repeated, with a break; statement inside to stop it} ?
EDIT: I keep getting the reference error:
Invalid left-hand side in assignment
All the stuff is closed in. Also tried the loops:
while (;;)
ok how does this work? Is it..
while (;;) {code to be repeated, with a break; statement inside to stop it} ?
[SCRIPTING] [RMMV] conditional branch script
What is wrong with this script? I used Archeia's script call equivalent table as a template, but wasn't sure on the proper syntax:
if ($gameVariables.value($gameVariables.value(1077) = 0)
{gameTemp.reserveCommonEvent(31)}
else
{$gameVariables.setValue(1077, + 1)};
Attempting to check a batch of variables (in sequence) to see if they = 0. I know
how to check all of them at once, but I'm trying to do it individually.
1077 = Variable ID
31 = ID of Common event in database I want to trigger if it passes.
If it fails, I want to adjust 1077 to go up by 1, so it can check the next variable up in the database.
Normally I would use a "Go to Label" command in the else argument, so I can execute the same branch over and over (to check a different variable each time).
I didn't see a script equivalent for "Label" and "Go to Label". How do you do it?
The errors I have been given:
Unexpected Token on both the period in the common event call, and on the curly brace too. It also doesn't seem to care if I include (or omit) the semicolon either.
if ($gameVariables.value($gameVariables.value(1077) = 0)
{gameTemp.reserveCommonEvent(31)}
else
{$gameVariables.setValue(1077, + 1)};
Attempting to check a batch of variables (in sequence) to see if they = 0. I know
how to check all of them at once, but I'm trying to do it individually.
1077 = Variable ID
31 = ID of Common event in database I want to trigger if it passes.
If it fails, I want to adjust 1077 to go up by 1, so it can check the next variable up in the database.
Normally I would use a "Go to Label" command in the else argument, so I can execute the same branch over and over (to check a different variable each time).
I didn't see a script equivalent for "Label" and "Go to Label". How do you do it?
The errors I have been given:
Unexpected Token on both the period in the common event call, and on the curly brace too. It also doesn't seem to care if I include (or omit) the semicolon either.













