The Shadowrun Trilogy is a collection of three critically acclaimed role-playing games in the iconic fantasy-cyberpunk Shadowrun setting, originally developed by Harebrained Schemes and published by Paradox Interactive. In this post we will go over the challenges we faced with converting the mouse dominant controls of the original games to work seamlessly on a controller.
Various screens had to be adapted to make them work with a controller. We will highlight a couple of them to show the various adaptations we’ve made.
Character create screen
The original Character Create screen from the Steam version
The character create screen on console, with all our adaptations
The ‘character create’ screen does not look that problematic at first glance, but turned out to be quite difficult to convert. The left side of the screen allows the player to pick out their Gender, Race, and Class, while the right side allows the player to pick a portrait and customize the 3D model of the character.
Starting with the left side, it seems simple enough: the player can seemingly navigate their selection around a grid to make their choices. But each row requires the player to make a choice, and while the portrait selection could be linked to something like shoulder buttons, how does the player navigate the customization of the 3D model?
In the end we decided to cut each section separate from the others and present them to the player linearly: First the player selects a Gender, then a Race, then a Class, then a Portrait, and finally customize the 3D model. The player moves forward by confirming, and backward by using the back button. This solution allows for clear communication about what the player is in control of, and avoids various sequencing issues that could otherwise exist.
The original karma screen from the Steam version
Another screen we made quite some adaptations to is the Karma screen to make it control nicely with a controller. The first change we made is to separate the Attributes selection on the left, from the pip spending on the right, allowing the player to switch to and from the attributes by confirming and canceling.
We first let the player select which attribute they want to select
Once the player is spending their pips on the right side of the screen, we have made it so that adding and subtracting points will automatically move the cursor around for additional ease. Moving up and down between the rows will automatically set the selection to the first empty pip in that row, again to make it easier and faster for the player to spend their Karma points.
Players can now easily select how they distribute points and see how much a selected option will cost
Finally we also added clarity to how much Karma the selected point costs at the top middle of the screen, as testing revealed that players are sometimes confused as to how much a selected pip costs.
The movement of the original games was point and click, and that would obviously not work on a controller, and so we immediately gravitated to the most logical control scheme: The player controls their character directly with the Left Analog stick. We knew that we could make walking with the left stick feel good and did a lot of work on the movement values and camera follow behavior to make the movement feel native, but we also ran into some unexpected problems.
The biggest problem we encountered was with the collision. In the original game the player clicks where they wanted to go, the game would calculate a path to that point using valid tiles and then the player would move to that location. But when the player is moving more dynamically, like in our solution, then they will have to walk that route all by themselves, manually avoiding obstacles. This all seems very straightforward, until you realize that the Shadowrun games are using an isometric tile based engine, which means that a tile, and only the whole tile, is either set to obstruct the player or not.
Example image of a potted plant in the Shadowrun engine, showing the tile size
A good example of this is the image above, showing off a potted plant. As you can see, the tile is much larger than the plant, but the player only sees the plant and attempts to steer around it, but will be held back by a much larger invisible collision than they expect, causing a very frustrating movement system. To solve this problem we had to create new collisions for a ton of objects with a more visually accurate collision, which was a time consuming process, but in the end improved the experience by a lot.
The biggest updates that we had to do was to the combat of the games. As the UI of the games changed over the years, we decided to update all 3 games to the UI from Shadowrun: Hong Kong, and then adapt that to work properly on the controller.
A screenshot showing the original combat screen in Shadowrun: Hong Kong
The problem with the combat UI is that it was designed for the mouse, playing heavily into its strengths by making all actions available to the player at the same time, simply clicking the icon and performing the corresponding action. Performing skills and attacks are as simple as clicking on a skill and then clicking on the target you wish to hit with it.
On a controller we could have simply made the player control the mouse with the analog stick, but this will feel very slow and tedious, and so we opted to redesign the way combat flows and play into the strength of the controller: Hotkeys.
Dissecting the flow
Similarly to the design of the mouse, we wanted to make the combat play into the strengths of the controller by hotkeying all available actions to the player, allowing them to perform their actions with as little interactions as possible. But the actions available to the player were way too many to fit onto the available buttons of a controller.
Through various tests we settled on a system that split the combat up into 3 sections for the player: Movement, Skill Selection, and Target Selection. These sections would be easily accessible with a single button, and one would always follow the other, creating a clear line of succession, making it very fast for the player to switch from one to the other. For each mode, we also desaturated all available and unavailable parts of the HUD to indicate to the player what is currently accessible, and what is not.
During the movement mode the player can move their current character around with the use of a virtual cursor, allowing them to select a tile they want the character to move to. The selector displays handy information such as how much AP (action points) a move costs, if there is cover, and what the confirmation button is.
Movement selection using our new movement mode, note the disabled skill bar
When the player enters skill selection, their hot bar becomes active and they can no longer control their character, freeing up the analog stick, instead they can now cycle their weapons, reload, use overwatch, or select one of their skills. The player can opt to cancel this mode, returning to the movement mode, or confirm a selected skill to enter target selection.
Skill selection is fast and agile because it’s a separate, clear mode
During target selection the player has already decided what they wanted to do, now they just have to pick a target. We create a list of all available targets and the player can quickly flip through the list to select the target they want and confirm to execute the selected skill, or cancel to return to skill selection.
Once a target has been chosen, the player will automatically return to skill selection, but the system will remember which target the player picked, as it is highly likely that the player would want to use future skills on the same target.
Players can quickly move through all available targets with logical inputs
These changes above allow the player to quickly execute what they want to do, which in turn will cause the player to quickly build up muscle memory so they no longer have to think about the controls, creating more immersion in the game.
Beside some of these major adjustments we talked about in this post, we also touched every screen in the game: adjusting minigames, shop menus, added input consumptions for small durations on pretty much every pop-up and interactable to prevent accidental confirmations, created a new tutorial to teach the players our new combat flow, and dramatically increased text size to improve readability as console players (especially Nintendo Switch) typically are seated further away from their screens.
We went over the games and made a ton of adjustments, big and small, and sometimes near-unnoticeable, to create the best Shadowrun experience possible on the console platforms!
Jori Kamp, game designer @ Codeglue