-
MBDesktop - Multiboxing Instance Manager
Good evening guys.
Let me introduce myself to the community. I'm known as 'Chron' to most people, and I'm known for my affinity with everything IT. This includes the everyday stuff everyone here is probably aware of (system building, maintenance, etc), but also includes things such as web and software development. I've run with dual monitors for almost all of the time I've been into IT (over a decade), currently run with 3 monitors, but have also run 3 monitors and a TV from the same system in the past. I very much like convenience and having information surrounding me and easy to access.
I'm a heavy gamer and have been playing WoW since April 2007. In that time, I've multiboxed several times, the first being when RAF was first 'updated' to give the XP bonus, and then numerous times after that. Very recently, I found myself on another realm and so I formed a guild for myself. The challenge I set myself was to level the guild to 25 and so recently, I took up the mantle of the multiboxer once again. To this end, I recently wrote a small WoW addon known as 'MBAssist'. This addon automatically configured I found that the Tauren start area to be the most multiboxer friendly, and I've completed it in around 9 minutes before (including deleting the Loremaster tabard mail on all 5 characters - clicking the mailbox twice has to be done manually on each character, but it loots the item and then deletes the mail automatically). In the start area, it's possible to rack up around ~4M guild XP with a group of 5. Right now, the guild is at level 18, but I plan to finish off up to level 25 in the next few days.
Unfortunately, I found managing all of these copies of WoW very awkward. Even with an addon to cancel the start cinematic, auto-party (via Jamba), auto accept guild invites only to my guild (and decline others), and equip the only useful item from that area (a gun, since they're hunters), it was still the hassle of getting the copies setup each time that really took it out of me. Dealing with process affinity and priority, even if they aren't major factors in overall performance of the system, were still a concern. Having an easy way to start them was what I needed. I'm aware that there are already similar programs around, but I figured I'd build something of my own.
Furthering the goal of convenience, I developed "MBDesktop". It's a freeware program written in Delphi that is designed to allow you to set 5 instances running. Right now, it's hardcoded at 5, but you CAN manually terminate any processes you don't need once they've started, or click to start individual instances up to the amount you need. It's also hardcoded at 8 cores (logical or physical, so something like a 4-core Hyperthreaded CPU would be ideal), but this only applies to the checkboxes related to CPU affinity/process cores. You could set it up to run on 2 or 4 cores if you want, just avoid using the extra checkboxes (e.g. if you've got 4 cores available, don't use checkboxes for cores 4,5,6,7). I'm unsure of the effects of trying to run with an affinity above what is available to your system, but I'd imagine Windows just ignores the excess.
Please note that you can only use the 'Launch Instances' button if no instances are running (this only applies to instances launched via the launcher). You can start individual instances by using the 'Restart' buttons next to the relevant instance if you wish. You can close instances even if only some or only 1 of them is/are running. Also note that affinity and priority settings are only applied on launch of the process so to change these, you need to either kill and restart the instance with new settings, or change them through task manager. I'll try to get this changed in a future release.

It's designed to run alongside a key broadcaster and in-game addons. It doesn't replace either of those, it simply makes management of it easier. You can run multiple copies at the same time if you wish (it doesn't create a mutex as it's not required). For example, running 2 copies from different locations would allow 2 sets of configurations, and thus you could '10-box' in this way.
You'll notice there's "Preset Processor Modes". These are basically different core assignments and process priority assignments. "Pair per instance" is what you can see in the screenshot above. Prioritize master give almost all power to the master, limiting slaves to a single core, while automatic balance gives every instance full core availability. "System Friendly" is designed to leave 2 cores free for the rest of the system, effectively running the master on all 6 cores, 2 of the slaves on 3 cores, and the other 2 slaves on the other 3 cores. You can customize them to your own requirements of course. Leaving no boxes checked will run it on all cores (i.e. affinity mask of '255', the same as if all boxes were checked).
Setting the Window Title allows you to easily see which character is on each instance of WoW. It also lists the affinity mask that was set through the launcher, as well as the process ID (in the event one copy of WoW crashes, you can either try to kill it through the launcher and restart it, or you can locate it in task manager by it's PID). Of course, if you're using something like Octopus (as I am), it's advised to use an identical prefix to each title so that broadcasting will work correctly.
The technical details of MBDesktop aren't all that technical, it's literally scanning for HWND's to check if the processes are still running. This is the reason I add all those extra details to the title - scanning for "World of Warcraft" renames every window with that name (such as the WoW folder itself), whereas scanning for specific details in the title is much better. Terminating by PID is an obvious choice over EXE name. The affinity and priority is set when the process is launched as opposed to afterwards, as I found that the handles were invalid if I'd tried to set those parameters afterwards (I'm not sure why, but it's a non-issue). The checks to see if an instance is running or not runs every 250ms/4 times per second.
The setup by default is built for my monitor setup. In this instance, the master instance runs on the main screen and fits to the dimensions (2560x1440). The other instances run on the monitor to my right side, which is 1280x1024 and so each slave instance takes up a quarter of that screen. If I wanted to run them on the right monitor, I'd simply set the "Pox. X" values to less than 0.
The current version of the MBAssist addon isn't publicly available yet, but I'll be sure to post it up if MBDesktop drums up enough interest. MBDesktop has been tested on Windows 8 x64, but should run on anything down to Windows XP, but I'm only recommending anything Vista or above. It definitely won't run on versions before XP due to the framework. It's unfortunately not available for OS X at this time. If I can find equivalent API calls for OS X, I'll try and release a version for that as well. It does require administrator access, but it's setup to elevate with UAC.
One final note - Don't click, move, or otherwise interact with the MBDesktop window or any WoW instances until all instances are launched. Doing so can cause the application to hang and it'll need to be manually terminated through task manager. I'll aim to fix this in a future release.
Feedback and input is very much welcome. I can't promise it'll be updated but if there's something you really want to see, lemme know and I'll see what I can do.
Download available from: http://innuendo-eu.co.uk/PublicResou.../MBDesktop.exe
Posting Rules
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
Connect With Us