Coh3n
2010-02-26 11:26:44
Pre-Release Organization
Okay, I'm sorry to do this to everyone considering we're so close to releasing, but I needed to say something. Working on MSI a lot the last couple days let me get to know the include and see what's been done. I have seen a lack of consistency and a lot of things that could have been done differently/better.
Why does it matter, you may ask. Well, if we're unorganized and inconsistent, we may be giving other members the wrong idea about MSI. We need to let them know that we're serious about making this project a success. We need to have everything easy to understand and use if we want other people to contribute.
Also, the more organized we are, the easier errors can be found and fixed, along with the necessary tweaks to make a certain element work the way it should.
I have compiled a list of things I think should change. I don't mind doing all the organization, as long as everyone agrees on these issues.
- Constants
- Half of them are capitalized, half aren't. I say capitalize all. NCDS mentioned half capital half not (i.e. CITY_Varrock).
- I also think that all constants should be kept in Globals.scar, as well as other general MSI functions.
- More than half aren't used at all/won't be used for a long time. Therefore, unnecessary. I say, get rid of them.
- Walking_Reflection. This won't even be used for a long time. I say exclude from the include. Can be saved on someone's computer. It's just unnecessary if it isn't being used.
- Unnecessary Code
- Anything we have setup for skills we don't support/will not support for a long time. I say get rid of it, or at least comment it.
- Debug.scar
- Objects.scar
- I previously thought we should use SmartColors instead of what we currently have. However, working on the progress report/mainloop, I have come to the conclusion that it is much nicer having MSI_specific object finding.
- Autocolor.scar
- Is it even being used? If not, completely unnecessary and can be scrapped.
- Script/Function Headers and Comments
- There are SEVERAL functions that don't have headers.
- Maybe one or two of the script headers are up to date.
- We need good, clear descriptions for EVERY function/types/const/global vars.
- Proposed headers: [PHP] {==============================================================================\ | MSI Group Scripting Include | | Mainloop.scar | |==============================================================================| | For all the script Artificial Inteligence | | | | * function MSI_BestTool: Integer; * by Coh3n | | * function MSI_WorstTool: Integer; * by Coh3n | | * function MSI_SetupPlayer: Boolean; * by Coh3n | | * function MSI_GetObjectList: TIntegerArray; * by Coh3n | | * function MSI_WalkToLoc: Boolean; * by The MSI Team | | * function MSI_WalkToBank: Boolean; * by The MSI Team | | * function MSI_DoSkill: Boolean; * by The MSI Team | | * procedure MSI_CountMaterials: Boolean; * by Coh3n | | * function MSI_BankMaterials: Boolean; * by The MSI Team | | * function MSI_MainLoop: Boolean; * by The MSI Team | \_____________________________________________________________________________} {******************************************************************************} { Name: function MSI_BestTool: Integer; } { By: Coh3n } { Description: Determines the best tool for the job at hand } {******************************************************************************} //for types { Name: type TItem Description: To be used for handling Items in all situations } //For constants { Name: const Hatchet/Pickaze requirements Constants representing the requirements to use each pickaxe/hatchet } //For important global vars { Name: var ProgressReportArray; Description: To be used to store information for Players individually } ProgressReportArray: Array of TProggy; //For necessary local/less important vars var theItem: Integer; //The item to look for [/PHP]
- I also think that we should have short (1 line max) comments in the functions that give a little explanation of what that part of the function does.
- I would like the MSI include to be an awesome learning tool for anyone learning how to script.
- White Spacing
- I know it's not "Official" SRL standards, but I would love if we all used white spacing in our code. It makes it so much easier to read and understand.
- A great example of awesome white spacing/commenting is FindMMLocation by marpis in Walking_Color.scar
- MSI-Specific Functions
- I think there are certain things that should be made MSI-specific. Maybe there is a function that does the same thing in SRL, but doesn't quite fit the proper needs for MSI.
- Getting Ahead of Ourselves
- This is something that CANNOT happen. We need to make sure one project is done with all the necessary elements, before we move on to the next project. Once released, we may be able to have more than one project going on at the same time, with SL's leading them, but there's no rush.
- Inventory/Bank Item Finding
- I say we scrap all bitmaps and use DTM's all the way. DTMs find 99.9 percent of the time and are fast. Having bitmap routines in the include is just pointless in my opinion.
- Before Committing
- ALWAYS remember to run CompileMSI before committing! You don't want to leave another person to fix an compiling mistakes you may have made when they're trying to fix something else.
Since we haven't released yet, we need everyone who can to test. All you need is five minutes to setup a player, then hit run. Come back later, and looks through the debug info. and post the necessary information for everyone to review.
Thoughts or comments on anything I said? Or additions? Or you can yell at me if you wish. :p