AGS: Can I Make an RPG with AGS?

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

Previous topic - Next topic

Khris

You can have 299 state-saving rooms per game.

There are several ways to overcome this limit though. As you mentioned, rooms that are basically just scenery are best for non-saving ones. They can still have random events and the like.
Just to clarify, non-saving means that room variables' values are lost, and the state of objects, hotspots, regions and walkable areas. So if a room only has an NPC's shop (and no locked doors or the like), it's fine to use room 300 and above. Even if it did though, you could use global variables to store the state and re-init the room in its before fadein event.

DBoyWheeler

Cool!  Thanks.  It's a good thing this thread is in my bookmarks, so I can hunt for something here when I need it.  It may be a long time before I do such a game, but when I'm ready, I'll have the info I need.  Thanks again!  :)

VVK

#302
I'm pretty new to this, but I've been playing around with the idea of something RPG-ish too, and there's one thing sometimes done in RPGs about which I'm not sure whether it could be done in AGS. I haven't quite found a proper answer to this anywhere. So: Is it possible to customise a character's appearance by combining different elements, like hair style and eye colour and such? Like when creating a custom player character, but it could also be used for creating stock NPC appearances and changing the clothes or armour someone is wearing. Even if customisation is just limited to the initial character creation, there would obviously be too many combinations of even just a few different options for it to make sense to make a different collection of sprites for each.

I suppose there are two separate questions here: whether it's possible to combine pre-made pieces within the game to (effectively or actually) create a new sprite, which is more important; and whether it's possible to colour the "pieces", eg. just create and import one image for a specific hair style (or, well, you know, one per needed frame of animation or whatever will be needed for other reasons) but then tell AGS to recolour it when needed.

Crimson Wizard

Quote from: VVK on Wed 02/01/2013 20:14:15
I suppose there are two separate questions here: whether it's possible to combine pre-made pieces within the game to (effectively or actually) create a new sprite, which is more important; and whether it's possible to colour the "pieces" , eg. just create and import one image for a specific hair style (or, well, you know, one per needed frame of animation or whatever will be needed for other reasons) but then tell AGS to recolour it when needed.
This is most possible. There's a concept of "dynamic sprite" in AGS, which allows you to create a new sprites at runtime and draw what you like on them (including painting other sprites over).
Manual topic: http://www.adventuregamestudio.co.uk/wiki/DynamicSprite_functions_and_properties
Also this: http://www.adventuregamestudio.co.uk/wiki/DrawingSurface_functions_and_properties

After the sprites are created, you may assign them to character View frames.
The Character's Tint property may also be useful to some extent:
http://www.adventuregamestudio.co.uk/wiki/Character_functions_and_properties#Character.Tint

Khris

About recoloring sprites: tinting only works for the entire character's appearance; however one could dynamically recolor sprites on a per-pixel basis.
Say you imported a pants sprite; if you only used greyscale colors for the pixels that are supposed to change color, you could iterate through every pixel and recolor it based on the brightness value.

VVK

Excellent, thank you. I'd actually wondered if dynamic sprites were suitable for this earlier, but I couldn't really see the forest for the trees when I looked them up in the manual, so I wasn't sure whether they worked that way.

So... if you wanted to combine several elements to make a sprite, would the way be to import them as separate sprites, then create a dynamic sprite and draw the elements onto it with DrawingSurface.DrawSurface?

And could you use Tint anyway by creating a dummy character with a sprite only consisting of parts that are going to be the same colour on a given character, tinting that (with saturation 100, of course), and then somehow taking the result and adding it to the finished sprite similarly to the above? Sounds more complicated, though, since if I read this right, it doesn't affect the sprite, just the character, so the only way I can see right now to accessing the result with these commands is through DynamicSprite.CreateFromScreenShot (plus DynamicSprite.Crop). And if you used that, could you have transparent parts in the resulting sprite? Okay, so maybe that doesn't work.

Khris

#306
I'm pretty sure that if you take a screenshot, areas colored in "magic pink" (255, 0, 255) will end up transparent, yes.
The problem is that this process is going to be visible to the player, if only for a fraction of a second.

What you could try is use a room that's bigger than the screen so you can have an object off-screen, set the sprite as object graphic, tint the object, then merge the object into the background (this should retain the tinting). Now you can grab the off-screen part of the background.
The problem here is that the object will "physically" disappear from the game, so you can only do this once for every object.

VVK

Oh. I always wondered what "magic pink" was. (I've been lurking here for months.)

Radiant

Well, fellow adventure gamers, let me tell you a little story. Years ago, when I was new to AGS and all I had written so far were some action/puzzle games, I first came across this site and thought it was awesome (and by the way, I still think it is awesome, and more so every year). That's basically because I grew up with adventure games, and I learned English by playing King's Quest and Space Quest and figuring out what commands to type. So obviously I made plans to write a game in AGS, but since I was doing puzzle games I was also looking into other genres than just adventures. And then I noticed this thread or its predecessor: is it possible to design an RPG in AGS? I thought about it for a while and concluded yeah, sure. As far as I know, back then nobody had actually done any RPGs yet, so I decided I would go and write an RPG, and then make a post in this thread here containing just the word "yes" and a link to my game. Well, it took awhile; game design takes up quite a bit of time and real life has a tendency to interject itself every now and then, so it's now almost ten years after I first registered for bigbluecup. That means that there have been several RPGs made before, and nobody has to prove any more that something is possible in AGS because we've all seen how versatile the engine actually is. That said, RPGs are still great and so are AGS games, so there's always room for another AGSRPG; it was fun to write one and I hope other people remain inspired to write more. So without further ado,

YES!

Ghost



EHEBrandon

#311
Hello I was wondering.. I want to make a all 2D game but I want it to be like Persona 3 and 4.. The reason I use Persona 3 and 4 as a example is because it has a unique feature that works quite well.. It has this system called the "Social Link System" Basically it adds slice of life and dating sim elements to the game.. So for example once you level up a social link up to level 10 you could start dating the characters and dialog changes and you could also take them on dates and they will do things for you that they couldn't do before.. You could also date multiple people.. I want this system but a bit more advance where you could marry and have kids and such.. Also there is a calendar system in the game where it goes a whole year. Also each day you do something in the morning afternoon, daytime, evening, and night. So for example say if you go to school that will take up your morning. Then comes afternoon its lunch time you could choose a friend to hang out with and have lunch with them, evening you could rank up social links or move on into the dungeons and progress in the story, then at night you work or you could study, or level up your social links.. Then basically after those events the day changes to the next.. So say if that day was April 11th it will now be April 12th and etc.. So I was wondering if you could do something like that? I want people to be able to interact with everything and every character so the world will seem lively. Also fusions.. Because its really cool how you could make stronger Personas through fusions so is that possible as well?

Dungeon Example:

https://www.youtube.com/watch?v=5Z_bsUVPq3A

Here is a example of the calendar system, social link, and fusion:

https://www.youtube.com/watch?v=YDEqEiUaLCs


Better Social Link example:

https://www.youtube.com/watch?v=p5iopEFHGM8

Better example of fusions:

https://www.youtube.com/watch?v=QV9q3VGTxtQ

So basically I kind of want to make a game like this but all 2D with a nice anime style.. So would this all be possible? Sorry for the long message.. I'm new and its my first post. :D

VVK

#312
Hello. It's nice to see someone continuing this thread, as it's always inspired me reading the ideas that people talk about here.  :)

I'm still pretty inexperienced with AGS specifically, so take all this with a grain of salt, and I don't know Persona, but I imagine all of that could be done, particularly as I've been planning how I'd do some things like that myself - especially adding a relationship aspect (not dating, but that shouldn't be a big difference) to a game that isn't all about it.

I can't give much coding advice, but as I see it, the basic idea of developing relationships with characters should be really simple at the core. As you interact with the characters, that interaction changes some variables (they probably need to be global) in the game - that gives you the "social link level" directly - and those variables change what interaction possibilities are available in the future. You'd check the variables in dialogues and scripts and have conditions for those to act accordingly.

Of course, this is basically the same advice I'd like to give to almost every query here about how to realise some general idea: there are some variables that determine the state of the game world, and you interact with the game by changing those variables within limits given by them, and then the game shows you a different state that you can interact with.

I also have an idea for how you might do the daily cycle thing: Make leaving some key rooms activate a script that offers you options based on what part of the day is going on. So, you might start in your own apartment in the morning. Then, when you leave it (walk to the edge of it, probably shown as a door), you're given a dialogue with options as to what to do next. You choose one thing and then go to a room or series of interconnected rooms. Then once you've been there long enough (determined by the game or your own choice) you can walk out of the front door or whatever and are given another dialogue giving you choices for what to do in the afternoon. I could see ways of making this differently and perhaps better, but this is one starting point.

Dates should be simple to keep track of using variables again.

That's where I'd start, the next step being figuring out how exactly to make AGS do it in detail. I'm sure the people who really know about this stuff can give better advice.

Anshinin

I'm wondering, since I'm following the basic BFAQ guide to making an RPG (obviously updating the script) but he never made it very clear how fights would work. I know this much

> Fights take place in separate rooms
> Enemies can be either characters themselves or hotspots
> Items in your inventory act as a way to attack
> Enemy health is set using SetGlobalInt

The basic jist of making this seems simple enough for me, but my question lies in the enemy health. I don't want all my enemies to default to one health code. So I'm assuming I'd have to make multiple GlobalInt for different health levels. Would there be some easier way to define this variable, or is a GlobalInt for each specific health level an enemy would be set at be the best option?

I am new to this, and I'm trying my best with it but if someone could give me an idea or lending hand in general in constructing the basics of a turn style battle system that'd be really appreciated (making the enemy have an AI and whatnot) The basics of making it happen I can do, but making it more fleshed out is where I am uncertain as to if I can accomplish without 10 miles of bugs.

phillipPbor

do you have a sample for making an RPG earthbound game?
I am new here..
need a musician composer though...

Khris

No. Creating an RPG with AGS is not recommended for beginners. Most tutorials are outdated, and you'll need a solid grasp of advanced scripting stuff.

bendugames16

Hi, glovemaniac here just letting you know I'm a beginner here and found some pretty decently executed ways to make some of the classic
game functions happen including   heart meters/ balls left, score and rpg functionality.

One method that worked well for me as a simple solution, without having to know more than simple loops, was to think of the objects
and characters as real objects on a table or floor or area.   even like a small machine made of small moving parts.  its a cheat and
probably not very condoned in the field :) but it gets the job done to get the ball rolling in your game to some degree. and its fast.

Ex:  Hearts are an image or meter image [[[[[[]]]]]]       you can move it and have it collide with an invisible character to  mimic
health dropping and once the collision occurs..    game over... or whatever have you.     (Think like a caveman)

bendugames16

Gloveman (it is actually, the Bendu guy) here....       Or another example for creating battles,

after months of beating my head against script, I found this:    you can use dialogs, but its a bit hairy,  to set a couple timers back and forth
if characters are in the specific battle rooms, the timers will activate one another's dialogs, and your dialog starts the other after the
selection has been done.. or what have you.  the dialogs even let you trail an automation of actions every time the dialog is triggered,
it can be counted, giving you the ability to set how many times a player or monster can be hit before it plays your destruction animation.;)

it works, trust me.  AGs is the 'cool beans'

Egmundo Huevoz

Quote from: Radiant on Thu 26/12/2013 01:08:49
Well, fellow adventure gamers, let me tell you a little story. Years ago, when I was new to AGS and all I had written so far were some action/puzzle games, I first came across this site and thought it was awesome (and by the way, I still think it is awesome, and more so every year). That's basically because I grew up with adventure games, and I learned English by playing King's Quest and Space Quest and figuring out what commands to type. So obviously I made plans to write a game in AGS, but since I was doing puzzle games I was also looking into other genres than just adventures. And then I noticed this thread or its predecessor: is it possible to design an RPG in AGS? I thought about it for a while and concluded yeah, sure. As far as I know, back then nobody had actually done any RPGs yet, so I decided I would go and write an RPG, and then make a post in this thread here containing just the word "yes" and a link to my game. Well, it took awhile; game design takes up quite a bit of time and real life has a tendency to interject itself every now and then, so it's now almost ten years after I first registered for bigbluecup. That means that there have been several RPGs made before, and nobody has to prove any more that something is possible in AGS because we've all seen how versatile the engine actually is. That said, RPGs are still great and so are AGS games, so there's always room for another AGSRPG; it was fun to write one and I hope other people remain inspired to write more. So without further ado,

YES!
Why don't you write a tutorial instead? At least the basics of how to make one...

TimeTravellerR

I made a couple of different RPGs with AGS, years ago using the earlier version.

The first one was a classical adaptation of the Marvel Superheroes rules, and used global variables. What messed it up for me and made me abandon it was the GUIs, which didn't work elegantly. Knowing now what I do, and with the newer version of AGS I am very confident this could be done. The character sheet could be handled two ways, in terms of display. The first would be paper doll style, with a variety of object positioned correctly over the basic "nude" or "blank" character, chosen from a variety at character creation. This character sheet would be a separate "room", one of the 300 that can store values. Global variables would determine what "page" of the room is displayed with objects turned on and off and "dialogues" used as the character sheet entries.

The other way would be to internalise away from the player most of the data about their character, and have a status bar at the bottom of the screen, a GUI that showed a health bar, XP bar, magic power bar, potion, weapon in use and so on. This works quite well whether you're using first person or just having a character move around the screen.

What I found frustrating to script was battles. Still now with what I am currently doing AGS is very clunky, and has some weird quirks in terms of detecting edges and collisions which in turn make things as simple as firing arrows in fast paced way quite difficult, likewise changing views and loops when characters approach each other or violently interact - for example swapping loops using .Animate during battles.

Other than that, it's a question of scale. Does your RPG generate a general and "endless" replayable world with locations or is it smaller scale, a detailed specific adventure where characters can buy potions, steeds, weapons and armour etc. ?

SMF spam blocked by CleanTalk