Game && Script Patching

??????

Diabolical Codemaster
Veteran
Joined
May 11, 2012
Messages
6,513
Reaction score
3,204
First Language
Binary
Primarily Uses
RMMZ
Game && Script Patching
Dekita
 ​
Features:

- Develop game 'Patch' files after encrypted distribution

- Create Patch files for the following;

Actors, Classes, Skills, Items, Weapons, Armors, Enemies, Troops, States, Animations, Tilesets, Common Events, Maps && your games SCRIPT Editor!!

- various methods used to determine fake patch files and (try to) ensure patch file data is not easily read by 'hackers'

Screenshots:

Uhh... Why not...



How To Use:

1- Put in your game prior to distribution.

2- Create patch files and distribute those.

3- People place patch files in patches folder and voila - game is patched (patches must be inserted when the game is not running or they will not register until game restart).

Demo:

Can be found HERE.

Script:

Can only be found from demo link above.

FAQ:

None Yet.

Credit:

Dekita / DekitaRPG

Notes:

I have not thoroughly tested patching beyond script patching. In theory it should all work but with regards to regular game objects I only fully tested actors. - Should you find any issues please let me know a.s.a.p and I will have the issues rectified. :)
 

Kuro Neko

Veteran
Veteran
Joined
Sep 26, 2013
Messages
173
Reaction score
15
First Language
English
Primarily Uses
Erm... Pardon me, but how it work, again? As far as i try, i still can open it with RMVXACE.
 

??????

Diabolical Codemaster
Veteran
Joined
May 11, 2012
Messages
6,513
Reaction score
3,204
First Language
Binary
Primarily Uses
RMMZ
Sorry but that statement made no sense to me. :/

What are you trying to open exactly?
 

Kuro Neko

Veteran
Veteran
Joined
Sep 26, 2013
Messages
173
Reaction score
15
First Language
English
Primarily Uses
Sorry but that statement made no sense to me. :/

What are you trying to open exactly?
Use RMVXACE, and open your game with that game.rvproj2?
 

??????

Diabolical Codemaster
Veteran
Joined
May 11, 2012
Messages
6,513
Reaction score
3,204
First Language
Binary
Primarily Uses
RMMZ
Yes... Then you get the see the scripts I have written.. Is that not the point of releasing a demo containing scripts for folk to use ? :p
 

Kuro Neko

Veteran
Veteran
Joined
Sep 26, 2013
Messages
173
Reaction score
15
First Language
English
Primarily Uses
Yes... Then you get the see the scripts I have written.. Is that not the point of releasing a demo containing scripts for folk to use ? :p
Oops. my bad. I thought that demo was also patched, and the demo means we can see by our own eyes that we can't decrypt it.

Ok, i've take a look at the scripts. Only the scripts under "patching" are the scripts we need, right?
 

??????

Diabolical Codemaster
Veteran
Joined
May 11, 2012
Messages
6,513
Reaction score
3,204
First Language
Binary
Primarily Uses
RMMZ
Ahhh, ok I get the confusion now :)

I was thinking of hiding all the script fies etc within patches, but then how would you get the scripts? :p

The patching system doesnt encrypt anything either - well, it kinda encodes the patches to a degree, but it doesn't provide any real protection against people breaking into your games. It just allows for you - the dev - to release patch files for your games to fix bugs and provide updates. :D

Yes, to patch your games the only scripts you need is the DEK::Kore script and the scripts under the Patching header. :)

Edit:

the only real methods i have of providing real protection to the game are apparently a EULA breach, so I am now looking into alternative methods which has set me back a little :p
 
Last edited by a moderator:

Kuro Neko

Veteran
Veteran
Joined
Sep 26, 2013
Messages
173
Reaction score
15
First Language
English
Primarily Uses
Ahhh, ok I get the confusion now :)

I was thinking of hiding all the script fies etc within patches, but then how would you get the scripts? :p

The patching system doesnt encrypt anything either - well, it kinda encodes the patches to a degree, but it doesn't provide any real protection against people breaking into your games. It just allows for you - the dev - to release patch files for your games to fix bugs and provide updates. :D

Yes, to patch your games the only scripts you need is the DEK::Kore script and the scripts under the Patching header. :)

Edit:

the only real methods i have of providing real protection to the game are apparently a EULA breach, so I am now looking into alternative methods which has set me back a little :p
So... i got it all wrong about the use of this script...? How fool of me @@

About the patch, isn't the easiest way to patch a game is, encrypt the newer version, then let the player replace the old one with the new? What's the more convenient about this script?
 

Engr. Adiktuzmiko

Chemical Engineer, Game Developer, Using BlinkBoy'
Veteran
Joined
May 15, 2012
Messages
14,682
Reaction score
3,003
First Language
Tagalog
Primarily Uses
RMVXA
I'm guessing with this, you only need to supply the actual files that changed for those who already have your game before... If you redistribute a new ecnrypted archive, that means it also has all the other files that doesn't need patching plus the graphic files so it will have a huge file size that is not really needed. Using the patch, they will only need to download the updates instead of redownloading everything.
 
Last edited by a moderator:

??????

Diabolical Codemaster
Veteran
Joined
May 11, 2012
Messages
6,513
Reaction score
3,204
First Language
Binary
Primarily Uses
RMMZ
Yea, as Adiktuz mentioned the main purpose of this is to allow you to quickly create small patch files (mine are usually around 1KB in size)  :)

There is also the benefit of being able to add various code into the engine that is not included within the script editor. :p
 

Kuro Neko

Veteran
Veteran
Joined
Sep 26, 2013
Messages
173
Reaction score
15
First Language
English
Primarily Uses
Yea, as Adiktuz mentioned the main purpose of this is to allow you to quickly create small patch files (mine are usually around 1KB in size)  :)

There is also the benefit of being able to add various code into the engine that is not included within the script editor. :p
Huhm... it's a good use after all. But, isn't player will wonder what that black window "Dekyde's RGSS console" is?
 

Shaz

Veteran
Veteran
Joined
Mar 2, 2012
Messages
40,098
Reaction score
13,704
First Language
English
Primarily Uses
RMMV
Step 2 - Create a patch file.


How do you do that exactly?


oh - no commercial use :( Too bad.
 

Engr. Adiktuzmiko

Chemical Engineer, Game Developer, Using BlinkBoy'
Veteran
Joined
May 15, 2012
Messages
14,682
Reaction score
3,003
First Language
Tagalog
Primarily Uses
RMVXA
@Kuro Neko - AFAIK, that console is part of the whole Dekyde Engine script package (because Dekita doesn't want to upload each script one by one), you can remove it if you don't need it

I personally do use a console on my games though, I like using it to show some information coz it's easier to print in the console than create a whole new window or scene for some extra information.
 
Last edited by a moderator:

DarthVollis

Moogle Master
Veteran
Joined
May 5, 2012
Messages
409
Reaction score
85
First Language
English
Primarily Uses
I have to ask the question of questions. Can this be used to make DLC's? If so, yes! If no, what I am missing about this? Aren't there some scripts out there that require the user to start a new game. With that knowledge would that be a problem with this because say I wanted to add something and once patched would that cause the player to have to start the game all over again?
 

??????

Diabolical Codemaster
Veteran
Joined
May 11, 2012
Messages
6,513
Reaction score
3,204
First Language
Binary
Primarily Uses
RMMZ
@Kuro Neko :

As Mentioned, the console can be disabled via the script that is controlling it.

The only scripts you should need to patch games are:

DEK

DEK::patch

DEK::patch::Do

DEK::patch::MK

DEK::patch::LD

DEK::patch::Run

In that order. :)

@Shaz:

To create a patch file simply 'clone' the patch data hash, like so...

  Patches[:patchNameOrAnIntegerValue] = {    :actors  => [1,2,3,4],    :classes => [3,4,5],    :skills  => [45,46,47,48,49],    :items   => [],    :weapons => [],    :armors  => [],    :enemies => [],    :troops  => [],    :states  => [],    :animats => [],    :tileset => [],    :c_event => [],    :newmaps => [],    :script  => %Q[                   module SomeModule                     def self.somemethod ; return true ; end                   end                  ],# << Ends :script  } # << Ends Patch[id]When the patch module setting 'MAKE' is true, the patch will be generated automatically at runtime.

The above patch would add actors 1,2,3,4 - classes 3,4,5 skills 45, 46, 47, 48, 49 into a patch file along with the script code.

Newer patches will always overwrite older patches - if they have the same contents - which is not required.

@Engr:

Yea, the console is a very useful tool, and many scripters use it to show information during test mode. I would always recommend to use console and disable it prior to game release. :)

@Darth vollis:

I want to ensure my answer is very clear about this.

... Can this be used to make DLC's?...
Yes.

You would simply create a new patch file with some unique identifier as the patch id. lets say its called :DLC1 for talking sake.

When your game starts all patch files are loaded, if :DLC1 is there, it will be loaded, if not, nothing will change at all.

Aren't there some scripts out there that require the user to start a new game. With that knowledge would that be a problem with this because say I wanted to add something and once patched would that cause the player to have to start the game all over again?
Yes, this is an issue, but im afraid its not my concern.

The reason for this is simple: If you make a huge change to the engine, that requires a newgame to be launched - you have inserted a script / code that does not have something in place for when the contents dont already exist.

Lets say for example, you have some $game_party.variable. If you use this variable when it hasn't been created, error. if you check to see if it exists and create it (if required) before you try to use said variable. There will be no issues.

To keep it simple: as long as you are changing features that already exist there should be no major issues.

If you are trying to add new features, make sure you implement a check of some kind to create contents if people try to load a game that doesnt have them. - its really not hard :)

I think that covered everything... :D
 

nio kasgami

VampCat
Veteran
Joined
May 21, 2013
Messages
8,949
Reaction score
3,042
First Language
French
Primarily Uses
RMMV
Bleh a interesting system but how I see this system is more for cover bug fix without provoking load crash rm encounter a lot of time : 3! 

well this how I see the system!
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

People3_5 and People3_8 added!

so hopefully tomorrow i get to go home from the hospital i've been here for 5 days already and it's driving me mad. I miss my family like crazy but at least I get to use my own toiletries and my own clothes. My mom is coming to visit soon i can't wait to see her cause i miss her the most. :kaojoy:
Couple hours of work. Might use in my game as a secret find or something. Not sure. Fancy though no? :D
Holy stink, where have I been? Well, I started my temporary job this week. So less time to spend on game design... :(
Cartoonier cloud cover that better fits the art style, as well as (slightly) improved blending/fading... fading clouds when there are larger patterns is still somewhat abrupt for some reason.

Forum statistics

Threads
105,868
Messages
1,017,085
Members
137,583
Latest member
write2dgray
Top