• Add Review
  • Subscribe
  • Nominate
  • Submit Media
  • RSS

Miscellaneous

Singing a different tune

Now that my Game Gale sideproject is (finally) finished I can get back to this one....although, the primary purpose of this project was to familiarize myself with VX...which the Game Gale project did for me....so.....what is the point of T&T?

Seriously.

Melody and T&T
Anywho, my experience and expertise with VX is still in the novice stage. that being said, Craze suggested that I take a gander at Yanfly's newfangled Melody Battle Engine. I figured - why not? It's not like I got anywhere with T&T before it went on hiatus. Now, I haven't looked at Melody AT ALL so I have no idea what is in store for me, but it can't be that bad, right? Right?

So, I resolve to take a look at Melody, see what it can do, and adapt my class designs to fit within its mold.


Story REDUX and Episodes
Since my life just seems to get busier and busier, I find myself with less time for makin gams. In an effort to mitigate this, I am strongly considering making T&T an episodic game. Each episode will be a story contained within the larger story arc - whatever that is (I haven't even decided that yet). I don't even have an overall plan yet, or even the number of episodes I plan on having. But I have vague ideas.

Anywho, the first episode will most likely be The Journal of the Crooked King and will revolve around a neighboring kingdom's King consorting with the Bad Guys, and your task will be to show him the light. At least, that's probably what I'll do.

Adopting an episodic format also opens the door to making T&T a chaingame, which was an idea I explored in an earlier blog. However, in that earlier blog it was argued that THIS IS VX TUTORIAL/KENTONA GAME... Maybe I can hybridize that and have someone else write and design an episode and I implement it. I dunno, I'm just shitballin' here. I just know that my free time is shrinking every day and I'm getting on in years.

welp.

Miscellaneous

Plot REDUX

STORY ::..
A plea for help

Now that the Missiongarde community idea has been struck down, I am left again with trying to formulate a plot (or at least quests). But, since I am a lazy bastard and I again crowdsourcing my development efforts, proactively synergizing the collective team effort of RMN.

Like I mentioned in the first Plot blog this game is intentionally a short and traditional RPG. For my first RPG in VX I do not want to get bogged down by heavy story elements, scripted cutscenes, characterization, and reams of dialogue. But I am unsatisfied with the generic crystals plot I came up with on the spot.

Anywho, from the outline:
The land of Xnyndril is in peril! The Dark Lord Voidius and his army of netherdemons is destroying the world! The kingdom's many attempts to slay the evil lord have failed, resulting in a dearth of suitable heroes. To the rescue are the Quirks, a motley band of heroes who have opted to pursue the more esoteric classes in their training.


The gist of it is you will command a party of 4 through the land, stamping out the evil of the Dark Lord, culminating with you facing the weakened Voidius in an epic battle.

Now, I find that it is easiest to plot out the main quests that take you from beginning of the game to the end battle sequentially.

The game (tentatively) will start out with the young King (formerly known as Prince) Tafkap receiving a dire message from the Aerosmith Svetlana Teighlor, Commander of Fort Battleford - the last bastion of the Army of Light. The last heroes have been defeated and she is desperate for aid. Tragically, there are no more heroes left. Paladins, wizards, bandits, engineers, warlocks, knights, and even bards - all dead.

...except for the Quirks, a motley band of who have opted to pursue the more esoteric classes like the Beekeeper and Larper. Desperate times call for desperate measures, and the Quirks are called upon as a last ditch effort to win the war.

At this point you will select 4 classes for your party, and then meet the King. He does not fully trust your abilities and sends you out on a trial to prove your mettle. From then on you embark on your journey to defeat the Dark Lord. But I am also considering a longer build-up phase, where you make yourself known before the King summons you and sets you on your main quest.

Anywho, when I was thinking about Missiongarde, one of the main tenets was that the new missions were self-contained logical groups of related quests with a definitive start, middle and end. This format could suit T&T (replacing "mission" with "trial"). It will, however, result in a most disjointed story but the smaller quest-units could be satisfying in of themselves.

As an example, I was thinking that one of the trials would be to turn the populace of a earldom back to the side of Good. See, the Earl is convinced that the only way to survive is to side with the Dark Lord and the people are following him. So it is your job to spread the goodwill of the King, do good deeds, and sway the populace back to the good side and eventually confront the corrupt Earl. This would be just one "Trial" among about a dozen trials and once they are complete (or mostly complete) you are sent on the Final Trial to defeat the Dark Lord.

Compare that to the original idea, where I had the heroes start with a test of mettle quest, followed by 6 "Save the Crystal!" quest interspersed with a boat and airship quest, and ending with a Final Battle.

So, what do you guys think of the trial format? Or is a more traditional Quest A -> Quest B -> Quest C ->...-> Final Battle format more appealing? A few of you mentioned that you have story and plot ideas pouring out your orifices, so I'd like to hear them (if you are willing to share).

Miscellaneous

Missiongarde?


Anyone remember this?

So I have been agonizing over the plot and story (and by "agonizing" I mean it flittered through my mind once or twice) and realized that I ain't got nothing. I know I can cook up something half-baked (and that's my backup plan) but it occurred to me that I could kill two stones with one bird and pose this question:

What if I made Trials & Tribulations a community chaingame akin to Missiongarde?

For those of you not in the know, Missiongarde was going to be a community chaingame initiated by me, designed by committee, the framework built by me, and the first mission built by me, and then handed off to the next person in the chain. They would then map out and build a new mission or chapter in the game, and hand it off.

Trials & Tribulations could easily be retrofitted into this game design concept. I mean, the classes are already being designed by committee (mostly) and I am building the framework of the game.

Is this a good idea? Would you be interested? Or would you rather see another full-fledge kentona-game?

I'm open to suggestions, thoughts, ideas, and musings.


Endnote:
The "two birds" are 1) a starter VX project and 2) finishing a community chaingame that I started.

Miscellaneous

More scripts == more better game

a.k.a. The Yanfly Fanclub Blog Post

VISIT THIS: http://pockethouse.wordpress.com/vx/

I am only being moderately facetious when I say that more scripts means your game will be better. With the use of scripts your game can be better, but "only if used responsibly!" ~Spiderman

I recently went through Yanfly's site in detail (AFTER planning the rough draft of my game, I might add) and picked out the scripts of his that I will find useful (which was the majority of his scripts). Now, you might have heard about the Melody Battle system of his - this is not that. This is last year's model, which is just now getting into my comfort zone. (I hate not knowing what's going on and after exposure to all of these scripts, plus that tutorial on Ruby, I feel more comfortable with adding scripts willy-nilly).

This is now my (ridiculously long) list of scripts:


Got all that?

But every single one has a feature that I plan on taking advantage of. And that is the entire point of this blog.

DO NOT ADD SCRIPTS FOR THE SAKE OF ADDING SCRIPTS BECAUSE YOU THINK ADDING SCRIPTS MAKES YOUR GAME AUTOMATICALLY GOOD

If anyone has any specific questions about these scripts (such as what I might be planning on doing with them), I will try to address them!

Miscellaneous

Ruby in 30 minutes or your pizza's free!


In an effort to try to understand the scripting language behind Ruby Game Scripting System 2 (RGSS2) I breezed through a quick online tutorial on Ruby (which you can find here). For my sandbox, I downloaded the Ruby Installer for Windows from here, and ran the Interactive Ruby program.

I am familiar with languages like C/C++, Visual Basic and Java so I didn't anticipate any issues with going through the basics of Ruby programming. This is the first time I have ever used the language, so forgive me if I get anything wrong.

Without further ado, here are the basics of Ruby.

WHAT IS RUBY? ::..
Ruby is an object-oriented interpreted scripting language. That is, Ruby code is run through an interpreter at run-time, compiled and executed. Contrast that with a language like C++ where code must be linked and compiled into an executable before it can be run.

Object oriented languages typically make use of classes (that act as a template) and instances of a class (called objects) which you can manipulate with methods. Ruby is no exception here.

COMMENTS ::..
Lines prefixed with # are commented out and are not run by the interpreter

#This is a comment

=begin
This is a
multiline
comment
=end


VARIABLES ::..
Ruby uses dynamically typed variables (meaning that the variable type is determined by the interpreter at run-time and you do not have to explicitly state that the variable you are defining is a String or an Integer, like in other languages like Java or C++). Thus it is sufficient to write myVariable = "Hello World!" and the interpreter knows that myVariable is an object of the String class.

Name Begins With	Variable Scope

$ A global variable
@ An instance variable
[a-z] or _ A local variable
[A-Z] A constant
@@ A class variable


Examples:
$globalvar = "This can be accessed anywhere in the program!"
@@isShared = "A variable that is shared amongst all instances of a class."
@classdata = "This value is local to specific instance of an object."
localStuff = "The scope of this will be limited to the block of code it is in, like a method"
MYCONSTANT = "Surprisingly, constants can be modified in Ruby!"

Special variables:
nil null value (uninitialized)
self refers to the currently executing object

Operator	Description

+ Addition - Adds values on either side of the operator
- Subtraction - Subtracts right hand operand from left hand operand
* Multiplication - Multiplies values on either side of the operator
/ Division - Divides left hand operand by right hand operand
% Modulus - Divides left hand operand by right hand operand and returns remainder
** Exponent - Performs exponential (power) calculation on operators

Note that when performing division, if you do not want the result to be truncated to a round number, one of the operands in the operation must be expressed as a float.

Also, all the operators can be combined with an assignment operator:
x += y #same as x = x + y
x *= y #same as x = x * y
..etc..

a, b = b, c #Parallel assignment is also useful for swapping the values held in two variables


Bitwise operators (since all data is stored as bits like 10010110 these operators can manipulate data at the bit level)

~ Bitwise NOT (Complement)
| Bitwise OR
& Bitwise AND
^ Bitwise Exclusive OR
<< Bitwise Shift Left
>> Bitwise Shift Right



RANGES ::..
Used to define a sequential range of values

.. defines an inclusive range
... defines an exclusive range

numbers = 1..10 #defines a collection of numbers of 1 to 10
words = 'cab'..'car' #defines a collection of strings from cab to cac to...caq to car

words.include?('can') # check to see if a value exists in the range


ARRAYS ::..
A collection of variables stored in a self-contain object. Array indexes start counting at 0 (thus the first element in an array is indexed at 0)

blah = [ "b", "l", "a", "h"] #define an array
blah[2] #access an individual element 'a'
blah[1,2] #starting index, number of elements
blah[0..2] #range
blah << "!" #elements can be appended using <<
myList.uniq #no duplicate elements
myList.uniq! #remove duplicate elements from the array
myStack.push "blarg" #arrays can be used like stacks (last in, first out)
myStack.pop #pop the last element off the stack
colors.insert( 1, "orange" ) #insert new elements at the given index
colors.delete_at(1) #delete the element at the given index
colors.delete("red") #delete a particular element
numbers.sort #returns a sorted array
numbers.sort! #sorts the array
numbers.reverse #returns a descending sorted array

Operator	Description

+ Concatinate two arrays
- Difference - Returns a new array that is a copy of the first array with any items that also appear in second array removed.
& Intersection - Creates a new array from two existing arrays containing only elements that are common to both arrays. Duplicates are removed.
| Union - Concatenates two arrays. Duplicates are removed.
== true if two arrays contain the same number of elements and the same contents for each corresponding element.
eql? same as == except that the values in corresponding elements are of the same value type.
<=> compares two arrays and returns 0 if the arrays are equal, -1 one if the elements are less than those in the other array, and 1 if they are greater.



HASH ::..
A Hash is a collection of key-value pairs. It is similar to an Array, except that indexing is done via arbitrary keys of any object type, not an integer index. The order in which you traverse a hash by either key or value may seem arbitrary, and will generally not be in the insertion order.

Hashes have a default value that is returned when accessing keys that do not exist in the hash. By default, that value is nil.

Hash["a", 100, "b", 200]
=> {"a"=>100, "b"=>200}

Access data in a hash by its key. If the key specified doesn't exist, the default is returned.

h = Hash.new("Go Fish")
h["a"] = 100
h["b"] = 200
h["a"] #=> 100
h["c"] #=> "Go Fish"
# The following alters the single default object
h["c"].upcase! #=> "GO FISH"
h["d"] #=> "GO FISH"
h.keys #=> ["a", "b"]



METHODS ::..
Methods are blocks of code (usually within a class) that performs some logic. They are defined with the def command and end with the end command.

def methodname(param1, param2)
...code...
end


Some examples can illustrate some variations:
#variable number of arguments

def displaystrings( *args )
...code...
end

#default argument
def blah(var = "Hello World")
...code...
end

#returns a value
def multiply(val1, val2 )
result = val1 * val2
return result
end



MODULES ::..
Modules are used for grouping similar methods and variables together under a familiar name. They are defined with the module command and end with the end command.


module Kenton

# variables
h = "Hello "
w = "World!"

def helloworld
puts h + w
end
end


I am not very familiar with modules since the tutorial didn't really cover it, which is unfortunate because VX scripts seem to be chock full of them. It does look like modules can be nested.


CLASSES ::..
Classes are blueprints or templates for objects in your code. It will often contain a list of member variables and methods.

When you create an instance of a class, you create an object. An object is a self-contained piece of functionality that can be easily used, and re-used as the building blocks for a software application. Objects consist of data variables and functions (called methods) that can be accessed and called on the object to perform tasks. These are collectively referred to as members.

class BankAccount

#public instance variables
attr_accessor :bankName
attr_accessor :bankNumber

#a class variable and its accessor (shared across all instances of this class)
def interest_rate
@@interest_rate = 0.2
end

#an instance variable and its accessor
def accountNumber
@accountNumber
end

#assignment method (for assigning new values to our instance variable
def accountNumber=( value )
@accountNumber = value
end

def accountName
@accountName
end

def accountName=( value )
@accountName = value
end

#constructor
def initialize(number)
@accountNumber = number
end

#a custom method to calculate interest
def calc_interest ( balance )
puts balance * interest_rate
end
end


You define new instances of a class by using the new method. You call methods within the class by using instance.methodname(parameters)

#local variable created as a new instance of the BankAccount class
account = BankAccount.new()
#call the calc_interest method on the account variable
account.calc_interest( 1000 )
=> 700.0


Note that Ruby supports single inheritance in that a subclass can only inherit from a single superclass. With inheritance, a child or subclass will have access to all the methods and instance variables of its parent, plus whatever new ones you define.
#include statement in Ruby, if the BankAccount class is in a different file

require 'BankAccount'

class NewBankAccount < BankAccount

def customerPhone
@customerPhone
end

def customerPhone=( value )
@customerPhone = value
end

end



FLOW ::..
These commands control logical flow through the code. Things like if and elsif and case and unless statements evaluate an expression and execute a block of code if the expression evaluates to true. Things like while and until and for loop through a block of code until exit conditions are met.

if expression then

...ruby code...
end



Comparison	Description

== Tests for equality. Returns true or false
.eql? Same as ==.
!= Tests for inequality. Returns true for inequality or false for equality
< Less than. Returns true if first operand is less than second operand. Otherwise returns false
> Greater than. Returns true if first operand is greater than second operand. Otherwise returns false.
>= Greater than or equal to. Returns true if first operand is greater than or equal to second operand. Otherwise returns false.
<= Less than or equal to. Returns true if first operand is less than or equal to second operand. Otherwise returns false.
<=> Combined comparison operator. Returns 0 if first operand equals second, 1 if first operand is greater than the second and -1 if first operand is less than the second.

&& Logical `AND'
|| Logical `OR'
! Logical negation

? : Ternary if-then-else


if customerName == "Fred"

print "Hello Fred!"
elsif customerName == "John"
print "Hello John!"
elsif customername == "Robert"
print "Hello Bob!"
else
print "You're not Fred! Where's Fred?"
end

unless i >= 10
puts "Student failed"
else
puts "Student passed"
end


Ternary is a bit of a shorthand version of if x then blah1 else blah2.
#Ternary

customerName == "Fred" ? "Hello Fred" : "Who are you?"


Case statements are a bit of shorthand for a series of if elsif statements.
car = "Patriot"


manufacturer = case car
when "Focus" then "Ford"
when "Navigator" then "Lincoln"
when "Camry" then "Toyota"
when "Civic" then "Honda"
when "Patriot" then "Jeep"
when "Jetta" then "VW"
when "Ceyene" then "Porsche"
when "Outback" then "Subaru"
when "520i" then "BMW"
when "Tundra" then "Nissan"
else "Unknown"
end


while and until run a block of code in a loop while (or until) an expression is true.
i = 0

while i < 5 do
puts i
i += 1
break if i == 2
end

i = 0
until i == 5
puts i
i += 1
end


for loops just run through a range of values.
for j in 1..5 do

for i in 1..5 do
print i, " "
break if i == 2
end
end



Well that was a whirlwind course on Ruby! Unless this is enough for you, I suggest you take a quick online tutorial on Ruby. Google "Ruby Tutorial" or go here: http://www.techotopia.com/index.php/Ruby_Essentials

Next up...
Ruby and RMVX.

Miscellaneous

Larper



Lightning Bolt! Lightning Bolt! Lightning Bolt!

I am often guilty of making a general can-do-a-bit-of-everything-but-does-not-exceed-at-anything class, and with Trials & Tribulations I did not make an exception. The Larper is a general hero class that has access to a bit of everything, but does nothing exceptionally well.

HOWEVER, if I can pull it off, I will consider giving the Larper the Mimic ability. That way they can duplicate the last action performed (or maybe a variation on that depending on what I can implement).


TYPE: General
FRONT ROW COMBATANT
SKILLS
Naturally all the spells with be named with D&D flavour
Accelerated Movement - haste
Blast of Flame - fire
Cacophonic Burst - air
Lightning Bolt - lightning
Clarity of Mind - status healing
Lay of Hands - minor healing
Fox's Cunning - spirit boost
Tectonic Tribulation - earthquake
...etc...

Mimic - copy the last move by an ally

WEAPONS & EQUIPMENT
Swords and platemail and shields.

PERSONALITY
earnest and deluded



Alas brave hero!

Sorry about this one - it was rushed. I just wanted to finish off the class sheets so that I could move on to other things (plus getting the discussion going on the class ideas). Thanks everyone for their input so far (and please don't stop!).

Miscellaneous

Guitaromancer



Are you ready to ROCK?

Say hello to the mage of T&T. The Guitaromancer will learn a good variety of powerful attack magic spells (built on ROCK & ROLL). Now, I haven't decided firmly on whether he'll just learn spells as he levels up or learn spells by reading "Music Sheets" (probably the latter). I may also incorporate Yanfly's TP system (where you earn AP after each battle, and once you achieve enough you learn the spell, in this case, a riff).

As the Guitaromancer plays more riffs in battle, he will build up "momentum" (star power? lol) and if he has enough he can unlock a Killer Riff ability (for major damage!).

Now, I need some ROCKING TUNES to use as spells.

TYPE: Mage
BACK ROW COMBATANT
SKILLS
T.N.T. - starting skill, physical (maybe earth?) damage to a single enemy
Black Hole Sun - demi skill
Pinball Wizard - "deaf dumb and blind", inflicts mute and blind and discord (or something to that effect)


WEAPONS & EQUIPMENT
Guitars. Also, lyres.

PERSONALITY
hippie rocker,...or maybe hardcore metal rocker. \m/





Rock songs as spells GOGOGO!

Miscellaneous

Barkeep



Cures what ales ya!

You can think of the Barkeep as an alchemist-tank class. Now, I was originally planning on making this a copy of the Alchemist class in Hero's Realm (now the Warlock) where in battle you select a recipe and if successful, 1 to 5 potions would be added to your inventory. Then in subsequent turns you'd use those potions for things like healing, or fire damage or poisoning, or status boosts. I can still do that for this class, but I wouldn't mind hearing about some other ideas (perhaps like in FFV where you mix 2 items to make something new).

There is KGC's Compose Item script. Using that, there will be stategically placed saloons throughout the land that you can use to premix potions.

As to what kind of potions, I haven't really thought about it. I wanted him to be primarily a status buffer/debuffer class, with some healing or damage on the side (most likely poison damage!). Gimme your ideas people!

I haven't even settled on a list of conditions yet, but assume standard fare like Confusion and Sleep and Mute etc... for now. Also, buffs like ATK up and Berserk. Maybe even affect things like monster targeting (I think this is called Aggro??).

So what kind of alchemy system should I implement? The premix-from-existing-ingredients one, or the Hero's-Realm-bastardized one? Or something else?

Also, being a big bartender the Barkeep has naturally high DEF and HP, making him a good tank.

TYPE: Effects Specialist
FRONT ROW COMBATANT
SKILLS
Pharmacology bonus

Recipes
This is a total work-in-progress. I haven't given this much thought.
??? - minor healing
??? - full heal
??? - MP heal (?)
??? - status effects
???


WEAPONS & EQUIPMENT
They have access to a special Apron class of armor.

PERSONALITY
Calm, wise, unfazed by most things, and always willing to lend an ear. Maybe even a little too laid back and lazy.



Check out those DEF stats!

Miscellaneous

Mad Hatter



Hat tricks

The Mad Hatter is a multi-purpose specialist (if that makes any sense). The class will have access to special hats that unlock skills when worn. Thus a Cleric hat would impart healing skills to the Mad Hatter, while some sort of Gnome hat might impart Earth spells. The Mad Hatter never permanently learns spells.

The class sort of fills the role of a red mage, except that the hats will be very specialized so in any particular battle the Mad Hatter will be a specialist. I'm not sure how this design will pan out in the end, but we'll see how it goes!

TYPE: Specialist
MIDDLE ROW COMBATANT
SKILLS
Spells
These are just examples of what I had in mind. Once I have settled on a spell list this can be refined.
Zucchetto - (healing skills)
Fedora - (dark skills)
Episcopal Mitre - pope's hat (holy skills)
Bowler - (earth)
Tuque - (ice)
Sombrero - (fire)
Mortarboard - graduation cap (status effects)
Phrygian Cap - (spirit)
Conical Straw Hat - (lightning)
Cowboy hat - (warrior skills, like facepunching (?))
Top Hat - general magic (access to many spell types - a really good hat)

Hats will generally be sold or found as the game progresses, with more powerful hats (obviously) found later on.

WEAPONS & EQUIPMENT
General medieval fare.

PERSONALITY
CRAZY! (erratic, meandering, excitable)



I know that I am overloading anyone who is following this with a data dump, but I had a rare opportunity today to work on my hobby! Sorry! I hope I am not alienating people and boring them. (I can stop this if people want).

Miscellaneous

Stealing scripts

As I mentioned in the Rouge blog, there will be a steal ability in T&T. Luckily for me, KGC already wrote a comprehensive and easy to us steal script.

STEP 8 ::..
Stealing the Steal Script

First step is to download KGC's script library.

DOWNLOAD: http://rpgmaker.net/media/content/users/105/locker/KGC_Scripts_Library.exe

Reading the notes, to assign a skill as a Steal skill, add the tag "<steal>" (without quotations) into the "Note" box on the skill you choose in the skills database.

Yoink!



To set up enemies you can steal from, in the enemies database, you enter

<steal X:ID Probability %>
Where X = Steal type. I = Items, W = Weapons, A = Armor, and G = Gold
Where ID = The specified item, weapon, or armor's ID #, in the database OR the amount of gold that can be stolen.
Where Probability % = The chance of the item being stolen.

Example: You have a bandit (enemy) who has a Long Sword and 100 gold you'd like to be able to steal from him, at a 50% chance. Tag him with:
<steal W:2 50%>

<steal G:100 50%>


There is also the ability to create equipment that can increase the Steal chance modifier. Add the following to the notes section of equipment.

<steal_prob_plus Modifier Rate %>
Where Modifier = Addition( + ) or Subtraction( - )
Where Rate = the amount of increase/decrease in probability.

Example: You have Locke's Glove that imparts a 15% bonus to Steal.
<steal_prob_plus + 15%>

Steal targeting


Where does a slime hide a Longsword anyway?



Now it is just a matter of creating a suitable list of enemies and items for us to steal. That wasn't so hard, was it?


Next up...
Hat tricks.
Pages: first 123 next last