What the Hack is an extensible and adaptable Serious Game to improve Security Awareness.
Have you ever wondered what “White Hat Hacking” is all about? Try it yourself as the head of a white hat hacking company in What the Hack! Get started by hiring your first employee, buy your first computer and accept one of many generated missions. But it’s not as easy as it sounds - each employee has it’s strengths and weaknesses, so be sure to find the perfect mission for your team. While playing the game you’ll learn a lot about IT security, hacking and prevention of cyber attacks.
What the Hack is a modular game. Creating extensions is easy with the free Unity Editor. Have a look at section Mod Development for more information.
Android: Download v1.0.4
Linux: Download v1.0.4
macOS: Download v1.0.4
Windows: Download v1.0.4
Desktop: Download v1.0
Android: Download v1.0
Source: GitHub Repository
Mod Creator: Download UnityPackage v1.0.4
Mod Assets: Download UnityPackage v1.0
Template for Addon-APK: GitHub Repository
On Android you can install special Addon-Apps, that contain extensions for What the Hack!
Mods are served as a zip file and contain a folder which needs to be copied to specific locations depending on your operating system.
Android/data/com.github.geigi.wth/files/Mods/
(on external storage or SD card)Mods
directory side by side with the executableWhether you want to contribute to the source code or you want to create a mod, the only thing you’ll need is Unity v2018.3.7f1.
Important: You must use this exact version of Unity because What the Hack can only load Mods that are compiled with the same version as the base game.
There are three main components:
Assets/Wth.ModApi
folder.AndroidPlugin
folder. It handles the installation and deinstallation of addon apps../
What the Hack allows all kinds of changes to the game. Each mod will be it’s own game mode with unique names, employees, skills and missions. This allows you to create a mod with very specific learning content as well as new gameplay aspects. None of those modifications are mandatory. Here is a list of possible modifications:
What_the_Hack Mod Tools.unitypackage
into the Editor. This package contains the API as well as the GUI tools to create new mods.What the Hack Mod Assets.unitypackage
into the Editor. This contains prefabs for commonly used UI items like buttons, dropdowns, toggles, scroll views and all of the official sprites and fonts.ModInfo
Scriptable Object: Assets > Create > What_The_Hack ModApi > Mod Info
. Each mod requires a unique ID and a banner image with the resolution 400*182. This scriptable object will be the gathering point for your content. If some content is missing when loading the mod, it probably isn’t included in the ModInfo
.Tools > What_The_Hack ModApi
.Assets/Data
.This chapter describes how to create custom missions. Creating Skills, Employees or Names is very similar to creating missions. Therefore there won’t be a section for each of the possible modifications.
Assets/Data/Skills
.ModInfo
file and drag the freshly generated MissionList
from Assets/data
into the according field of the ModInfo
. Otherwise your missions won’t load in What the Hack.Interactive missions have so called MissionHooks that define a interaction. Each mission can have multiple hooks. Each hook contains a GUI Prefab that will be displayed, as soon as the user opens the interaction window in the game. You can specify at which progress level a hook will be spawned.
Each interaction has only two outcomes: Success or Fail.
MissionHook
object: Assets > Create > What_The_Hack ModApi > Missions > MissionHook
HookTemplate
from the What the Hack Mod Assets
in Assets/Prefabs/
and duplicate it.Assets/Prefabs/
folder.Verifier
Components from the Mod API: DropdownHookVerifier
and ToggleHookVerifier
. Attach one of those components to the root object of your prefab.MonoBehaviour
, you must inherit from ModBehaviour
. You can use this class like any MonoBehaviour
. If you forget to use MonoBehaviour
you won’t be able to export the mod.
MissionHook
object that contains this interaction. Just add it as a public variable and assign it in the inspector. To report success call Hook.RaiseSuccess()
, for failure call Hook.RaiseFailure()
.public class DropdownHookVerifier : ModBehaviour
{
public Button OkButton;
public Dropdown Dropdown;
public MissionHook Hook;
public List<int> ValidOptions;
private void Start()
{
OkButton.onClick.AddListener(Verify);
}
private void Verify()
{
if (ValidOptions.Contains(Dropdown.value))
Hook.RaiseSuccess();
else
Hook.RaiseFailed();
}
private void OnDestroy()
{
OkButton.onClick.RemoveListener(Verify);
}
}
MissionHook
object you created at the beginning. Do this in the inspector.MissionHook
to your mission. To do this, open the Mission Creator and add your hook.Tools > ModTool
.Export
!Each ScriptableObject you define (the files in the Assets/Data
folder) need to be referenced in a ScriptableObjectDictionary
. This file is created automatically and also managed automatically by the Creator windows. If something goes wrong have a look at this dictionary and whether every ScriptableObject from your mod is included here. Otherwise open the according Creator and click Save. This should fix the problem in most cases.
The following third party libraries are used by this game:
sf3-sfx-menu-select.wav by broumbroum freesound.org
http://www.zone38.net/font/