#1: Welcome to #TMoJ
Alright, so...where should I start?
I've been developing an RPG Maker VX Ace project. Well, this is mainly aimed for me to learn the ruby programming by doing, but it eventually ended up being a small game. The game would go with the codename #TMoJ. The basic idea of this game is as follows:
-
Gameplay: Instead of heavily relying on random-driven gameplay, this game uses rapid typing-driven gameplay. That is, the user must type letters showed on the screen at battles to alter the turn outcome.
- For example, let's assume that an attack will result in 200 HP damage. Then, a window, the keyboard input window, shows up on the screen, prompting the player to type the letters, say, A B C D E, before its timer runs out. If the user types only 1 letter correct (A B C D E is 10 letters, including spaces), the damage will be truncated down by 1/10 = 20 HP damage. If none is correct, the user will fail the turn.
- At case of a critical attack (now -this- is defined randomly by the critical rate feature set on the database), an additional window with flashing letters will pop-up. Each letter typed correctly will enhance the critical attack outcome.
- In the enemy's turn, the letters will actually act as a 'guard'. Suppose an enemy attack results in 100 HP damage, and the letters ABCDE pops out on the screen. Typing one letter correct will decrease the damage by 20% (1/5 correct). Typing all correct will nullify the damage. The similar logic is also applied to critical hits.
- In case of a dual-hit attack, the damage altered is the damage produced by -both- weapon attack. Suppose the right hand weapon expects 80 HP damage and the left-hand weapon expects 100 HP damage, making a total of 180 HP. The damage outcome altered by the keyboard input window here is the 180 HP damage.
- No status ailments will be inflicted upon the target if the attack is nullified.
- This game features techniques and magics.
- Techniques are special skills that are unique to each class and can be executed without inputting characters to the keyboard input window. For example, the First Aid technique restores as much as 10% HP to critically wounded characters.
- Magics are special skills that involves MP usage. Unlike conventional RPGs, Magics in the #TMoJ RPG are casted based on pre-defined spells that the player needs to input on the input window. For example, let's take the spell Fire, which inflicts fire damage to the enemy.
-
To the gods I pray (completing at least this line will net the caster with the weakest Fire spell. The damage? Let's assume the expected damage is 100, just count the number of correct characters divided by the number of characters from the beginning of the first line to the end of this line and multiply it to 100).
-
With uttermost faith and belief (completing the first line and inputting at least the first letter of this line will net the player with the second Fire spell, significantly stronger than the first. Damage calculation and reduction is similar to the first, except that the expected damage will be different since a different damage calculation formula will be used).
-
That you might burn the enemy before me
-
Bestow them with your warm nether embrace
[*]Once you finish one line of quote, a new line of quote will appear. Since the spell has four lines of quotes, it has four levels, and therefore a fast typer can use the strongest Fire spell early in the game--if you manage to ramp up the spell quotes to the last.
-
To the gods I pray (completing at least this line will net the caster with the weakest Fire spell. The damage? Let's assume the expected damage is 100, just count the number of correct characters divided by the number of characters from the beginning of the first line to the end of this line and multiply it to 100).
[*]Unique Skills are skills that are unique to some story characters.
- Techniques are special skills that are unique to each class and can be executed without inputting characters to the keyboard input window. For example, the First Aid technique restores as much as 10% HP to critically wounded characters.
[*]Statistics: The maximum amount is 99 per item, except projectiles, which can rank up to 999 per item. Levels may go to maximum level 99, as well as the parameters (Max. HP and Max. MP are 999 maximum, note an exception).
- Available elements: Fire, Ice, Thunder, Water, Earth, Wind, Holy, Darkness, Divine, Physical.
- Each character (ally or enemy) will have the following parameters:
- Health Power (HP) 0-999
- Magic Power (MP) 0-999
- Physical Attack Power (ATK) 0-99
- Magical Attack Power (MAT) 0-99
- Agility/Speed (AGI) 0-99
- Fortune/Luck (LUK) 0-99
- Bravery (BRA) -- inspired by Final Fantasy Tactics, the Bravery parameter defines the character's courage. This parameter is used for damage calculation as well as other purposes that involves the character's courage. 0-100
- Faith (FA) -- inspired by Final Fantasy Tactics, the Faith parameter defines the strength of the character's belief in God and other unnatural phenomenons. This parameter is heavily used for magic calculation as well as other purposes that involves the character's faith. 0-100
- Critical Rate -- defines how often this character deals critical damage and pops out the critical keyboard input window.
- Counterattack Rate -- defines how often this character reacts to an attack by delivering a counterattack.
- HP and MP Regeneration rate.
- Target Rate -- defines how the enemy will prioritize this character in their attack targets list.
- Guard Effect Rate -- defines how sturdy this character will be when guarding (selecting the Guard option from the menu). The guard option will decrease the expected damage delivered by the enemy, which can be further decreased by correctly inputting letters at the keyboard input window.
- Pharmacology -- defines how this character will react upon being healed by chemical items: will potions heal exactly 30 HP, 25 HP or even 40 HP to this character?
- MP Cost Rate -- defines how this character will spend his/her magical power efficiently in casting spells that involves magic power.
- Experience Rate -- defines how fast this character learns from combat experiences.
[*]The weapons in this game are divided into several categories: One-Handed Weapon, Two-Handed Weapon, and Projectile Weapon.
- A one-handed weapon is a weapon that is equipped only by one hand. This type of weapon supports dual-wielding. The weapon types that fall into this category are Knife, Sword, Flail, Ninjato, Staff, Scale, Mace, Rod, Book, Knuckles, Katana, Lightsaber, Club, Hammer, Whip and Boomerang.
- A two-handed weapon is a weapon that can only be equipped by both hands, disabling dual wield as well as shields. The weapon types that fall into this category are Fans, Pole, Cloth, Instrument, Handbag, Fellsword, Knight's Sword, Slingshot, Polearm, Doublestick, and Scythe.
- A projectile weapon is a weapon that uses projectiles. All projectile weapons are two-handed. Each attack fired will decrease the number of the equipped projectile by 1. Attacking with empty projectile will result in a guaranteed failure. The weapon types that fall into this category are Crossbow, Axes, Pistols, Shotguns, Rifles, Machine Pistols, Grenade Launcher, Rocket Launcher, Bow, and Handbomb.
- Each weapon has their own weapon power that is used in damage calculations. In case of projectile weapons, their weapon power is that of the weapon power, plus the weapon power of the equipped projectile.
[*]The armors in this game are divided into several categories: Light Armor, Heavy Armor, Magic Armor and Projectile Containers.
-
Light Armors, Heavy Armors and Magic Armors all modifies the parameters of a character, specifically Maximum HP, Maximum MP, Physical Attack, Magical Attack, Agility (Speed) and Fortune (Luck).
- There are various types of shields and accessories:
- Shields provide extra evasion rate, which in reality, alters the timer of the keyboard input window. It increases the timer count, making the timer slightly longer.
- Mantles provide extra evasion rate and works similar to shields.
- Armlets provide various effects, enhance magic damages and shields the wearer from a small range of status ailments.
- Hair Adornment hinders the wearer from a wider range of status ailments as well as increasing maximum HP and MP.
- Boots alter the number of numbers and symbols the character needs to input. Normally some enemies, especially at the near-end, will spawn a mixture of spaces, characters, numbers and symbols to the input window. Boots will take care of this, from a small degree to completely eradicating those peculiar numbers and symbols.
- Gloves provide parameter changes.
- Rings alter the number of words the character needs to input. This is beneficial especially when casting magics and fighting enemies in the later part of the game, as the characters the player needs to input will no longer be random jibberish letters, but sentences and paragraphs.
- Necklaces alter the number of characters the player needs to input. It can increase and decrease the number of characters based on a specified number (for example, -1/+1 means decreasing one character when the wearer attacks and increasing one character when the wearer is attacked).
- Belts alter the number of spaces the character needs to input.
- Perfumes provide positive status ailments to the wearer.
- Pins alter the number of uppercase characters the character needs to input. Normally some enemies will spawn characters in mixed upper and lower characters. Pins will take care of this, from a small degree to completely render the characters either uppercase or lower-case.
[*]Defense and Magic Defense is not used in this game.
[*]Projectile Containers will always correspond to its Projectile item counterpart. For example, a Leather Quiver will always carry Birch Bolts for use within a crossbow. The projectile container will be equipped in the bottom equip slot (Ammunition) at the equip screen. Each fire of a projectile weapon reduces the number of the projectile item counterpart owned by the party by 1 (or more, in case of machine pistols).
- Bowgun Bolts are for the crossbows.
- Slingshot Projectiles are for the slingshots.
- Handgun Ammos are for the pistols.
- Shotgun Shells are for the shotguns.
- Machinegun Ammos are for the machine pistols.
- Grenade Rounds are for the grenade launchers.
- Rockets are for the rocket launchers.
- Arrows are for the bows.
- Handbombs are for the handbomb-type weapons.
- Rifle Ammos are for the rifles.
- Shields provide extra evasion rate, which in reality, alters the timer of the keyboard input window. It increases the timer count, making the timer slightly longer.
[*]The items in this game are divided into several categories: Recovery, Thrown, Synthesis, Projectiles, Key Items and Memory Items.
- Recovery items recover the user's condition, such as restoring HP, MP (TP is unused in this game), or removing status ailments.
- Thrown items are used by special throwing classes for attacking the enemy. For example, shurikens, for ninjas' throwing.
- Synthesis items are used to craft new items and ammunition.
- Chemical synthesis are used to craft potions and other chemistry items.
- Blacksmith kits are used to craft new melee weapons from weapon parts.
- Firearm kits are used to craft new projectile weapons from weapon parts.
- Gunpowders are used to craft firearm ammunitions as well as arrows and bolts.
[*]Projectile items are used to fire projectile weapons. See the explanation above for more information.
[*]Key items are used to unlock certain quests, advance through the story or for other purposes.
[*]Memory items are stored between games to mark the story progress. There are at least 10 endings in this game. Memory items are stored between replay attempts, even in different storyline and dimension, to alter the progress or even the ending.
- Chemical synthesis are used to craft potions and other chemistry items.
- Health Power (HP) 0-999
[*]Storyline (trying to exclude spoilers as many as I can do here). Heavily inspired by the indie game Undertale, the player can choose between ending this game peacefully by not killing anyone or slaughter every enemy this game has to offer.
- There is an 'Act' and 'Mercy' menu to peacefully end battles as well as to interact with the enemy. Bravery factor plays a part here (frightened characters will speak in a different manner than a brave character).
- Unlike Undertale, #TMoJ plays in a party-driven game. Where the character (the protagonist/the player) is not alone, a random character will be picked to perform an action toward an enemy. For example, if the party consists of Character A and B, each 'Act' will be performed by either Character A or B in one time, not both at the same time. 'Act' and 'Mercy' will be available in the party menu.
[*]Random enemies are spawned on the map by their leader's sprite that approaches the character. For example, you'd meet a slime sprite that approaches you for a random battle.
[*]If you end the battle peacefully (no one dies), the enemy disappears within a ball of light. If you slaughter them all, the enemy disappears without any traces (or even a blood spill, in case of human enemies and enemies with flowing blood).
[*]The character can show the enemy group 'mercy' after some interactions or after decreasing their Health Power to critical.
[*]There are 10 different endings in this game, at least.
- Unlike Undertale, #TMoJ plays in a party-driven game. Where the character (the protagonist/the player) is not alone, a random character will be picked to perform an action toward an enemy. For example, if the party consists of Character A and B, each 'Act' will be performed by either Character A or B in one time, not both at the same time. 'Act' and 'Mercy' will be available in the party menu.
[*]States: This game offers a wide range of states...not going to write this for now. What's important at this point is that there are three states that will be considered 'death state' by the game: Dead (0 HP), Stone (the character is petrified) and Vampire (the character turns into a vampire). Inspired by Final Fantasy Tactics.
[*]Scripts: Aside from self-written scripts, this game uses the following:
-
Neon Black's VX Ace Star Passability bugfix.
-
Neon Black's Display Rounding Error bugfix.
-
Neon Black's CP Keyboard Input script.
-
Yanfly Engine Ace: Core, Message, Message Actor Code, Adjust Limits, Battle Engine, Element Color Popup, Enemy HP Bars, Battle Commands, Cast Animations, Visual Battlers, Equip Change, Death Transform, State Animations, Victory Aftermath, Equip Engine, Barehand Trait, Enemy Levels, Learn Skills, Event Chase Player, Event Window, Force Move Tiles, Gab Windows, No Encounter Region, Slippery Tiles, Item Menu, Menu Engine, Save Engine, Shop Options, Menu Cursor, System Options, Call Events, Call Random Battle, Debug Extensions, Spawn Events, Party Music.
-
Fomar0153's Dual Wield -> Free Hands script that enables two-handed weapons.
- Some of the scripts above are adjusted accordingly to suit this game's need (especially those involving projectiles and weapon power display on equip screens)
[*]Self-written scripts:
-
String Chopper: Chops a specified string for each i characters and returns an array of the chopped strings ("HAHAHA" -> ["HA", "HA", "HA"]. Used in generating strings for display in the keyboard input window.
-
Random Array Picker: Randomly picks n elements from array a and returns an array that contains the randomly picked elements.
-
Weapon Power: Implements the weapon power functionality, adding a 'wp' property to each weapon that functions as the weapon power that can be defined via note-tagging. The weapon power is used in damage calculations.
-
Bravery and Faith, inspired by Final Fantasy Tactics, adds the Bravery and Faith parameter to each actor and enemy by note-tagging.
-
Timer Input Window defined as class Timer_Keyboard displays a window where the character must input a set of characters and calls methods to determine the outcome. This window is used both in combat and in map. Requires the CP Keyboard script.
-
Weapon-Specific Damage Formula: using the weapon power parameter above, each weapon have their own damage formula. This script handles the attack skill by passing some parameters to determine the attack damage.
- Some of the scripts above are adjusted accordingly to suit this game's need (especially those involving projectiles and weapon power display on equip screens)
[*]Graphics... crap. I can't do this one. Until now, I've been going along with the game's default graphics set (since I haven't even started to tinker with the game graphics yet). I will obviously need a graphics artist, mind you.
[*]Music... *raises my hand and waves at the camera*
[*]Testers... still a really long way to go before I can even hand this game out for testing. But if you're interested, I'm glad.
- For example, let's assume that an attack will result in 200 HP damage. Then, a window, the keyboard input window, shows up on the screen, prompting the player to type the letters, say, A B C D E, before its timer runs out. If the user types only 1 letter correct (A B C D E is 10 letters, including spaces), the damage will be truncated down by 1/10 = 20 HP damage. If none is correct, the user will fail the turn.
The posts on this blog category will heavily focus on the updates for my project above. This project will be purely non-commercial, since it was first written for learning Ruby programming. As such, no profits will be given, and will be taken, to and from me. If you're interested in getting involved, I'm happy
I'll tell you later when I've finished roughly 50-70% of the game (in the meantime, I'll use the RPG Maker VX Ace default graphics and musics. In the meantime)
But do mind that I'm entirely new to this scene, and such I am open to doing various mistakes. Therefore, much guidance are welcome and much appreciated, Since this is a non-profit project, I cannot guarantee something that involves financial matters. :'3
-
1



2 Comments
Recommended Comments