Charas-Project

Game Creation => Requests => Tutorials => Topic started by: X_marks_the_ed on August 16, 2008, 08:03:20 PM

Title: Expansion Packs and Patches
Post by: X_marks_the_ed on August 16, 2008, 08:03:20 PM
Notice
The following method of creating expansion packs and/or patches for Rpg Maker games has been tested by myself and has been proven to work. However, to prevent the forces of fate, it is recommended that you keep regular backups of your game projects. I am not responsible if you mess up and it costs you your work. This method involves work with the files themselves, so it is highly suggested that you do keep backups.


1. Requirements

The process of expansion preparing can be very tedious, but very worthwhile. The fact that your game will be played long after it's release is reward enough. This method can also be used to easily patch glitches in your game without having to create an entirely new package. But there are a few things you must have before attempting this system.

-You must have patience. This method can be rewarding in the end, but you must be willing to keep up with the work.

-You need something to keep notes on your files and their identities.

-It is important that if you want to add expansions to your game that you disallow saving on any map that may link to an expansion. If the player saves on a map that will change with the expansion they will either experience an unchanged map (meaning no actual method of reaching the expansion content), or the game crashing when they try to load the file.

-You will need some method of packaging the expansion. I prefer WinRAR.

I have been asked why this system should be used when a new package could be released. Indeed, you could do that. But that would be very unfair to the player as they will 1) lose their current progress, 2) have to delete the old game and re-open the new game, and 3) have to download a large file just to have to go through 1 and 2.


2. Preparations

Yes, along the way, you must make sure you can use this system. As you design your game, design your expansions. Not really, of course, but keep in mind where the expansion will meet the original game. What areas will link, maps that will change, etc. It is important you keep track (as in actual listing!) of....

-Maps that will change. No matter how small the change will be. It doesn't matter what the change is. It could be adding a single NPC, changing the enemies that appear, changing a single tile. If any change will be made, list it!

-Maps that will be created with the expansion.  This is where I'm sure someone will mess up. Someone will complete their game, take note of the MapID of the last map they made and assume that all maps they create from then on will have a larger MapID than that last map. This is not true. When you create a map, RPG maker scans the MapIDs of all current maps and gives the map the lowest available ID it can find. This means if you create a map [Map A], create a few more maps [Map B, Map C, Map D], delete the first map [Map A], then decide to make another map, the map will become Map A, not Map E, because Map A's slot [MapID] is the lowest available slot. It is vital that you continue to either list new maps or keep them in a separate folder in your project.

-Resources that will be added with the expansions. Whether it be facesets, titles, sounds, or BGM. All must be accounted for.

2 - I. MapIDs

MapIDs are essential in this process, as they will most likely be the files to be transferred. But what makes it difficult is that they are numbers and not the actual map name. They appear on map files as 'MapXXXX.lmu'. They can also be seen when you first create a map, when they are named 'MapXXXX.' You must make sure you keep track (list) of what maps have what IDs, so when you go to package the files, you don't grab a map that doesn't need to be updated.

2 - II. How to check MapIDs

Oh shoot! You forgot to write down that map's ID! Oh well, there is an easy way to find it out! In the common events window of your RPG Maker, create a new common event and name it whatever you want, I'll refer to that event as IDCheck. Make it a parallel process. Add 'Key input process' and deselect all of the keys listed except for the one you want to use to check the map's ID. We'll use the shift key in this tutorial. Make sure that 'Wait until key is pressed' is checked. Then select a variable you are not using and name it anything. We'll use '0001:ActivateIDCheck'. Then hit Ok. Then Add 'Conditional Branch'. Select 'Variable', and the variable you are using [0001:ActivateIDCheck]. Make sure the drop-down is set to equal and enter the value of the key you chose [7 for shift] under the option 'number.' Uncheck 'Execute custom handler if condition not met' and hit OK. Add 'Memorize Position' under 'Branch if var.....'. Choose three variables you aren't using for the options, but it's only the first one we're interested in, which we'll use '0002:MapID' for. Then add 'Message.' In the message box, type "The ID of this map is: \v[1]." But replace '1' with the number of the variable you used to store the MapID [2].Then hit OK.Now when you go to test, hit the key you chose [shift] to see the MapID of the map you are currently on.



3. The Actual How-To

After you've finished your game and it is out for all to see, it's time to make sure it can be enjoyed as long as possible. Begin designing the expansion to your liking (continuing from the original project, of course), keeping track of the files that are changed/added as I have bluntly stated so many times before. Feel free to do whatever you want with it, make it fun! Just don't forget to have the old stuff link to the new stuff! Eventually, you will finish and will have to distribute it. That's when you create a gamedisk anywhere on your computer. Open the package/gamedisk you created with RPG Maker in its own folder. You should see the files in front of you in the same setup as that of your project before it was packaged, with Faceset, Title, etc folders. Delete everything in these folders that is not on your list, except for any maps that have been altered/added and all files with the name 'RPG_RT', these files are needed in the package. The list of maps you created is needed here! When everything that is not part of the expansion is gone, you should notice the folder is a lot smaller than it was before. Archive the folder with everything in it. Then distribute as needed.

3 - I. WinRAR

I highly recommend using WinRAR for expansions. The archives are easy to alter if you make a mistake and are much smaller than EXEs. You can find a copy of WinRAR at: http://www.download.com/WinRAR/3000-2250_4-10007677.html

3 - II. How WinRAR unpacks

Depending on whether or not the player uses 'Extract to...' or 'Extract here...' the installation of your expansion may or may not work. If the player uses extract to..., WinRAR tends to put the files in a seperate folder, meaning they will not actually work. Extract here only works if the archive is extracted in the game's root folder. As long as the player gets a 'replace file' dialog message (which they should hit Yes to All) upon extraction, the installation should work.

4. Example Packages

To demonstrate the expansion in action, I have constructed a quick five-minute game to show how the installation works. First install the game and play to see how it works originally. UnRAR the expansion to the root of the game (look for a 'replace file' dialog), and play to see how it's changed.

Game: http://www.megaupload.com/?d=I9AFKQH0
Expansion: http://www.megaupload.com/?d=QOO7QN8I

----------------------------------------------------------------------------------------------------------------

I decided to create this tutorial to describe a method I would've used for expansion packs of NFT (Iron Rage, Northern Snows, Gen Feud). I wouldn't let anyone know I knew of such a technique until NFT's release, but it seems I'll never actually finish it. I figured maybe someone could find this useful.

EDIT #1: Fixed some minor typos and grammical errors.
Title: Re: Expansion Packs and Patches
Post by: Dragonium on August 16, 2008, 08:13:32 PM
This is pretty ingenious. Ought to save some of the filesize and keep things nice and tidy. Good thinking.
Title: Re: Expansion Packs and Patches
Post by: Red Fox on August 16, 2008, 08:28:38 PM
Awesome. Good work.
Title: Re: Expansion Packs and Patches
Post by: Fisherson on August 17, 2008, 04:25:30 AM
Wow, I was actauly thinking of using a system like this myself. Thanks for the advice.
This will help Dark Quest alot!
Title: Re: Expansion Packs and Patches
Post by: HobomasterXXX on August 17, 2008, 04:26:56 AM
What is Dark Quest and also Dark Quest is a terrible name.
Title: Re: Expansion Packs and Patches
Post by: carrionmarksman on August 09, 2009, 12:31:17 AM
This is really cool Ed!
+25 Internets.
Title: Re: Expansion Packs and Patches
Post by: Legacy of Elecrusher on August 09, 2009, 12:55:48 AM
+25 1/2 Internets.