Files
QtGameMaker/help/files/216_00_import.html
T

153 lines
8.1 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Exporting and importing resources</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body background="images/back.gif">
<!--START-->
<h1>Exporting and importing resources</h1>
<b><i>This functionality is only available in the Pro Edition of Game Maker.</i></b>
<p>
<b>Note:</b> Import and export of resources is only for experienced users. Carefully read
this section before using these features. Also, always make a back-up copy of your game
before importing resources.
<p>
Sometimes you want to copy certain resources (sprites, sounds, rooms, etc.) from one game
to another game. For example when you want to create a new game using the same sprites and
sounds as another game. Or when you are working together on a game. One of you might have
created some additional rooms that you then want to import in the other game.
To this end <i>Game Maker</i> has commands to import and export resources.
</p>
<h3>Exporting resources</h3>
<p>
To export resources, choose <b>Export Resources</b> from the <b>File</b> menu. First of all
it is checked whether all resources have different names. Because resources in one game are
linked to the ones in the other game by name, it is essential that all resources have different
names. If not, you get an error message and no resources can be exported. Otherwise, a file selector
is shown in which you can indicate the name of the file in which you want to export the resources.
These files must end with the extension <tt>.gmres</tt>. Next the following form is shown:
</p>
<p>
<img src="images/form_export.jpg">
<p>
In this form you can indicate which resources must be exported. Default all are exported but you can
select the particular types of resources you want to export.
Care must be taken when exporting objects, timelines, or rooms.
These will refer to sprites, sounds, triggers, etc. So if you do not export these other resources as well
you must be certain that these other resources already exist in the game in which you are going to
import the resources (under the same names). If you are uncertain, better export everything.
<h3>Importing resources</h3>
<p>
Once you have a file containing resources you can import them in a different game by
choosing <b>Import Resources</b> from the <b>File</b> menu. First of all
it is checked whether all resources have different names. Again, because resources in one game are
linked to the ones in the other game by name, it is essential that all resources have different
names. If not, you get an error message and no resources can be imported. Otherwise, a file selector
is shown in which you can indicate the name of the file from which you want to import the resources.
These files will end with the extension <tt>.gmres</tt>. Next all open property forms are closed.
This is necessary because imported resources might replace
existing ones. Next the following form is shown:
</p>
<p>
<img src="images/form_import.jpg">
<p>
All types of resources in the file are shown. (The ones that were not exported and grayed out.)
You can select which of these resources you want to import. Most of the time you want to import all
but sometimes you want to make a selection. Be careful when importing objects, rooms, or timelines
while not importing other resources. As indicated above this can lead to problems if the resources they
refer to do not exist in your game under the same name. In such a case they will be replaced by non-existing
resources. (For example, in the rooms it means the corresponding instances will be removed.)
</p>
<p>
When resources in the file have the same name as resources in the game a naming conflict appears. You can
indicate how that should be resolved. The default is that you keep the resource that was changed last.
You can however also choose to always keep the original in the game or always replace it with the
resource in the file. A fourth option is to keep both. Only use this when it is absolutely necessary,
because you will now end up with multiple resources with the same name which can lead to conflicts
when referring to them. When you import resources into an empty game, better choose to always replace them.
(This may sound strange but for example otherwise the global game settings will not be replaced as the new
empty game is of a more recent date!)
</p>
<p>
Finally you can indicate whether to place the new resources (that is, the ones that do not already occur) in
a new group. This might be useful to distinguish (visually) the imported resources from the existing ones. If
you check this box the new resources will be place in a group. The name of this group is the name of the
import file.
</p>
<p>
Once you press <b>OK</b> the resources are added to the game, replacing existing resources with
the same name when required. You will see them appear in the resource selector at the left.
</p>
<h3>Warnings and Remarks</h3>
<p>
Importing and exporting resources is a powerful mechanism, in particular when you are working
on a game with multiple people. However, if you do not understand what you are doing it might
lead to errors and frustration. Here are some important warnings that you should read and
understand.
</p>
<ul>
<li>Always make a backup copy of your game before importing resources. Otherwise your hard
work might be lost. You cannot undo the import of resources.</li>
<li>Always check after an import whether everything was imported correctly. Also immediately
run the game to see if it all works. Otherwise return to your backup copy.</li>
<li>Note that the indices of resources, instances, and tiles, most likely change in the process to
guarantee that they remain unique. This will cause problems
when you refer to resources (or instances) by number. Also it will cause problems if you assume
anything about the order in which instances are created.</li>
<li>Note that the resources will be added in the order in which they are given in the resource list/tree.
New resources will be added at the end. However, the group structure is maintained.
This is normally what you expect but in some rare cases
you might have to move resources to a different location. For example, when you have a start room,
an end room and some rooms in between, when somebody adds some rooms (in between) and you then export
these and import them in the original game, they will appear at the end (because they are new). You then
must move the end room to the appropriate location again.!</li>
<li>Note that constants and triggers only globally store information about when they were last changed.
So when you change one constant or one trigger, all will be replaced when choosing
<b>Keep Last Changed</b>.</li>
<li>For the global game settings the same holds. They are either all, or not at all replaced.</li>
<li>Note that an empty game will have a new date at which it was last changed. This means that if
you import resources in a new empty game, the constants, triggers, and global game settings will
<b>not</b> be imported, unless you set the name conflict handling to always replace.</li>
<li>Don't remove resources from a game before importing the same resources again! This might
sound a logical thing to do but it will not work. Once you remove a resource from a game
it no longer exists. Hence all references to it will become undefined. Importing the
same resource later will not restore those references because the program cannot know
it is the same resource. Instead let the import feature replace the resources.</li>
<li>If you have worked on a game for a long time adding and deleting many resources, it is useful
to completely export it and then import it into an empty game (with the option to always replace).
The game will work as before but will be stripped of lots of unused data.</li>
</ul>
<!--END-->
</body>
</html>
<!-- KEYWORDS
importing resources
exporting resources
merging games
working together
collaborating
-->