Hi there, I'm fairly new to the MMOwned forum, but I've been developing with World of Warcraft emulation for about 2 years now. I've worked with WoWEmu, WoWWoW, MaNGOS, and a variety of Ascent based emulators.
After working briefly with MaNGOS over the last couple of months, I've taken a break. Now I'm looking to get my hands dirty and develop something new. I've had an idea floating around, which would be fairly trivial to implement, but I am mainly looking for how much interest I get so that I do not waste my time writing this application.
Analysis
What some of you may call a repack, I call database edits, customizations, ripping off legacy work, and so forth. I've noticed there are a lot of repacks based on other repacks, which I believe creates a big loophole for those who use the repacks.
Several questions come to mind when I download the traditional repack:
1) How am I to update it?
2) What if I don't want the unnecessary database edit?
3) Where am I supposed to go to for support?
4) I am unhappy with a certain feature, such as Scripts which cause my server to be unstable, how do I remove it?
5) I prefer WhyDB over NCDB (or vice versa) but this repack doesn't support it, what do I do?
6) I have my easy solution to create a server, but I don't have my easy solution to manage or develop content for it, where do I find these?
Naturally, you should come to the conclusion that
a) You are better off compiling all of your resources in the more raw way of setting up a server
b) You are going to still end up looking for third party sources in order to get the compilation you want.
Thus, the restrictions are as follows:
1) It ends up becoming more complicated than it should be, the user still ends up searching for things that should've been in the repack...
2) The repack has holes that are empty.
I've further noticed that there has been a large amount of criticism towards repacks as you cannot trust the binaries for fallacies and malign attempts of hijack. In fact, the biggest prejudice against this type of software is that it is "too easy" and the user will "leech and not learn anything".
Unfortunately, repack compilers make no attempt to solver the problem.
Proposed solution
I've written out blueprints that I will keep private, but I will share the vague, basic vision with you, the community. This project will take a while to make, hence why I am asking for input and interest now before I invest any further time into development.
I propose a new definition for repack. A package that is flexible, easy to use, portable, customizable and expansive.
A GUI based solution seems like the appropriate approach to an easy to use program, unfortunately, a great majority of those who create repacks have no real knowledge in developing GUI oriented applications. I propose this:
The software will be based on two methodologies: setup and working directory, just as we have in the raw approach to setting up a server, but, with the my approach, we eliminate the need for instructions, manual and tedious work, and the possibility of errors and bugs. Too many times do we see the occasional request for someone in need of setting up a server, or making it public, or updating it, and so forth.
The GUI based installer will use resources from the setup directory in order to create the working directory that you will use to manage and run your server.
The fresh setup skeleton so far looks something like this:
- Services Setup
- MySQL Bins
What I like to refer to as the portable "console" version of MySQL, commonly used in legacy repacks such as MaNGOS Platinum and Cypack, and more recently AC-Web and deriatives.- MySQL native setup
This is what the "pro's" would usually use to setup the server on their machine. they would download the setup from the mysql site, and follow a pattern of instructions to setup the server and database.
Notice the choice and transition between the mysql bins, and the native setup. The solution that I am hoping to implement will not only support the choice between the two, but also a seamless transition between one or the other!- Emulator Setup
- ArcEmu Revision choice
We all notice that occasionally there may be fundamental differences between server updates. Whether it be in stability, or features, you will now have the option to choose from an array of revisions that suit your needs.- DB type choice
Currently, we notice that repacks choose what is popular, and a lot of people who want to use their own custom databases, or a choice between the different widely used databases (NCDB, WhyDB) will end up compiling their own unique server. There was no choice, there can be now.- Script choice
Now you will be able to choose between no script installation, or the different types of popular script solutions that are available
Once the software has been setup, configured, and tested to work, we should now have our working directory (which, although configured to be static during installation, is still completely portable, and can be moved with no problems).
Now we have another rather weak centralized solution to what is a problem of disconnection. In order to run everything seamlessly, repacks use the crude method of BAT files to start everything up. Unfortunately, this is not necessarily taking advantage of ease of use, but simply is executing in the essence of getting the job done.
My solution will implement a GUI application that is geared towards centralizing all of the components and allows for you to seamlessly manage and review each of these. It is important to be able to understand and learn about each of the components that make up your server, this will not only help with server development, but also support and bug reporting.
This GUI will not just start up the applications needed to run your server, but will include quick and easy to use functions for basic management.
Extending it further
After creating the necessary foundation for server building and support, I hope to slowly extend the application with the necessary tools you would need to develop database content, manage your server core, and script unique events to bring your experiences alive.
Why did I post all of this?
Please don't be alarmed that I am simply throwing out ideas and hoping to get a mass of volunteers to help me. In fact, I am more than happy to do this individually, but will also be out with open arms to support for volunteers who would like to help me.
I wanted to see how much interest I would gain in this idea, if it is worth making it happen. If you are interested, please post and further answer the following question:
Do you find any faults in my design? Why do you think so? How can I make it better to suit you better?
What parts of the design do you find good?
Would you be interested in helping me develop this?
Would you be interested in helping me develop custom content to make the package more unique?
Odds and Ends
Some things I didn't explain are
1) The program would be able to use existing programs on the computer if it detects them
2) All programs are written in C# .NET, no Visual Basic, no AutoIT
Appreciate all replies, thank you.