AGS: Can I Make an RPG with AGS?

Started by TerranRich, Mon 03/05/2004 05:56:47

Previous topic - Next topic

Akumayo

#140
Quote from: Yurina on Thu 09/02/2006 13:54:48
I have a few things I want to do:
- clothes, which can't be removed, only replaced
- talisman, weapon and shields which can be completely removed

As for clothes, just create different views for the character, each with he/she wearing a different set of clothes.Ã,  Then, make each set of clothes an inventory item, and set up an interaction so that if the player clicks the character with the set of clothes item, then the character's view is changed to the new set of clothes, and the player's inventory loses the new set of clothes, and gains the old set of clothes.

Talisman's, weapons, and sheilds are a bit harder.Ã,  You'll need to set up something like this:

Code: ags

int current_talisman;
int current_weapon;
int current_sheild;


Then, make talismans/weapons/sheilds inventory items, and when the player uses, say, Sheild 2 on the character:
Code: ags

current_sheild = 2;

Then in battle, the sheild could be called to determine how much damage NOT to take:
Code: ags

int protect;
int damage_dealt;
int attack_damage = monster_strength;
if (current_sheild == 1) {
Ã,  protect = 5;
}
if (current_sheild == 2) {
Ã,  protect = 8;
}
if (attack_damage - protect <= 0) {
Ã,  damage = 1;
}
else {
Ã,  damage = attack_damage - protect;
}
Display("You're hit for %d health!", damage);
health -= damage;


Not quite as easy as pie, but simple, nonetheless.

If you wanted multiple characters to have sheilds/weapons/etc. something like this could be set up.

In global script header:
Code: ags

struct Character {
Ã,  int talisman;
Ã,  int sheild;
Ã,  int weapon;
};


Then in global script top:
Code: ags

Character Amy;
Character Sean;
Amy.talisman = 0;
Amy.weapon = 0;
Amy.sheild = 0;
Sean.talisman = 0;
Sean.weapon = 0;
Sean.sheild = 0;


Then, when, say, Amy is clicked by Talisman 4:
Code: ags

cAmy.LoseInventory(iTalismanfour);
Amy.talisman = 4;


This way, you can have Sean and Amy carrying stuff by the same, easy to remember, variables.

I hope that this helps.

-Regards, Akumayo
"Power is not a means - it is an end."

A�rendyll (formerly Yurina)

Thanks, Alumayo!

I'll try it out for sure.

~Yurina
Yuna: Give me a Y!
Rikku: Give me an R!
Paine: Give me a break...
~Final Fantasy X-2

I've been

RickJ

Is there a script module that supports RPG functionality?   If not is there any interst in creating/having one?

Kinoko

I'm considering creating a template for my style of RPG after I've got all the bugs worked out of my own engine.

A�rendyll (formerly Yurina)

It would be nice to have a template for RPG's, it shortens the time needed to program the basic stuff. I'll look out for Kinoko's for sure.
Yuna: Give me a Y!
Rikku: Give me an R!
Paine: Give me a break...
~Final Fantasy X-2

I've been

RickJ

I asked because there seems to have been many recent (4-5 months) requests for scripting help relative to RPGs.   I was thinking that a script module(s) that did many of the routine RPG operations would be a useful addition to AGS.   I would be willing to do most/all of the programming if there were a few people who could help figure out what is actually needed and who would be interested in testing and/or  using such a module(s).   Let me know what you think. Cheers;)




Akumayo

I've been considering writing such a tutorial for a while now...  I'm still not sure if I want to go through with it though.  There are many reasons not too, but if it was written in the style you're talking about, just setting a scaffold of how to make stats, carry inventory, choose weapns/armor, make enemies, etc.  Then I suppose it would be acceptable.  I may produce one sometime.  We will see.
"Power is not a means - it is an end."

scourge

#147
Well my RPG-AGS engine has been complete for a while but it's not in a state to share, very foggy and unclean. Maybe when oneday Kludden is complete I'll try and make a template of what i did. I think for now Kinoko's the best bet for that.

EDIT: Mine is party-based, turn-based battle system that similar in interface to Chrono Trigger meets Suikoden 1 + 2. And all keyboard control, no mouse.

Kinoko

I agree with Akumayo in that I'm never sure it's a good idea. RPGs are just very different creatures to adventure games. Most adventure games do fall into a few catagories, but RPGs -really- differ in the kind of engine's they use. I ultimately think it's better people sit down and decide the way they want their game to work, and code it themselves.

However, having mods to do very distinct tasks would certainly be useful to a lot of people. For example, the TypeLine function is something I could see being used in many RPGs, as it being used in mine. Perhaps even the crappy mod I made for having non-blocking text appear on screen with an animating border or something, but that's very specific. I have no idea if anyone will ever need that.

Akumayo

You bring up a good point, and the reason I'm not crazy about writing the tutorial I mentioned.  Even in creating functions and modules, they do one of two things:

1)  Only be useful under certain circumstances
2)  Have games modeled around them so that all the games made with them look pretty much identical

Both of which are, of course, unacceptable.  Perhaps just the very most basic guidelines should be written out.  But of course, the manual did that for me.
"Power is not a means - it is an end."

RickJ

I was thinking about basics on a lower level than a template or engine.   I don't know that much about RPGs so you will have to forgive my ignorance but I believe RPG characters have many more characteristics than normal AGS characters, such as healty, weapons, power, etc. 

So for example it would perhaps be useful to have RpgChar objects (in the OO scripting style) where these traits could be included.    The normal AGS character  properties and functions would be included in the RpgChar.

So you would do something like the followng to create an RPG character named Vandor. 

// Declare character object (same as variable)
RpgChar  Vandor;   

// Let  RPG Vandor character use the AGS  character cVandor from
// now on you would be able to use Vandor the same way you use
// cVandor (more or less, I'm sure there will be some gotchas but
// shouldn't be impossible situation.
Vandor.SetCharacter(cVandor); 

// The you would be able to do things like
Vandor.Move()

// Or you could do things like
Vandor.Health = 100;
========

I suppose there are other aspects of an RPG type game that could be made similarily easier to script.  I hope this is making some sense.




scourge

That makes sense. In Kludden everything is handled in OO style, items, characters, the moves for the battle system, monsters, etc, but not many people would understand such things so i think if someone has the time and will do the effort it would be worthwile setting up a base RPG template that handles all basic elements of any RPG, like mentioned above, shops, inventory, stuff like that.

A good tutorial can show how eveything should be used, then user's can concentrate on more game-specific aspects like battles (or someone, could make a module for each -> turn-based, realtime,timer battles). It might be worthwhile setting up different modules and than users can combine the modules he/she wants specifically. So in a sense, drop the template idea of a full RPG, create a base template and loads of different modules, etc.

I'm blabbering.

Afflict

IMO, why in the hell make a full rpg template? Its been done we call it RPG Maker hehe...

There is of course the solution that buloght provided which IMO is the best option if you want to make a tutorial at all for RPG in AGS, code modules. The User can slap all the modules together to build his her own framework. Which of course if they wanted to could then be modified and altered in anyway.



RickJ

Quote
I asked because there seems to have been many recent (4-5 months) requests for scripting help relative to RPGs.   I was thinking that a script module(s) that did many of the routine RPG operations would be a useful addition to AGS.  ... 

I would be willing to do most/all of the programming if there were a few people who could help figure out what is actually needed ...

I was thinking about basics on a lower level than a template or engine. 
Apparently identifying what is actually needed is more difficult than I had originally assumed.  Thanks for your replies anyway.

scourge

I'll quote myself if i wasn't lazy cause i identified what's needed.

RickJ

I'm not lazy so I'll take a shot at sumarizing what buloght says is needed:

  • A Good Tutorial

  • Turn-based Battle Module - I don't know what it does exactly?

  • Real-time Battle Module - I don't know what it does exactly?

  • Timer Battle Module - I don't know what it does exactly?

  • A Base Template - I don't know what it does exactly?

  • Loads of Other Modules - I don't know what they are?

    and I guess I'll mine to the list as well ...

  • Extended Charaacter Module - Super class of AGS characters to allow for user defined attributes and composite characters (i.e. to implement weapons, clothes, etc).

    Any others?


scourge

Turn-based module: Party or non-party based combat where the player party and enemy party attack in turns or according to speeds of individuals. Either way you can take your time deciding your units moves on the turn.

Realtime: Like Secret of Mana and any action game. Ask Kinoko hehe.

Timer: Like in FF8, Chrono Trigger, each units selects his next move when his timer elapses (almost like turn-based.)

- another one might be a shop module. (Ashen, you have one uberly cool one for that coding competition)

- Movement module (maybe) specifically for RPGs with option of turning diagonal movement off.

The Base template can include all basic character functions and data like basic stats for health, damage, defence, atc, movement functions, etc lots of useless functions most people won't use but some might. :)  Maybe include basic monster/inventory stuff as well.

- And a RPG dialoque module, you know like that moving text that can only be destroyed with a confirm button.

- Also i had to write extreme amounts of lines of code for having a keyboard GUI system (which makes me think i did it wrong) but something like this is useful since most RPG (snes anyway) don't have mouse at all.

I don't know?

I am willing to do some of the modules or even the base module, but when i've finished Kludden.

Akumayo

I'm sure, that once all of these things you all are proposing are made, that a great deal of RPG making people will want to get their hands on them.  My question is this, how much would they actually be able to LEARN from such things?  I, personally, will never use anything but what I create, regarding RPG's that is.
"Power is not a means - it is an end."

scourge

#158
Quote from: Glacies Akumayo on Mon 06/03/2006 23:07:19
I'm sure, that once all of these things you all are proposing are made, that a great deal of RPG making people will want to get their hands on them. My question is this, how much would they actually be able to LEARN from such things? I, personally, will never use anything but what I create, regarding RPG's that is.

Well neither will I. I use all my own stuff too. See Kludden, it's engine is complete.

Don't worry about my strategy. I'm making one more game before i'm setting my sights in finishing Kludden. Once I have finished this game I'll try and design this base template and modules while I finish Kludden. This will probably be around middle of this year if not later when I start the template, but that's what I plan on doing. Then for people who need one that doesn't wanna make their own tempate can use it. I do agree that doing one's own work is much more rewarding Akumayo. but not everybody knows how.

If someone else wants to make a template in the meanwhile, it would be great. Sinitrena, I saw in your signature you're working on one? Would love to see it finished 

Kinoko

Quote from: buloght on Sat 04/03/2006 19:53:10Realtime: Like Secret of Mana and any action game. Ask Kinoko hehe.

All I can say on the subject is that it's -hard- to get things tweaked the way you want.

Quote- Also i had to write extreme amounts of lines of code for having a keyboard GUI system (which makes me think i did it wrong) but something like this is useful since most RPG (snes anyway) don't have mouse at all.

I've done similar things and yes, I was shocked at how much code it took to get it right. I was also wondering if there was a way to shorten it, and admittedly, I keep going over my old code and I do find ways to, usually, significantly cut down on it. I did it recently for my inventory GUI code. I find inventory is a hard one to reduce the code with, because there are so many specific properties necessary for each item that I can't use maths or increments for. Just gotta write 'em all out.

SMF spam blocked by CleanTalk