Help - Search - Members - Calendar
Full Version: Expansioning games
RPG RPG Revolution Forums > Game Engines > RPG Maker VX Discussion
yuzippy
OK, here is the deal folks.

If I have my game (S.A.G.A.) and I want to have an expansion, say S.A.G.A. Reign of Darkness, then could I make it so that only if you have downloaded S.A.G.A., will S.A.G.A. 2 work. And will I be able to update the features, say, add new classes and weapons, while keeping the old ones. And don't say no if you don't know, make sure you know for sure.

Thanks,

Yuzippy, director of S.A.G.A.
Eiyu
You could have the new one ask for a save file from the previous games. You'd have to go and retain most of the game data, especially item and actor databases in order to keep them compatible though.
yuzippy
Hm thanks,

so I would have all the same weapons and classes, all the same database (nothing that can't be done with copy and paste) but how do I ask for a previous save? I can easily retain database stuff...

THANKS A LOT!
Eiyu
I'm just working in theory for now. What you could do is for your second game, code New Game to function like a special Load Game screen that only loads certain bits of data. When you load normally, we have this:

CODE
    characters           = Marshal.load(file)
    Graphics.frame_count = Marshal.load(file)
    @last_bgm            = Marshal.load(file)
    @last_bgs            = Marshal.load(file)
    $game_system         = Marshal.load(file)
    $game_message        = Marshal.load(file)
    $game_switches       = Marshal.load(file) # this will keep your switches in tact, you may or may not want to do this.
    $game_variables      = Marshal.load(file) # same as switches
    $game_self_switches  = Marshal.load(file)
    $game_actors         = Marshal.load(file) # this will keep stats and levels in tact
    $game_party          = Marshal.load(file) # this will keep your inventory and gold, etc in tact
    $game_troop          = Marshal.load(file)
    $game_map            = Marshal.load(file)
    $game_player         = Marshal.load(file)


Again, I'm working on theory I haven't actually coded anything for you yet, I'm just getting the idea together. By keeping switches and variables in tact, you can have things from the first game affect the second one. You don't even have to use all the switches, it's possible to have the game check one or two switches (for example, a switch indicating whether or not you did an optional even in the last game) then use an event to switch every other switch off (there is also a function to reset all variables you don't want to keep).

Keeping your actors and inventory is probably most important, and be sure to keep the databases the same otherwise there will be issues. If you have less actors and items in the second game, you'll get errors because the game will be looking for something that no longer exists. If your characters or items are different in the second game, you could get weird effects like people holding the wrong items and stuff. However, adding new characters or items to the bottom of the database should be absolutely fine, and I presume this is the main alteration you'd want to make.

So just to be clear, if you did this, you'd want to definitely keep:
Actor, Classes, Skills, Items, Weapons and Armors.

Hope this is helping, we might be able to turn it into a script soon.
yuzippy
Good theory!

Well, thanks for offering a script, but don't spend all your time on it, I wouldn't want you to waste any timr! laugh.gif And, like I said before, keeping the database the same wouldn't be a problem, I can type quick and it will be easy!

Thanks a lot, and kudos to you,

Yuzippy, Director of S.A.G.A.
Eiyu
Oh, no typing quick! Right click and multi-copy please! Haha.

Now I think about it, you'll probably want to carry over switches to your second game. The second game can have different names for the switches, and you can event them to turn them all off right at the start, but you'll probably want at least one switch that identifies it as a save file from the first game and approves its transferral to the second.
yuzippy
Yah, copy and paste is my middle name (maybe its copynpasta but that is the same thing)

When you are sure, you will have to explain it all clearly. Just to recap, you have switches and database the same and at the beginning have all the switches go on and off, but what will make it read a saved game. Better yet, is it possible to have it check just if S.A.G.A. is installed? Then it would seem more professional.

You, revolutionary, are a genius!

Yuzippy, Director of S.A.G.A.
Eiyu
I don't really know how to check if the original is there, only how to make it continue. I guess if you reprogrammed how it accessed files, so then you could put multiple projects within the same folder, but then players would have to manually drag their expansion about and stuff. Hmm. Then again, with my method you'd have to drag the save file.

As for making it work, I'm simply planning on reprogramming the New Game option to be a picky load menu that loads some of the data (i.e. the stuff that carries over), and initialising the rest as if it were a new game (maps, etc).
Kain_Omen
There is a script for in-game patches for VX, I don't know how difficult it is to use. But, I'm pretty sure it's exactly what you are looking for. I'll edit this post when I find the script.

EDIT: I found it, here it is. Click Me!
yuzippy
Wow! But this is patching, how would another game be recognized. Like how would SAGA have to be their in order to install the expansion, or even just a save game. If this doesn't work, Eiyu seems to be working hard on something just for (lol) expansioning games.
Kain_Omen
I'm not really sure, as I'm not familiar with this script. But this is the closest thing I've come across pertaining to your request. I guess it all just depends on the script's capabilities.
yuzippy
It seems to me this is for patching games (like if you found a bug) and you needed to fix it and put it back online without compressing new data. I really can't see how this would work to expansion games, but my doctor did say I was half blind...
leongon
patching is what are you saking for.

Big patch = expansion
yuzippy
QUOTE (leongon @ Feb 3 2010, 03:18 PM) *
patching is what are you saking for.

Big patch = expansion



OK, cool. I guess I can understand that. But, if, you say, want to start a new game because of classes that are available in the expansion, can you start a new game, or do you always have to load an old game?
tfinck
Simply... create a new game? For instance, if I'm playing a game as a gunner, and you released an expansion that allowed me to be another class, no matter what the situation, I would still need to start a new game.
BasharTeg6
If all you want is to only allow access to the new game if they have the old one, why don't you just make a password using the input number event? At the end of the first game you can give them their password.

If you want to get a little more complex, you could generate the password using variables and, depending on what the password is, things in the new game will change to reflect that using conditional branches.

Just a thought.

-Bash
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2013 Invision Power Services, Inc.