Multiplayer AGS game with continual new content

Started by KingMick, Sun 26/03/2006 08:33:41

Previous topic - Next topic

KingMick

I've been wanting to do something like this for a long time, and I'm wondering how it might be possible with AGS.

There was a great multiplayer adventure game called Uru Live that was based on the Myst storyline.  Every couple months, new content was added.  To me that's a fantastic idea.  (The original game has been shut down but there is a somewhat limited free version now called Until Uru: plasma.cyanworlds.com has more information).

Now I am wondering about the possibility of making something similar.  I think it would be really cool to create a free exploration-themed adventure game with AGS that could be downloaded by a lot of people.  But the best part is: Every now and then, new content (in the form of new areas to explore and solve puzzles in) would become available.  You could download the new content off of the website, install it to your previously installed game, and visit the new areas.  A great online community could be formed around this concept, too.

What I am wondering is how this could be done with AGS.  I've heard that there are patch-installation type programs out there, but as far as I know these are geared towards making version updates and one-time expansions possible.  What I want to do is something like this:

Bob downloads "KingMick World" (it would definitely have a better name, of course), plays and finishes the core game.  Then he goes to the website and sees that two new areas are available for download: Dungeon Land and Space Station Land.  Bob is more of a fantast person than a sci-fi person, so he decides to download Dungeon Land but not Space Station Land.  He downloads the Dungeon Land patch, which adds new rooms, characters, dialogs etc. to his copy of KingMick World, without adding any of Space Station Land.  A month later he comes back and sees that Mushroom Land is now available, so he downloads that, too.  The patch installs Mushroom Land and nothing else (it was created after both Dungeon Land and Space Station Land, but it does not add either one.).  He can still visit the areas in the core game, as well as the ones in his previously downloaded Dungeon Land.  The Mushroom Land patch does not change this, it only adds the new areas.

Is there a way to do this?  I can see a really great project if I can just figure out how to do this.  Anybody have any ideas?

RickJ

Take a look at the RunAGSGame() function in the manual.  YOu could do just as you describe with this.  The first game you would distribute the exe file.  Subsequent installements could be distributions of .ags files.   

KingMick

Thanks for the tip, I've read up on it in the help file now.  Excellent feature! I didn't know we could do that. That solves all of my problems, though I do have a couple of questions/concerns.

I don't want to use an exe file for the expansion areas, for the simple reason that they should only be accessible from the main game. I've never used the .ags format for anything and I am wondering--if I use the .ags format, does that mean that players would be able to edit the expansions assuming they had AGS?  Because I'd rather they not be able to do that. In my opinion, one of the strengths of AGS is that you can produce a game that cannot be readily edited by others, since everything is nicely compiled into one or a few files. This is an advantage over, for example, the RPG Maker series, where all you have to do is copy the game files into your RPG Maker directory and you can edit to your heart's content.

Will it only accept these two formats or is there a way to utilize a different format? Or, would it be possible to just change the extension of a .exe or .ags filename and still have the game recognise it?

I will of course experiment myself but I figured if someone might already knowsthe answer to these questions I might as well post them here.

monkey0506

AFAIK AGS files aren't editable by AGS, and actually contain all the compiled game data, just not in a format in which the OS can execute it (but AGS can, such as with RunAGSGame).  Of course I could be way off, I've never actually used the RunAGSGame function.

KingMick

Excellent.  Thanks for the input guys, I'll get to work on that right away...if I ever finish this thing (the first download, anyway) I'll make it available here.

A�rendyll (formerly Yurina)

This is a very good idea! ^.^ I'd really love to play a game made this way at least once.

Does anyone mind if I use that in one of my own games? (I'm planning an RPG game in which you can travel between worlds.)

Some questions (answers per situation please):

Question 1: How do you do quests if you want one world (let's say it's called Gnome Land) to have a quest in which you need to go to another world (Candy Yard Land)?
Situation 1: You have downloaded both worlds, which means you can play both.
Situation 2: You have downloaded one world (Gnome Land), but not the other. You want a message to pop-up the required gameworld isn't available to do the quest (required gamefile(s)).
How do I do this?

Question 2: If my game is an RPG, how do I keep the stats of the characters I've build up?

Thanks in advance,

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

I've been

SilverWizard_OTF

Well, i have a simple idea.
Situation1: You quest to the first world maybe has to do with a puzzle to complete, or a riddle that requires a certain word to be activated. Well, maybe some hints to solve the puzzle or to find the specific word, might exist to the other world.
Situation2: Maybe you should have a variable called world set to 1. If you do some things, then you turn this variable to 2. To the area in which you can access to the other world you should have something like "if world==1 then.... or else....".

Question 2 answer: Well, with variables and GUIS. You can have a gui "Stats" and health variable equal to 50. When e.g. you are injured 20 points then you just set variable health to 30. And you can have sopmething like "if health<=0 then..."

I hope i helped. I will search it more, then i will give you more information.
"All we have to decide is what to do, with the time that is given to us"

Ashen

#7
Yurina:
1a) Not sure what the question is here. Just use the RunAGSGame() command when you want to change between 'worlds' (E.g. 'Candy Yard Land' has appeared on your map screen. Clicking it calls RunAGSGame("Candy.exe", 1, 0);)

1b) You could use the File commands to check if the file (e.g. Candy.exe) exists before opening it:
Code: ags

File *test = File.Open("Candy.exe",eFileRead);
if (test == null) Display("To visit Candy Yard Land, you need to download the expansion pack. See README for details.");
else {
  test.Close();
  RunAGSGame("Candy.exe", 1, 0);
}


2) You mean keep them between two different games?
Passing the second parameter of RunAGSGame() as 1 allows you to keep GlobalInt values stored between the games, so if you use GIs to store your stats it's no problem, it can all be done automatically. (Just be sure to use the same GlobalInt for each stat in both games.)
Alternatively, you could use the File functions again, to export that stats to a file in the first game, then read them back into the second game. Off hand I'm not sure how exactly this'd work - but I know it's been asked before so you should be able to search for it (might even be in the 'Can  I make an RPG in AGS' thread). There's a few modules in the Tech Archive that would probably help with this (IniFile and EncryptedFile, I think).

KingMick:
Quote
I don't want to use an exe file for the expansion areas, for the simple reason that they should only be accessible from the main game.
Don't know if you've figured this one out for yourself,   but since I was posting anyway:
The third parameter of RunAGSGame() allows you to pass a variable into the new game, checkable as game.previous_game_data. In game_start for all your expansion exe's, you could require this to be some non-zero value or the game won't run - meaning they can only be accessed via a RunAGSGame() command, e.g.:
Code: ags

function game_start() {
  // called when the game starts, before the first room is loaded
  if (game.previous_game_data == 0) {
    // You might want to display a "Please run the launcher game" type message here
    QuitGame(0);
  }
}
I know what you're thinking ... Don't think that.

A�rendyll (formerly Yurina)

That's exactly what I meant, Ashen.

I also want to do the same as KingMick and use different .ags files as expansions.

The problem with the "Can I make an RPG"-thread is that it takes quite a while to find what you look for. That's why I always try to make different threads for stuff which can be used for Adventure games also. (That's no problem, right...? 8) RIGHT? :'()

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

I've been

SMF spam blocked by CleanTalk