Forums

Learn making RPGs with Yal!


Subscribe to Learn making RPGs with Yal! 48 posts, 12 voices

Pages: 1 2

 

Sep 26, 2008 8:49am

Yal Yal 752 posts

Hello, everybody!
I just want to point out that I know that I shouldn't put a topic on yoyo about making RPGs, but since more onlyYoyo users use my engine, I will actually reach those who wonder with this topic.
Anyway, if you have a question about my engine, ask and I will answer. But check trough the topic to see if the answer's already in it!
If you wonder, my RPG engine is found here:
HyperGame RPG Engine
And also here:
Lite RPG Engine
Mind you, it's an engine, not a RPG maker. This actually gives you more freedom, at the expense of more work. But less work than making your own Battle Engine, anyway.
I'll try to post some help and hints every day, but not on the weekend days. I don't have internet access on the weekends.
Anyway, feel free to ask!

Return of Baron,my masterpiece.
Try it!
Baron is a character by A_Penn.

 

Sep 26, 2008 9:18am

Yal Yal 752 posts

Yal's help and hints #1
Deciding your heroes
=============================
When you first open the .zip folder the engine came in, there are two things inside: a gm6 file containing the engine and a .txt file with the manual. Begin with reading the manual: it explains how to use the engine pretty well.
NOTE! The manual is only in the Pro engine, I forgot to include it in the lite version. If you use GM lite, you have to download the pro one for the manual. Sorry.
Anyway, the first tip I give you! How to use your own heroes:
The easiest way is to edit the two sprites spr_whitemage and spr_whitemage2, the sprites of the heroes in the example RPG. Don't rename them, but just draw your own sprites. A lot of objects use code with the sprites' names in them, and you'll proably want to get used to the engine a bit before digging around in it and change code. When drawing, note that the hero sprites need four subimages: number 0 and 1 is the walking animation. Number 2 is the attack image, and number 3 is the taking damage one. Drawing them in another order might have some funny results. But feel free to edit anything in the engine - except the two things mentioned in the manual. But code and actions are yours to use and remake.
Try playing around a little bit with the engine. But remember to keep a backup copy!

Return of Baron,my masterpiece.
Try it!
Baron is a character by A_Penn.

 

Sep 26, 2008 9:26am

Yal Yal 752 posts

Yal's help and hints #2
Using treasure chests
===========================
This is maybe not an explaination, but instructions! But practice makes perfect, so sometimes you learn more by using ready-made code and playing around with it, than by trying to crate your own code. You must know a pinch GML to work with the engine, if you haven't noticed it by now...

Also, this is pretty advanced compared to my last hint... Let's say you do this after one week of changing Deyan and Gitt's names, adding a new dungeon, and a boss or two... (I'll be back about that)
Anyway, start with making that array in the game start event for obj_variable_creator:

for(counter = 0; counter < 180; counter += 1){
global.chest_array[counter] = false
global.siwtch_array[counter] = false
}

(A switch array has nothing to do with the chests, but can come in handy later, e.g. to see if you have unlocked a door in a dungeon.)
To give every chests an unique ID, start with going to the room. If you right-click on an chest while holding down the Ctrl key, a pop-up menu should appear. Choose 'creation code' and a window pops up, where you can write individual code for that chest. Write something like this:

my_chest_index = 0
my_chest_item = "Magic Hat"
my_chest_money = 0

Note though, if you leave a chest without creation code, it will lead to errors when you enter the room. So remember to give code to every chest you make.
in the create event of obj_chest, add this:

if(global.chest_array[my_chest_index] = true)
{
instance_create(x,y,obj_opened_chest)
instance_destroy()
}

So you need to add an obj_opened_chest, too. It saves time, because you can use the same message for all opened chest: "Deyan opened the chest, but it was empty." Or something like that.
Then, in the event when you open the chest (making it similar to the one when you talk to townspeople, by copying and pasting, seems to be the easiest way) add a code like this:

if(my_chest_item != "")
{
scipt_execute(script_drawmessage,"You found a " + string(my_chest_item) + "!&"))
if(script_execute(script_obtain,1,my_chest_item)){
scipt_execute(script_drawmessage,"" + string(global.name_1) + " took it.&"))
global.chest_array[my_chest_index] = true
}
else if(script_execute(script_obtain,2,my_chest_item)){
scipt_execute(script_drawmessage,"" + string(global.name_2) + " took it.&"))
global.chest_array[my_chest_index] = true
}
else{
scipt_execute(script_drawmessage,"But nobody had any more place in their backpacks#for another item.&"))
}
}
else{
score += my_chest_money
scipt_execute(script_drawmessage,"You found " + string(my_chest_money) + " Gil!&"))
global.chest_array[my_chest_index] = true
}

Now you can make treasures to obtain! Using switches in a similar fashion, you can make doors that destroy themselves if their switch_array value is equal to true. And switches that sets the switch_arry[my_value] to true. Dungeon design suddenly became much better, right? I'll be back about bosses, the last thing you need for a superb dungeon...

Return of Baron,my masterpiece.
Try it!
Baron is a character by A_Penn.

 

Sep 26, 2008 10:24am

Yal Yal 752 posts

Yal's help and hints #3
Tell the engine who's the boss
===============================
As you probably know by reading the manual, there are only one kind of enemy. It gets its sprite and stats changed by the controller, and leaves money and xp in its destroy even depending on which name it has. In its step event, there are a huge block after an 'if variable wait is smaller than value 1' check. The attacks take place there. The enemy 'Rex' e.g. creates a fire effect with a 1 in 2 chance, but you can add other effects on other enemies. Even enemies that heal themselves!

So upon making a boss, add a name-based loot of the boss you want to add's name, like e.g. 8000Xp and 50 Gil.
Second, you add some behaviour. Like creating an earthquake-animated effect with a 1 in 3 chance, and setting the damagedealer's POW to 200 relative.
And third, go to obj_battle_controller and add a new foeparty, e.g like this:

else if(global.foeparty = 8)
{
nnn = instance_create(32,80,obj_enemy)
nnn.my_place = 0
nnn.name = 'Shalagazzim The Evil Wizard'
nnn.hp = 300
nnn.atk = 10
nnn.def = 2
nnn.int = 999
nnn.sprite_index = spr_wizard
sound_loop(snd_bossbattle)
}

then you need to call the script script_encountermonsters with argument1 as the foeparty number of the boss + 1. In this case, call the script uning the action, with argument1 as 9 to encounter Shagalazzim. Cool name, right? Huh, you're wondering how to call the script?
Well, one way is to add an obj_townspeople in the dungeon, make a talk even just like Galford's, BUT! In the create event, let it change sprite into spr_townevilwizard only if global.storyline is smaller than... lessay 5 in this example. In the destroy event of the obj_enemy, let it set global.storyline to 5 when the name is equal to Shagalzzim, apart form giving all that XP and Gil.
And, in the talk event, add a little talk, and THEN call the script. You need to hear Shagalazzim threaen to destroy the world first, right? THEN you go to the battle!
Do you want him to swear over you when dying? Add a few events in the destroy event of obj_monster, too! Execute Script script_drawmessage...
Events when e.g. a door he was guarding opens? Add some obj_storymakers around the area when you can speak to him. Let them take action when storyline is equal to 5, which it will be once you beat him! At once when you come back, everything happens!
Oh, I almost forgot: remember to let the townspeople object the boss is, destroy itself in the end of the talk event, just before you go into battle.

Anyway, good luck with your bosses and mini-bosses! And dungeons of course!

Return of Baron,my masterpiece.
Try it!
Baron is a character by A_Penn.

 

Sep 29, 2008 5:37am

Yal Yal 752 posts

<Sorry, but this is a bump. Could you please post some questions for me to answer?>

Return of Baron,my masterpiece.
Try it!
Baron is a character by A_Penn.

 

Oct 8, 2008 7:37am

TheDavinator TheDavinator 12 posts

Very good engine :D ive made sorta SORTA a bar :D i used luigi buuut the thing it wont do for me is like basically make the beer :D show up so i can buy it... :D i like doing :D :D :D :D :D

Edit: reply asap plz

 

Oct 8, 2008 1:09pm

Yal Yal 752 posts

Jay! After two weeks, an answer!

Hmm...
Go to Objects -> Townspeople ->Shop System -> obj_shop_buy_chooser.
In the create event, add this code in the bottom of the event:

if(global.sy = 999) //here, 999 should be the value you set global.sy to in the door that leads to the bar
{
my_item_1 = 'Beer' //and just add the other kinds of booze below, like
my_item_2 = 'Whiskey'
my_item_3 = 'Wine'
}


Aaand, in scripts:
script_draw_buy_items
script_buy_something
script_draw_item_descriptions
..you need to add a little code for the new item 'Beer'. Then you can buy beer from Luigi.

But hey, remember that yoyo is a homepage for all ages, so be sure to include info in the description that children below 18 shouldn't play it since it contains alcohol.

Um, colon capital D? Asap?
...anyway, I answered on the part of the question i understood. Geez, what's happening to gool ol' grammar nowadays?

Return of Baron,my masterpiece.
Try it!
Baron is a character by A_Penn.

 

Oct 8, 2008 8:00pm

TheDavinator TheDavinator 12 posts

QuoteJay! After two weeks, an answer!

Hmm...
Go to Objects -> Townspeople ->Shop System -> obj_shop_buy_chooser.
In the create event, add this code in the bottom of the event:

if(global.sy = 999) //here, 999 should be the value you set global.sy to in the door that leads to the bar
{
my_item_1 = 'Beer' //and just add the other kinds of booze below, like
my_item_2 = 'Whiskey'
my_item_3 = 'Wine'
}


Aaand, in scripts:
script_draw_buy_items
script_buy_something
script_draw_item_descriptions
..you need to add a little code for the new item 'Beer'. Then you can buy beer from Luigi.

But hey, remember that yoyo is a homepage for all ages, so be sure to include info in the description that children below 18 shouldn't play it since it contains alcohol.

Um, colon capital D? Asap?
...anyway, I answered on the part of the question i understood. Geez, what's happening to gool ol' grammar nowadays?


aaa sweet tyvm ( yeah soz bout my grammar ) I'll be back muahahahahahaha

 

Oct 9, 2008 8:44pm

TheDavinator TheDavinator 12 posts

OK 1 question ive made a new room ran the game in debug mode looking for global.sx/sy and ive found it put it in obj_doorway and it wont work... it just comes up as what i made it look like in the tiles... ive done all that u have done and pu it in 2 rooms (cos i put it in the cave and i had to fight my way there all the time just to test the door) so i just ended up putting it in travellers town... please help

 

Oct 12, 2008 11:16am

Yal Yal 752 posts

Umm... I don't understand your explaination. Sorry.
Does you appear at a wrong place after going trough the door?

Return of Baron,my masterpiece.
Try it!
Baron is a character by A_Penn.

 

Oct 13, 2008 1:20am

GZ GZ 1026 posts

You... are a GM god.

 

Oct 13, 2008 4:27am

mrsmes mrsmes 2672 posts

\/\/()\/\/

Looking for Programmers, and Artists in PC art, You can be payed $400,000 we currently need 3 new programmers and artists.

 

Oct 15, 2008 8:48am

TheDavinator TheDavinator 12 posts

QuoteUmm... I don't understand your explaination. Sorry.
Does you appear at a wrong place after going trough the door?


Nah it just dosnt show obj_main_player or obj_ally_1 at the place where made them come out of the 'cave' but it dosnt show their spites at all... do i have to get the global.sy and sx for them to come out?

 

Oct 15, 2008 9:16am

Yal Yal 752 posts

Um, you should ADD an instance obj_main_player in the room! (To be precise, in the position (0,0) (no smiley intended) in the upper-left corner of the room, which will make three fourths of the sprite to lie outside of the room since the origin is in the center.)
Anyway, the obj_main_player isn't persistent or so, so you need to add one in every room you want the player to move in! When its creating position is (0,0), it jumps to global.sx and sy, else, it stays at the creating position!
I hope this helps more...

Return of Baron,my masterpiece.
Try it!
Baron is a character by A_Penn.

 

Oct 15, 2008 10:57am

Yal Yal 752 posts

Yal's Help and Hints #4
Making Townspeople easier
===============================
You've probably noticed that after a few towns, townspeople's talking event (Press Enter, to be precise) contains a TON of actions and that it's hard to navigate, GM runs laggy, and what else?
I noticed that, anyway, and after surfing the help file I came up with a solution!
First of all, you need to change the default sprite of obj_townspeople to a sprite you will never use for townspeople in the game, for instance take spr_posioncrab. That way, you'll also notice when you forgot to add action to an obj_townseople.
Anyway, after doing that, you should go to the press enter event, in the end of every room case ("If variable room is equal to a value" followed by a "start of a block" and a block of actions) add an 'Exit this event' (icon shows a crossed-over red circle) action just above the 'End Of A Block' that's before the next "If room has a value".
Now, after all the room cases, add some code

execute_string(other.my_code)

That's all... most everything. But what "my_code", you're wondering? That's right, we haven't added any code yet. Let's do it, right? This is how you do it: open a room, add an obj_townspeople, hold down Ctrl and right-click it. If done correctly, it will not be erased, but a little pop-up menu pops up! Here, click 'Creation Code' and type in something like this:

sprite_index = spr_guard
my_code = "
script_execute(script_drawmessage,'Guard:#Nothing suspicious will bepass me!&')
"

This will make the sprite of this specific townspeople 'spr_guard', and when you talk with him, he will execute... or let's say perform... script_drawmessage. And speak once with you. You can add ANY GML in the my_code! Perhaps start a battle when you speak with the boss? Or go to a different room when you speak with the Minigame clerk? Almost endless possibilities!
Execute_string is a powerful function, but beware: spelling errors in strings won't be discovered! Be sure to check your spelling when writing...

Return of Baron,my masterpiece.
Try it!
Baron is a character by A_Penn.

 

Oct 16, 2008 1:39am

TheDavinator TheDavinator 12 posts

QuoteUm, you should ADD an instance obj_main_player in the room! (To be precise, in the position (0,0) (no smiley intended) in the upper-left corner of the room, which will make three fourths of the sprite to lie outside of the room since the origin is in the center.)
Anyway, the obj_main_player isn't persistent or so, so you need to add one in every room you want the player to move in! When its creating position is (0,0), it jumps to global.sx and sy, else, it stays at the creating position!
I hope this helps more...



thankyou very much im a silly person

 

Oct 16, 2008 6:27am

Yal Yal 752 posts

Quote
thankyou very much im a silly person

No, you're just new to GM. Don't be so hard with yourself. Everbody's new with GM sometime (And grammar). Just train yourself, and you will get so good one day, that you don't need to ask questions.

Return of Baron,my masterpiece.
Try it!
Baron is a character by A_Penn.

 

Oct 16, 2008 6:28am

aracnoX aracnoX 1711 posts

Could I make a section for this on my site, and split it into different parts?

alphainteractive.tk

Enter The Alpha CFP!

 

Oct 16, 2008 8:43am

Yal Yal 752 posts

A section for what, more exactly? My help about using my RPG engine? That sounds really interesting. But can you please elaborate/explain a bit more first?

Return of Baron,my masterpiece.
Try it!
Baron is a character by A_Penn.

 

Oct 16, 2008 9:05pm

aracnoX aracnoX 1711 posts

Yeah like I make a section, then post the tutorials piece by piece on seperate pages.

Then anyone who makes a game with it, or wants to post screens or something can just email me, and I'll add a sub-section for it.

Enter The Alpha CFP!

 

Oct 17, 2008 6:56am

Yal Yal 752 posts

I can't see any problems with that. As long as I don't have to make the tutorials in a certain speed, since I'm not knowing about most of the possible updates myself. And I don't want too much responsibility. But you have my... blessing(?) to copy the text from my RPG tutorials to Alpainteractive. It's better the more people that can read it.

Return of Baron,my masterpiece.
Try it!
Baron is a character by A_Penn.

 

Oct 17, 2008 7:25pm

aracnoX aracnoX 1711 posts

Alrighty, and no you won't have to have like a certain update speed, I'll just tell you when I update the page, ok.

Enter The Alpha CFP!

 

Oct 20, 2008 9:17am

Yal Yal 752 posts

Ok. That sounds finey!

Return of Baron,my masterpiece.
Try it!
Baron is a character by A_Penn.

 

Oct 20, 2008 2:45pm

axeclick axeclick 1433 posts

Intresting, keep it up.

 

Oct 20, 2008 8:37pm

aracnoX aracnoX 1711 posts

well I won't be able to set it up until I can fix the problem in my users database which isn't letting me log in.

Enter The Alpha CFP!

Next page

Pages: 1 2