FAQ  •  Register  •  Login

ISBoxer 2 Development Update - June 2017

Moderator: MiRai

<<

lax

User avatar

Site Admin

Posts: 6685

Joined: Tue Nov 17, 2009 9:32 pm

Post Tue Jun 13, 2017 10:04 pm

ISBoxer 2 Development Update - June 2017

It's been a while since I've announced progress on ISBoxer 2, so here's the latest.

First, here's why there has not been recent updates. ISBoxer 2 represents a lot of work spent toward a specific goal, and while a lot of progress was made in various areas, the result was not as simple and elegant as envisioned. Modules even made everything seem to take up more time and space instead of really simplifying configuration and making it more efficient. And while Modules could be created and distributed, providing a method to effectively configure custom options for each Module was not making matters easier. This needed a serious re-think.

Image
ISBoxer 2's new, further simplified interface

So to say the least, ISBoxer 2 has been undergoing a major overhaul. I briefly mentioned at Multiboxing Boot Camp that ISBoxer 2 will now be based around a web application for configuration, instead of all of the configuration being built into ISBoxer itself. This is a major change in itself, but while I'm at it I'm also introducing a Lua engine (MoonSharp for those counting) directly into ISBoxer 2. Between these changes, we -- as well as third-party developers (e.g. other ISBoxer 2 users familiar with web APIs and/or Lua) -- will be able to provide incredibly easy to use interfaces with more powerful features than ever.

Here's an example that comes to mind. ISBoxer users had long ago figured out a particular SWTOR-specific method of predicting which Character would appear in which order in the Party window, and therefore what Hotkey could be pressed to target that party member (and this would be useful for following or assisting). With ISBoxer 2's updated system, a developer could provide a web app to add SWTOR-specific methods for ISBoxer 2 to use, automatically linking up its ability to follow and assist each window. Or a custom SWTOR-specific "Quick Setup Wizard" web app/site that sets up a custom SWTOR profile loaded with SWTOR-specific goodies. The idea is to allow you to enable such sites to help you configure ISBoxer 2. (You would provide such a site "permission" to modify your ISBoxer 2 configuration, as you may be familiar with from sites with apps like Facebook, Discord, etc -- and the site would definitely not have access to things like your Character or Account names or passwords).

Because your configuration is online and downloaded when it is time to launch, each time you launch your ISBoxer 2 team, you will automatically be using the latest and greatest versions of ISBoxer 2 Modules with your existing configuration. A new ISBoxer 2 download/update will not be required for many minor fixes, it will just automatically have the fixed code when it is available.

Lua, then, will be used for implementing much of what ISBoxer 2 does with your downloaded configuration, outside of Inner Space. (Inner Space continues to primarily use LavishScript.) An app like the SWTOR example described above can provide Lua code to help drive your ISBoxer 2 configuration. Many of the features that ISBoxer 1 currently handles within each game window will instead be handled by ISBoxer 2 directly outside of the game. This also means ISBoxer 2 will be capable of managing windows that are not launched via Inner Space, albeit with fewer available features for those windows.

Because ISBoxer 2 will handle a lot of the features directly instead of from within the game itself, many things will be less complicated to configure and to understand. For example, "Round-robin" in ISBoxer 1 has a different state in any given window; if you press a round-robin button 1 time in 1 window, it will be at a different position when pressed again in this window than in another window (meaning pressing the same key in window 1 could go to a different window than if pressed in window 2). While it is possible to correct this in ISBoxer 1, it is simply not obvious to most people, and it is more difficult than it needs to be. This also makes "debugging" live ISBoxer 2 configuration much easier than for ISBoxer 1, and utility for doing so will be built right in.

Image
Direct access to ISBoxer 2's Lua engine is provided.

ISBoxer 2 also includes the option of secure local storage for passwords for each of your game accounts. If you have to enter your password to log in to a game, you will be able to press an ISBoxer 2 Hotkey while it is in a protected state (preventing it from accidentally entering your password when not logging in) to enter the correct password for the given game account. This feature will require entering a "master password" in order to securely protect your password collection, which means that simply having a copy of your password collection file (even if you accidentally share a copy of it with a skilled hacker) is not sufficient to steal all of your account passwords (phew!). However, if your PC is compromised (haxed!), you are vulnerable to keyloggers and other attacks either way. This feature is implemented based on ISBoxer EVE Launcher code (which is open source and can be -- and has been -- reviewed for security at https://github.com/LavishSoftware/ISBoxerEVELauncher).

And finally, ISBoxer 2 will try to enforce the rules (as understood) for each game. This means disabling delayed actions for games with standard multiboxing rules, disabling Input Broadcasting for various games with restrictive multiboxing rules and so on, but at the same time ISBoxer 2 will also allow a relaxed ruleset (as compared to ISBoxer 1) for games without restrictions. In other words, if you're playing Minecraft we have no real reason to prevent you from fully programming your input devices (as you may already do with the manufacturer's software from Logitech, Razer, Corsair, SteelSeries, etc), but if you're playing World of Warcraft we will automatically insist that the accepted multiboxing rules are enforced.


Now that summer is here, things are moving along quickly in this new direction. I hope to have a fresh build for people to try some of the new features within a week or two (bearing in mind that configuring will be somewhat raw until web interfaces are properly readied). Stay tuned!
<<

Alge

User avatar

League of Extraordinary Multiboxers

Posts: 1223

Joined: Wed Jan 26, 2011 2:17 am

Location: Under the milky way tonight

Post Thu Jun 15, 2017 5:27 am

Re: ISBoxer 2 Development Update - June 2017

Looking forward to playing with this.
<<

lax

User avatar

Site Admin

Posts: 6685

Joined: Tue Nov 17, 2009 9:32 pm

Post Sun Jun 18, 2017 1:30 am

Re: ISBoxer 2 Development Update - June 2017

Image
So, this is not filled in with data but still shows a bit of how ISBoxer 2 keeps some of your private date separate and protected. Certain details of your Accounts, Character and Computers will be stored in the Private area (or not at all). The Password here is secure (implied by the lock, right?) and only available if you set a Master Password; this is to set up a Hotkey to enter each password for you -- in a game launcher or client -- so you don't have to remember 42 passwords. (I, for one, welcome this feature... and it has been a relatively common request.)

Anyway, shared versions of your settings will not include any of the Private data. The data will be linked by the auto-generated ID (not filled in in the image) to non-private data.

I am also going to prepare ISBoxer 2 for working on top of ISBoxer 1, for the first distributed build of the new ISBoxer 2. Meaning, you can begin using ISBoxer 2 while still using your existing ISBoxer 1 configuration. Sweet! :)
<<

Svpernova09

User avatar

League of Extraordinary Multiboxers

Posts: 19

Joined: Mon Nov 23, 2009 7:11 pm

Location: Memphis

Post Mon Jun 19, 2017 7:43 am

Re: ISBoxer 2 Development Update - June 2017

This sounds like it's going to be so much better than creating modules and trying to version control them.
<<

lax

User avatar

Site Admin

Posts: 6685

Joined: Tue Nov 17, 2009 9:32 pm

Post Fri Jun 23, 2017 4:57 pm

Re: ISBoxer 2 Development Update - June 2017

Internal alpha testing on the new ISBoxer 2 just hit an important milestone. :)

Here's an oh-so-different image from the previous one, which gives you a tiny bit more idea of how this works out, and so I can briefly describe the latest test.
Image

This latest test begins with ISBoxer 2 is storing some private account details (in this demo, it's obviously placeholder data).

First a quick note on the ID, because you might be confused or scared by the sight of this. You do not have to type this ID in anywhere, and generally will not need to recognize the ID -- it is for ISBoxer 2 to link/stitch pieces of your configuration together. The ID is generally for computers, and the Display Name is generally for humans. In most cases, ISBoxer 2 hides these IDs from you.

So let's talk about the Password box -- the most interesting part of the screenshot, and also the focus of the latest test. The purpose of this field is, obviously, for ISBoxer 2 to be able to enter your password for you. ISBoxer 2 strives to keep these passwords safe, so any stored Game Account passwords are kept under lock and key, and the key is thrown away. You must create/enter a Master Password to use this feature (this password is used to create a Master Key, which is never stored -- the key that is thrown away). If the Master Password has been entered, the Password box will be enabled (in the picture, it is disabled/grayed out) and keys can be typed in the box. This is not your standard text-entry box, it is actually recording key presses and releases for replay, so if you press Backspace in this box the password becomes longer; click the x on the right to clear the saved password.

The Lock button controls the Master Key. The first time you click this button, you will be prompted to set up your Master Password, and then the Password box will be available -- if one has already been configured but not entered since launching ISBoxer 2, it will ask you to enter your previously-configured Master Password. If the Master Password has already been successfully entered, then the Lock button allows you to choose to remove the Master Password with or without erasing your existing Game Account passwords. (A new Master Password can be configured again immediately, to avoid losing any Game Account passwords.) If you lose/forget your Master Password the only available option is to erase all of the saved passwords.

On to the test. I start by adding my Team. In the future this will be done via the Edit tab, which will handle web-based configuration. For this test, I'm just pasting in the Lua box. Developers may recognize this as passing some JSON to a Lua function (the JSON is what would come from the web-based configuration).
Code:
AddTeam('{"id":"82984694-a773-4325-9bc6-b2159ed7e567","name":"Notepad and DxNothing","folderName":"Notepad and DxNothing","primaryGame":null,"windowLayout":null,"hotkeys":[],"gameKeyBindings":[],"games":[],"windows":[{"displayName":null,"character":null,"account":{"id":"d1371af3-2c89-4dcb-8b80-18edcd71d2ca","displayName":"account1"},"windowTitleFormat":null,"minDelayBefore":0.0,"minDelayAfter":1.0,"innerspaceWindow":null,"isboxer1Window":null,"externalWindow":{"launchExecutable":"C:\\\\WINDOWS\\\\system32\\\\notepad.exe","parameters":null},"id":"ab0c9998-ee69-4e58-97d7-8c862170dc60"},{"displayName":null,"character":null,"account":null,"windowTitleFormat":null,"minDelayBefore":0.0,"minDelayAfter":1.0,"innerspaceWindow":null,"isboxer1Window":{"game":"DxNothing","gameProfile":"DxNothing Default Profile","parameters":null,"parametersExclusive":false,"onStartup":null,"onPreStartup":null,"characterSet":"Test","character":null,"slotNumber":1},"externalWindow":null,"id":"493cc1f1-0f87-4713-8b67-d8886e8a57b2"}]}')


This is a fairly simple Team, consisting of a Notepad window (launched as a non-Inner Space window) and a DxNothing window (via launching ISBoxer 1 Character Set "Test", Slot 1). I've attached account1 (from the screenshot) to the Notepad window.

Next, I add a Hotkey, again via the Lua box, and again this stuff is usually going to be done for you by web configuration, etc.
Code:
SetActiveTeam("Notepad and DxNothing")
local hotkey = AddHotkey('{"displayName":"My First Hotkey","codeName":"My First Hotkey","keyCombo":{"keyName":"f10","modifiers":"None","vkeyCode":121},"alternateKeyCombo":null,"onPress":"print(\\\"Executing My First Hotkey\\\")\nEnterPassword(GetActiveWindow())"}')
InstallGlobalHotkey(hotkey);

There's actually several things to see here. First, "SetActiveTeam" selects an Active Team -- only Team can be "Active" in an ISBoxer 2 instance, but another ISBoxer 2 instance can be launched to run another Team at the same time. This is the same as selecting the Team in the drop-down on the Home tab (see first screenshot in this thread). Then "AddHotkey" adds a Hotkey, from JSON (much like AddTeam adds a Team from JSON...). The Hotkey is named "My First Hotkey" because I am clever as hell, and when it is pressed it will perform the fairly self-explanatory Lua contained in "onPress". Finally, InstallGlobalHotkey takes a Hotkey and installs it as a global Windows Hotkey -- it could also be installed as an Inner Space Hotkey, and there may be other methods as well.

Now you should see these pieces coming together. I click Launch on the Home tab, and Notepad and DxNothing launch -- DxNothing goes into the Window Layout from its ISBoxer 1 Character Set, etc. I activate the Notepad window, and press F10 (the key assigned in My First Hotkey) and ISBoxer 2 types in "testing" because that's what I typed in the password box. Hooray!

This means ISBoxer 2 is now technically capable of launching your ISBoxer 1 teams, and can handle the passwords for you. :)

There's still some work to be done, including adding the "protected mode" switch that blocks "EnterPassword" except when you really do want that unlocked. But, I'm aiming for an initial download this weekend or early next week for those participating in the testers group.

Return to Alpha Discussion

Who is online

Users browsing this forum: No registered users and 1 guest