Home

Awesome

<p align="center"> <img src=".github/resources/dogu-gamium-logo.png" width="100px" height="100px" title="Gamium_Logo"/> </p> <p align="center"> <b>Gamium</b> </p> <p align="center"> Gamium is an SDK that allows you to automate game test </p>

Automation Demo by Gamium

<img src=".github/resources/gamium-dogurpgsample_demo.gif" title="Demo"/>

Description

Gamium provides the ability to script the behavior of game users. Starting from a simple function of clicking on the UI, you can automate various cases and be free from repetitive manual tests.

Automation starts when the gamium client sends a network message to the gamium engine for the specified command. Users just need to put the gamium engine into the game build and send the specified message using the client sdk.

Philosophy

As various platforms emerge, the number of things to test is increasing. Accordingly, the mobile app automation framework is used universally, but in the case of games, there are many projects where tests are not yet automated.

We want to solve this problem and develop automation library with multi-engine support through the same interface. The interface we provide is inspired by Selenium and Playwright.

Support List

Engine

EngineWindows / macOSAndroidiOSXboxPS4 / PS5Switch
UnityNeed testingNeed testingNeed testing
UnrealPlannedPlannedPlannedPlannedPlannedPlanned
GodotPlannedPlannedPlannedPlannedPlannedPlanned

Proprietary Engine

LanguageSupport
C++Planned
C#Planned

Client Language

LanguageSupport
Typescript
Python
C#Planned

Getting Started

Please refer to the Get Started

Installation

npm

npm i gamium

pip

pip install gamium

Examples

You can look up the UI and then click and scroll,

await gamium.ui().click(By.path('/Canvas[1]/Login[1]/Panel[1]/GuestLoginBtn[1]'));

You can simulate input into the game,

await gamium.sendKey(KeyBy.unityKeyboard('Space'));

You can also call specific functions.

await gamium.executeRpc(RpcBy.method('Gamium.Private.CodebaseSample', 'CallParam1', 10));

Read Resources

Documentation

Contributing

Please, don't hesitate to file a question.

If you have problem, file an issue.
If you are interested in contributing directly to the code base, don't hesitate to Pull request.
But I'd really appreciate it if you could read the CONTRIBUTING.md before making your request.

License

Gamium is MIT licensed