AGS: Can I Make an RPG with AGS?

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

Previous topic - Next topic

RickJ

Hmmm,  A keyboard movement module would seem to be generally useful.    Can you guys explain what you have done so far or give me some code examples?  I would like to see what variability there is in operation and think about how to deal with it.  Maybe make it user configurable or at least designer configurable. 

Ashen

There already is a KeyboardMovement Module which seems to work OK, but the more the merrier I suppose - especailly if you can add to it somehow.

I think the current Coding Comp would've been a good place for some of these ideas - maybe whoever wins it can extend the RPG theme?
I know what you're thinking ... Don't think that.

Akumayo

Ahh, but if YOU enter Ashen, then YOU will win, no?  :=
"Power is not a means - it is an end."

A�rendyll (formerly Yurina)

I just got the most brilliant idea: why not make a site with stuff on it for designing RPG's? Since a lot AGSers like to make those too it would be great to have a central recource site.

As for the modules, I also have suggestions:

- Ranged attacks in realtime RPG's (if possible).
- A keyboard module with functions like: X to talk to somebody, Enter to open a menu, etc.
- Sub-inventory modules

Tutorials:
- Statistics and how to use them in e.g. fights and level-ups (HP, MP, Attack, Defence, Speed, Accuracy, Evasion, etc.).
- How to make using objects inflict or prevent damage.

I'll add more later.
Yuna: Give me a Y!
Rikku: Give me an R!
Paine: Give me a break...
~Final Fantasy X-2

I've been

Akumayo

Hrm... an interesting proposal.  Like an AGS RPG resource site, dedicated to using AGS like an RPG maker...

Or... someone could make a site for using AGS for any genre of game other than adventure.  This way, it could be a resource site for RPG's, arcade games, shooters, etc.  Where people could learn from one another, and build a brighter future for AGS, one including a wide variety of game types.  I may actually agree with such a thing.
"Power is not a means - it is an end."

A�rendyll (formerly Yurina)

That's exactly what I meant, Akumayo.

I'd love to design such a site, but I won't be able to maintain it. I still have my games to work on, and as soon as I create my own modules for my own games I'll contribute them. (Not that I'm a scripting wonder or something...)
Yuna: Give me a Y!
Rikku: Give me an R!
Paine: Give me a break...
~Final Fantasy X-2

I've been

Akumayo

http://185703.aceboard.net/index.php?login=185703

I had some spare time.  I hope you all can make good use of it.
"Power is not a means - it is an end."

A�rendyll (formerly Yurina)

#167
Erh... Akumayo... the link doesn't work...^.^'

EDIT: oops! it just was a long load...  ;D'
Yuna: Give me a Y!
Rikku: Give me an R!
Paine: Give me a break...
~Final Fantasy X-2

I've been

buloght

That's pretty cool Akumayo! I registered :) I am very far with a non-adventure (not my RPG), I'll put it there when finished, should be soon. Great stuff Akumayo :)

Akumayo

Thanks right back buloght, I was beginning to think that interest in such a place had died off.  I do hope it will help out.
"Power is not a means - it is an end."

A�rendyll (formerly Yurina)

Currently I'm working on my battle system. I don't know yet wether I put it up or not, I don't like people using things I made fo a very personal project, but I do want to help... :-\

Anyways, as soon as I get coding a bit better I'll put some nice stuff up.
Yuna: Give me a Y!
Rikku: Give me an R!
Paine: Give me a break...
~Final Fantasy X-2

I've been

Ashen

That looks like it could shape up to be a nice little resource. Perhaps an official anouncement in General Discussion would generate more interest? However, can we leave any further discussion of it to PM or - wacky thought - to it's own 'Suggestions' forum.  After I have my say, anyway:

Yurina, maybe you could put up a stripped down version of the engine? You know leave the basics intact for everyone to use but remove any 'personal' touches specific to your game.

Akumayo, should I add my trade & turn-based battle engines from the coding comps? Or you're welcome to add them yourself, if you want.

Now, let us never speak of it again. Here, at least.
I know what you're thinking ... Don't think that.

Akumayo

"Power is not a means - it is an end."

A�rendyll (formerly Yurina)

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

I've been

buloght

http://www.adventuregamestudio.co.uk/yabb/index.php?topic=26939.0

I put my kludden tech demo there, to showcase my RPG engine. Not sure when I'll coninue the actual game (which is much further than this demo) since I'm first working on an adventure game.

DinghyDog

Okay, to bring this topic back to questions about RPG-ness....

I've started what will probably be a long-term off/on project to make an old-style NES/SNES RPG. I've started coding my GUIs, getting keyboard control, etc, etc...but I have a few questions about problems I can see down the road.

There's a hell of a lot of math involved in an RPG. I can imagine that if you do the math wrong, the game could be too easy, too hard, etc. Leveling up and exp. for instance. Usually in RPGs, you get less experience for defeating a given enemy the higher your own level is. That would require a formula...it's things like this that I worry about. Not because I couldn't implement them - because I don't know what RPGs usually DO. What math governs how fast someone gains a level? How do the different attributes come into play? How would your enemy's Hit percentage interact with your own Evade percentage?

I doubt there's a resource anywhere that could help me with this....is there?

And then...supposedly there's only 300 GlobalInts and 50 GlobalStrings. Correct? Or something? I'm still FAIRLY new to the AGS language (but I've been coding for quite a while)....is there some way to expand this number? Or to, say, call a variable used in your global script from a room script, do something to it, and then return it with its new value? Otherwise, I see problems arising. I don't want to copy enemy code into every room they might pop up in.


-DD
It's yer owld pal Dinghy Dog!!

Ashen

Quotesupposedly there's only 300 GlobalInts and 50 GlobalStrings. Correct? ...is there some way to expand this number?

Actually, I think it's 500 GlobalInts.

Although not RPG specific, this BFAQ entry deals with making Global variables, which will extend those limits nicely. (As well as allowing you to use the more intuitive Money = 3; instead of SetGlobalInt(437, 3);.)
Note that if you're using V2.7 or lower, you can't make global strings. You can however make a char array, that will work similarly. (char Name[30]; will give you the functional equivilant of a 30-character string.)

As for the maths, you could just fudge it, so it seems right to you - that's the joy of writing your own engine. Alternatively, Google up some sites relating to RPG engines, they'll probably have the formulae used somewhere in their resources.
I know what you're thinking ... Don't think that.

DinghyDog

Ah, fantastic! Honestly, besides the unfortunate problem of having to export and import many, many separate variables, I would much rather use variables of my own naming than having to GetGlobalInt blah blah etc.

But yeah, I guess I'll just see what happens with my own math...ah well.
It's yer owld pal Dinghy Dog!!

ice_sta

Quote from: TerranRich on Mon 03/05/2004 05:56:47
The answer is yes. You can make an RPG with AGS.

Why not? What's stopping you? First of all, you can keep track of stats with global variables. Look them up in the manual. Look for "globalint".

Turn-based combat? Of course it's possible with AGS! With enough scripting knowledge, you can program turn-based fighting in your RPG game.

Any other RPG-related questions, please feel free to ask here. Anybody who has any other tips and pointers for making an RPG in AGS, post here as well.

(Any other "Can I make an RPG" threads will be locked.) :)

Khris

#179
Damn, ice_sta, _that_ was helpful. ::)

DinghyDog: goto www.gamefaqs.com and look at the In-Depth FAQs of famous RPGs. Here's an example from ChronoTrigger.
EDIT: direct link doesn't work, so copy & paste it into a new browser window.

And you should familiarise yourself with structs, here's a short example from a half-finished fight engine I did:

Code: ags
struct fighterStruct {
Ã,  // Stats
Ã,  int hpm;Ã,  Ã,  Ã,  // health max (1-999)
Ã,  int hp;Ã,  Ã,  Ã,  Ã, // current health (0-hpm)
Ã,  int mpm;Ã,  Ã,  Ã,  // magic max (1-999)
Ã,  int mp;Ã,  Ã,  Ã,  Ã, // current magic (0-mpm)
Ã,  String name;Ã,  // name
Ã,  int lv;Ã,  Ã,  Ã,  Ã, // level (1-99)
Ã,  int atk;Ã,  Ã,  Ã,  // attack (1-99) inflict damage
Ã,  int def;Ã,  Ã,  Ã,  // defense (1-99) get damage
Ã,  int agi;Ã,  Ã,  Ã,  // agility (1-99) likelyness of hit
};


Put something like that into the global script header, or even better, into the header of a module.

In the module script, you'd use
Code: ags
fighterStruct party[4];
export party;
and thus you'll get three (4, I know) party members whose stats can be accessed by using e.g.
Code: ags
party[1].name="Cloud";
// or
party[1].agi=40;

SMF spam blocked by CleanTalk