RPG Scan Tool - Beta Testers

Started by ForeverZer0, August 18, 2012, 02:10:02 am

Previous topic - Next topic

ForeverZer0

I took a small break from ARC (was getting a bit burned out on it), and for the past few days have been making another RPG tool.  Its a "scanner" for RPG projects that performs in-depth analysis and error checking on a project. It is a complete with a host of tools to automate project optimization.

Here are some of its features (there are more, but here's the highlights)

  • Compatible with XP, VX, and VXA

  • In depth scan of every map, event, and event command. Checks every event command in the game to ensure specified graphics and audio exists, as well as make sure associated data is still valid. For example, it checks that all transfer events connect to existing maps, checks that "Change Weapon" actually points to an existing weapon, etc, ect. I spent a lot of time and was very thorough. Literally every type of event command in all three RPG versions that this can be done with are checked.

  • Automatically finds and can copy every used RTP resource to the project locally for distribution. This only works when the resources are used in the database, events, or event commands. You will still need to double-check custom scripts for any RTP resources they may use.

  • Option to search and find all unused local resources and delete them. The same script restriction applies.

  • Finds and deletes hidden thumbnail.db files (Windows XP only). These are hidden files used for the icon cache by windows to generate thumbnails faster in Explorer. They would normally get packaged with your game without you ever knowing it and add size to the file.

  • Automatic copying of appropriate RGSS###.dll to the local directory for distribution

  • Script compression by using a stringer Zlib compression, removing whitespace, and removing comments. This can cut the size down by close to half in some cases, but is really only appropriate for a game ready for distribution since the formatting gets hard to read.

  • Integrated tool to find and convert JPG and BMP files to PNG, which are optimal for RM

  • Integrated PNG compressor, which can compress the PNG IDAT stream much more, as well as strip useless data from the file, all without losing any quality whatsoever. I have seen this method shave off as mush as 90% from PNG file sizes, so its quite handy for quickly saving space.

  • integrated tool to convert WAV, WMA, and MP3 files to OGG, which is a nice, lightweight format good for RM. There are options for target sampling rate, bitrate, and number of channels you would like to output the file as.

  • A few other minor things such as compressing the Game.exe file to shave off 20 kb, etc, etc.



The point of this post is that I should finish it up in the next day or so, and I would appreciate some people who are willing to beta-test. There are a lot of events, and three engines that need tested to ensure it catches errors as its supposed to do, as well as performs copying of RTP resources without missing any, doesn't screw up scripts when it compresses them, and other stuff. You get the idea.

If you would like to participate, just make a reply stating you would like to, and I when its ready, I will upload a copy for you to download. I will be happy to add all beta-tester to the credits as well, so anyone who uses it will be able to see your contribution to it. I'm really only looking for 3-4 people, and its on a first-come, first-serve basis. If you have a project of pretty good size to test it on, that would be a plus, but I have no problem with, even encourage, to download and run on some projects that people have shared around the community. I will supply more information to beta-tester via PM on specific things to be on the lookout for, so it mainly just requires altering around some database and event stuff within a project, running the program, and seeing if it catches errors that have been created. Nothing really hard.
I am done scripting for RMXP. I will likely not offer support for even my own scripts anymore, but feel free to ask on the forum, there are plenty of other talented scripters that can help you.

Blizzard

August 18, 2012, 05:41:24 am #1 Last Edit: August 18, 2012, 05:45:33 am by Blizzard
1. The script stripping of white spaces, empty lines and comments is not really necessary. You may get a few dozens of kB extra space which is really not much.

2. I'm not sure how much sense it makes to convert JPG to PNG. In most cases this will result in a larger PNG. The only exceptions where PNGs might be smaller is if there are only few colors used and JPG would cause very visible artifacts because of that (e.g. a black image with a bit of white text should stay a PNG because of that). Converting such a PNG to JPG and back to PNG (or just any JPG to PNG for that matter) would cause its size to increase a lot.

3. Careful with the PNG compressor. If it just strips the unnecessary extra stuff, that's ok, but it shouldn't do stuff like converting a 24-bit PNG to a 8-bit PNG. Shrinking a PNG image by up to 90% just sounds unreal to me.

4. Keep in mind that compressed data also takes longer to read.

5. Did my Resource Tester inspire you to do this? xD If not, I may have some additional resource checking features that you don't so you should take a look at it and add them as well.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

ForeverZer0

1. On the test project I have been using, Scripts.rxdata gets reduced from 281 KB to 160 KB.

2. Without the compressor, that is mostly true.

3. You can see believe it when you see it. Although 90% is not typical, it usually averages about 30-40 percent. There is no change to the quality of the image.

4. The stronger Zlib script compression is marginal, only a few KB for an entire script file. I am simply using Zlib::BEST_COMPRESSION, which RM might be doing already, but in an older version of Zlib.

5. Actually ARC inspired me. Working on the editor I encountered the problem of how to handle it when the currently defined data for something was erased (ex. Actor's starting weapon was erased from the Weapons tab). I handled it correctly in ARCed to notify all relevant windows when a database item is changed, but I realized that this can occur in RM while making a game and the user might not realize it.


The point is to make a single, all encompassing, resource testing and optimization tool. There are plenty of topics of various scripts to use (including yours ;) ), file compressors, converters, etc, etc. This will be a single program that can automate it for you, and be much more thorough. Instead of just giving a log of used RTP resources, it gives the option of copying them for you. Instead of just notifying of unused resources, it gives the option of finding and removing for you. There are backup and archive tools included so that when you open a project, it prompts to create a backup for you, so even if something goes wrong, no harm is done.

Given, it is still up to the user to ensure their game is bug free, but this program can do 95% or more of the work for you.
I am done scripting for RMXP. I will likely not offer support for even my own scripts anymore, but feel free to ask on the forum, there are plenty of other talented scripters that can help you.

G_G

This sounds fantastic Zer0. I'd be more than willing to test it in all three engines for you.

Blizzard

1. 10 dozens kB. xD

3. Yeah, 30%-40% makes more sense. Internally PNG is using some compression algorithm so it's most probably just recompressing that.

Yeah, most scripts don't handle stuff, they only put together a list.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

ForeverZer0

The program just uses command-line tool for the PNG compression, I merely redirect the STDOUT of it to the program and start the process without a window. Here's the tool it uses: OptiPng. I am sure many have heard of it. As far as I know there aren't any good front-ends for it (I found some GUI's for it, but they suck), so I may make a GUI for it when I am done with this. It would only take a couple hours, if that.

@GG:
Thanks, I'll upload a copy either later today, or tomorrow. I still need to build many of the controls for the UI, but all the functionality is more or less done.
I am done scripting for RMXP. I will likely not offer support for even my own scripts anymore, but feel free to ask on the forum, there are plenty of other talented scripters that can help you.

Eclipse

Sorry to necropost, but did this app ever get finished?  I know this topic hasn't been posted in for a year but this sounds like it would be an extremely cool and useful tool.

PhoenixFire

Quote from: Eclipse on August 18, 2013, 01:00:45 pm
Sorry to necropost, but did this app ever get finished?  I know this topic hasn't been posted in for a year but this sounds like it would be an extremely cool and useful tool.


F0 has not been active on this forum for a while Eclipse.
Quote from: Subsonic_Noise on July 01, 2011, 02:42:19 amNext off, how to create a first person shooter using microsoft excel.

Quote from: Zeriab on September 09, 2011, 02:58:58 pm<Remember when computers had turbo buttons?

Eclipse

Yeah I know :| I was just curious if a version of this app (beta or otherwise) had been circulated in any fashion.

ForeverZer0

Did I never release this? Hmmm....

* Goes to look for it... *
I am done scripting for RMXP. I will likely not offer support for even my own scripts anymore, but feel free to ask on the forum, there are plenty of other talented scripters that can help you.

PhoenixFire

-looks back at post-

Yep, I still see a lack of link, and I would like to use this if you have it available...
Quote from: Subsonic_Noise on July 01, 2011, 02:42:19 amNext off, how to create a first person shooter using microsoft excel.

Quote from: Zeriab on September 09, 2011, 02:58:58 pm<Remember when computers had turbo buttons?

ForeverZer0

I did find it actually, but it's still kind of in development stage.  All the actual functionality is ups and working, but the interface needs updated and improved, as well as some streamlining and organizing the code a little better. It appears I was going to include a bunch of conversion tools, some of which are fully implemented for all formats.

I could probably finish it with a few hours work, so maybe I will get to it on one of these winter nights when there's nothing to do.
I am done scripting for RMXP. I will likely not offer support for even my own scripts anymore, but feel free to ask on the forum, there are plenty of other talented scripters that can help you.

G_G

lol. You can blame me too DS. I tested this thing out as extensively as I could but I can't remember if I ever reported it to Zer0.

PhoenixFire

:glomps both of you:

well, to be honest, the part I would like the most is the "•Automatically finds and can copy every used RTP resource to the project locally for distribution." that you mentioned in the descriptor.. I'm simply too lazy to do so myself, and, the other features looked cool enough to use too, so I thought I would bug you about it.

As of right now, I have ALL the files from the RTP in the game distribution folder, but I don't need all of it there. I just did that trick to not have to distribute the RTP along with the game, but unfortunately that means higher file/folder size..
Quote from: Subsonic_Noise on July 01, 2011, 02:42:19 amNext off, how to create a first person shooter using microsoft excel.

Quote from: Zeriab on September 09, 2011, 02:58:58 pm<Remember when computers had turbo buttons?