Difference between revisions of "Inner Space"

From Lavish Software Wiki
Jump to: navigation, search
(See Also)
Line 1: Line 1:
 
<small>Other languages: [[De/Inner_Space|Deutsch]]</small>
 
<small>Other languages: [[De/Inner_Space|Deutsch]]</small>
== Introduction ==
+
 
Inner Space is a platform for development inside games. Inner Space uses [[LavishScript]], a simple command shell inspired by Linux shells, [[IS:.NET|.NET 2.0]] for fully functional automation capabilities, and [[LavishGUI]], a system that provides fully customizable user interfaces. Inner Space consists of the [[IS:Uplink|Uplink]] (main program), individual [[IS:Session|sessions]] which are attached to each game, and the [[IS:Kernel|Kernel]], which is used by both the Uplink ''and'' sessions.
+
Inner Space is an extensible gaming platform for Windows. It runs programs written for it, like the popular [http://isboxer.com ISBoxer multiboxing software]. Inner Space primarily runs scripts developed in [[LavishScript]], with graphical user interfaces in [[LavishGUI]], but also supports [[IS:.NET|.NET 2.0-3.5 and 4.0]] for a full range of capabilities.  
 +
 
 +
Inner Space is broken down into three main parts:
 +
# The main Inner Space program, called the [[IS:Uplink|Uplink]]
 +
# Each game or program that gets launched becomes an [[IS:Session|Inner Space 'Session']], through application-level virtualiztion
 +
# The [[IS:Kernel]] that provides the same base functionality in both the main program and in sessions
  
 
== Installation ==
 
== Installation ==
 
[[Image:Menu-AddGame.gif|right|276px|thumb|It's so easy!]]
 
[[Image:Menu-AddGame.gif|right|276px|thumb|It's so easy!]]
 
;'''Inner Space is available only to Lavish Software subscribers.'''
 
;'''Inner Space is available only to Lavish Software subscribers.'''
#Download the installer from the [http://www.lavishsoft.com/innerspace/download.php Inner Space download page]
+
#Download the installer from the [http://www.lavishsoft.com/innerspace Inner Space download page]
 
#Run the installer
 
#Run the installer
 
#An Inner Space shortcut is placed on your desktop, use it to launch the [[IS:Uplink|Inner Space Uplink]].  You may move the shortcut onto your start menu, or wherever you prefer.
 
#An Inner Space shortcut is placed on your desktop, use it to launch the [[IS:Uplink|Inner Space Uplink]].  You may move the shortcut onto your start menu, or wherever you prefer.
 
#Because the installer only contains a couple necessary files, Inner Space will patch itself to the latest version when launched
 
#Because the installer only contains a couple necessary files, Inner Space will patch itself to the latest version when launched
#The Inner Space icon should appear in the system tray (next to your system clock)
+
#The Inner Space icon should appear in the system notification area (usually by your system clock)
#That's it!  Launch your games by right clicking the system tray icon. Make sure to come back here for help!
+
#That's it!  Launch your games by right clicking the system tray icon.
  
 
== Basic Usage ==
 
== Basic Usage ==
 
* Launch Inner Space using the icon on your desktop.  The [[IS:Uplink|Uplink]] becomes an icon in your system tray (next to the system clock).
 
* Launch Inner Space using the icon on your desktop.  The [[IS:Uplink|Uplink]] becomes an icon in your system tray (next to the system clock).
 
* Launch games by right clicking the system tray icon, finding the name of a game in the menu, and selecting a profile from the submenu.
 
* Launch games by right clicking the system tray icon, finding the name of a game in the menu, and selecting a profile from the submenu.
* Open the in-game console by using the ` key. This key is a [[ISSession:Bind (Command)|Bind]] and can be changed to any key or combination of keys you choose. A lot of non-US keyboards must change the bind of this command in the [[IS:Configuration|Configuration]].
+
* Open the in-game Inner Space console by using the ` key, or F12 if you do not have a ` key. This key is a [[ISKernel:Bind (Command)|Bind]] and can be changed to any key or combination of keys you choose. You can change the key for this binding in the [[IS:Configuration|Configuration]] (in your Session Startup Sequence).
 
* The in-game console accepts many commands.  All consoles have all of the  [[LavishScript:Commands|LavishScript commands]] as well as [[IS:Kernel#Commands|Inner Space Commands]].  Extensions can add their own commands too!
 
* The in-game console accepts many commands.  All consoles have all of the  [[LavishScript:Commands|LavishScript commands]] as well as [[IS:Kernel#Commands|Inner Space Commands]].  Extensions can add their own commands too!
* Inner Space displays a framerate and memory indicator in the upper left corner by default. You can toggle them by pressing Ctrl+Alt+F and Ctrl+Alt+M respectively.
+
* Inner Space displays a framerate and memory indicator in the upper left corner by default. You can toggle them by pressing Ctrl+Alt+F and Ctrl+Alt+M, respectively.
 
* When playing multiple sessions you can use Ctrl+Alt+Z and Ctrl+Alt+X to rotate backwards or forwards through sessions, bringing another session to foreground.  Using Ctrl+Alt+1 through Ctrl+Alt+9 quickly brings specific sessions to the foreground.
 
* When playing multiple sessions you can use Ctrl+Alt+Z and Ctrl+Alt+X to rotate backwards or forwards through sessions, bringing another session to foreground.  Using Ctrl+Alt+1 through Ctrl+Alt+9 quickly brings specific sessions to the foreground.
* To add a new game right click the system tray icon and click "Add Game".  Enter the name of the game, then click the "..." button to navigate to the game's executable.  Most games do not need anything extra after doing so, but if you have trouble with a game, please post on our forums to receive help.
+
* To add a new game right click the system tray icon and click "Add Game".  Enter the name of the game, then click the "..." button to navigate to the game's executable.
* Extensions can be downloaded and placed in the Extensions folder, then loaded with the Extension command.  Interface files packaged with extensions can generally be placed in the Interface folder (note: this will be changing soon)
+
* Extensions can be downloaded and placed in the Extensions folder, then loaded with the Extension command.  Interface files packaged with extensions can generally be placed in the Interface folder
  
 
== Overview ==
 
== Overview ==
Inner Space operates independently in any number of processes, beginning with the [[IS:Uplink|Uplink]] and extending into [[IS:Session|Sessions]], which are any processes launched by the uplink.  The uplink and sessions have unique properties, as well as shared properties.  In a session, for example, Inner Space employs stealth mechanisms to prevent itself from being noticed by the host application.  Similarly, unique to the uplink are the abilities to patch Inner Space to the latest version, and to relay commands to sessions or even other networked uplinks.
+
Inner Space operates independently in any number of processes, beginning with the [[IS:Uplink|Uplink]] and extending into [[IS:Session|Sessions]], which are any processes launched by the uplink.
  
 
=== A brief Inner Space hierarchy ===
 
=== A brief Inner Space hierarchy ===
Line 56: Line 61:
 
==== Kernel ====
 
==== Kernel ====
 
* '''[[IS:Kernel|Kernel]]''' - The [[IS:Kernel|Kernel]], used by the uplink and all sessions, is the main component that drives Inner Space.  It is in charge of handling all of the various core subsystems that make up Inner Space.
 
* '''[[IS:Kernel|Kernel]]''' - The [[IS:Kernel|Kernel]], used by the uplink and all sessions, is the main component that drives Inner Space.  It is in charge of handling all of the various core subsystems that make up Inner Space.
** '''Automation (Scripting) and Commands''' - Inner Space features a scriptable command shell through our [[LavishScript]] engine.  This can be accessed through the Console and in various other ways. Inner Space also provides [[IS:.NET|.NET 2.0 support]] in process.
+
** '''Automation (Scripting) and Commands''' - Inner Space features a scriptable command shell through our [[LavishScript]] engine.  This can be accessed through the Console and in various other ways. Inner Space also provides [[IS:.NET|.NET 2.0-3.5 and 4.0 support]] in process.
 
** '''Extensions''' - Extensions, as the name implies, extend the feature set of Inner Space and its components.  This can be adding new user interface features, new commands or automation objects, and so on.  Many extensions are game-specific and add the ability to interact directly with the game.
 
** '''Extensions''' - Extensions, as the name implies, extend the feature set of Inner Space and its components.  This can be adding new user interface features, new commands or automation objects, and so on.  Many extensions are game-specific and add the ability to interact directly with the game.
 
** '''Input Emulation''' - Input emulation allows Inner Space to reproduce keyboard and mouse events, such as pressing a key, typing, moving the mouse or clicking mouse buttons.
 
** '''Input Emulation''' - Input emulation allows Inner Space to reproduce keyboard and mouse events, such as pressing a key, typing, moving the mouse or clicking mouse buttons.
 
** '''Memory Modification''' - A memory modification service allows Inner Space and extensions to easily and safely modify the memory of the host process.  An extension can also provide a memory protection service, which protects memory modifications from any detection by the host.
 
** '''Memory Modification''' - A memory modification service allows Inner Space and extensions to easily and safely modify the memory of the host process.  An extension can also provide a memory protection service, which protects memory modifications from any detection by the host.
** '''Navigation''' - A general navigation system is built into Inner Space for easy adaptation in automating games.   
+
** '''[[LavishNav|Navigation]]''' - A general navigation system is built into Inner Space for easy adaptation in automating games.   
 
** '''Services''' - Services provide safe one- or two-way communication between Inner Space and extensions, as well as between extensions.  They are also used to implement asynchronous operations, such as retrieving web pages.
 
** '''Services''' - Services provide safe one- or two-way communication between Inner Space and extensions, as well as between extensions.  They are also used to implement asynchronous operations, such as retrieving web pages.
** '''Settings''' - An XML-based setting system is implemented
+
** '''[[LavishSettings|Settings]]''' - An XML-based setting system is implemented
 
** '''User Interface''' - Inner Space features a complete user interface system through our [[LavishGUI]] engine.  LavishGUI also integrates directly with [[LavishScript]] so that every aspect of our GUI is scriptable.
 
** '''User Interface''' - Inner Space features a complete user interface system through our [[LavishGUI]] engine.  LavishGUI also integrates directly with [[LavishScript]] so that every aspect of our GUI is scriptable.
 
** '''Web''' - Inner Space has the ability to retrieve a URL into memory or file, via the open source cURL libary.
 
** '''Web''' - Inner Space has the ability to retrieve a URL into memory or file, via the open source cURL libary.
Line 70: Line 75:
 
* [[IS:Session|Session]]
 
* [[IS:Session|Session]]
 
* [[IS:Kernel|Kernel]]
 
* [[IS:Kernel|Kernel]]
* [[IS:.NET|.NET 2.0 Support]]
+
* [[IS:.NET|.NET 2.0-3.5 and 4.0 Support]]
 
* [[IS:Configuration|Configuring Inner Space]]
 
* [[IS:Configuration|Configuring Inner Space]]
 
* [[Knowledge Base]]
 
* [[Knowledge Base]]
Line 78: Line 83:
 
* [[LavishGUI]]
 
* [[LavishGUI]]
 
* [[ISXDK]]
 
* [[ISXDK]]
* [http://www.ismods.com/wiki/index.php/Main_Page ISMODS Wiki]
 
 
[[Category:Inner Space]]
 
[[Category:Inner Space]]

Revision as of 09:04, 20 February 2012

Other languages: Deutsch

Inner Space is an extensible gaming platform for Windows. It runs programs written for it, like the popular ISBoxer multiboxing software. Inner Space primarily runs scripts developed in LavishScript, with graphical user interfaces in LavishGUI, but also supports .NET 2.0-3.5 and 4.0 for a full range of capabilities.

Inner Space is broken down into three main parts:

  1. The main Inner Space program, called the Uplink
  2. Each game or program that gets launched becomes an Inner Space 'Session', through application-level virtualiztion
  3. The IS:Kernel that provides the same base functionality in both the main program and in sessions

Installation

Error creating thumbnail: Unable to save thumbnail to destination
It's so easy!
Inner Space is available only to Lavish Software subscribers.
  1. Download the installer from the Inner Space download page
  2. Run the installer
  3. An Inner Space shortcut is placed on your desktop, use it to launch the Inner Space Uplink. You may move the shortcut onto your start menu, or wherever you prefer.
  4. Because the installer only contains a couple necessary files, Inner Space will patch itself to the latest version when launched
  5. The Inner Space icon should appear in the system notification area (usually by your system clock)
  6. That's it! Launch your games by right clicking the system tray icon.

Basic Usage

  • Launch Inner Space using the icon on your desktop. The Uplink becomes an icon in your system tray (next to the system clock).
  • Launch games by right clicking the system tray icon, finding the name of a game in the menu, and selecting a profile from the submenu.
  • Open the in-game Inner Space console by using the ` key, or F12 if you do not have a ` key. This key is a Bind and can be changed to any key or combination of keys you choose. You can change the key for this binding in the Configuration (in your Session Startup Sequence).
  • The in-game console accepts many commands. All consoles have all of the LavishScript commands as well as Inner Space Commands. Extensions can add their own commands too!
  • Inner Space displays a framerate and memory indicator in the upper left corner by default. You can toggle them by pressing Ctrl+Alt+F and Ctrl+Alt+M, respectively.
  • When playing multiple sessions you can use Ctrl+Alt+Z and Ctrl+Alt+X to rotate backwards or forwards through sessions, bringing another session to foreground. Using Ctrl+Alt+1 through Ctrl+Alt+9 quickly brings specific sessions to the foreground.
  • To add a new game right click the system tray icon and click "Add Game". Enter the name of the game, then click the "..." button to navigate to the game's executable.
  • Extensions can be downloaded and placed in the Extensions folder, then loaded with the Extension command. Interface files packaged with extensions can generally be placed in the Interface folder

Overview

Inner Space operates independently in any number of processes, beginning with the Uplink and extending into Sessions, which are any processes launched by the uplink.

A brief Inner Space hierarchy

Uplink

  • Uplink - The Uplink serves as the hub for Inner Space
    • Startup Sequences
    • Configuration
      • Games
        • Profiles
    • Display
    • Launch Menu
    • Patcher
    • Session Relay
    • Uplink Networking

Sessions

  • Sessions - A Session is any process launched by the Inner Space uplink or a session. The launched process is called the host process, because it is hosting Inner Space inside
    • Startup Sequences
    • Display
      • Direct3D8
      • Direct3D9
      • OpenGL
    • File Redirection
    • Input
      • DirectInput
      • Software Mouse
      • Win32
    • Stealth
    • Window

Kernel

  • Kernel - The Kernel, used by the uplink and all sessions, is the main component that drives Inner Space. It is in charge of handling all of the various core subsystems that make up Inner Space.
    • Automation (Scripting) and Commands - Inner Space features a scriptable command shell through our LavishScript engine. This can be accessed through the Console and in various other ways. Inner Space also provides .NET 2.0-3.5 and 4.0 support in process.
    • Extensions - Extensions, as the name implies, extend the feature set of Inner Space and its components. This can be adding new user interface features, new commands or automation objects, and so on. Many extensions are game-specific and add the ability to interact directly with the game.
    • Input Emulation - Input emulation allows Inner Space to reproduce keyboard and mouse events, such as pressing a key, typing, moving the mouse or clicking mouse buttons.
    • Memory Modification - A memory modification service allows Inner Space and extensions to easily and safely modify the memory of the host process. An extension can also provide a memory protection service, which protects memory modifications from any detection by the host.
    • Navigation - A general navigation system is built into Inner Space for easy adaptation in automating games.
    • Services - Services provide safe one- or two-way communication between Inner Space and extensions, as well as between extensions. They are also used to implement asynchronous operations, such as retrieving web pages.
    • Settings - An XML-based setting system is implemented
    • User Interface - Inner Space features a complete user interface system through our LavishGUI engine. LavishGUI also integrates directly with LavishScript so that every aspect of our GUI is scriptable.
    • Web - Inner Space has the ability to retrieve a URL into memory or file, via the open source cURL libary.

See Also