Game Maker Community YoYo Games

Welcome Guest ( Log In | Register )

> 

This forum is meant for discussion about creating DLLs and scripts and action libraries to extend the possibilities of Game Maker. Make sure that you READ these rules prior to posting. Also, the General GMC Rules apply here too.

5 Pages V   1 2 3 > »   
Reply to this topicStart new topic
Tarc External Resource Archive System, v3.0 updated: 9 Jan 2008
Sinaz
post Mar 4 2007, 08:44 AM
Post #1


MCP Killer
Group Icon

Group: Local Moderators
Posts: 2584
Joined: 22-September 05
Member No.: 35587



QUOTE (Sinaz)
Been trying to post between forum outages that there is indeed a bug with the "envelope file" functionality.  I can't seem to track it down, but I am looking into it.

In the meantime, there is a workaround:

Individual files can be archived by placing them in a directory and packing that directory.

Sorry for the inconvenience, I'm working to solve it!


This is an external resource archive management system written by me with DLL coding by Taleria.


NOTE!Version 3.0 no longer uses the two different editions (dev and release). Instead, there is now just one version, and the packing utility has been made into a stand alone application.

*UPDATED to EULA*
Archives used in games must use the .taf extension unless otherwise authorized by the authors of this extension. The TARC archive system was designed by GMC user Sinaz, converted to dll by Taleria, and converted into this extension by Sinaz.


DOWNLOAD
TARC External Resource Archive System v3.0
*update: New stand alone packing utility included.
*update: Fixed tarc_background_replace()
*update: Revised documentation

old downloads

TARC External Resource Archive System v2.0
*update: Revision 2 of v2.0 is up with a correction in the help files... no other changes
----
*update: Fixed any functions failing to execute (do to a comment bug in the way the extension package reads GML scripts)
*update: Added "sound list" arrays and three functions to implement them to incorporate mixable instances of one sound file. (See documentation for this awesome feature). Special thanks to FredFredrickson for the suggestion.
*--> added tarc_sound_list_create()
*--> added tarc_sound_list_get()
*--> added tarc_sound_list_destroy()
*update: Clarified some more language and typos in the documentation
*update: There are now 2 versions of TARC (Developer and Release) see documentation for an explanation of the two and which to use.
TARC External Resource Archive System
*update: Added a line to the help file reminding users that the archiver does not include subdirectories when it packs files.
*update: Version 1.1 uploaded correcting the omission I accidentally made concerning the tarc_extract_from_archive() function. I also clarified some of the functionality in the help file concerning what needs to be included in the archive name arguments and where files go when extracted. And I removed all the extemporaneous files from the zip... making it smaller.


TARC uses uncompressed, encrypted archive files to store external resources. It includes a function that acts as a wizard for creating archives rapidly, as well as parallel functions to all of the relevant sprite, background, sound, and model add and replace functions.

Not only that, but by using the direct archiving and extracting functions, you can encrypt any kind of file, like settings, highscores, or whatever you need. The archive file adds a few Kb for a header and encryption, but is otherwise negligible. Extraction speed is fast enough for all applications.

I tested this thoroughly, but I may have missed something - please report any bugs here and I will immediately address them. Documentation is included and can be accessed via the Game Maker help menu.

Enjoy!

This post has been edited by Sinaz: Mar 14 2008, 09:13 PM
Go to the top of the page
 
+Quote Post
havoc
post Mar 4 2007, 03:33 PM
Post #2


GMC Member
Group Icon

Group: GMC Member
Posts: 143
Joined: 24-December 05
From: London, England
Member No.: 41469



Hey neat extension, but what exactally do you mean by encrypt. What do you hide ? Does this extension hide files so random people can't open my sprites and sounds ?

Man i never new extensions would save soo much time.

This post has been edited by havoc: Mar 4 2007, 03:34 PM
Go to the top of the page
 
+Quote Post
Sinaz
post Mar 4 2007, 05:49 PM
Post #3


MCP Killer
Group Icon

Group: Local Moderators
Posts: 2584
Joined: 22-September 05
Member No.: 35587



QUOTE (havoc @ Mar 4 2007, 07:33 AM)
Hey neat extension, but what exactally do you mean by encrypt. What do you hide ? Does this extension hide files so random people can't open my sprites and sounds ?

Man i never new extensions would save soo much time.
*

Well, without encryption, anyone could use a hex editor to read the file names in the archive index and then just unpack your archives with this extension.

By encrypting it, its impossible (to the casual user) to read the filenames coherently by looking at the data or even get the extractor to be able to unpack it without the appropriate key.

The idea behind this is exactly what you suggested. Instead of distributing your game with your external resources exposed, you can keep them in individual archive files... like Level_01_SoundFX.taf, Level_18_Backgrounds.taf, or simply pack individual files into an encrypted envelope... for instance, you could pack and encrypt save files or highscore tables to prevent [the casual user] from hacking them. Just remember that there is no compression, so every archive will be a slightly larger file size than the sum of its contents (due to the index, headers and encryption).

Of course, as with any encryption system, it is not fool proof. I did not write the encryption, but Taleria said it is designed to just hide the data from the casual user. Obviously someone could use this extension to brute force the cipher, and a hex editor to check for file contents. We spend more time on porting my functionality than on an uber-encryption since anyone with enough determination would probably crack it.

This post has been edited by Sinaz: Mar 4 2007, 05:51 PM
Go to the top of the page
 
+Quote Post
havoc
post Mar 5 2007, 10:41 AM
Post #4


GMC Member
Group Icon

Group: GMC Member
Posts: 143
Joined: 24-December 05
From: London, England
Member No.: 41469



Thanks. This is perfect. I just wanted something to keep the normal users out. The hackers can just read my encryption number from GM memory. Is it ok for a commercial game (Specialists)?

This post has been edited by havoc: Mar 5 2007, 10:41 AM
Go to the top of the page
 
+Quote Post
Sinaz
post Mar 5 2007, 06:19 PM
Post #5


MCP Killer
Group Icon

Group: Local Moderators
Posts: 2584
Joined: 22-September 05
Member No.: 35587



QUOTE (havoc @ Mar 5 2007, 02:41 AM)
Thanks. This is perfect. I just wanted something to keep the normal users out. The hackers can just read my encryption number from GM memory. Is it ok for a commercial game (Specialists)?
*


Its perfectly fine for a commercial game. There's just two things to consider:

1 - security. Although the files are encrypted, its not a very complicated encryption. You could take pains to obfuscate the key by doing something tricky like... I dunno... embedding the seed necessary to generate the key with the random number generator inside of an encrypted archive... but emphasis was not put on the encryption. We didn't want to waste a lot of effort and resources on a feature that could be broken with far less effort than it would be to create... like I said, its just a nicety to prevent casual users from ripping open your resources.

2 - just remember that if you use the etension commercially, you cannot alter the .taf filename extension without my permission. The program attempts to override any attempt on your part to override the filename extension. This is just a formality for credit's sake. If you need or want your archive extensions to be a different filename extension, you will have to contact me to have a special version of the extension made.

Thanks for your support!

This post has been edited by Sinaz: Mar 5 2007, 06:21 PM
Go to the top of the page
 
+Quote Post
Dany
post Mar 6 2007, 05:45 PM
Post #6


GMC Member
Group Icon

Group: GMC Member
Posts: 166
Joined: 11-August 06
Member No.: 56933



can you make an example? sad.gif
Go to the top of the page
 
+Quote Post
Sinaz
post Mar 6 2007, 05:48 PM
Post #7


MCP Killer
Group Icon

Group: Local Moderators
Posts: 2584
Joined: 22-September 05
Member No.: 35587



QUOTE (Dany @ Mar 6 2007, 09:45 AM)
can you make an example? sad.gif
*

I guess... but maybe you should tell me what you don't understand and I can clarify... what particular features do you want an example of?

Have you read the help file? The usage is pretty straight forward.
Go to the top of the page
 
+Quote Post
Sindarin
post Mar 6 2007, 11:41 PM
Post #8


Indie Game Developer
Group Icon

Group: GMC Member
Posts: 1628
Joined: 1-April 04
From: Athens, Greece
Member No.: 7742



Very nice, I have a question though. Does it need to extract the resources when you need to load them, to a temp location, or is it direct from the package?

This post has been edited by Sindarin: Mar 6 2007, 11:42 PM
Go to the top of the page
 
+Quote Post
Sinaz
post Mar 7 2007, 12:04 AM
Post #9


MCP Killer
Group Icon

Group: Local Moderators
Posts: 2584
Joined: 22-September 05
Member No.: 35587



QUOTE (Sindarin @ Mar 6 2007, 03:41 PM)
Very nice, I have a question though. Does it need to extract the resources when you need to load them, to a temp location, or is it direct from the package?
*


Since we don't have access to the method by which Game Maker puts files into memory at runtime... there is apparently no way to move it directly from the archive into memory.

As soon as Mark opens that up to us... I can investigate such changes.

So, yes... it needs to extract to the temp directory.
Go to the top of the page
 
+Quote Post
kickassgames
post Mar 7 2007, 05:46 AM
Post #10


GMC Member
Group Icon

Group: GMC Member
Posts: 254
Joined: 30-January 07
From: Australia, Melbourne
Member No.: 69509



that is a very kool extension and the encryption helps a lot (cept for hackers can get in) but hackers will hardly hack my game lol
Go to the top of the page
 
+Quote Post
arrowone
post Mar 7 2007, 06:00 AM
Post #11


GMC Member
Group Icon

Group: GMC Member
Posts: 242
Joined: 25-April 06
Member No.: 48907



Thanks so much for the tip Sinaz! I'll get this after class tommorrow!
Go to the top of the page
 
+Quote Post
Dany
post Mar 7 2007, 06:43 PM
Post #12


GMC Member
Group Icon

Group: GMC Member
Posts: 166
Joined: 11-August 06
Member No.: 56933



QUOTE (Sinaz @ Mar 6 2007, 07:48 PM)
QUOTE (Dany @ Mar 6 2007, 09:45 AM)
can you make an example? sad.gif
*

I guess... but maybe you should tell me what you don't understand and I can clarify... what particular features do you want an example of?

Have you read the help file? The usage is pretty straight forward.
*


I didnt understand help,got erros...
Go to the top of the page
 
+Quote Post
Sinaz
post Mar 8 2007, 01:39 AM
Post #13


MCP Killer
Group Icon

Group: Local Moderators
Posts: 2584
Joined: 22-September 05
Member No.: 35587



QUOTE (Dany @ Mar 7 2007, 10:43 AM)
QUOTE (Sinaz @ Mar 6 2007, 07:48 PM)
QUOTE (Dany @ Mar 6 2007, 09:45 AM)
can you make an example? sad.gif
*

I guess... but maybe you should tell me what you don't understand and I can clarify... what particular features do you want an example of?

Have you read the help file? The usage is pretty straight forward.
*


I didnt understand help,got erros...
*



Either PM me the specifics of the problem (what you did, and the specific error) or send me a message via one of the messengers listed in my profile.
Go to the top of the page
 
+Quote Post
Sinaz
post Apr 8 2007, 08:00 PM
Post #14


MCP Killer
Group Icon

Group: Local Moderators
Posts: 2584
Joined: 22-September 05
Member No.: 35587



Hello, everyone! I just made a major improvement, and I think a major fix to the TARC system.

First, I want to apologize to anyone who found that TARC failed to function as I described. I'm extremely embarrassed by the situation, but I failed to recognize that the extension maker currently has an issue reading comments in the beginning of scripts, and that it can cause most, if not all, of the script to be commented out. I also had tested my extension in a flawed testing environment that gave me misleading results.

This new version should work flawlessly.

One major change is the separation of the system into two versions: a Developer and a Release version.

The Developer version has the packing utility built in, and automatically includes the GM Windows Dialog extension to allow it to work.

The Release version excludes the packing utility function and excludes the windows dialog extension to help keep your release version small and streamlined.

See the documentation for more information concerning the two versions.

Also, thanks to the suggestions of FredFredrickson, I added new functionality for handling sound files.

To quote from the documentation:

QUOTE (TARC helpfile)
GM suffers from a slight limitation concerning sound files, in that it cannot mix a sound resource with itself. For example, if you wanted to have two cars in a game using the same engine sounds, you could play the one sound as needed, letting them overlap, but any panning or effects applied to the sound resource causes all playing instances of the sound to reflect these changes. Thus, you could not have two distinct instances of the same sound rendering separate audio effects. To counter this, you must have multiple instances of a sound for every layer of mixing that might occur... four cars on screen means you need four engine sounds.

The following three functions uses the TARC system to create a sound list containing instances of a particular sound file. You could think of this as taking one sound, and loading it into multiple channels. Whenever you create a sound list, the array of sound indexes and the instances of the sounds themselves will take up space in memory, therefore, you must include the destroy function when you are done using the sounds to free the memory.


These features are accessed with the following functions:

tarc_sound_list_create();
tarc_sound_list_get();
tarc_sound_list_destroy();

This post has been edited by Sinaz: Apr 8 2007, 08:05 PM
Go to the top of the page
 
+Quote Post
X-tra Fear
post Apr 8 2007, 08:10 PM
Post #15


Behemoth Creator
Group Icon

Group: GMC Member
Posts: 439
Joined: 11-October 06
From: Kingsport, Tennessee
Member No.: 61283



Nice dude, but i would like to somehow team with you. I would like you to contribute to Ultima 3D's external resource loading. Do you think it could deal with it? like load BMP textures in Ultima 3D with this? Still protecting your resources though? If it can i would give you credit for the TARC engine.

This post has been edited by X-tra Fear: Apr 8 2007, 08:12 PM
Go to the top of the page
 
+Quote Post
Sindarin
post Apr 9 2007, 02:54 PM
Post #16


Indie Game Developer
Group Icon

Group: GMC Member
Posts: 1628
Joined: 1-April 04
From: Athens, Greece
Member No.: 7742



QUOTE
First, I want to apologize to anyone who found that TARC failed to function as I described.


no hard feelings.
Go to the top of the page
 
+Quote Post
Harry OK
post Apr 9 2007, 03:01 PM
Post #17


GMC Member
Group Icon

Group: GMC Member
Posts: 59
Joined: 1-August 06
Member No.: 56105



Great tool! biggrin.gif Thanks! laugh.gif

This post has been edited by Harry OK: Apr 9 2007, 03:02 PM
Go to the top of the page
 
+Quote Post
SSNautilus
post Sep 14 2007, 03:28 PM
Post #18


S.S.Nautilus
Group Icon

Group: GMC Member
Posts: 137
Joined: 10-October 03
From: United Kingdom
Member No.: 240



Any usage restrictions? Free for commercial use? Credits?

Thanks.
Go to the top of the page
 
+Quote Post
Sinaz
post Sep 14 2007, 05:37 PM
Post #19


MCP Killer
Group Icon

Group: Local Moderators
Posts: 2584
Joined: 22-September 05
Member No.: 35587



QUOTE (SSNautilus @ Sep 14 2007, 07:28 AM)
Any usage restrictions? Free for commercial use? Credits?

Thanks.
*


Rights granted are explained at the end of the help file...

QUOTE
This extension is free to use, but may not be redistributed other than by directing a potential user to the forum thread concerning this extension, HERE.

Archives used in commercial games must use the .taf extension unless otherwise authorized by the authors of this extension. The TARC archive system was designed by GMC user Sinaz, converted to dll by Taleria, and converted into this extension by Sinaz.


^^The fact that TARC attempts to force the .taf extension is enough to indicate that TARC was used in the game. Please do not attempt to bypass that restriction. Consider that it frees you from directly mentioning it in the credits, but feel free to credit anyway smile.gif
Go to the top of the page
 
+Quote Post
I.Q. of Spam
post Oct 3 2007, 07:17 PM
Post #20


Jenius
Group Icon

Group: GMC Member
Posts: 413
Joined: 9-October 06
Member No.: 61174



The help file isn't in the *.zip... where do I get it?
Go to the top of the page
 
+Quote Post

5 Pages V   1 2 3 > » 
Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 9th February 2010 - 10:57 AM